Add some params

- start jump charge
- building limit
- movement params
This commit is contained in:
anibus
2026-10-04 02:13:53 +03:00
parent e4c6ee6a29
commit e512477699
12 changed files with 111 additions and 1 deletions
@@ -15,5 +15,6 @@ data class JumpDto(
val jumpTimeMax: Double?, val jumpTimeMax: Double?,
val jumpTimeMin: Double?, val jumpTimeMin: Double?,
val jumpMinHeight: Double?, val jumpMinHeight: Double?,
val chargeStartingFraction: Double?,
val requirements: RequirementDto?, val requirements: RequirementDto?,
) )
@@ -39,6 +39,9 @@ data class UnitFullDto(
val mass: Int?, val mass: Int?,
val upTime: Double?, val upTime: Double?,
val moveSpeed: Int?, val moveSpeed: Int?,
val accelerationTime: Double?,
val decelerationTime: Double?,
val rotationRate: Double?,
val sightRadius: Int?, val sightRadius: Int?,
val detectRadius: Int?, val detectRadius: Int?,
val reinforceCostRequisition: Double?, val reinforceCostRequisition: Double?,
@@ -41,4 +41,5 @@ data class BuildingFullDto(
val requirements: RequirementDto?, val requirements: RequirementDto?,
val affectedResearches: Set<ResearchShortDto>, val affectedResearches: Set<ResearchShortDto>,
val hotkey: String?, val hotkey: String?,
var buildingLimit: Int?,
) )
@@ -212,6 +212,7 @@ class Building {
requirement, requirement,
affectedResearches.map { it.toResearchShortDto() }.toSet(), affectedResearches.map { it.toResearchShortDto() }.toSet(),
uiHotkeyName, uiHotkeyName,
buildingLimit,
) )
@@ -69,6 +69,9 @@ class DowUnit {
var mass: Int? = null var mass: Int? = null
var upTime: Double? = null var upTime: Double? = null
var moveSpeed: Int? = null var moveSpeed: Int? = null
var accelerationTime: Double? = null
var decelerationTime: Double? = null
var rotationRate: Double? = null
var sightRadius: Int? = null var sightRadius: Int? = null
var detectRadius: Int? = null var detectRadius: Int? = null
var reinforceCostRequisition: Double? = null var reinforceCostRequisition: Double? = null
@@ -214,6 +217,9 @@ class DowUnit {
mass, mass,
upTime, upTime,
moveSpeed, moveSpeed,
accelerationTime,
decelerationTime,
rotationRate,
sightRadius, sightRadius,
detectRadius, detectRadius,
reinforceCostRequisition, reinforceCostRequisition,
@@ -30,6 +30,7 @@ class Jump {
var jumpTimeMax: Double? = null var jumpTimeMax: Double? = null
var jumpTimeMin: Double? = null var jumpTimeMin: Double? = null
var jumpMinHeight: Double? = null var jumpMinHeight: Double? = null
var chargeStartingFraction: Double? = null
@OneToMany(mappedBy = "jump", cascade = [CascadeType.ALL]) @OneToMany(mappedBy = "jump", cascade = [CascadeType.ALL])
var jumpRequirements: MutableSet<JumpRequirements> = mutableSetOf() var jumpRequirements: MutableSet<JumpRequirements> = mutableSetOf()
@@ -54,6 +54,7 @@ class DowUnitMappingService @Autowired constructor(
jump.jumpTimeMax, jump.jumpTimeMax,
jump.jumpTimeMin, jump.jumpTimeMin,
jump.jumpMinHeight, jump.jumpMinHeight,
jump.chargeStartingFraction,
requirementsMappingComponent.getRequirements(jump.jumpRequirements.toList(), unit.modId!!) requirementsMappingComponent.getRequirements(jump.jumpRequirements.toList(), unit.modId!!)
) )
} }
@@ -111,7 +111,7 @@ class WeaponResearchEffectMappingComponent(
* e.g. modifiers/max_damage_weapon_modifier.lua -> max_damage_weapon_modifier * e.g. modifiers/max_damage_weapon_modifier.lua -> max_damage_weapon_modifier
*/ */
private fun extractRefName(reference: String): String = private fun extractRefName(reference: String): String =
reference.split("\\").first() reference.split("\\").last()
.replace(".lua", "") .replace(".lua", "")
.replace(".rgd", "") .replace(".rgd", "")
} }
@@ -65,6 +65,12 @@ class UnitRgdExtractService @Autowired constructor(
val upTime: Double?, val upTime: Double?,
) )
data class MovementParams(
val accelerationTime: Double?,
val decelerationTime: Double?,
val rotationRate: Double?,
)
fun extractToUnitEntity( fun extractToUnitEntity(
fileNameSquad: String, fileNameSquad: String,
@@ -141,6 +147,10 @@ class UnitRgdExtractService @Autowired constructor(
unit.unitMoraleBrakeModifiers = moraleData.unitMoraleBrakeModifiers.toMutableSet() unit.unitMoraleBrakeModifiers = moraleData.unitMoraleBrakeModifiers.toMutableSet()
unit.moveSpeed = getUnitSpeed(unitData)?.toInt() unit.moveSpeed = getUnitSpeed(unitData)?.toInt()
val movementParams = getMovementParams(unitData)
unit.accelerationTime = movementParams.accelerationTime
unit.decelerationTime = movementParams.decelerationTime
unit.rotationRate = movementParams.rotationRate
unit.sightRadius = getSightRadius(unitData)?.toInt() unit.sightRadius = getSightRadius(unitData)?.toInt()
unit.detectRadius = getDetectRadius(unitData)?.toInt() unit.detectRadius = getDetectRadius(unitData)?.toInt()
@@ -318,6 +328,19 @@ class UnitRgdExtractService @Autowired constructor(
.getRgdTableByName("moving_ext") .getRgdTableByName("moving_ext")
?.getDoubleByName("speed_max") ?.getDoubleByName("speed_max")
private fun getMovementParams(unitData: List<RgdData>): MovementParams {
val movingExt = unitData.getRgdTableByName("moving_ext")
val turningBehaviorTemplate = movingExt?.getStringByName("turning_behavior_template")
if (turningBehaviorTemplate == null || turningBehaviorTemplate == "default" || turningBehaviorTemplate == "infantry") {
return MovementParams(null, null, null)
}
return MovementParams(
movingExt.getDoubleByName("acceleration_time"),
movingExt.getDoubleByName("deceleration_time"),
movingExt.getDoubleByName("rotation_rate"),
)
}
private fun getSightRadius(unitData: List<RgdData>): Double? = unitData private fun getSightRadius(unitData: List<RgdData>): Double? = unitData
.getRgdTableByName("sight_ext") .getRgdTableByName("sight_ext")
?.getDoubleByName("sight_radius") ?.getDoubleByName("sight_radius")
@@ -470,6 +493,7 @@ class UnitRgdExtractService @Autowired constructor(
jump.jumpTimeMax = squadJumpExt.getDoubleByName("jump_time_max") jump.jumpTimeMax = squadJumpExt.getDoubleByName("jump_time_max")
jump.jumpTimeMin = squadJumpExt.getDoubleByName("jump_time_min") jump.jumpTimeMin = squadJumpExt.getDoubleByName("jump_time_min")
jump.jumpMinHeight = squadJumpExt.getDoubleByName("jump_min_height") jump.jumpMinHeight = squadJumpExt.getDoubleByName("jump_min_height")
jump.chargeStartingFraction = squadJumpExt.getDoubleByName("charge_starting_fraction")
// Parse jump requirements // Parse jump requirements
val requirements = squadJumpExt.getRgdTableByName("requirements") val requirements = squadJumpExt.getRgdTableByName("requirements")
@@ -0,0 +1,25 @@
{
"databaseChangeLog": [
{
"changeSet": {
"id": "Add charge_starting_fraction to jumps table",
"author": "anibus",
"changes": [
{
"addColumn": {
"columns": [
{
"column": {
"name": "charge_starting_fraction",
"type": "float"
}
}
],
"tableName": "jumps"
}
}
]
}
}
]
}
@@ -0,0 +1,37 @@
{
"databaseChangeLog": [
{
"changeSet": {
"id": "Add movement params to units table",
"author": "anibus",
"changes": [
{
"addColumn": {
"columns": [
{
"column": {
"name": "acceleration_time",
"type": "number"
}
},
{
"column": {
"name": "deceleration_time",
"type": "number"
}
},
{
"column": {
"name": "rotation_rate",
"type": "number"
}
}
],
"tableName": "units"
}
}
]
}
}
]
}
@@ -481,6 +481,16 @@
"include": { "include": {
"file": "db/0.0.6/schema/add_index_to_researches.json" "file": "db/0.0.6/schema/add_index_to_researches.json"
} }
},
{
"include": {
"file": "db/0.0.6/schema/add_charge_starting_fraction_to_jumps.json"
}
},
{
"include": {
"file": "db/0.0.6/schema/add_movement_params_to_units.json"
}
} }
] ]
} }