From a27df8f91ef005a575328229ad4d10de2a22f118 Mon Sep 17 00:00:00 2001 From: Bixilon Date: Wed, 9 Jun 2021 19:03:13 +0200 Subject: [PATCH] physics: bed bouncing, BrewingStandBlock (particles) --- .../data/entities/EntityObjectType.kt | 2 +- .../entities/block/BlockEntityMetaType.kt | 2 +- .../minosoft/data/mappings/Dimension.kt | 2 +- .../bixilon/minosoft/data/mappings/Motive.kt | 2 +- .../minosoft/data/mappings/PluginChannel.kt | 2 +- .../minosoft/data/mappings/biomes/Biome.kt | 8 ++-- .../blocks/entites/BlockEntityType.kt | 2 +- .../data/mappings/blocks/types/BedBlock.kt | 42 +++++++++++++++++ .../data/mappings/blocks/types/Block.kt | 37 ++++++++------- .../blocks/types/BrewingStandBlock.kt | 45 +++++++++++++++++++ .../data/mappings/blocks/types/DoorBlock.kt | 2 +- .../mappings/blocks/types/DoubleSizeBlock.kt | 2 +- .../data/mappings/blocks/types/FluidBlock.kt | 6 +-- .../blocks/types/HorizontalFacingBlock.kt | 2 +- .../data/mappings/blocks/types/NoteBlock.kt | 2 +- .../data/mappings/blocks/types/SlimeBlock.kt | 2 +- .../data/mappings/effects/StatusEffect.kt | 2 +- .../data/mappings/enchantment/Enchantment.kt | 2 +- .../data/mappings/entities/EntityType.kt | 6 +-- .../entities/villagers/VillagerProfession.kt | 2 +- .../minosoft/data/mappings/fluid/Fluid.kt | 6 +-- .../minosoft/data/mappings/items/Item.kt | 32 ++++++------- .../data/mappings/materials/Material.kt | 2 +- .../other/containers/ContainerType.kt | 2 +- .../mappings/other/game/event/GameEvent.kt | 2 +- .../data/mappings/particle/ParticleType.kt | 2 +- .../registry/ResourceLocationDeserializer.kt | 2 +- .../data/mappings/sounds/SoundEvent.kt | 2 +- 28 files changed, 156 insertions(+), 66 deletions(-) create mode 100644 src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/BedBlock.kt create mode 100644 src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/BrewingStandBlock.kt diff --git a/src/main/java/de/bixilon/minosoft/data/entities/EntityObjectType.kt b/src/main/java/de/bixilon/minosoft/data/entities/EntityObjectType.kt index 54e95f026..d46f2dda1 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/EntityObjectType.kt +++ b/src/main/java/de/bixilon/minosoft/data/entities/EntityObjectType.kt @@ -24,7 +24,7 @@ class EntityObjectType( ) : RegistryItem { companion object : ResourceLocationDeserializer { - override fun deserialize(mappings: Registries?, resourceLocation: ResourceLocation, data: JsonObject): EntityObjectType { + override fun deserialize(registries: Registries?, resourceLocation: ResourceLocation, data: JsonObject): EntityObjectType { return EntityObjectType(resourceLocation) } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/block/BlockEntityMetaType.kt b/src/main/java/de/bixilon/minosoft/data/entities/block/BlockEntityMetaType.kt index 988abfd4c..54dc0c843 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/block/BlockEntityMetaType.kt +++ b/src/main/java/de/bixilon/minosoft/data/entities/block/BlockEntityMetaType.kt @@ -25,7 +25,7 @@ class BlockEntityMetaType( ) : RegistryItem { companion object : ResourceLocationDeserializer { - override fun deserialize(mappings: Registries?, resourceLocation: ResourceLocation, data: JsonObject): BlockEntityMetaType { + override fun deserialize(registries: Registries?, resourceLocation: ResourceLocation, data: JsonObject): BlockEntityMetaType { return BlockEntityMetaType(resourceLocation) } } diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/Dimension.kt b/src/main/java/de/bixilon/minosoft/data/mappings/Dimension.kt index fb76794fb..603f16486 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/Dimension.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/Dimension.kt @@ -75,7 +75,7 @@ data class Dimension( ) } - override fun deserialize(mappings: Registries?, resourceLocation: ResourceLocation, data: JsonObject): Dimension { + override fun deserialize(registries: Registries?, resourceLocation: ResourceLocation, data: JsonObject): Dimension { return Dimension( resourceLocation = resourceLocation, piglinSafe = data.get("piglin_safe")?.asBoolean == true, diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/Motive.kt b/src/main/java/de/bixilon/minosoft/data/mappings/Motive.kt index d33693822..2830ea3d5 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/Motive.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/Motive.kt @@ -28,7 +28,7 @@ data class Motive( } companion object : ResourceLocationDeserializer { - override fun deserialize(mappings: Registries?, resourceLocation: ResourceLocation, data: JsonObject): Motive { + override fun deserialize(registries: Registries?, resourceLocation: ResourceLocation, data: JsonObject): Motive { return Motive( resourceLocation = resourceLocation, width = data["width"].asInt, diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/PluginChannel.kt b/src/main/java/de/bixilon/minosoft/data/mappings/PluginChannel.kt index 13adaa26a..f4f7734cf 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/PluginChannel.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/PluginChannel.kt @@ -28,7 +28,7 @@ data class PluginChannel( } companion object : ResourceLocationDeserializer { - override fun deserialize(mappings: Registries?, resourceLocation: ResourceLocation, data: JsonObject): PluginChannel { + override fun deserialize(registries: Registries?, resourceLocation: ResourceLocation, data: JsonObject): PluginChannel { return PluginChannel( resourceLocation = resourceLocation, name = LegacyResourceLocation(data["name"].asString) diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/biomes/Biome.kt b/src/main/java/de/bixilon/minosoft/data/mappings/biomes/Biome.kt index bef6d64a8..0915160ec 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/biomes/Biome.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/biomes/Biome.kt @@ -59,8 +59,8 @@ data class Biome( companion object : ResourceLocationDeserializer { private val TODO_SWAMP_COLOR = "#6A7039".asColor() - override fun deserialize(mappings: Registries?, resourceLocation: ResourceLocation, data: JsonObject): Biome { - check(mappings != null) { "Registries is null!" } + override fun deserialize(registries: Registries?, resourceLocation: ResourceLocation, data: JsonObject): Biome { + check(registries != null) { "Registries is null!" } return Biome( resourceLocation = resourceLocation, depth = data["depth"]?.asFloat ?: 0.0f, @@ -69,8 +69,8 @@ data class Biome( downfall = data["downfall"]?.asFloat ?: 0.0f, waterColor = TintColorCalculator.getJsonColor(data["water_color"]?.asInt ?: 0), waterFogColor = TintColorCalculator.getJsonColor(data["water_fog_color"]?.asInt ?: 0), - category = mappings.biomeCategoryRegistry[data["category"]?.asInt ?: -1] ?: DEFAULT_CATEGORY, - precipitation = mappings.biomePrecipitationRegistry[data["precipitation"]?.asInt ?: -1] ?: DEFAULT_PRECIPITATION, + category = registries.biomeCategoryRegistry[data["category"]?.asInt ?: -1] ?: DEFAULT_CATEGORY, + precipitation = registries.biomePrecipitationRegistry[data["precipitation"]?.asInt ?: -1] ?: DEFAULT_PRECIPITATION, skyColor = data["sky_color"]?.asInt?.asRGBColor() ?: RenderConstants.GRASS_FAILOVER_COLOR, foliageColorOverride = TintColorCalculator.getJsonColor(data["foliage_color_override"]?.asInt ?: 0), grassColorOverride = TintColorCalculator.getJsonColor(data["grass_color_override"]?.asInt ?: 0), diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/blocks/entites/BlockEntityType.kt b/src/main/java/de/bixilon/minosoft/data/mappings/blocks/entites/BlockEntityType.kt index afbdb8cdd..6e105ace8 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/blocks/entites/BlockEntityType.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/blocks/entites/BlockEntityType.kt @@ -48,7 +48,7 @@ data class BlockEntityType( } companion object : ResourceLocationDeserializer { - override fun deserialize(mappings: Registries?, resourceLocation: ResourceLocation, data: JsonObject): BlockEntityType? { + override fun deserialize(registries: Registries?, resourceLocation: ResourceLocation, data: JsonObject): BlockEntityType? { val factory = DefaultBlockEntityMetaDataFactory[resourceLocation] ?: return null // ToDo val blockIds: MutableSet = mutableSetOf() diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/BedBlock.kt b/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/BedBlock.kt new file mode 100644 index 000000000..289e229a0 --- /dev/null +++ b/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/BedBlock.kt @@ -0,0 +1,42 @@ +/* + * Minosoft + * Copyright (C) 2021 Moritz Zwerger + * + * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with this program. If not, see . + * + * This software is not affiliated with Mojang AB, the original developer of Minecraft. + */ + +package de.bixilon.minosoft.data.mappings.blocks.types + +import com.google.gson.JsonObject +import de.bixilon.minosoft.data.entities.entities.Entity +import de.bixilon.minosoft.data.mappings.ResourceLocation +import de.bixilon.minosoft.data.mappings.blocks.BlockState +import de.bixilon.minosoft.data.mappings.versions.Registries +import de.bixilon.minosoft.protocol.network.connection.PlayConnection +import glm_.vec3.Vec3i + +open class BedBlock(resourceLocation: ResourceLocation, registries: Registries, data: JsonObject) : Block(resourceLocation, registries, data) { + + override fun onEntityLand(connection: PlayConnection, entity: Entity, blockPosition: Vec3i, blockState: BlockState) { + super.onEntityLand(connection, entity, blockPosition, blockState) + + if (entity.isSneaking) { + return + } + + bounce(entity) + } + + private fun bounce(entity: Entity) { + if (entity.velocity.y < 0.0) { + entity.velocity.y = -entity.velocity.y * 0.66f + } + } +} + diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/Block.kt b/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/Block.kt index 5b6dd569d..b756fc950 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/Block.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/Block.kt @@ -109,29 +109,32 @@ open class Block( open fun onEntityLand(connection: PlayConnection, entity: Entity, blockPosition: Vec3i, blockState: BlockState) {} companion object : ResourceLocationDeserializer { - override fun deserialize(mappings: Registries?, resourceLocation: ResourceLocation, data: JsonObject): Block { - check(mappings != null) { "Registries is null!" } + private val CONSTRUCTORS: Map Block> = mapOf( + "FluidBlock" to { resourceLocation, registries, data -> FluidBlock(resourceLocation, registries, data) }, + "DoorBlock" to { resourceLocation, registries, data -> DoorBlock(resourceLocation, registries, data) }, + "LeverBlock" to { resourceLocation, registries, data -> LeverBlock(resourceLocation, registries, data) }, + "NoteBlock" to { resourceLocation, registries, data -> NoteBlock(resourceLocation, registries, data) }, + "RepeaterBlock" to { resourceLocation, registries, data -> RepeaterBlock(resourceLocation, registries, data) }, + "ComparatorBlock" to { resourceLocation, registries, data -> ComparatorBlock(resourceLocation, registries, data) }, + "CampfireBlock" to { resourceLocation, registries, data -> CampfireBlock(resourceLocation, registries, data) }, + "TorchBlock" to { resourceLocation, registries, data -> TorchBlock(resourceLocation, registries, data) }, + "SlimeBlock" to { resourceLocation, registries, data -> SlimeBlock(resourceLocation, registries, data) }, + "BedBlock" to { resourceLocation, registries, data -> BedBlock(resourceLocation, registries, data) }, + "BrewingStandBlock" to { resourceLocation, registries, data -> BrewingStandBlock(resourceLocation, registries, data) }, + ) - val block = when (data["class"].asString) { - "FluidBlock" -> FluidBlock(resourceLocation, mappings, data) - "DoorBlock" -> DoorBlock(resourceLocation, mappings, data) - "LeverBlock" -> LeverBlock(resourceLocation, mappings, data) - "NoteBlock" -> NoteBlock(resourceLocation, mappings, data) - "RepeaterBlock" -> RepeaterBlock(resourceLocation, mappings, data) - "ComparatorBlock" -> ComparatorBlock(resourceLocation, mappings, data) - "CampfireBlock" -> CampfireBlock(resourceLocation, mappings, data) - "TorchBlock" -> TorchBlock(resourceLocation, mappings, data) - "SlimeBlock" -> SlimeBlock(resourceLocation, mappings, data) - else -> Block(resourceLocation, mappings, data) - } + override fun deserialize(registries: Registries?, resourceLocation: ResourceLocation, data: JsonObject): Block { + check(registries != null) { "Registries is null!" } + + val block = CONSTRUCTORS[data["class"].asString]?.invoke(resourceLocation, registries, data) ?: Block(resourceLocation, registries, data) val properties: MutableMap> = mutableMapOf() val states: MutableSet = mutableSetOf() for ((stateId, stateJson) in data["states"].asJsonObject.entrySet()) { check(stateJson is JsonObject) { "Not a state element!" } - val state = BlockState.deserialize(block, mappings, stateJson, mappings.models) - mappings.blockStateIdMap[stateId.toInt()] = state + val state = BlockState.deserialize(block, registries, stateJson, registries.models) + registries.blockStateIdMap[stateId.toInt()] = state states.add(state) for ((property, value) in state.properties) { properties.getOrPut(property) { mutableSetOf() } += value @@ -145,7 +148,7 @@ open class Block( } block.states = states.toSet() - block.defaultState = mappings.blockStateIdMap[data["default_state"].asInt]!! + block.defaultState = registries.blockStateIdMap[data["default_state"].asInt]!! block.properties = propertiesOut.toMap() return block } diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/BrewingStandBlock.kt b/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/BrewingStandBlock.kt new file mode 100644 index 000000000..68b28f807 --- /dev/null +++ b/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/BrewingStandBlock.kt @@ -0,0 +1,45 @@ +/* + * Minosoft + * Copyright (C) 2021 Moritz Zwerger + * + * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with this program. If not, see . + * + * This software is not affiliated with Mojang AB, the original developer of Minecraft. + */ + +package de.bixilon.minosoft.data.mappings.blocks.types + +import com.google.gson.JsonObject +import de.bixilon.minosoft.data.mappings.ResourceLocation +import de.bixilon.minosoft.data.mappings.blocks.BlockState +import de.bixilon.minosoft.data.mappings.versions.Registries +import de.bixilon.minosoft.gui.rendering.particle.types.render.texture.simple.fire.SmokeParticle +import de.bixilon.minosoft.gui.rendering.util.VecUtil.EMPTY +import de.bixilon.minosoft.gui.rendering.util.VecUtil.horizontal +import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec3d +import de.bixilon.minosoft.protocol.network.connection.PlayConnection +import glm_.vec3.Vec3d +import glm_.vec3.Vec3i +import kotlin.random.Random + +open class BrewingStandBlock(resourceLocation: ResourceLocation, registries: Registries, data: JsonObject) : Block(resourceLocation, registries, data) { + private val smokeParticle = registries.particleTypeRegistry[SmokeParticle] + + override fun randomTick(connection: PlayConnection, blockState: BlockState, blockPosition: Vec3i, random: Random) { + super.randomTick(connection, blockState, blockPosition, random) + + smokeParticle?.let { + connection.world += SmokeParticle( + connection, + blockPosition.toVec3d + Vec3d(0.4, 0.7, 0.4) + Vec3d.horizontal({ random.nextDouble() * 0.2 }, random.nextDouble() * 0.3), + Vec3d.EMPTY, + it.default(), + ) + } + } +} + diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/DoorBlock.kt b/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/DoorBlock.kt index c9a21f048..3cc7ee278 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/DoorBlock.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/DoorBlock.kt @@ -26,7 +26,7 @@ import de.bixilon.minosoft.gui.rendering.input.camera.RaycastHit import de.bixilon.minosoft.protocol.network.connection.PlayConnection import glm_.vec3.Vec3i -open class DoorBlock(resourceLocation: ResourceLocation, mappings: Registries, data: JsonObject) : DoubleSizeBlock(resourceLocation, mappings, data) { +open class DoorBlock(resourceLocation: ResourceLocation, registries: Registries, data: JsonObject) : DoubleSizeBlock(resourceLocation, registries, data) { override fun getPlacementState(connection: PlayConnection, raycastHit: RaycastHit): BlockState? { TODO() diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/DoubleSizeBlock.kt b/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/DoubleSizeBlock.kt index 7b65f23a6..8f3a23e10 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/DoubleSizeBlock.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/DoubleSizeBlock.kt @@ -25,7 +25,7 @@ import de.bixilon.minosoft.gui.rendering.util.VecUtil.plus import de.bixilon.minosoft.protocol.network.connection.PlayConnection import glm_.vec3.Vec3i -abstract class DoubleSizeBlock(resourceLocation: ResourceLocation, mappings: Registries, data: JsonObject) : Block(resourceLocation, mappings, data) { +abstract class DoubleSizeBlock(resourceLocation: ResourceLocation, registries: Registries, data: JsonObject) : Block(resourceLocation, registries, data) { override fun onBreak(connection: PlayConnection, blockPosition: Vec3i, blockState: BlockState, blockEntity: BlockEntity?) { if (blockState.properties[BlockProperties.STAIR_HALF] == Halves.LOWER) { diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/FluidBlock.kt b/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/FluidBlock.kt index b6d38ad17..98ca2c5f2 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/FluidBlock.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/FluidBlock.kt @@ -20,9 +20,9 @@ import de.bixilon.minosoft.data.mappings.versions.Registries import de.bixilon.minosoft.gui.rendering.chunk.models.renderable.BlockLikeRenderer import de.bixilon.minosoft.gui.rendering.chunk.models.renderable.FluidRenderer -open class FluidBlock(resourceLocation: ResourceLocation, mappings: Registries, data: JsonObject) : Block(resourceLocation, mappings, data) { - open val stillFluid: Fluid = mappings.fluidRegistry[data["still_fluid"].asInt] - open val flowingFluid: Fluid = mappings.fluidRegistry[data["flow_fluid"].asInt] +open class FluidBlock(resourceLocation: ResourceLocation, registries: Registries, data: JsonObject) : Block(resourceLocation, registries, data) { + open val stillFluid: Fluid = registries.fluidRegistry[data["still_fluid"].asInt] + open val flowingFluid: Fluid = registries.fluidRegistry[data["flow_fluid"].asInt] val fluidRenderer: FluidRenderer diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/HorizontalFacingBlock.kt b/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/HorizontalFacingBlock.kt index a94c44925..60e384396 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/HorizontalFacingBlock.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/HorizontalFacingBlock.kt @@ -4,4 +4,4 @@ import com.google.gson.JsonObject import de.bixilon.minosoft.data.mappings.ResourceLocation import de.bixilon.minosoft.data.mappings.versions.Registries -abstract class HorizontalFacingBlock(resourceLocation: ResourceLocation, mappings: Registries, data: JsonObject) :Block(resourceLocation, mappings, data) +abstract class HorizontalFacingBlock(resourceLocation: ResourceLocation, registries: Registries, data: JsonObject) : Block(resourceLocation, registries, data) diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/NoteBlock.kt b/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/NoteBlock.kt index 5c9d77ae1..683764809 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/NoteBlock.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/NoteBlock.kt @@ -24,7 +24,7 @@ import de.bixilon.minosoft.gui.rendering.input.camera.RaycastHit import de.bixilon.minosoft.protocol.network.connection.PlayConnection import glm_.vec3.Vec3i -open class NoteBlock(resourceLocation: ResourceLocation, mappings: Registries, data: JsonObject) : Block(resourceLocation, mappings, data) { +open class NoteBlock(resourceLocation: ResourceLocation, registries: Registries, data: JsonObject) : Block(resourceLocation, registries, data) { override fun onUse(connection: PlayConnection, blockState: BlockState, blockPosition: Vec3i, raycastHit: RaycastHit, hands: Hands, itemStack: ItemStack?): BlockUsages { return BlockUsages.SUCCESS diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/SlimeBlock.kt b/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/SlimeBlock.kt index cc34021e8..3b9567a85 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/SlimeBlock.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/blocks/types/SlimeBlock.kt @@ -21,7 +21,7 @@ import de.bixilon.minosoft.data.mappings.versions.Registries import de.bixilon.minosoft.protocol.network.connection.PlayConnection import glm_.vec3.Vec3i -open class SlimeBlock(resourceLocation: ResourceLocation, mappings: Registries, data: JsonObject) : Block(resourceLocation, mappings, data) { +open class SlimeBlock(resourceLocation: ResourceLocation, registries: Registries, data: JsonObject) : Block(resourceLocation, registries, data) { override fun onEntityLand(connection: PlayConnection, entity: Entity, blockPosition: Vec3i, blockState: BlockState) { super.onEntityLand(connection, entity, blockPosition, blockState) diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/effects/StatusEffect.kt b/src/main/java/de/bixilon/minosoft/data/mappings/effects/StatusEffect.kt index 9082c8728..f6e1c8636 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/effects/StatusEffect.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/effects/StatusEffect.kt @@ -38,7 +38,7 @@ data class StatusEffect( } companion object : ResourceLocationDeserializer { - override fun deserialize(mappings: Registries?, resourceLocation: ResourceLocation, data: JsonObject): StatusEffect { + override fun deserialize(registries: Registries?, resourceLocation: ResourceLocation, data: JsonObject): StatusEffect { val attributes: MutableMap = mutableMapOf() val uuidAttributes: MutableMap = mutableMapOf() diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/enchantment/Enchantment.kt b/src/main/java/de/bixilon/minosoft/data/mappings/enchantment/Enchantment.kt index be10e25dc..6a3859616 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/enchantment/Enchantment.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/enchantment/Enchantment.kt @@ -28,7 +28,7 @@ data class Enchantment( } companion object : ResourceLocationDeserializer { - override fun deserialize(mappings: Registries?, resourceLocation: ResourceLocation, data: JsonObject): Enchantment { + override fun deserialize(registries: Registries?, resourceLocation: ResourceLocation, data: JsonObject): Enchantment { return Enchantment(resourceLocation) } } diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/entities/EntityType.kt b/src/main/java/de/bixilon/minosoft/data/mappings/entities/EntityType.kt index 312da3435..9d4124df2 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/entities/EntityType.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/entities/EntityType.kt @@ -45,13 +45,13 @@ data class EntityType( } companion object : ResourceLocationDeserializer { - override fun deserialize(mappings: Registries?, resourceLocation: ResourceLocation, data: JsonObject): EntityType? { - check(mappings != null) { "Registries is null!" } + override fun deserialize(registries: Registries?, resourceLocation: ResourceLocation, data: JsonObject): EntityType? { + check(registries != null) { "Registries is null!" } data["meta"]?.asJsonObject?.let { for ((minosoftFieldName, index) in it.entrySet()) { val minosoftField = EntityMetaDataFields[minosoftFieldName.lowercase(Locale.getDefault())] - mappings.entityMetaIndexMap[minosoftField] = index.asInt + registries.entityMetaIndexMap[minosoftField] = index.asInt } } if (data["width"] == null) { diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/entities/villagers/VillagerProfession.kt b/src/main/java/de/bixilon/minosoft/data/mappings/entities/villagers/VillagerProfession.kt index 57ca65a52..05ecf076c 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/entities/villagers/VillagerProfession.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/entities/villagers/VillagerProfession.kt @@ -29,7 +29,7 @@ data class VillagerProfession( } companion object : ResourceLocationDeserializer { - override fun deserialize(mappings: Registries?, resourceLocation: ResourceLocation, data: JsonObject): VillagerProfession { + override fun deserialize(registries: Registries?, resourceLocation: ResourceLocation, data: JsonObject): VillagerProfession { return VillagerProfession( resourceLocation = resourceLocation, ) diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/fluid/Fluid.kt b/src/main/java/de/bixilon/minosoft/data/mappings/fluid/Fluid.kt index d68eb33be..e4ebd5f60 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/fluid/Fluid.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/fluid/Fluid.kt @@ -38,12 +38,12 @@ data class Fluid( } companion object : ResourceLocationDeserializer { - override fun deserialize(mappings: Registries?, resourceLocation: ResourceLocation, data: JsonObject): Fluid { - check(mappings != null) { "Registries is null!" } + override fun deserialize(registries: Registries?, resourceLocation: ResourceLocation, data: JsonObject): Fluid { + check(registries != null) { "Registries is null!" } return Fluid( resourceLocation = resourceLocation, bucketItemId = data["bucket"]?.asInt, - dripParticle = data["drip_particle_type"]?.asInt?.let { mappings.particleTypeRegistry[it] }, + dripParticle = data["drip_particle_type"]?.asInt?.let { registries.particleTypeRegistry[it] }, renderTexture = data["render"]?.asJsonObject?.get("texture")?.asString?.let { ResourceLocation(it) }, ) } diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/items/Item.kt b/src/main/java/de/bixilon/minosoft/data/mappings/items/Item.kt index 9949ca319..c6d7aa141 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/items/Item.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/items/Item.kt @@ -58,25 +58,25 @@ open class Item( companion object : ResourceLocationDeserializer { const val INFINITE_MINING_SPEED_MULTIPLIER = -1.0f - override fun deserialize(mappings: Registries?, resourceLocation: ResourceLocation, data: JsonObject): Item { - check(mappings != null) { "Registries is null!" } + override fun deserialize(registries: Registries?, resourceLocation: ResourceLocation, data: JsonObject): Item { + check(registries != null) { "Registries is null!" } return when (data["class"].asString) { - "BlockItem" -> BlockItem(resourceLocation, mappings, data) - "ArmorItem" -> ArmorItem(resourceLocation, mappings, data) - "SwordItem" -> SwordItem(resourceLocation, mappings, data) - "ToolItem" -> ToolItem(resourceLocation, mappings, data) - "AxeItem" -> AxeItem(resourceLocation, mappings, data) - "BucketItem" -> BucketItem(resourceLocation, mappings, data) - "DyeItem" -> DyeItem(resourceLocation, mappings, data) - "HorseArmorItem" -> HorseArmorItem(resourceLocation, mappings, data) - "SpawnEggItem" -> SpawnEggItem(resourceLocation, mappings, data) - "MusicDiscItem" -> MusicDiscItem(resourceLocation, mappings, data) - "ShovelItem" -> ShovelItem(resourceLocation, mappings, data) - "PickaxeItem" -> PickaxeItem(resourceLocation, mappings, data) - "HoeItem" -> HoeItem(resourceLocation, mappings, data) + "BlockItem" -> BlockItem(resourceLocation, registries, data) + "ArmorItem" -> ArmorItem(resourceLocation, registries, data) + "SwordItem" -> SwordItem(resourceLocation, registries, data) + "ToolItem" -> ToolItem(resourceLocation, registries, data) + "AxeItem" -> AxeItem(resourceLocation, registries, data) + "BucketItem" -> BucketItem(resourceLocation, registries, data) + "DyeItem" -> DyeItem(resourceLocation, registries, data) + "HorseArmorItem" -> HorseArmorItem(resourceLocation, registries, data) + "SpawnEggItem" -> SpawnEggItem(resourceLocation, registries, data) + "MusicDiscItem" -> MusicDiscItem(resourceLocation, registries, data) + "ShovelItem" -> ShovelItem(resourceLocation, registries, data) + "PickaxeItem" -> PickaxeItem(resourceLocation, registries, data) + "HoeItem" -> HoeItem(resourceLocation, registries, data) // "Item" -> Item(resourceLocation, data) // else -> TODO("Can not find item class: ${data["class"].asString}") - else -> Item(resourceLocation, mappings, data) + else -> Item(resourceLocation, registries, data) } } } diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/materials/Material.kt b/src/main/java/de/bixilon/minosoft/data/mappings/materials/Material.kt index 06b4e4314..c10d61052 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/materials/Material.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/materials/Material.kt @@ -39,7 +39,7 @@ data class Material( } companion object : ResourceLocationDeserializer { - override fun deserialize(mappings: Registries?, resourceLocation: ResourceLocation, data: JsonObject): Material { + override fun deserialize(registries: Registries?, resourceLocation: ResourceLocation, data: JsonObject): Material { return Material( resourceLocation = resourceLocation, color = TintColorCalculator.getJsonColor(data["color"]?.asInt ?: 0), diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/other/containers/ContainerType.kt b/src/main/java/de/bixilon/minosoft/data/mappings/other/containers/ContainerType.kt index bffc6e0d4..33a20e75a 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/other/containers/ContainerType.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/other/containers/ContainerType.kt @@ -27,7 +27,7 @@ data class ContainerType( } companion object : ResourceLocationDeserializer { - override fun deserialize(mappings: Registries?, resourceLocation: ResourceLocation, data: JsonObject): ContainerType { + override fun deserialize(registries: Registries?, resourceLocation: ResourceLocation, data: JsonObject): ContainerType { return ContainerType( resourceLocation = resourceLocation, ) diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/other/game/event/GameEvent.kt b/src/main/java/de/bixilon/minosoft/data/mappings/other/game/event/GameEvent.kt index 83a62dc96..3bfe9f680 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/other/game/event/GameEvent.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/other/game/event/GameEvent.kt @@ -27,7 +27,7 @@ data class GameEvent( } companion object : ResourceLocationDeserializer { - override fun deserialize(mappings: Registries?, resourceLocation: ResourceLocation, data: JsonObject): GameEvent { + override fun deserialize(registries: Registries?, resourceLocation: ResourceLocation, data: JsonObject): GameEvent { return GameEvent( resourceLocation = resourceLocation, ) diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/particle/ParticleType.kt b/src/main/java/de/bixilon/minosoft/data/mappings/particle/ParticleType.kt index a476945cc..f454b5809 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/particle/ParticleType.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/particle/ParticleType.kt @@ -39,7 +39,7 @@ data class ParticleType( } companion object : ResourceLocationDeserializer { - override fun deserialize(mappings: Registries?, resourceLocation: ResourceLocation, data: JsonObject): ParticleType { + override fun deserialize(registries: Registries?, resourceLocation: ResourceLocation, data: JsonObject): ParticleType { val textures: MutableList = mutableListOf() data["render"]?.asJsonObject?.get("textures")?.asJsonArray?.let { for (texture in it) { diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/registry/ResourceLocationDeserializer.kt b/src/main/java/de/bixilon/minosoft/data/mappings/registry/ResourceLocationDeserializer.kt index adfb10ffa..9294596bd 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/registry/ResourceLocationDeserializer.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/registry/ResourceLocationDeserializer.kt @@ -18,5 +18,5 @@ import de.bixilon.minosoft.data.mappings.ResourceLocation import de.bixilon.minosoft.data.mappings.versions.Registries interface ResourceLocationDeserializer { - fun deserialize(mappings: Registries?, resourceLocation: ResourceLocation, data: JsonObject): T? + fun deserialize(registries: Registries?, resourceLocation: ResourceLocation, data: JsonObject): T? } diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/sounds/SoundEvent.kt b/src/main/java/de/bixilon/minosoft/data/mappings/sounds/SoundEvent.kt index f6473503b..cd437ad62 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/sounds/SoundEvent.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/sounds/SoundEvent.kt @@ -23,7 +23,7 @@ data class SoundEvent( ) : RegistryItem { companion object : ResourceLocationDeserializer { - override fun deserialize(mappings: Registries?, resourceLocation: ResourceLocation, data: JsonObject): SoundEvent { + override fun deserialize(registries: Registries?, resourceLocation: ResourceLocation, data: JsonObject): SoundEvent { return SoundEvent( resourceLocation = resourceLocation, )