Skip to content

Commit 5631ecd

Browse files
committed
consume air per second, not per tick
1 parent 365641f commit 5631ecd

File tree

3 files changed

+19
-18
lines changed

3 files changed

+19
-18
lines changed

src/main/kotlin/com/possible_triangle/create_jetpack/config/ServerConfig.kt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import net.minecraft.world.item.enchantment.Enchantment
66
import net.neoforged.neoforge.common.ModConfigSpec
77

88
interface IServerConfig {
9-
val usesPerTank: Int
10-
val usesPerTankHover: Int
9+
val secondsPerTank: Int
10+
val secondsPerTankHover: Int
1111
val horizontalSpeed: Double
1212
val verticalSpeed: Double
1313
val acceleration: Double
@@ -18,8 +18,8 @@ interface IServerConfig {
1818
}
1919

2020
data class SyncedConfig(
21-
override val usesPerTank: Int,
22-
override val usesPerTankHover: Int,
21+
override val secondsPerTank: Int,
22+
override val secondsPerTankHover: Int,
2323
override val horizontalSpeed: Double,
2424
override val verticalSpeed: Double,
2525
override val acceleration: Double,
@@ -32,12 +32,12 @@ data class SyncedConfig(
3232

3333
class ServerConfig(builder: ModConfigSpec.Builder) : IServerConfig {
3434

35-
private val usesPerTankValue = builder.defineInRange("air.uses_per_tank", 2048, 1, Integer.MAX_VALUE)
36-
override val usesPerTank get() = usesPerTankValue.get()
35+
private val secondsPerTankValue = builder.defineInRange("air.seconds_per_tank", 450, 1, Integer.MAX_VALUE)
36+
override val secondsPerTank get() = secondsPerTankValue.get()
3737

38-
private val usesPerTankHoverValue =
39-
builder.defineInRange("air.uses_per_tank_hover", 2048 * 10, 1, Integer.MAX_VALUE)
40-
override val usesPerTankHover get() = usesPerTankHoverValue.get()
38+
private val secondsPerTankHoverValue =
39+
builder.defineInRange("air.seconds_per_tank_hover", 900, 1, Integer.MAX_VALUE)
40+
override val secondsPerTankHover get() = secondsPerTankHoverValue.get()
4141

4242
private val horizontalSpeedValue = builder.defineInRange("speed.horizontal", 0.02, 0.01, 100.0)
4343
override val horizontalSpeed get() = horizontalSpeedValue.get()

src/main/kotlin/com/possible_triangle/create_jetpack/config/SyncConfigMessage.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ class SyncConfigMessage(private val config: IServerConfig) : CustomPacketPayload
1919

2020
private fun decode(buf: FriendlyByteBuf): SyncConfigMessage {
2121
val config = SyncedConfig(
22-
usesPerTank = buf.readInt(),
23-
usesPerTankHover = buf.readInt(),
22+
secondsPerTank = buf.readInt(),
23+
secondsPerTankHover = buf.readInt(),
2424
horizontalSpeed = buf.readDouble(),
2525
verticalSpeed = buf.readDouble(),
2626
acceleration = buf.readDouble(),
@@ -32,8 +32,8 @@ class SyncConfigMessage(private val config: IServerConfig) : CustomPacketPayload
3232
}
3333

3434
private fun encode(buf: FriendlyByteBuf, message: SyncConfigMessage) = with(message) {
35-
buf.writeInt(config.usesPerTank)
36-
buf.writeInt(config.usesPerTankHover)
35+
buf.writeInt(config.secondsPerTank)
36+
buf.writeInt(config.secondsPerTankHover)
3737
buf.writeDouble(config.horizontalSpeed)
3838
buf.writeDouble(config.verticalSpeed)
3939
buf.writeDouble(config.acceleration)

src/main/kotlin/com/possible_triangle/create_jetpack/item/JetpackItem.kt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,13 @@ open class JetpackItem(
7575
override fun getThrusters(context: Context) = thrusters
7676

7777
override fun onUse(context: Context) {
78-
BacktankUtil.canAbsorbDamage(context.entity, usesPerTank(context))
78+
if (context.world.gameTime % 20 != 0L) return
79+
BacktankUtil.canAbsorbDamage(context.entity, secondsPerTank(context))
7980
}
8081

81-
private fun usesPerTank(context: Context): Int {
82-
return if (isHovering(context)) Configs.SERVER.usesPerTankHover
83-
else Configs.SERVER.usesPerTank
82+
private fun secondsPerTank(context: Context): Int {
83+
return if (isHovering(context)) Configs.SERVER.secondsPerTankHover
84+
else Configs.SERVER.secondsPerTank
8485
}
8586

8687
override fun isValid(context: Context): Boolean {
@@ -94,7 +95,7 @@ open class JetpackItem(
9495
override fun isUsable(context: Context): Boolean {
9596
val tank = BacktankUtil.getAllWithAir(context.entity).firstOrNull() ?: return false
9697
val air = BacktankUtil.getAir(tank)
97-
val cost = BacktankUtil.maxAirWithoutEnchants().toFloat() / usesPerTank(context)
98+
val cost = BacktankUtil.maxAirWithoutEnchants().toFloat() / secondsPerTank(context)
9899
return air >= cost
99100
}
100101

0 commit comments

Comments
 (0)