actor entity

This commit is contained in:
DBotThePony 2023-12-01 21:06:34 +07:00
parent bfc39a6cb6
commit 125af3141d
Signed by: DBot
GPG Key ID: DCC23B5715498507
5 changed files with 30 additions and 26 deletions

View File

@ -6,7 +6,7 @@ import ru.dbotthepony.kstarbound.json.builder.JsonFlat
import ru.dbotthepony.kstarbound.world.physics.Poly import ru.dbotthepony.kstarbound.world.physics.Poly
@JsonFactory @JsonFactory
data class PlayerMovementParameters( data class ActorMovementParameters(
@JsonFlat @JsonFlat
val base: BaseMovementParameters.Impl = BaseMovementParameters.Impl(), val base: BaseMovementParameters.Impl = BaseMovementParameters.Impl(),
@ -39,8 +39,8 @@ data class PlayerMovementParameters(
val pathExploreRate: Double? = null, val pathExploreRate: Double? = null,
) : BaseMovementParameters by base { ) : BaseMovementParameters by base {
fun merge(other: PlayerMovementParameters): PlayerMovementParameters { fun merge(other: ActorMovementParameters): ActorMovementParameters {
return PlayerMovementParameters( return ActorMovementParameters(
base = base.merge(other.base), base = base.merge(other.base),
standingPoly = standingPoly ?: other.standingPoly, standingPoly = standingPoly ?: other.standingPoly,
crouchingPoly = crouchingPoly ?: other.crouchingPoly, crouchingPoly = crouchingPoly ?: other.crouchingPoly,

View File

@ -7,7 +7,7 @@ import ru.dbotthepony.kstarbound.Registry
import ru.dbotthepony.kstarbound.defs.AssetReference import ru.dbotthepony.kstarbound.defs.AssetReference
import ru.dbotthepony.kstarbound.defs.IScriptable import ru.dbotthepony.kstarbound.defs.IScriptable
import ru.dbotthepony.kstarbound.defs.IThingWithDescription import ru.dbotthepony.kstarbound.defs.IThingWithDescription
import ru.dbotthepony.kstarbound.defs.PlayerMovementParameters import ru.dbotthepony.kstarbound.defs.ActorMovementParameters
import ru.dbotthepony.kstarbound.defs.animation.AnimationDefinition import ru.dbotthepony.kstarbound.defs.animation.AnimationDefinition
import ru.dbotthepony.kstarbound.defs.item.TreasurePoolDefinition import ru.dbotthepony.kstarbound.defs.item.TreasurePoolDefinition
import ru.dbotthepony.kstarbound.json.builder.JsonFactory import ru.dbotthepony.kstarbound.json.builder.JsonFactory
@ -29,7 +29,7 @@ data class MonsterTypeDefinition(
) : IThingWithDescription by desc { ) : IThingWithDescription by desc {
@JsonFactory @JsonFactory
data class BaseParameters( data class BaseParameters(
val movementSettings: PlayerMovementParameters? = null, val movementSettings: ActorMovementParameters? = null,
@JsonFlat @JsonFlat
val script: IScriptable, val script: IScriptable,
) : IScriptable by script ) : IScriptable by script

View File

@ -6,7 +6,7 @@ import com.google.common.collect.ImmutableSet
import com.google.gson.JsonObject import com.google.gson.JsonObject
import ru.dbotthepony.kstarbound.Registry import ru.dbotthepony.kstarbound.Registry
import ru.dbotthepony.kstarbound.defs.AssetReference import ru.dbotthepony.kstarbound.defs.AssetReference
import ru.dbotthepony.kstarbound.defs.PlayerMovementParameters import ru.dbotthepony.kstarbound.defs.ActorMovementParameters
import ru.dbotthepony.kstarbound.defs.Species import ru.dbotthepony.kstarbound.defs.Species
import ru.dbotthepony.kstarbound.util.SBPattern import ru.dbotthepony.kstarbound.util.SBPattern
import ru.dbotthepony.kstarbound.defs.animation.AnimationDefinition import ru.dbotthepony.kstarbound.defs.animation.AnimationDefinition
@ -32,8 +32,8 @@ data class PlayerDefinition(
val defaultCodexes: ImmutableMap<String, ImmutableList<Registry.Ref<IItemDefinition>>>, val defaultCodexes: ImmutableMap<String, ImmutableList<Registry.Ref<IItemDefinition>>>,
val metaBoundBox: AABB, val metaBoundBox: AABB,
val movementParameters: PlayerMovementParameters, val movementParameters: ActorMovementParameters,
val zeroGMovementParameters: PlayerMovementParameters, val zeroGMovementParameters: ActorMovementParameters,
val statusControllerSettings: StatusControllerSettings, val statusControllerSettings: StatusControllerSettings,

View File

@ -0,0 +1,19 @@
package ru.dbotthepony.kstarbound.world.entities
import ru.dbotthepony.kstarbound.world.World
abstract class ActorEntity(world: World<*, *>) : Entity(world) {
var isWalking = false
var isRunning = false
var isCrouching = false
var isFlying = false
var isFalling = false
var canJump = false
var isJumping = false
var isGroundMovement = false
var isLiquidMovement = false
override fun move() {
super.move()
}
}

View File

@ -2,32 +2,17 @@ package ru.dbotthepony.kstarbound.world.entities
import ru.dbotthepony.kstarbound.GlobalDefaults import ru.dbotthepony.kstarbound.GlobalDefaults
import ru.dbotthepony.kstarbound.Starbound import ru.dbotthepony.kstarbound.Starbound
import ru.dbotthepony.kstarbound.defs.BaseMovementParameters import ru.dbotthepony.kstarbound.defs.ActorMovementParameters
import ru.dbotthepony.kstarbound.defs.PlayerMovementParameters
import ru.dbotthepony.kstarbound.world.World import ru.dbotthepony.kstarbound.world.World
import ru.dbotthepony.kstarbound.world.physics.Poly import ru.dbotthepony.kstarbound.world.physics.Poly
class PlayerEntity(world: World<*, *>) : Entity(world) { class PlayerEntity(world: World<*, *>) : Entity(world) {
override val movementParameters: PlayerMovementParameters = GlobalDefaults.playerMovementParameters override val movementParameters: ActorMovementParameters = GlobalDefaults.actorMovementParameters
var isWalking = false
var isRunning = false
var isCrouching = false
var isFlying = false
var isFalling = false
var canJump = false
var isJumping = false
var isGroundMovement = false
var isLiquidMovement = false
init { init {
GlobalDefaults.playerMovementParameters.standingPoly?.let { GlobalDefaults.actorMovementParameters.standingPoly?.let {
//hitboxes.add(it) //hitboxes.add(it)
hitboxes.add(Starbound.gson.fromJson("""[ [-0.75, -2.0], [-0.35, -2.5], [0.35, -2.5], [0.75, -2.0], [0.75, 0.65], [0.35, 1.22], [-0.35, 1.22], [-0.75, 0.65] ]""", Poly::class.java)) hitboxes.add(Starbound.gson.fromJson("""[ [-0.75, -2.0], [-0.35, -2.5], [0.35, -2.5], [0.75, -2.0], [0.75, 0.65], [0.35, 1.22], [-0.35, 1.22], [-0.75, 0.65] ]""", Poly::class.java))
} }
} }
override fun move() {
super.move()
}
} }