From 125af3141d8dca61cc4698359dc1e939881c000e Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Fri, 1 Dec 2023 21:06:34 +0700 Subject: [PATCH] actor entity --- ...rameters.kt => ActorMovementParameters.kt} | 6 +++--- .../defs/monster/MonsterTypeDefinition.kt | 4 ++-- .../defs/player/PlayerDefinition.kt | 6 +++--- .../kstarbound/world/entities/ActorEntity.kt | 19 +++++++++++++++++ .../kstarbound/world/entities/PlayerEntity.kt | 21 +++---------------- 5 files changed, 30 insertions(+), 26 deletions(-) rename src/main/kotlin/ru/dbotthepony/kstarbound/defs/{PlayerMovementParameters.kt => ActorMovementParameters.kt} (94%) create mode 100644 src/main/kotlin/ru/dbotthepony/kstarbound/world/entities/ActorEntity.kt diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/PlayerMovementParameters.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/ActorMovementParameters.kt similarity index 94% rename from src/main/kotlin/ru/dbotthepony/kstarbound/defs/PlayerMovementParameters.kt rename to src/main/kotlin/ru/dbotthepony/kstarbound/defs/ActorMovementParameters.kt index 5b5455ef..e601725b 100644 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/PlayerMovementParameters.kt +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/ActorMovementParameters.kt @@ -6,7 +6,7 @@ import ru.dbotthepony.kstarbound.json.builder.JsonFlat import ru.dbotthepony.kstarbound.world.physics.Poly @JsonFactory -data class PlayerMovementParameters( +data class ActorMovementParameters( @JsonFlat val base: BaseMovementParameters.Impl = BaseMovementParameters.Impl(), @@ -39,8 +39,8 @@ data class PlayerMovementParameters( val pathExploreRate: Double? = null, ) : BaseMovementParameters by base { - fun merge(other: PlayerMovementParameters): PlayerMovementParameters { - return PlayerMovementParameters( + fun merge(other: ActorMovementParameters): ActorMovementParameters { + return ActorMovementParameters( base = base.merge(other.base), standingPoly = standingPoly ?: other.standingPoly, crouchingPoly = crouchingPoly ?: other.crouchingPoly, diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/monster/MonsterTypeDefinition.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/monster/MonsterTypeDefinition.kt index faabdd36..33ad872f 100644 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/monster/MonsterTypeDefinition.kt +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/monster/MonsterTypeDefinition.kt @@ -7,7 +7,7 @@ import ru.dbotthepony.kstarbound.Registry import ru.dbotthepony.kstarbound.defs.AssetReference import ru.dbotthepony.kstarbound.defs.IScriptable 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.item.TreasurePoolDefinition import ru.dbotthepony.kstarbound.json.builder.JsonFactory @@ -29,7 +29,7 @@ data class MonsterTypeDefinition( ) : IThingWithDescription by desc { @JsonFactory data class BaseParameters( - val movementSettings: PlayerMovementParameters? = null, + val movementSettings: ActorMovementParameters? = null, @JsonFlat val script: IScriptable, ) : IScriptable by script diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/player/PlayerDefinition.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/player/PlayerDefinition.kt index f564cf39..393e2932 100644 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/defs/player/PlayerDefinition.kt +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/defs/player/PlayerDefinition.kt @@ -6,7 +6,7 @@ import com.google.common.collect.ImmutableSet import com.google.gson.JsonObject import ru.dbotthepony.kstarbound.Registry 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.util.SBPattern import ru.dbotthepony.kstarbound.defs.animation.AnimationDefinition @@ -32,8 +32,8 @@ data class PlayerDefinition( val defaultCodexes: ImmutableMap>>, val metaBoundBox: AABB, - val movementParameters: PlayerMovementParameters, - val zeroGMovementParameters: PlayerMovementParameters, + val movementParameters: ActorMovementParameters, + val zeroGMovementParameters: ActorMovementParameters, val statusControllerSettings: StatusControllerSettings, diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/world/entities/ActorEntity.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/world/entities/ActorEntity.kt new file mode 100644 index 00000000..71373a69 --- /dev/null +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/world/entities/ActorEntity.kt @@ -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() + } +} diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/world/entities/PlayerEntity.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/world/entities/PlayerEntity.kt index 316beba8..6a67a19c 100644 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/world/entities/PlayerEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/world/entities/PlayerEntity.kt @@ -2,32 +2,17 @@ package ru.dbotthepony.kstarbound.world.entities import ru.dbotthepony.kstarbound.GlobalDefaults import ru.dbotthepony.kstarbound.Starbound -import ru.dbotthepony.kstarbound.defs.BaseMovementParameters -import ru.dbotthepony.kstarbound.defs.PlayerMovementParameters +import ru.dbotthepony.kstarbound.defs.ActorMovementParameters import ru.dbotthepony.kstarbound.world.World import ru.dbotthepony.kstarbound.world.physics.Poly class PlayerEntity(world: World<*, *>) : Entity(world) { - override val movementParameters: PlayerMovementParameters = GlobalDefaults.playerMovementParameters - - 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 val movementParameters: ActorMovementParameters = GlobalDefaults.actorMovementParameters init { - GlobalDefaults.playerMovementParameters.standingPoly?.let { + GlobalDefaults.actorMovementParameters.standingPoly?.let { //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)) } } - - override fun move() { - super.move() - } }