Skip to content

Commit a1990e9

Browse files
committed
ParticleSpawner Block
1 parent 5bc6292 commit a1990e9

File tree

3 files changed

+51
-2
lines changed

3 files changed

+51
-2
lines changed

common/src/main/kotlin/org/valkyrienskies/kelvin/KelvinMod.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.valkyrienskies.kelvin
22

33
import com.fasterxml.jackson.module.kotlin.readValue
4-
import dev.architectury.event.events.client.ClientLifecycleEvent
54
import dev.architectury.event.events.client.ClientPlayerEvent
65
import dev.architectury.event.events.client.ClientTickEvent
76
import dev.architectury.event.events.common.ChunkEvent
@@ -10,14 +9,14 @@ import dev.architectury.event.events.common.TickEvent
109
import dev.architectury.networking.simple.SimpleNetworkManager
1110
import dev.architectury.platform.Platform
1211
import dev.architectury.utils.Env
13-
import net.minecraft.client.Minecraft
1412
import net.minecraft.client.multiplayer.ClientLevel
1513
import net.minecraft.nbt.CompoundTag
1614
import net.minecraft.resources.ResourceLocation
1715
import net.minecraft.server.level.ServerLevel
1816
import net.minecraft.world.level.chunk.ChunkAccess
1917
import org.valkyrienskies.kelvin.api.DuctNetwork
2018
import org.valkyrienskies.kelvin.api.DuctNodePos
19+
import org.valkyrienskies.kelvin.debug.KelvinBlocks
2120
import org.valkyrienskies.kelvin.impl.DuctNetworkServer
2221
import org.valkyrienskies.kelvin.impl.client.DuctNetworkClient
2322
import org.valkyrienskies.kelvin.impl.logger
@@ -117,6 +116,8 @@ object KelvinMod {
117116
KelvinNetworking.init()
118117
KelvinDamageSources.init()
119118

119+
KelvinBlocks.init()
120+
120121
KELVINLOGGER.info("Registering gas types...")
121122
GasTypeRegistry.init()
122123
ReactionRequirementRegistry.init()
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package org.valkyrienskies.kelvin.debug
2+
3+
import dev.architectury.registry.registries.DeferredRegister
4+
import net.minecraft.core.Registry
5+
import net.minecraft.world.level.block.state.BlockBehaviour
6+
import net.minecraft.world.level.material.Material
7+
import org.valkyrienskies.kelvin.KelvinMod
8+
9+
object KelvinBlocks {
10+
val BLOCKS = DeferredRegister.create(KelvinMod.MOD_ID, Registry.BLOCK_REGISTRY)
11+
12+
val particleSpawner =
13+
BLOCKS.register("particle_spawner") { ParticleSpawnerBlock(BlockBehaviour.Properties.of(Material.METAL)) }
14+
15+
fun init() {
16+
BLOCKS.register()
17+
}
18+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package org.valkyrienskies.kelvin.debug
2+
3+
import net.minecraft.client.multiplayer.ClientLevel
4+
import net.minecraft.core.BlockPos
5+
import net.minecraft.world.level.Level
6+
import net.minecraft.world.level.block.Block
7+
import net.minecraft.world.level.block.state.BlockState
8+
import org.valkyrienskies.kelvin.KelvinMod
9+
import org.valkyrienskies.kelvin.impl.registry.GasTypeRegistry
10+
import org.valkyrienskies.kelvin.util.KelvinExtensions.toDuctNodePos
11+
import java.util.*
12+
13+
class ParticleSpawnerBlock(properties: Properties) : Block(properties) {
14+
override fun animateTick(state: BlockState, level: Level, pos: BlockPos, random: Random) {
15+
val kelvin = KelvinMod.KelvinClient
16+
kelvin.createGasParticle(
17+
level as ClientLevel,
18+
GasTypeRegistry.GAS_TYPES.values.shuffled().first(),
19+
pos.toDuctNodePos(level.dimension().location()),
20+
pos.x.toDouble(),
21+
pos.y.toDouble(),
22+
pos.z.toDouble(),
23+
0.0,
24+
1.0,
25+
0.0
26+
)
27+
28+
super.animateTick(state, level, pos, random)
29+
}
30+
}

0 commit comments

Comments
 (0)