diff --git a/src/main/java/de/bixilon/minosoft/data/assets/AssetsManager.kt b/src/main/java/de/bixilon/minosoft/data/assets/AssetsManager.kt
index cbc5aa31f..b5023122d 100644
--- a/src/main/java/de/bixilon/minosoft/data/assets/AssetsManager.kt
+++ b/src/main/java/de/bixilon/minosoft/data/assets/AssetsManager.kt
@@ -58,7 +58,7 @@ interface AssetsManager {
return Util.readReader(readAssetAsReader(resourceLocation), true)
}
- fun readAGBArrayAsset(resourceLocation: ResourceLocation): IntArray {
+ fun readRGBArrayAsset(resourceLocation: ResourceLocation): IntArray {
val decoder = PNGDecoder(readAssetAsStream(resourceLocation))
val buffer = BufferUtils.createByteBuffer(decoder.width * decoder.height * PNGDecoder.Format.RGB.numComponents)
diff --git a/src/main/java/de/bixilon/minosoft/data/player/LocalPlayerEntity.kt b/src/main/java/de/bixilon/minosoft/data/player/LocalPlayerEntity.kt
index 6ee8c52c1..5e05b0804 100644
--- a/src/main/java/de/bixilon/minosoft/data/player/LocalPlayerEntity.kt
+++ b/src/main/java/de/bixilon/minosoft/data/player/LocalPlayerEntity.kt
@@ -25,7 +25,7 @@ import de.bixilon.minosoft.data.inventory.InventorySlots
import de.bixilon.minosoft.data.inventory.ItemStack
import de.bixilon.minosoft.data.physics.PhysicsConstants
import de.bixilon.minosoft.data.registries.AABB
-import de.bixilon.minosoft.data.registries.blocks.DefaultBlocks
+import de.bixilon.minosoft.data.registries.blocks.MinecraftBlocks
import de.bixilon.minosoft.data.registries.blocks.types.Block
import de.bixilon.minosoft.data.registries.effects.DefaultStatusEffects
import de.bixilon.minosoft.data.registries.effects.attributes.DefaultStatusEffectAttributeNames
@@ -185,7 +185,7 @@ class LocalPlayerEntity(
val blockStateBelow = connection.world[positionInfo.blockPosition] ?: return 1.0
- if (blockStateBelow.block.resourceLocation == DefaultBlocks.WATER || blockStateBelow.block.resourceLocation == DefaultBlocks.BUBBLE_COLUMN) {
+ if (blockStateBelow.block.resourceLocation == MinecraftBlocks.WATER || blockStateBelow.block.resourceLocation == MinecraftBlocks.BUBBLE_COLUMN) {
if (blockStateBelow.block.velocityMultiplier == 1.0) {
return connection.world[positionInfo.blockPosition]?.block?.velocityMultiplier ?: 1.0
}
@@ -308,7 +308,7 @@ class LocalPlayerEntity(
y = max(velocity.y, -CLIMBING_CLAMP_VALUE),
z = MMath.clamp(velocity.z, -CLIMBING_CLAMP_VALUE, CLIMBING_CLAMP_VALUE)
)
- if (returnVelocity.y < 0.0 && connection.world[positionInfo.blockPosition]?.block?.resourceLocation != DefaultBlocks.SCAFFOLDING && isSneaking) {
+ if (returnVelocity.y < 0.0 && connection.world[positionInfo.blockPosition]?.block?.resourceLocation != MinecraftBlocks.SCAFFOLDING && isSneaking) {
returnVelocity.y = 0.0
}
return returnVelocity
@@ -334,7 +334,7 @@ class LocalPlayerEntity(
}
private fun adjustVelocityForClimbing(velocity: Vec3d): Vec3d {
- if ((this.horizontalCollision || isJumping) && (isClimbing || connection.world[positionInfo.blockPosition]?.block == DefaultBlocks.POWDER_SNOW && equipment[InventorySlots.EquipmentSlots.FEET]?.item?.resourceLocation == DefaultItems.LEATHER_BOOTS)) {
+ if ((this.horizontalCollision || isJumping) && (isClimbing || connection.world[positionInfo.blockPosition]?.block == MinecraftBlocks.POWDER_SNOW && equipment[InventorySlots.EquipmentSlots.FEET]?.item?.resourceLocation == DefaultItems.LEATHER_BOOTS)) {
return Vec3d(velocity.x, 0.2, velocity.z)
}
return velocity
diff --git a/src/main/java/de/bixilon/minosoft/data/registries/blocks/DefaultBlocks.kt b/src/main/java/de/bixilon/minosoft/data/registries/blocks/DefaultBlocks.kt
deleted file mode 100644
index 94dc9812c..000000000
--- a/src/main/java/de/bixilon/minosoft/data/registries/blocks/DefaultBlocks.kt
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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.registries.blocks
-
-import de.bixilon.minosoft.util.KUtil.toResourceLocation
-
-object DefaultBlocks {
- val SCAFFOLDING = "minecraft:scaffolding".toResourceLocation()
- val LADDER = "minecraft:ladder".toResourceLocation()
- val VINE = "minecraft:vine".toResourceLocation()
- val WEEPING_VINES = "minecraft:weeping_vines".toResourceLocation()
- val WEEPING_VINES_PLANT = "minecraft:weeping_vines_plant".toResourceLocation()
- val TWISTING_VINES = "minecraft:twisting_vines".toResourceLocation()
- val TWISTING_VINES_PLANT = "minecraft:twisting_vines_plant".toResourceLocation()
- val CAVE_VINES = "minecraft:cave_vines".toResourceLocation()
- val CAVE_VINES_PLANT = "minecraft:cave_vines_plant".toResourceLocation()
-
- val POWDER_SNOW = "minecraft:powder_snow".toResourceLocation()
- val GRASS_BLOCK = "minecraft:grass_block".toResourceLocation()
- val MOVING_PISTON = "minecraft:moving_piston".toResourceLocation()
- val COBWEB = "minecraft:cobweb".toResourceLocation()
-
- val WATER = "minecraft:water".toResourceLocation()
- val BUBBLE_COLUMN = "minecraft:bubble_column".toResourceLocation()
-}
diff --git a/src/main/java/de/bixilon/minosoft/data/registries/blocks/MinecraftBlocks.kt b/src/main/java/de/bixilon/minosoft/data/registries/blocks/MinecraftBlocks.kt
new file mode 100644
index 000000000..0cb76366a
--- /dev/null
+++ b/src/main/java/de/bixilon/minosoft/data/registries/blocks/MinecraftBlocks.kt
@@ -0,0 +1,917 @@
+/*
+ * 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.registries.blocks
+
+import de.bixilon.minosoft.util.KUtil.toResourceLocation
+
+object MinecraftBlocks {
+ // taken from 1.17.1
+ val STONE = "minecraft:stone".toResourceLocation()
+ val GRANITE = "minecraft:granite".toResourceLocation()
+ val POLISHED_GRANITE = "minecraft:polished_granite".toResourceLocation()
+ val DIORITE = "minecraft:diorite".toResourceLocation()
+ val POLISHED_DIORITE = "minecraft:polished_diorite".toResourceLocation()
+ val ANDESITE = "minecraft:andesite".toResourceLocation()
+ val POLISHED_ANDESITE = "minecraft:polished_andesite".toResourceLocation()
+ val GRASS_BLOCK = "minecraft:grass_block".toResourceLocation()
+ val DIRT = "minecraft:dirt".toResourceLocation()
+ val COARSE_DIRT = "minecraft:coarse_dirt".toResourceLocation()
+ val PODZOL = "minecraft:podzol".toResourceLocation()
+ val COBBLESTONE = "minecraft:cobblestone".toResourceLocation()
+ val OAK_PLANKS = "minecraft:oak_planks".toResourceLocation()
+ val SPRUCE_PLANKS = "minecraft:spruce_planks".toResourceLocation()
+ val BIRCH_PLANKS = "minecraft:birch_planks".toResourceLocation()
+ val JUNGLE_PLANKS = "minecraft:jungle_planks".toResourceLocation()
+ val ACACIA_PLANKS = "minecraft:acacia_planks".toResourceLocation()
+ val DARK_OAK_PLANKS = "minecraft:dark_oak_planks".toResourceLocation()
+ val OAK_SAPLING = "minecraft:oak_sapling".toResourceLocation()
+ val SPRUCE_SAPLING = "minecraft:spruce_sapling".toResourceLocation()
+ val BIRCH_SAPLING = "minecraft:birch_sapling".toResourceLocation()
+ val JUNGLE_SAPLING = "minecraft:jungle_sapling".toResourceLocation()
+ val ACACIA_SAPLING = "minecraft:acacia_sapling".toResourceLocation()
+ val DARK_OAK_SAPLING = "minecraft:dark_oak_sapling".toResourceLocation()
+ val BEDROCK = "minecraft:bedrock".toResourceLocation()
+ val WATER = "minecraft:water".toResourceLocation()
+ val LAVA = "minecraft:lava".toResourceLocation()
+ val SAND = "minecraft:sand".toResourceLocation()
+ val RED_SAND = "minecraft:red_sand".toResourceLocation()
+ val GRAVEL = "minecraft:gravel".toResourceLocation()
+ val GOLD_ORE = "minecraft:gold_ore".toResourceLocation()
+ val DEEPSLATE_GOLD_ORE = "minecraft:deepslate_gold_ore".toResourceLocation()
+ val IRON_ORE = "minecraft:iron_ore".toResourceLocation()
+ val DEEPSLATE_IRON_ORE = "minecraft:deepslate_iron_ore".toResourceLocation()
+ val COAL_ORE = "minecraft:coal_ore".toResourceLocation()
+ val DEEPSLATE_COAL_ORE = "minecraft:deepslate_coal_ore".toResourceLocation()
+ val NETHER_GOLD_ORE = "minecraft:nether_gold_ore".toResourceLocation()
+ val OAK_LOG = "minecraft:oak_log".toResourceLocation()
+ val SPRUCE_LOG = "minecraft:spruce_log".toResourceLocation()
+ val BIRCH_LOG = "minecraft:birch_log".toResourceLocation()
+ val JUNGLE_LOG = "minecraft:jungle_log".toResourceLocation()
+ val ACACIA_LOG = "minecraft:acacia_log".toResourceLocation()
+ val DARK_OAK_LOG = "minecraft:dark_oak_log".toResourceLocation()
+ val STRIPPED_SPRUCE_LOG = "minecraft:stripped_spruce_log".toResourceLocation()
+ val STRIPPED_BIRCH_LOG = "minecraft:stripped_birch_log".toResourceLocation()
+ val STRIPPED_JUNGLE_LOG = "minecraft:stripped_jungle_log".toResourceLocation()
+ val STRIPPED_ACACIA_LOG = "minecraft:stripped_acacia_log".toResourceLocation()
+ val STRIPPED_DARK_OAK_LOG = "minecraft:stripped_dark_oak_log".toResourceLocation()
+ val STRIPPED_OAK_LOG = "minecraft:stripped_oak_log".toResourceLocation()
+ val OAK_WOOD = "minecraft:oak_wood".toResourceLocation()
+ val SPRUCE_WOOD = "minecraft:spruce_wood".toResourceLocation()
+ val BIRCH_WOOD = "minecraft:birch_wood".toResourceLocation()
+ val JUNGLE_WOOD = "minecraft:jungle_wood".toResourceLocation()
+ val ACACIA_WOOD = "minecraft:acacia_wood".toResourceLocation()
+ val DARK_OAK_WOOD = "minecraft:dark_oak_wood".toResourceLocation()
+ val STRIPPED_OAK_WOOD = "minecraft:stripped_oak_wood".toResourceLocation()
+ val STRIPPED_SPRUCE_WOOD = "minecraft:stripped_spruce_wood".toResourceLocation()
+ val STRIPPED_BIRCH_WOOD = "minecraft:stripped_birch_wood".toResourceLocation()
+ val STRIPPED_JUNGLE_WOOD = "minecraft:stripped_jungle_wood".toResourceLocation()
+ val STRIPPED_ACACIA_WOOD = "minecraft:stripped_acacia_wood".toResourceLocation()
+ val STRIPPED_DARK_OAK_WOOD = "minecraft:stripped_dark_oak_wood".toResourceLocation()
+ val OAK_LEAVES = "minecraft:oak_leaves".toResourceLocation()
+ val SPRUCE_LEAVES = "minecraft:spruce_leaves".toResourceLocation()
+ val BIRCH_LEAVES = "minecraft:birch_leaves".toResourceLocation()
+ val JUNGLE_LEAVES = "minecraft:jungle_leaves".toResourceLocation()
+ val ACACIA_LEAVES = "minecraft:acacia_leaves".toResourceLocation()
+ val DARK_OAK_LEAVES = "minecraft:dark_oak_leaves".toResourceLocation()
+ val AZALEA_LEAVES = "minecraft:azalea_leaves".toResourceLocation()
+ val FLOWERING_AZALEA_LEAVES = "minecraft:flowering_azalea_leaves".toResourceLocation()
+ val SPONGE = "minecraft:sponge".toResourceLocation()
+ val WET_SPONGE = "minecraft:wet_sponge".toResourceLocation()
+ val GLASS = "minecraft:glass".toResourceLocation()
+ val LAPIS_ORE = "minecraft:lapis_ore".toResourceLocation()
+ val DEEPSLATE_LAPIS_ORE = "minecraft:deepslate_lapis_ore".toResourceLocation()
+ val LAPIS_BLOCK = "minecraft:lapis_block".toResourceLocation()
+ val DISPENSER = "minecraft:dispenser".toResourceLocation()
+ val SANDSTONE = "minecraft:sandstone".toResourceLocation()
+ val CHISELED_SANDSTONE = "minecraft:chiseled_sandstone".toResourceLocation()
+ val CUT_SANDSTONE = "minecraft:cut_sandstone".toResourceLocation()
+ val NOTE_BLOCK = "minecraft:note_block".toResourceLocation()
+ val WHITE_BED = "minecraft:white_bed".toResourceLocation()
+ val ORANGE_BED = "minecraft:orange_bed".toResourceLocation()
+ val MAGENTA_BED = "minecraft:magenta_bed".toResourceLocation()
+ val LIGHT_BLUE_BED = "minecraft:light_blue_bed".toResourceLocation()
+ val YELLOW_BED = "minecraft:yellow_bed".toResourceLocation()
+ val LIME_BED = "minecraft:lime_bed".toResourceLocation()
+ val PINK_BED = "minecraft:pink_bed".toResourceLocation()
+ val GRAY_BED = "minecraft:gray_bed".toResourceLocation()
+ val LIGHT_GRAY_BED = "minecraft:light_gray_bed".toResourceLocation()
+ val CYAN_BED = "minecraft:cyan_bed".toResourceLocation()
+ val PURPLE_BED = "minecraft:purple_bed".toResourceLocation()
+ val BLUE_BED = "minecraft:blue_bed".toResourceLocation()
+ val BROWN_BED = "minecraft:brown_bed".toResourceLocation()
+ val GREEN_BED = "minecraft:green_bed".toResourceLocation()
+ val RED_BED = "minecraft:red_bed".toResourceLocation()
+ val BLACK_BED = "minecraft:black_bed".toResourceLocation()
+ val POWERED_RAIL = "minecraft:powered_rail".toResourceLocation()
+ val DETECTOR_RAIL = "minecraft:detector_rail".toResourceLocation()
+ val STICKY_PISTON = "minecraft:sticky_piston".toResourceLocation()
+ val COBWEB = "minecraft:cobweb".toResourceLocation()
+ val GRASS = "minecraft:grass".toResourceLocation()
+ val FERN = "minecraft:fern".toResourceLocation()
+ val DEAD_BUSH = "minecraft:dead_bush".toResourceLocation()
+ val SEAGRASS = "minecraft:seagrass".toResourceLocation()
+ val TALL_SEAGRASS = "minecraft:tall_seagrass".toResourceLocation()
+ val PISTON = "minecraft:piston".toResourceLocation()
+ val PISTON_HEAD = "minecraft:piston_head".toResourceLocation()
+ val WHITE_WOOL = "minecraft:white_wool".toResourceLocation()
+ val ORANGE_WOOL = "minecraft:orange_wool".toResourceLocation()
+ val MAGENTA_WOOL = "minecraft:magenta_wool".toResourceLocation()
+ val LIGHT_BLUE_WOOL = "minecraft:light_blue_wool".toResourceLocation()
+ val YELLOW_WOOL = "minecraft:yellow_wool".toResourceLocation()
+ val LIME_WOOL = "minecraft:lime_wool".toResourceLocation()
+ val PINK_WOOL = "minecraft:pink_wool".toResourceLocation()
+ val GRAY_WOOL = "minecraft:gray_wool".toResourceLocation()
+ val LIGHT_GRAY_WOOL = "minecraft:light_gray_wool".toResourceLocation()
+ val CYAN_WOOL = "minecraft:cyan_wool".toResourceLocation()
+ val PURPLE_WOOL = "minecraft:purple_wool".toResourceLocation()
+ val BLUE_WOOL = "minecraft:blue_wool".toResourceLocation()
+ val BROWN_WOOL = "minecraft:brown_wool".toResourceLocation()
+ val GREEN_WOOL = "minecraft:green_wool".toResourceLocation()
+ val RED_WOOL = "minecraft:red_wool".toResourceLocation()
+ val BLACK_WOOL = "minecraft:black_wool".toResourceLocation()
+ val MOVING_PISTON = "minecraft:moving_piston".toResourceLocation()
+ val DANDELION = "minecraft:dandelion".toResourceLocation()
+ val POPPY = "minecraft:poppy".toResourceLocation()
+ val BLUE_ORCHID = "minecraft:blue_orchid".toResourceLocation()
+ val ALLIUM = "minecraft:allium".toResourceLocation()
+ val AZURE_BLUET = "minecraft:azure_bluet".toResourceLocation()
+ val RED_TULIP = "minecraft:red_tulip".toResourceLocation()
+ val ORANGE_TULIP = "minecraft:orange_tulip".toResourceLocation()
+ val WHITE_TULIP = "minecraft:white_tulip".toResourceLocation()
+ val PINK_TULIP = "minecraft:pink_tulip".toResourceLocation()
+ val OXEYE_DAISY = "minecraft:oxeye_daisy".toResourceLocation()
+ val CORNFLOWER = "minecraft:cornflower".toResourceLocation()
+ val WITHER_ROSE = "minecraft:wither_rose".toResourceLocation()
+ val LILY_OF_THE_VALLEY = "minecraft:lily_of_the_valley".toResourceLocation()
+ val BROWN_MUSHROOM = "minecraft:brown_mushroom".toResourceLocation()
+ val RED_MUSHROOM = "minecraft:red_mushroom".toResourceLocation()
+ val GOLD_BLOCK = "minecraft:gold_block".toResourceLocation()
+ val IRON_BLOCK = "minecraft:iron_block".toResourceLocation()
+ val BRICKS = "minecraft:bricks".toResourceLocation()
+ val TNT = "minecraft:tnt".toResourceLocation()
+ val BOOKSHELF = "minecraft:bookshelf".toResourceLocation()
+ val MOSSY_COBBLESTONE = "minecraft:mossy_cobblestone".toResourceLocation()
+ val OBSIDIAN = "minecraft:obsidian".toResourceLocation()
+ val TORCH = "minecraft:torch".toResourceLocation()
+ val WALL_TORCH = "minecraft:wall_torch".toResourceLocation()
+ val FIRE = "minecraft:fire".toResourceLocation()
+ val SOUL_FIRE = "minecraft:soul_fire".toResourceLocation()
+ val SPAWNER = "minecraft:spawner".toResourceLocation()
+ val OAK_STAIRS = "minecraft:oak_stairs".toResourceLocation()
+ val CHEST = "minecraft:chest".toResourceLocation()
+ val REDSTONE_WIRE = "minecraft:redstone_wire".toResourceLocation()
+ val DIAMOND_ORE = "minecraft:diamond_ore".toResourceLocation()
+ val DEEPSLATE_DIAMOND_ORE = "minecraft:deepslate_diamond_ore".toResourceLocation()
+ val DIAMOND_BLOCK = "minecraft:diamond_block".toResourceLocation()
+ val CRAFTING_TABLE = "minecraft:crafting_table".toResourceLocation()
+ val WHEAT = "minecraft:wheat".toResourceLocation()
+ val FARMLAND = "minecraft:farmland".toResourceLocation()
+ val FURNACE = "minecraft:furnace".toResourceLocation()
+ val OAK_SIGN = "minecraft:oak_sign".toResourceLocation()
+ val SPRUCE_SIGN = "minecraft:spruce_sign".toResourceLocation()
+ val BIRCH_SIGN = "minecraft:birch_sign".toResourceLocation()
+ val ACACIA_SIGN = "minecraft:acacia_sign".toResourceLocation()
+ val JUNGLE_SIGN = "minecraft:jungle_sign".toResourceLocation()
+ val DARK_OAK_SIGN = "minecraft:dark_oak_sign".toResourceLocation()
+ val OAK_DOOR = "minecraft:oak_door".toResourceLocation()
+ val LADDER = "minecraft:ladder".toResourceLocation()
+ val RAIL = "minecraft:rail".toResourceLocation()
+ val COBBLESTONE_STAIRS = "minecraft:cobblestone_stairs".toResourceLocation()
+ val OAK_WALL_SIGN = "minecraft:oak_wall_sign".toResourceLocation()
+ val SPRUCE_WALL_SIGN = "minecraft:spruce_wall_sign".toResourceLocation()
+ val BIRCH_WALL_SIGN = "minecraft:birch_wall_sign".toResourceLocation()
+ val ACACIA_WALL_SIGN = "minecraft:acacia_wall_sign".toResourceLocation()
+ val JUNGLE_WALL_SIGN = "minecraft:jungle_wall_sign".toResourceLocation()
+ val DARK_OAK_WALL_SIGN = "minecraft:dark_oak_wall_sign".toResourceLocation()
+ val LEVER = "minecraft:lever".toResourceLocation()
+ val STONE_PRESSURE_PLATE = "minecraft:stone_pressure_plate".toResourceLocation()
+ val IRON_DOOR = "minecraft:iron_door".toResourceLocation()
+ val OAK_PRESSURE_PLATE = "minecraft:oak_pressure_plate".toResourceLocation()
+ val SPRUCE_PRESSURE_PLATE = "minecraft:spruce_pressure_plate".toResourceLocation()
+ val BIRCH_PRESSURE_PLATE = "minecraft:birch_pressure_plate".toResourceLocation()
+ val JUNGLE_PRESSURE_PLATE = "minecraft:jungle_pressure_plate".toResourceLocation()
+ val ACACIA_PRESSURE_PLATE = "minecraft:acacia_pressure_plate".toResourceLocation()
+ val DARK_OAK_PRESSURE_PLATE = "minecraft:dark_oak_pressure_plate".toResourceLocation()
+ val REDSTONE_ORE = "minecraft:redstone_ore".toResourceLocation()
+ val DEEPSLATE_REDSTONE_ORE = "minecraft:deepslate_redstone_ore".toResourceLocation()
+ val REDSTONE_TORCH = "minecraft:redstone_torch".toResourceLocation()
+ val REDSTONE_WALL_TORCH = "minecraft:redstone_wall_torch".toResourceLocation()
+ val STONE_BUTTON = "minecraft:stone_button".toResourceLocation()
+ val SNOW = "minecraft:snow".toResourceLocation()
+ val ICE = "minecraft:ice".toResourceLocation()
+ val SNOW_BLOCK = "minecraft:snow_block".toResourceLocation()
+ val CACTUS = "minecraft:cactus".toResourceLocation()
+ val CLAY = "minecraft:clay".toResourceLocation()
+ val SUGAR_CANE = "minecraft:sugar_cane".toResourceLocation()
+ val JUKEBOX = "minecraft:jukebox".toResourceLocation()
+ val OAK_FENCE = "minecraft:oak_fence".toResourceLocation()
+ val PUMPKIN = "minecraft:pumpkin".toResourceLocation()
+ val NETHERRACK = "minecraft:netherrack".toResourceLocation()
+ val SOUL_SAND = "minecraft:soul_sand".toResourceLocation()
+ val SOUL_SOIL = "minecraft:soul_soil".toResourceLocation()
+ val BASALT = "minecraft:basalt".toResourceLocation()
+ val POLISHED_BASALT = "minecraft:polished_basalt".toResourceLocation()
+ val SOUL_TORCH = "minecraft:soul_torch".toResourceLocation()
+ val SOUL_WALL_TORCH = "minecraft:soul_wall_torch".toResourceLocation()
+ val GLOWSTONE = "minecraft:glowstone".toResourceLocation()
+ val NETHER_PORTAL = "minecraft:nether_portal".toResourceLocation()
+ val CARVED_PUMPKIN = "minecraft:carved_pumpkin".toResourceLocation()
+ val JACK_O_LANTERN = "minecraft:jack_o_lantern".toResourceLocation()
+ val CAKE = "minecraft:cake".toResourceLocation()
+ val REPEATER = "minecraft:repeater".toResourceLocation()
+ val WHITE_STAINED_GLASS = "minecraft:white_stained_glass".toResourceLocation()
+ val ORANGE_STAINED_GLASS = "minecraft:orange_stained_glass".toResourceLocation()
+ val MAGENTA_STAINED_GLASS = "minecraft:magenta_stained_glass".toResourceLocation()
+ val LIGHT_BLUE_STAINED_GLASS = "minecraft:light_blue_stained_glass".toResourceLocation()
+ val YELLOW_STAINED_GLASS = "minecraft:yellow_stained_glass".toResourceLocation()
+ val LIME_STAINED_GLASS = "minecraft:lime_stained_glass".toResourceLocation()
+ val PINK_STAINED_GLASS = "minecraft:pink_stained_glass".toResourceLocation()
+ val GRAY_STAINED_GLASS = "minecraft:gray_stained_glass".toResourceLocation()
+ val LIGHT_GRAY_STAINED_GLASS = "minecraft:light_gray_stained_glass".toResourceLocation()
+ val CYAN_STAINED_GLASS = "minecraft:cyan_stained_glass".toResourceLocation()
+ val PURPLE_STAINED_GLASS = "minecraft:purple_stained_glass".toResourceLocation()
+ val BLUE_STAINED_GLASS = "minecraft:blue_stained_glass".toResourceLocation()
+ val BROWN_STAINED_GLASS = "minecraft:brown_stained_glass".toResourceLocation()
+ val GREEN_STAINED_GLASS = "minecraft:green_stained_glass".toResourceLocation()
+ val RED_STAINED_GLASS = "minecraft:red_stained_glass".toResourceLocation()
+ val BLACK_STAINED_GLASS = "minecraft:black_stained_glass".toResourceLocation()
+ val OAK_TRAPDOOR = "minecraft:oak_trapdoor".toResourceLocation()
+ val SPRUCE_TRAPDOOR = "minecraft:spruce_trapdoor".toResourceLocation()
+ val BIRCH_TRAPDOOR = "minecraft:birch_trapdoor".toResourceLocation()
+ val JUNGLE_TRAPDOOR = "minecraft:jungle_trapdoor".toResourceLocation()
+ val ACACIA_TRAPDOOR = "minecraft:acacia_trapdoor".toResourceLocation()
+ val DARK_OAK_TRAPDOOR = "minecraft:dark_oak_trapdoor".toResourceLocation()
+ val STONE_BRICKS = "minecraft:stone_bricks".toResourceLocation()
+ val MOSSY_STONE_BRICKS = "minecraft:mossy_stone_bricks".toResourceLocation()
+ val CRACKED_STONE_BRICKS = "minecraft:cracked_stone_bricks".toResourceLocation()
+ val CHISELED_STONE_BRICKS = "minecraft:chiseled_stone_bricks".toResourceLocation()
+ val INFESTED_STONE = "minecraft:infested_stone".toResourceLocation()
+ val INFESTED_COBBLESTONE = "minecraft:infested_cobblestone".toResourceLocation()
+ val INFESTED_STONE_BRICKS = "minecraft:infested_stone_bricks".toResourceLocation()
+ val INFESTED_MOSSY_STONE_BRICKS = "minecraft:infested_mossy_stone_bricks".toResourceLocation()
+ val INFESTED_CRACKED_STONE_BRICKS = "minecraft:infested_cracked_stone_bricks".toResourceLocation()
+ val INFESTED_CHISELED_STONE_BRICKS = "minecraft:infested_chiseled_stone_bricks".toResourceLocation()
+ val BROWN_MUSHROOM_BLOCK = "minecraft:brown_mushroom_block".toResourceLocation()
+ val RED_MUSHROOM_BLOCK = "minecraft:red_mushroom_block".toResourceLocation()
+ val MUSHROOM_STEM = "minecraft:mushroom_stem".toResourceLocation()
+ val IRON_BARS = "minecraft:iron_bars".toResourceLocation()
+ val CHAIN = "minecraft:chain".toResourceLocation()
+ val GLASS_PANE = "minecraft:glass_pane".toResourceLocation()
+ val MELON = "minecraft:melon".toResourceLocation()
+ val ATTACHED_PUMPKIN_STEM = "minecraft:attached_pumpkin_stem".toResourceLocation()
+ val ATTACHED_MELON_STEM = "minecraft:attached_melon_stem".toResourceLocation()
+ val PUMPKIN_STEM = "minecraft:pumpkin_stem".toResourceLocation()
+ val MELON_STEM = "minecraft:melon_stem".toResourceLocation()
+ val VINE = "minecraft:vine".toResourceLocation()
+ val GLOW_LICHEN = "minecraft:glow_lichen".toResourceLocation()
+ val OAK_FENCE_GATE = "minecraft:oak_fence_gate".toResourceLocation()
+ val BRICK_STAIRS = "minecraft:brick_stairs".toResourceLocation()
+ val STONE_BRICK_STAIRS = "minecraft:stone_brick_stairs".toResourceLocation()
+ val MYCELIUM = "minecraft:mycelium".toResourceLocation()
+ val LILY_PAD = "minecraft:lily_pad".toResourceLocation()
+ val NETHER_BRICKS = "minecraft:nether_bricks".toResourceLocation()
+ val NETHER_BRICK_FENCE = "minecraft:nether_brick_fence".toResourceLocation()
+ val NETHER_BRICK_STAIRS = "minecraft:nether_brick_stairs".toResourceLocation()
+ val NETHER_WART = "minecraft:nether_wart".toResourceLocation()
+ val ENCHANTING_TABLE = "minecraft:enchanting_table".toResourceLocation()
+ val BREWING_STAND = "minecraft:brewing_stand".toResourceLocation()
+ val CAULDRON = "minecraft:cauldron".toResourceLocation()
+ val WATER_CAULDRON = "minecraft:water_cauldron".toResourceLocation()
+ val LAVA_CAULDRON = "minecraft:lava_cauldron".toResourceLocation()
+ val POWDER_SNOW_CAULDRON = "minecraft:powder_snow_cauldron".toResourceLocation()
+ val END_PORTAL = "minecraft:end_portal".toResourceLocation()
+ val END_PORTAL_FRAME = "minecraft:end_portal_frame".toResourceLocation()
+ val END_STONE = "minecraft:end_stone".toResourceLocation()
+ val DRAGON_EGG = "minecraft:dragon_egg".toResourceLocation()
+ val REDSTONE_LAMP = "minecraft:redstone_lamp".toResourceLocation()
+ val COCOA = "minecraft:cocoa".toResourceLocation()
+ val SANDSTONE_STAIRS = "minecraft:sandstone_stairs".toResourceLocation()
+ val EMERALD_ORE = "minecraft:emerald_ore".toResourceLocation()
+ val DEEPSLATE_EMERALD_ORE = "minecraft:deepslate_emerald_ore".toResourceLocation()
+ val ENDER_CHEST = "minecraft:ender_chest".toResourceLocation()
+ val TRIPWIRE_HOOK = "minecraft:tripwire_hook".toResourceLocation()
+ val TRIPWIRE = "minecraft:tripwire".toResourceLocation()
+ val EMERALD_BLOCK = "minecraft:emerald_block".toResourceLocation()
+ val SPRUCE_STAIRS = "minecraft:spruce_stairs".toResourceLocation()
+ val BIRCH_STAIRS = "minecraft:birch_stairs".toResourceLocation()
+ val JUNGLE_STAIRS = "minecraft:jungle_stairs".toResourceLocation()
+ val COMMAND_BLOCK = "minecraft:command_block".toResourceLocation()
+ val BEACON = "minecraft:beacon".toResourceLocation()
+ val COBBLESTONE_WALL = "minecraft:cobblestone_wall".toResourceLocation()
+ val MOSSY_COBBLESTONE_WALL = "minecraft:mossy_cobblestone_wall".toResourceLocation()
+ val FLOWER_POT = "minecraft:flower_pot".toResourceLocation()
+ val POTTED_OAK_SAPLING = "minecraft:potted_oak_sapling".toResourceLocation()
+ val POTTED_SPRUCE_SAPLING = "minecraft:potted_spruce_sapling".toResourceLocation()
+ val POTTED_BIRCH_SAPLING = "minecraft:potted_birch_sapling".toResourceLocation()
+ val POTTED_JUNGLE_SAPLING = "minecraft:potted_jungle_sapling".toResourceLocation()
+ val POTTED_ACACIA_SAPLING = "minecraft:potted_acacia_sapling".toResourceLocation()
+ val POTTED_DARK_OAK_SAPLING = "minecraft:potted_dark_oak_sapling".toResourceLocation()
+ val POTTED_FERN = "minecraft:potted_fern".toResourceLocation()
+ val POTTED_DANDELION = "minecraft:potted_dandelion".toResourceLocation()
+ val POTTED_POPPY = "minecraft:potted_poppy".toResourceLocation()
+ val POTTED_BLUE_ORCHID = "minecraft:potted_blue_orchid".toResourceLocation()
+ val POTTED_ALLIUM = "minecraft:potted_allium".toResourceLocation()
+ val POTTED_AZURE_BLUET = "minecraft:potted_azure_bluet".toResourceLocation()
+ val POTTED_RED_TULIP = "minecraft:potted_red_tulip".toResourceLocation()
+ val POTTED_ORANGE_TULIP = "minecraft:potted_orange_tulip".toResourceLocation()
+ val POTTED_WHITE_TULIP = "minecraft:potted_white_tulip".toResourceLocation()
+ val POTTED_PINK_TULIP = "minecraft:potted_pink_tulip".toResourceLocation()
+ val POTTED_OXEYE_DAISY = "minecraft:potted_oxeye_daisy".toResourceLocation()
+ val POTTED_CORNFLOWER = "minecraft:potted_cornflower".toResourceLocation()
+ val POTTED_LILY_OF_THE_VALLEY = "minecraft:potted_lily_of_the_valley".toResourceLocation()
+ val POTTED_WITHER_ROSE = "minecraft:potted_wither_rose".toResourceLocation()
+ val POTTED_RED_MUSHROOM = "minecraft:potted_red_mushroom".toResourceLocation()
+ val POTTED_BROWN_MUSHROOM = "minecraft:potted_brown_mushroom".toResourceLocation()
+ val POTTED_DEAD_BUSH = "minecraft:potted_dead_bush".toResourceLocation()
+ val POTTED_CACTUS = "minecraft:potted_cactus".toResourceLocation()
+ val CARROTS = "minecraft:carrots".toResourceLocation()
+ val POTATOES = "minecraft:potatoes".toResourceLocation()
+ val OAK_BUTTON = "minecraft:oak_button".toResourceLocation()
+ val SPRUCE_BUTTON = "minecraft:spruce_button".toResourceLocation()
+ val BIRCH_BUTTON = "minecraft:birch_button".toResourceLocation()
+ val JUNGLE_BUTTON = "minecraft:jungle_button".toResourceLocation()
+ val ACACIA_BUTTON = "minecraft:acacia_button".toResourceLocation()
+ val DARK_OAK_BUTTON = "minecraft:dark_oak_button".toResourceLocation()
+ val SKELETON_SKULL = "minecraft:skeleton_skull".toResourceLocation()
+ val SKELETON_WALL_SKULL = "minecraft:skeleton_wall_skull".toResourceLocation()
+ val WITHER_SKELETON_SKULL = "minecraft:wither_skeleton_skull".toResourceLocation()
+ val WITHER_SKELETON_WALL_SKULL = "minecraft:wither_skeleton_wall_skull".toResourceLocation()
+ val ZOMBIE_HEAD = "minecraft:zombie_head".toResourceLocation()
+ val ZOMBIE_WALL_HEAD = "minecraft:zombie_wall_head".toResourceLocation()
+ val PLAYER_HEAD = "minecraft:player_head".toResourceLocation()
+ val PLAYER_WALL_HEAD = "minecraft:player_wall_head".toResourceLocation()
+ val CREEPER_HEAD = "minecraft:creeper_head".toResourceLocation()
+ val CREEPER_WALL_HEAD = "minecraft:creeper_wall_head".toResourceLocation()
+ val DRAGON_HEAD = "minecraft:dragon_head".toResourceLocation()
+ val DRAGON_WALL_HEAD = "minecraft:dragon_wall_head".toResourceLocation()
+ val ANVIL = "minecraft:anvil".toResourceLocation()
+ val CHIPPED_ANVIL = "minecraft:chipped_anvil".toResourceLocation()
+ val DAMAGED_ANVIL = "minecraft:damaged_anvil".toResourceLocation()
+ val TRAPPED_CHEST = "minecraft:trapped_chest".toResourceLocation()
+ val LIGHT_WEIGHTED_PRESSURE_PLATE = "minecraft:light_weighted_pressure_plate".toResourceLocation()
+ val HEAVY_WEIGHTED_PRESSURE_PLATE = "minecraft:heavy_weighted_pressure_plate".toResourceLocation()
+ val COMPARATOR = "minecraft:comparator".toResourceLocation()
+ val DAYLIGHT_DETECTOR = "minecraft:daylight_detector".toResourceLocation()
+ val REDSTONE_BLOCK = "minecraft:redstone_block".toResourceLocation()
+ val NETHER_QUARTZ_ORE = "minecraft:nether_quartz_ore".toResourceLocation()
+ val HOPPER = "minecraft:hopper".toResourceLocation()
+ val QUARTZ_BLOCK = "minecraft:quartz_block".toResourceLocation()
+ val CHISELED_QUARTZ_BLOCK = "minecraft:chiseled_quartz_block".toResourceLocation()
+ val QUARTZ_PILLAR = "minecraft:quartz_pillar".toResourceLocation()
+ val QUARTZ_STAIRS = "minecraft:quartz_stairs".toResourceLocation()
+ val ACTIVATOR_RAIL = "minecraft:activator_rail".toResourceLocation()
+ val DROPPER = "minecraft:dropper".toResourceLocation()
+ val WHITE_TERRACOTTA = "minecraft:white_terracotta".toResourceLocation()
+ val ORANGE_TERRACOTTA = "minecraft:orange_terracotta".toResourceLocation()
+ val MAGENTA_TERRACOTTA = "minecraft:magenta_terracotta".toResourceLocation()
+ val LIGHT_BLUE_TERRACOTTA = "minecraft:light_blue_terracotta".toResourceLocation()
+ val YELLOW_TERRACOTTA = "minecraft:yellow_terracotta".toResourceLocation()
+ val LIME_TERRACOTTA = "minecraft:lime_terracotta".toResourceLocation()
+ val PINK_TERRACOTTA = "minecraft:pink_terracotta".toResourceLocation()
+ val GRAY_TERRACOTTA = "minecraft:gray_terracotta".toResourceLocation()
+ val LIGHT_GRAY_TERRACOTTA = "minecraft:light_gray_terracotta".toResourceLocation()
+ val CYAN_TERRACOTTA = "minecraft:cyan_terracotta".toResourceLocation()
+ val PURPLE_TERRACOTTA = "minecraft:purple_terracotta".toResourceLocation()
+ val BLUE_TERRACOTTA = "minecraft:blue_terracotta".toResourceLocation()
+ val BROWN_TERRACOTTA = "minecraft:brown_terracotta".toResourceLocation()
+ val GREEN_TERRACOTTA = "minecraft:green_terracotta".toResourceLocation()
+ val RED_TERRACOTTA = "minecraft:red_terracotta".toResourceLocation()
+ val BLACK_TERRACOTTA = "minecraft:black_terracotta".toResourceLocation()
+ val WHITE_STAINED_GLASS_PANE = "minecraft:white_stained_glass_pane".toResourceLocation()
+ val ORANGE_STAINED_GLASS_PANE = "minecraft:orange_stained_glass_pane".toResourceLocation()
+ val MAGENTA_STAINED_GLASS_PANE = "minecraft:magenta_stained_glass_pane".toResourceLocation()
+ val LIGHT_BLUE_STAINED_GLASS_PANE = "minecraft:light_blue_stained_glass_pane".toResourceLocation()
+ val YELLOW_STAINED_GLASS_PANE = "minecraft:yellow_stained_glass_pane".toResourceLocation()
+ val LIME_STAINED_GLASS_PANE = "minecraft:lime_stained_glass_pane".toResourceLocation()
+ val PINK_STAINED_GLASS_PANE = "minecraft:pink_stained_glass_pane".toResourceLocation()
+ val GRAY_STAINED_GLASS_PANE = "minecraft:gray_stained_glass_pane".toResourceLocation()
+ val LIGHT_GRAY_STAINED_GLASS_PANE = "minecraft:light_gray_stained_glass_pane".toResourceLocation()
+ val CYAN_STAINED_GLASS_PANE = "minecraft:cyan_stained_glass_pane".toResourceLocation()
+ val PURPLE_STAINED_GLASS_PANE = "minecraft:purple_stained_glass_pane".toResourceLocation()
+ val BLUE_STAINED_GLASS_PANE = "minecraft:blue_stained_glass_pane".toResourceLocation()
+ val BROWN_STAINED_GLASS_PANE = "minecraft:brown_stained_glass_pane".toResourceLocation()
+ val GREEN_STAINED_GLASS_PANE = "minecraft:green_stained_glass_pane".toResourceLocation()
+ val RED_STAINED_GLASS_PANE = "minecraft:red_stained_glass_pane".toResourceLocation()
+ val BLACK_STAINED_GLASS_PANE = "minecraft:black_stained_glass_pane".toResourceLocation()
+ val ACACIA_STAIRS = "minecraft:acacia_stairs".toResourceLocation()
+ val DARK_OAK_STAIRS = "minecraft:dark_oak_stairs".toResourceLocation()
+ val SLIME_BLOCK = "minecraft:slime_block".toResourceLocation()
+ val BARRIER = "minecraft:barrier".toResourceLocation()
+ val LIGHT = "minecraft:light".toResourceLocation()
+ val IRON_TRAPDOOR = "minecraft:iron_trapdoor".toResourceLocation()
+ val PRISMARINE = "minecraft:prismarine".toResourceLocation()
+ val PRISMARINE_BRICKS = "minecraft:prismarine_bricks".toResourceLocation()
+ val DARK_PRISMARINE = "minecraft:dark_prismarine".toResourceLocation()
+ val PRISMARINE_STAIRS = "minecraft:prismarine_stairs".toResourceLocation()
+ val PRISMARINE_BRICK_STAIRS = "minecraft:prismarine_brick_stairs".toResourceLocation()
+ val DARK_PRISMARINE_STAIRS = "minecraft:dark_prismarine_stairs".toResourceLocation()
+ val PRISMARINE_SLAB = "minecraft:prismarine_slab".toResourceLocation()
+ val PRISMARINE_BRICK_SLAB = "minecraft:prismarine_brick_slab".toResourceLocation()
+ val DARK_PRISMARINE_SLAB = "minecraft:dark_prismarine_slab".toResourceLocation()
+ val SEA_LANTERN = "minecraft:sea_lantern".toResourceLocation()
+ val HAY_BLOCK = "minecraft:hay_block".toResourceLocation()
+ val WHITE_CARPET = "minecraft:white_carpet".toResourceLocation()
+ val ORANGE_CARPET = "minecraft:orange_carpet".toResourceLocation()
+ val MAGENTA_CARPET = "minecraft:magenta_carpet".toResourceLocation()
+ val LIGHT_BLUE_CARPET = "minecraft:light_blue_carpet".toResourceLocation()
+ val YELLOW_CARPET = "minecraft:yellow_carpet".toResourceLocation()
+ val LIME_CARPET = "minecraft:lime_carpet".toResourceLocation()
+ val PINK_CARPET = "minecraft:pink_carpet".toResourceLocation()
+ val GRAY_CARPET = "minecraft:gray_carpet".toResourceLocation()
+ val LIGHT_GRAY_CARPET = "minecraft:light_gray_carpet".toResourceLocation()
+ val CYAN_CARPET = "minecraft:cyan_carpet".toResourceLocation()
+ val PURPLE_CARPET = "minecraft:purple_carpet".toResourceLocation()
+ val BLUE_CARPET = "minecraft:blue_carpet".toResourceLocation()
+ val BROWN_CARPET = "minecraft:brown_carpet".toResourceLocation()
+ val GREEN_CARPET = "minecraft:green_carpet".toResourceLocation()
+ val RED_CARPET = "minecraft:red_carpet".toResourceLocation()
+ val BLACK_CARPET = "minecraft:black_carpet".toResourceLocation()
+ val TERRACOTTA = "minecraft:terracotta".toResourceLocation()
+ val COAL_BLOCK = "minecraft:coal_block".toResourceLocation()
+ val PACKED_ICE = "minecraft:packed_ice".toResourceLocation()
+ val SUNFLOWER = "minecraft:sunflower".toResourceLocation()
+ val LILAC = "minecraft:lilac".toResourceLocation()
+ val ROSE_BUSH = "minecraft:rose_bush".toResourceLocation()
+ val PEONY = "minecraft:peony".toResourceLocation()
+ val TALL_GRASS = "minecraft:tall_grass".toResourceLocation()
+ val LARGE_FERN = "minecraft:large_fern".toResourceLocation()
+ val WHITE_BANNER = "minecraft:white_banner".toResourceLocation()
+ val ORANGE_BANNER = "minecraft:orange_banner".toResourceLocation()
+ val MAGENTA_BANNER = "minecraft:magenta_banner".toResourceLocation()
+ val LIGHT_BLUE_BANNER = "minecraft:light_blue_banner".toResourceLocation()
+ val YELLOW_BANNER = "minecraft:yellow_banner".toResourceLocation()
+ val LIME_BANNER = "minecraft:lime_banner".toResourceLocation()
+ val PINK_BANNER = "minecraft:pink_banner".toResourceLocation()
+ val GRAY_BANNER = "minecraft:gray_banner".toResourceLocation()
+ val LIGHT_GRAY_BANNER = "minecraft:light_gray_banner".toResourceLocation()
+ val CYAN_BANNER = "minecraft:cyan_banner".toResourceLocation()
+ val PURPLE_BANNER = "minecraft:purple_banner".toResourceLocation()
+ val BLUE_BANNER = "minecraft:blue_banner".toResourceLocation()
+ val BROWN_BANNER = "minecraft:brown_banner".toResourceLocation()
+ val GREEN_BANNER = "minecraft:green_banner".toResourceLocation()
+ val RED_BANNER = "minecraft:red_banner".toResourceLocation()
+ val BLACK_BANNER = "minecraft:black_banner".toResourceLocation()
+ val WHITE_WALL_BANNER = "minecraft:white_wall_banner".toResourceLocation()
+ val ORANGE_WALL_BANNER = "minecraft:orange_wall_banner".toResourceLocation()
+ val MAGENTA_WALL_BANNER = "minecraft:magenta_wall_banner".toResourceLocation()
+ val LIGHT_BLUE_WALL_BANNER = "minecraft:light_blue_wall_banner".toResourceLocation()
+ val YELLOW_WALL_BANNER = "minecraft:yellow_wall_banner".toResourceLocation()
+ val LIME_WALL_BANNER = "minecraft:lime_wall_banner".toResourceLocation()
+ val PINK_WALL_BANNER = "minecraft:pink_wall_banner".toResourceLocation()
+ val GRAY_WALL_BANNER = "minecraft:gray_wall_banner".toResourceLocation()
+ val LIGHT_GRAY_WALL_BANNER = "minecraft:light_gray_wall_banner".toResourceLocation()
+ val CYAN_WALL_BANNER = "minecraft:cyan_wall_banner".toResourceLocation()
+ val PURPLE_WALL_BANNER = "minecraft:purple_wall_banner".toResourceLocation()
+ val BLUE_WALL_BANNER = "minecraft:blue_wall_banner".toResourceLocation()
+ val BROWN_WALL_BANNER = "minecraft:brown_wall_banner".toResourceLocation()
+ val GREEN_WALL_BANNER = "minecraft:green_wall_banner".toResourceLocation()
+ val RED_WALL_BANNER = "minecraft:red_wall_banner".toResourceLocation()
+ val BLACK_WALL_BANNER = "minecraft:black_wall_banner".toResourceLocation()
+ val RED_SANDSTONE = "minecraft:red_sandstone".toResourceLocation()
+ val CHISELED_RED_SANDSTONE = "minecraft:chiseled_red_sandstone".toResourceLocation()
+ val CUT_RED_SANDSTONE = "minecraft:cut_red_sandstone".toResourceLocation()
+ val RED_SANDSTONE_STAIRS = "minecraft:red_sandstone_stairs".toResourceLocation()
+ val OAK_SLAB = "minecraft:oak_slab".toResourceLocation()
+ val SPRUCE_SLAB = "minecraft:spruce_slab".toResourceLocation()
+ val BIRCH_SLAB = "minecraft:birch_slab".toResourceLocation()
+ val JUNGLE_SLAB = "minecraft:jungle_slab".toResourceLocation()
+ val ACACIA_SLAB = "minecraft:acacia_slab".toResourceLocation()
+ val DARK_OAK_SLAB = "minecraft:dark_oak_slab".toResourceLocation()
+ val STONE_SLAB = "minecraft:stone_slab".toResourceLocation()
+ val SMOOTH_STONE_SLAB = "minecraft:smooth_stone_slab".toResourceLocation()
+ val SANDSTONE_SLAB = "minecraft:sandstone_slab".toResourceLocation()
+ val CUT_SANDSTONE_SLAB = "minecraft:cut_sandstone_slab".toResourceLocation()
+ val PETRIFIED_OAK_SLAB = "minecraft:petrified_oak_slab".toResourceLocation()
+ val COBBLESTONE_SLAB = "minecraft:cobblestone_slab".toResourceLocation()
+ val BRICK_SLAB = "minecraft:brick_slab".toResourceLocation()
+ val STONE_BRICK_SLAB = "minecraft:stone_brick_slab".toResourceLocation()
+ val NETHER_BRICK_SLAB = "minecraft:nether_brick_slab".toResourceLocation()
+ val QUARTZ_SLAB = "minecraft:quartz_slab".toResourceLocation()
+ val RED_SANDSTONE_SLAB = "minecraft:red_sandstone_slab".toResourceLocation()
+ val CUT_RED_SANDSTONE_SLAB = "minecraft:cut_red_sandstone_slab".toResourceLocation()
+ val PURPUR_SLAB = "minecraft:purpur_slab".toResourceLocation()
+ val SMOOTH_STONE = "minecraft:smooth_stone".toResourceLocation()
+ val SMOOTH_SANDSTONE = "minecraft:smooth_sandstone".toResourceLocation()
+ val SMOOTH_QUARTZ = "minecraft:smooth_quartz".toResourceLocation()
+ val SMOOTH_RED_SANDSTONE = "minecraft:smooth_red_sandstone".toResourceLocation()
+ val SPRUCE_FENCE_GATE = "minecraft:spruce_fence_gate".toResourceLocation()
+ val BIRCH_FENCE_GATE = "minecraft:birch_fence_gate".toResourceLocation()
+ val JUNGLE_FENCE_GATE = "minecraft:jungle_fence_gate".toResourceLocation()
+ val ACACIA_FENCE_GATE = "minecraft:acacia_fence_gate".toResourceLocation()
+ val DARK_OAK_FENCE_GATE = "minecraft:dark_oak_fence_gate".toResourceLocation()
+ val SPRUCE_FENCE = "minecraft:spruce_fence".toResourceLocation()
+ val BIRCH_FENCE = "minecraft:birch_fence".toResourceLocation()
+ val JUNGLE_FENCE = "minecraft:jungle_fence".toResourceLocation()
+ val ACACIA_FENCE = "minecraft:acacia_fence".toResourceLocation()
+ val DARK_OAK_FENCE = "minecraft:dark_oak_fence".toResourceLocation()
+ val SPRUCE_DOOR = "minecraft:spruce_door".toResourceLocation()
+ val BIRCH_DOOR = "minecraft:birch_door".toResourceLocation()
+ val JUNGLE_DOOR = "minecraft:jungle_door".toResourceLocation()
+ val ACACIA_DOOR = "minecraft:acacia_door".toResourceLocation()
+ val DARK_OAK_DOOR = "minecraft:dark_oak_door".toResourceLocation()
+ val END_ROD = "minecraft:end_rod".toResourceLocation()
+ val CHORUS_PLANT = "minecraft:chorus_plant".toResourceLocation()
+ val CHORUS_FLOWER = "minecraft:chorus_flower".toResourceLocation()
+ val PURPUR_BLOCK = "minecraft:purpur_block".toResourceLocation()
+ val PURPUR_PILLAR = "minecraft:purpur_pillar".toResourceLocation()
+ val PURPUR_STAIRS = "minecraft:purpur_stairs".toResourceLocation()
+ val END_STONE_BRICKS = "minecraft:end_stone_bricks".toResourceLocation()
+ val BEETROOTS = "minecraft:beetroots".toResourceLocation()
+ val DIRT_PATH = "minecraft:dirt_path".toResourceLocation()
+ val END_GATEWAY = "minecraft:end_gateway".toResourceLocation()
+ val REPEATING_COMMAND_BLOCK = "minecraft:repeating_command_block".toResourceLocation()
+ val CHAIN_COMMAND_BLOCK = "minecraft:chain_command_block".toResourceLocation()
+ val FROSTED_ICE = "minecraft:frosted_ice".toResourceLocation()
+ val MAGMA_BLOCK = "minecraft:magma_block".toResourceLocation()
+ val NETHER_WART_BLOCK = "minecraft:nether_wart_block".toResourceLocation()
+ val RED_NETHER_BRICKS = "minecraft:red_nether_bricks".toResourceLocation()
+ val BONE_BLOCK = "minecraft:bone_block".toResourceLocation()
+ val STRUCTURE_VOID = "minecraft:structure_void".toResourceLocation()
+ val OBSERVER = "minecraft:observer".toResourceLocation()
+ val SHULKER_BOX = "minecraft:shulker_box".toResourceLocation()
+ val WHITE_SHULKER_BOX = "minecraft:white_shulker_box".toResourceLocation()
+ val ORANGE_SHULKER_BOX = "minecraft:orange_shulker_box".toResourceLocation()
+ val MAGENTA_SHULKER_BOX = "minecraft:magenta_shulker_box".toResourceLocation()
+ val LIGHT_BLUE_SHULKER_BOX = "minecraft:light_blue_shulker_box".toResourceLocation()
+ val YELLOW_SHULKER_BOX = "minecraft:yellow_shulker_box".toResourceLocation()
+ val LIME_SHULKER_BOX = "minecraft:lime_shulker_box".toResourceLocation()
+ val PINK_SHULKER_BOX = "minecraft:pink_shulker_box".toResourceLocation()
+ val GRAY_SHULKER_BOX = "minecraft:gray_shulker_box".toResourceLocation()
+ val LIGHT_GRAY_SHULKER_BOX = "minecraft:light_gray_shulker_box".toResourceLocation()
+ val CYAN_SHULKER_BOX = "minecraft:cyan_shulker_box".toResourceLocation()
+ val PURPLE_SHULKER_BOX = "minecraft:purple_shulker_box".toResourceLocation()
+ val BLUE_SHULKER_BOX = "minecraft:blue_shulker_box".toResourceLocation()
+ val BROWN_SHULKER_BOX = "minecraft:brown_shulker_box".toResourceLocation()
+ val GREEN_SHULKER_BOX = "minecraft:green_shulker_box".toResourceLocation()
+ val RED_SHULKER_BOX = "minecraft:red_shulker_box".toResourceLocation()
+ val BLACK_SHULKER_BOX = "minecraft:black_shulker_box".toResourceLocation()
+ val WHITE_GLAZED_TERRACOTTA = "minecraft:white_glazed_terracotta".toResourceLocation()
+ val ORANGE_GLAZED_TERRACOTTA = "minecraft:orange_glazed_terracotta".toResourceLocation()
+ val MAGENTA_GLAZED_TERRACOTTA = "minecraft:magenta_glazed_terracotta".toResourceLocation()
+ val LIGHT_BLUE_GLAZED_TERRACOTTA = "minecraft:light_blue_glazed_terracotta".toResourceLocation()
+ val YELLOW_GLAZED_TERRACOTTA = "minecraft:yellow_glazed_terracotta".toResourceLocation()
+ val LIME_GLAZED_TERRACOTTA = "minecraft:lime_glazed_terracotta".toResourceLocation()
+ val PINK_GLAZED_TERRACOTTA = "minecraft:pink_glazed_terracotta".toResourceLocation()
+ val GRAY_GLAZED_TERRACOTTA = "minecraft:gray_glazed_terracotta".toResourceLocation()
+ val LIGHT_GRAY_GLAZED_TERRACOTTA = "minecraft:light_gray_glazed_terracotta".toResourceLocation()
+ val CYAN_GLAZED_TERRACOTTA = "minecraft:cyan_glazed_terracotta".toResourceLocation()
+ val PURPLE_GLAZED_TERRACOTTA = "minecraft:purple_glazed_terracotta".toResourceLocation()
+ val BLUE_GLAZED_TERRACOTTA = "minecraft:blue_glazed_terracotta".toResourceLocation()
+ val BROWN_GLAZED_TERRACOTTA = "minecraft:brown_glazed_terracotta".toResourceLocation()
+ val GREEN_GLAZED_TERRACOTTA = "minecraft:green_glazed_terracotta".toResourceLocation()
+ val RED_GLAZED_TERRACOTTA = "minecraft:red_glazed_terracotta".toResourceLocation()
+ val BLACK_GLAZED_TERRACOTTA = "minecraft:black_glazed_terracotta".toResourceLocation()
+ val WHITE_CONCRETE = "minecraft:white_concrete".toResourceLocation()
+ val ORANGE_CONCRETE = "minecraft:orange_concrete".toResourceLocation()
+ val MAGENTA_CONCRETE = "minecraft:magenta_concrete".toResourceLocation()
+ val LIGHT_BLUE_CONCRETE = "minecraft:light_blue_concrete".toResourceLocation()
+ val YELLOW_CONCRETE = "minecraft:yellow_concrete".toResourceLocation()
+ val LIME_CONCRETE = "minecraft:lime_concrete".toResourceLocation()
+ val PINK_CONCRETE = "minecraft:pink_concrete".toResourceLocation()
+ val GRAY_CONCRETE = "minecraft:gray_concrete".toResourceLocation()
+ val LIGHT_GRAY_CONCRETE = "minecraft:light_gray_concrete".toResourceLocation()
+ val CYAN_CONCRETE = "minecraft:cyan_concrete".toResourceLocation()
+ val PURPLE_CONCRETE = "minecraft:purple_concrete".toResourceLocation()
+ val BLUE_CONCRETE = "minecraft:blue_concrete".toResourceLocation()
+ val BROWN_CONCRETE = "minecraft:brown_concrete".toResourceLocation()
+ val GREEN_CONCRETE = "minecraft:green_concrete".toResourceLocation()
+ val RED_CONCRETE = "minecraft:red_concrete".toResourceLocation()
+ val BLACK_CONCRETE = "minecraft:black_concrete".toResourceLocation()
+ val WHITE_CONCRETE_POWDER = "minecraft:white_concrete_powder".toResourceLocation()
+ val ORANGE_CONCRETE_POWDER = "minecraft:orange_concrete_powder".toResourceLocation()
+ val MAGENTA_CONCRETE_POWDER = "minecraft:magenta_concrete_powder".toResourceLocation()
+ val LIGHT_BLUE_CONCRETE_POWDER = "minecraft:light_blue_concrete_powder".toResourceLocation()
+ val YELLOW_CONCRETE_POWDER = "minecraft:yellow_concrete_powder".toResourceLocation()
+ val LIME_CONCRETE_POWDER = "minecraft:lime_concrete_powder".toResourceLocation()
+ val PINK_CONCRETE_POWDER = "minecraft:pink_concrete_powder".toResourceLocation()
+ val GRAY_CONCRETE_POWDER = "minecraft:gray_concrete_powder".toResourceLocation()
+ val LIGHT_GRAY_CONCRETE_POWDER = "minecraft:light_gray_concrete_powder".toResourceLocation()
+ val CYAN_CONCRETE_POWDER = "minecraft:cyan_concrete_powder".toResourceLocation()
+ val PURPLE_CONCRETE_POWDER = "minecraft:purple_concrete_powder".toResourceLocation()
+ val BLUE_CONCRETE_POWDER = "minecraft:blue_concrete_powder".toResourceLocation()
+ val BROWN_CONCRETE_POWDER = "minecraft:brown_concrete_powder".toResourceLocation()
+ val GREEN_CONCRETE_POWDER = "minecraft:green_concrete_powder".toResourceLocation()
+ val RED_CONCRETE_POWDER = "minecraft:red_concrete_powder".toResourceLocation()
+ val BLACK_CONCRETE_POWDER = "minecraft:black_concrete_powder".toResourceLocation()
+ val KELP = "minecraft:kelp".toResourceLocation()
+ val KELP_PLANT = "minecraft:kelp_plant".toResourceLocation()
+ val DRIED_KELP_BLOCK = "minecraft:dried_kelp_block".toResourceLocation()
+ val TURTLE_EGG = "minecraft:turtle_egg".toResourceLocation()
+ val DEAD_TUBE_CORAL_BLOCK = "minecraft:dead_tube_coral_block".toResourceLocation()
+ val DEAD_BRAIN_CORAL_BLOCK = "minecraft:dead_brain_coral_block".toResourceLocation()
+ val DEAD_BUBBLE_CORAL_BLOCK = "minecraft:dead_bubble_coral_block".toResourceLocation()
+ val DEAD_FIRE_CORAL_BLOCK = "minecraft:dead_fire_coral_block".toResourceLocation()
+ val DEAD_HORN_CORAL_BLOCK = "minecraft:dead_horn_coral_block".toResourceLocation()
+ val TUBE_CORAL_BLOCK = "minecraft:tube_coral_block".toResourceLocation()
+ val BRAIN_CORAL_BLOCK = "minecraft:brain_coral_block".toResourceLocation()
+ val BUBBLE_CORAL_BLOCK = "minecraft:bubble_coral_block".toResourceLocation()
+ val FIRE_CORAL_BLOCK = "minecraft:fire_coral_block".toResourceLocation()
+ val HORN_CORAL_BLOCK = "minecraft:horn_coral_block".toResourceLocation()
+ val DEAD_TUBE_CORAL = "minecraft:dead_tube_coral".toResourceLocation()
+ val DEAD_BRAIN_CORAL = "minecraft:dead_brain_coral".toResourceLocation()
+ val DEAD_BUBBLE_CORAL = "minecraft:dead_bubble_coral".toResourceLocation()
+ val DEAD_FIRE_CORAL = "minecraft:dead_fire_coral".toResourceLocation()
+ val DEAD_HORN_CORAL = "minecraft:dead_horn_coral".toResourceLocation()
+ val TUBE_CORAL = "minecraft:tube_coral".toResourceLocation()
+ val BRAIN_CORAL = "minecraft:brain_coral".toResourceLocation()
+ val BUBBLE_CORAL = "minecraft:bubble_coral".toResourceLocation()
+ val FIRE_CORAL = "minecraft:fire_coral".toResourceLocation()
+ val HORN_CORAL = "minecraft:horn_coral".toResourceLocation()
+ val DEAD_TUBE_CORAL_FAN = "minecraft:dead_tube_coral_fan".toResourceLocation()
+ val DEAD_BRAIN_CORAL_FAN = "minecraft:dead_brain_coral_fan".toResourceLocation()
+ val DEAD_BUBBLE_CORAL_FAN = "minecraft:dead_bubble_coral_fan".toResourceLocation()
+ val DEAD_FIRE_CORAL_FAN = "minecraft:dead_fire_coral_fan".toResourceLocation()
+ val DEAD_HORN_CORAL_FAN = "minecraft:dead_horn_coral_fan".toResourceLocation()
+ val TUBE_CORAL_FAN = "minecraft:tube_coral_fan".toResourceLocation()
+ val BRAIN_CORAL_FAN = "minecraft:brain_coral_fan".toResourceLocation()
+ val BUBBLE_CORAL_FAN = "minecraft:bubble_coral_fan".toResourceLocation()
+ val FIRE_CORAL_FAN = "minecraft:fire_coral_fan".toResourceLocation()
+ val HORN_CORAL_FAN = "minecraft:horn_coral_fan".toResourceLocation()
+ val DEAD_TUBE_CORAL_WALL_FAN = "minecraft:dead_tube_coral_wall_fan".toResourceLocation()
+ val DEAD_BRAIN_CORAL_WALL_FAN = "minecraft:dead_brain_coral_wall_fan".toResourceLocation()
+ val DEAD_BUBBLE_CORAL_WALL_FAN = "minecraft:dead_bubble_coral_wall_fan".toResourceLocation()
+ val DEAD_FIRE_CORAL_WALL_FAN = "minecraft:dead_fire_coral_wall_fan".toResourceLocation()
+ val DEAD_HORN_CORAL_WALL_FAN = "minecraft:dead_horn_coral_wall_fan".toResourceLocation()
+ val TUBE_CORAL_WALL_FAN = "minecraft:tube_coral_wall_fan".toResourceLocation()
+ val BRAIN_CORAL_WALL_FAN = "minecraft:brain_coral_wall_fan".toResourceLocation()
+ val BUBBLE_CORAL_WALL_FAN = "minecraft:bubble_coral_wall_fan".toResourceLocation()
+ val FIRE_CORAL_WALL_FAN = "minecraft:fire_coral_wall_fan".toResourceLocation()
+ val HORN_CORAL_WALL_FAN = "minecraft:horn_coral_wall_fan".toResourceLocation()
+ val SEA_PICKLE = "minecraft:sea_pickle".toResourceLocation()
+ val BLUE_ICE = "minecraft:blue_ice".toResourceLocation()
+ val CONDUIT = "minecraft:conduit".toResourceLocation()
+ val BAMBOO_SAPLING = "minecraft:bamboo_sapling".toResourceLocation()
+ val BAMBOO = "minecraft:bamboo".toResourceLocation()
+ val POTTED_BAMBOO = "minecraft:potted_bamboo".toResourceLocation()
+ val VOID_AIR = "minecraft:void_air".toResourceLocation()
+ val CAVE_AIR = "minecraft:cave_air".toResourceLocation()
+ val BUBBLE_COLUMN = "minecraft:bubble_column".toResourceLocation()
+ val POLISHED_GRANITE_STAIRS = "minecraft:polished_granite_stairs".toResourceLocation()
+ val SMOOTH_RED_SANDSTONE_STAIRS = "minecraft:smooth_red_sandstone_stairs".toResourceLocation()
+ val MOSSY_STONE_BRICK_STAIRS = "minecraft:mossy_stone_brick_stairs".toResourceLocation()
+ val POLISHED_DIORITE_STAIRS = "minecraft:polished_diorite_stairs".toResourceLocation()
+ val MOSSY_COBBLESTONE_STAIRS = "minecraft:mossy_cobblestone_stairs".toResourceLocation()
+ val END_STONE_BRICK_STAIRS = "minecraft:end_stone_brick_stairs".toResourceLocation()
+ val STONE_STAIRS = "minecraft:stone_stairs".toResourceLocation()
+ val SMOOTH_SANDSTONE_STAIRS = "minecraft:smooth_sandstone_stairs".toResourceLocation()
+ val SMOOTH_QUARTZ_STAIRS = "minecraft:smooth_quartz_stairs".toResourceLocation()
+ val GRANITE_STAIRS = "minecraft:granite_stairs".toResourceLocation()
+ val ANDESITE_STAIRS = "minecraft:andesite_stairs".toResourceLocation()
+ val RED_NETHER_BRICK_STAIRS = "minecraft:red_nether_brick_stairs".toResourceLocation()
+ val POLISHED_ANDESITE_STAIRS = "minecraft:polished_andesite_stairs".toResourceLocation()
+ val DIORITE_STAIRS = "minecraft:diorite_stairs".toResourceLocation()
+ val POLISHED_GRANITE_SLAB = "minecraft:polished_granite_slab".toResourceLocation()
+ val SMOOTH_RED_SANDSTONE_SLAB = "minecraft:smooth_red_sandstone_slab".toResourceLocation()
+ val MOSSY_STONE_BRICK_SLAB = "minecraft:mossy_stone_brick_slab".toResourceLocation()
+ val POLISHED_DIORITE_SLAB = "minecraft:polished_diorite_slab".toResourceLocation()
+ val MOSSY_COBBLESTONE_SLAB = "minecraft:mossy_cobblestone_slab".toResourceLocation()
+ val END_STONE_BRICK_SLAB = "minecraft:end_stone_brick_slab".toResourceLocation()
+ val SMOOTH_SANDSTONE_SLAB = "minecraft:smooth_sandstone_slab".toResourceLocation()
+ val SMOOTH_QUARTZ_SLAB = "minecraft:smooth_quartz_slab".toResourceLocation()
+ val GRANITE_SLAB = "minecraft:granite_slab".toResourceLocation()
+ val ANDESITE_SLAB = "minecraft:andesite_slab".toResourceLocation()
+ val RED_NETHER_BRICK_SLAB = "minecraft:red_nether_brick_slab".toResourceLocation()
+ val POLISHED_ANDESITE_SLAB = "minecraft:polished_andesite_slab".toResourceLocation()
+ val DIORITE_SLAB = "minecraft:diorite_slab".toResourceLocation()
+ val BRICK_WALL = "minecraft:brick_wall".toResourceLocation()
+ val PRISMARINE_WALL = "minecraft:prismarine_wall".toResourceLocation()
+ val RED_SANDSTONE_WALL = "minecraft:red_sandstone_wall".toResourceLocation()
+ val MOSSY_STONE_BRICK_WALL = "minecraft:mossy_stone_brick_wall".toResourceLocation()
+ val GRANITE_WALL = "minecraft:granite_wall".toResourceLocation()
+ val STONE_BRICK_WALL = "minecraft:stone_brick_wall".toResourceLocation()
+ val NETHER_BRICK_WALL = "minecraft:nether_brick_wall".toResourceLocation()
+ val ANDESITE_WALL = "minecraft:andesite_wall".toResourceLocation()
+ val RED_NETHER_BRICK_WALL = "minecraft:red_nether_brick_wall".toResourceLocation()
+ val SANDSTONE_WALL = "minecraft:sandstone_wall".toResourceLocation()
+ val END_STONE_BRICK_WALL = "minecraft:end_stone_brick_wall".toResourceLocation()
+ val DIORITE_WALL = "minecraft:diorite_wall".toResourceLocation()
+ val SCAFFOLDING = "minecraft:scaffolding".toResourceLocation()
+ val LOOM = "minecraft:loom".toResourceLocation()
+ val BARREL = "minecraft:barrel".toResourceLocation()
+ val SMOKER = "minecraft:smoker".toResourceLocation()
+ val BLAST_FURNACE = "minecraft:blast_furnace".toResourceLocation()
+ val CARTOGRAPHY_TABLE = "minecraft:cartography_table".toResourceLocation()
+ val FLETCHING_TABLE = "minecraft:fletching_table".toResourceLocation()
+ val GRINDSTONE = "minecraft:grindstone".toResourceLocation()
+ val LECTERN = "minecraft:lectern".toResourceLocation()
+ val SMITHING_TABLE = "minecraft:smithing_table".toResourceLocation()
+ val STONECUTTER = "minecraft:stonecutter".toResourceLocation()
+ val BELL = "minecraft:bell".toResourceLocation()
+ val LANTERN = "minecraft:lantern".toResourceLocation()
+ val SOUL_LANTERN = "minecraft:soul_lantern".toResourceLocation()
+ val CAMPFIRE = "minecraft:campfire".toResourceLocation()
+ val SOUL_CAMPFIRE = "minecraft:soul_campfire".toResourceLocation()
+ val SWEET_BERRY_BUSH = "minecraft:sweet_berry_bush".toResourceLocation()
+ val WARPED_STEM = "minecraft:warped_stem".toResourceLocation()
+ val STRIPPED_WARPED_STEM = "minecraft:stripped_warped_stem".toResourceLocation()
+ val WARPED_HYPHAE = "minecraft:warped_hyphae".toResourceLocation()
+ val STRIPPED_WARPED_HYPHAE = "minecraft:stripped_warped_hyphae".toResourceLocation()
+ val WARPED_NYLIUM = "minecraft:warped_nylium".toResourceLocation()
+ val WARPED_FUNGUS = "minecraft:warped_fungus".toResourceLocation()
+ val WARPED_WART_BLOCK = "minecraft:warped_wart_block".toResourceLocation()
+ val WARPED_ROOTS = "minecraft:warped_roots".toResourceLocation()
+ val NETHER_SPROUTS = "minecraft:nether_sprouts".toResourceLocation()
+ val CRIMSON_STEM = "minecraft:crimson_stem".toResourceLocation()
+ val STRIPPED_CRIMSON_STEM = "minecraft:stripped_crimson_stem".toResourceLocation()
+ val CRIMSON_HYPHAE = "minecraft:crimson_hyphae".toResourceLocation()
+ val STRIPPED_CRIMSON_HYPHAE = "minecraft:stripped_crimson_hyphae".toResourceLocation()
+ val CRIMSON_NYLIUM = "minecraft:crimson_nylium".toResourceLocation()
+ val CRIMSON_FUNGUS = "minecraft:crimson_fungus".toResourceLocation()
+ val SHROOMLIGHT = "minecraft:shroomlight".toResourceLocation()
+ val WEEPING_VINES = "minecraft:weeping_vines".toResourceLocation()
+ val WEEPING_VINES_PLANT = "minecraft:weeping_vines_plant".toResourceLocation()
+ val TWISTING_VINES = "minecraft:twisting_vines".toResourceLocation()
+ val TWISTING_VINES_PLANT = "minecraft:twisting_vines_plant".toResourceLocation()
+ val CRIMSON_ROOTS = "minecraft:crimson_roots".toResourceLocation()
+ val CRIMSON_PLANKS = "minecraft:crimson_planks".toResourceLocation()
+ val WARPED_PLANKS = "minecraft:warped_planks".toResourceLocation()
+ val CRIMSON_SLAB = "minecraft:crimson_slab".toResourceLocation()
+ val WARPED_SLAB = "minecraft:warped_slab".toResourceLocation()
+ val CRIMSON_PRESSURE_PLATE = "minecraft:crimson_pressure_plate".toResourceLocation()
+ val WARPED_PRESSURE_PLATE = "minecraft:warped_pressure_plate".toResourceLocation()
+ val CRIMSON_FENCE = "minecraft:crimson_fence".toResourceLocation()
+ val WARPED_FENCE = "minecraft:warped_fence".toResourceLocation()
+ val CRIMSON_TRAPDOOR = "minecraft:crimson_trapdoor".toResourceLocation()
+ val WARPED_TRAPDOOR = "minecraft:warped_trapdoor".toResourceLocation()
+ val CRIMSON_FENCE_GATE = "minecraft:crimson_fence_gate".toResourceLocation()
+ val WARPED_FENCE_GATE = "minecraft:warped_fence_gate".toResourceLocation()
+ val CRIMSON_STAIRS = "minecraft:crimson_stairs".toResourceLocation()
+ val WARPED_STAIRS = "minecraft:warped_stairs".toResourceLocation()
+ val CRIMSON_BUTTON = "minecraft:crimson_button".toResourceLocation()
+ val WARPED_BUTTON = "minecraft:warped_button".toResourceLocation()
+ val CRIMSON_DOOR = "minecraft:crimson_door".toResourceLocation()
+ val WARPED_DOOR = "minecraft:warped_door".toResourceLocation()
+ val CRIMSON_SIGN = "minecraft:crimson_sign".toResourceLocation()
+ val WARPED_SIGN = "minecraft:warped_sign".toResourceLocation()
+ val CRIMSON_WALL_SIGN = "minecraft:crimson_wall_sign".toResourceLocation()
+ val WARPED_WALL_SIGN = "minecraft:warped_wall_sign".toResourceLocation()
+ val STRUCTURE_BLOCK = "minecraft:structure_block".toResourceLocation()
+ val JIGSAW = "minecraft:jigsaw".toResourceLocation()
+ val COMPOSTER = "minecraft:composter".toResourceLocation()
+ val TARGET = "minecraft:target".toResourceLocation()
+ val BEE_NEST = "minecraft:bee_nest".toResourceLocation()
+ val BEEHIVE = "minecraft:beehive".toResourceLocation()
+ val HONEY_BLOCK = "minecraft:honey_block".toResourceLocation()
+ val HONEYCOMB_BLOCK = "minecraft:honeycomb_block".toResourceLocation()
+ val NETHERITE_BLOCK = "minecraft:netherite_block".toResourceLocation()
+ val ANCIENT_DEBRIS = "minecraft:ancient_debris".toResourceLocation()
+ val CRYING_OBSIDIAN = "minecraft:crying_obsidian".toResourceLocation()
+ val RESPAWN_ANCHOR = "minecraft:respawn_anchor".toResourceLocation()
+ val POTTED_CRIMSON_FUNGUS = "minecraft:potted_crimson_fungus".toResourceLocation()
+ val POTTED_WARPED_FUNGUS = "minecraft:potted_warped_fungus".toResourceLocation()
+ val POTTED_CRIMSON_ROOTS = "minecraft:potted_crimson_roots".toResourceLocation()
+ val POTTED_WARPED_ROOTS = "minecraft:potted_warped_roots".toResourceLocation()
+ val LODESTONE = "minecraft:lodestone".toResourceLocation()
+ val BLACKSTONE = "minecraft:blackstone".toResourceLocation()
+ val BLACKSTONE_STAIRS = "minecraft:blackstone_stairs".toResourceLocation()
+ val BLACKSTONE_WALL = "minecraft:blackstone_wall".toResourceLocation()
+ val BLACKSTONE_SLAB = "minecraft:blackstone_slab".toResourceLocation()
+ val POLISHED_BLACKSTONE = "minecraft:polished_blackstone".toResourceLocation()
+ val POLISHED_BLACKSTONE_BRICKS = "minecraft:polished_blackstone_bricks".toResourceLocation()
+ val CRACKED_POLISHED_BLACKSTONE_BRICKS = "minecraft:cracked_polished_blackstone_bricks".toResourceLocation()
+ val CHISELED_POLISHED_BLACKSTONE = "minecraft:chiseled_polished_blackstone".toResourceLocation()
+ val POLISHED_BLACKSTONE_BRICK_SLAB = "minecraft:polished_blackstone_brick_slab".toResourceLocation()
+ val POLISHED_BLACKSTONE_BRICK_STAIRS = "minecraft:polished_blackstone_brick_stairs".toResourceLocation()
+ val POLISHED_BLACKSTONE_BRICK_WALL = "minecraft:polished_blackstone_brick_wall".toResourceLocation()
+ val GILDED_BLACKSTONE = "minecraft:gilded_blackstone".toResourceLocation()
+ val POLISHED_BLACKSTONE_STAIRS = "minecraft:polished_blackstone_stairs".toResourceLocation()
+ val POLISHED_BLACKSTONE_SLAB = "minecraft:polished_blackstone_slab".toResourceLocation()
+ val POLISHED_BLACKSTONE_PRESSURE_PLATE = "minecraft:polished_blackstone_pressure_plate".toResourceLocation()
+ val POLISHED_BLACKSTONE_BUTTON = "minecraft:polished_blackstone_button".toResourceLocation()
+ val POLISHED_BLACKSTONE_WALL = "minecraft:polished_blackstone_wall".toResourceLocation()
+ val CHISELED_NETHER_BRICKS = "minecraft:chiseled_nether_bricks".toResourceLocation()
+ val CRACKED_NETHER_BRICKS = "minecraft:cracked_nether_bricks".toResourceLocation()
+ val QUARTZ_BRICKS = "minecraft:quartz_bricks".toResourceLocation()
+ val CANDLE = "minecraft:candle".toResourceLocation()
+ val WHITE_CANDLE = "minecraft:white_candle".toResourceLocation()
+ val ORANGE_CANDLE = "minecraft:orange_candle".toResourceLocation()
+ val MAGENTA_CANDLE = "minecraft:magenta_candle".toResourceLocation()
+ val LIGHT_BLUE_CANDLE = "minecraft:light_blue_candle".toResourceLocation()
+ val YELLOW_CANDLE = "minecraft:yellow_candle".toResourceLocation()
+ val LIME_CANDLE = "minecraft:lime_candle".toResourceLocation()
+ val PINK_CANDLE = "minecraft:pink_candle".toResourceLocation()
+ val GRAY_CANDLE = "minecraft:gray_candle".toResourceLocation()
+ val LIGHT_GRAY_CANDLE = "minecraft:light_gray_candle".toResourceLocation()
+ val CYAN_CANDLE = "minecraft:cyan_candle".toResourceLocation()
+ val PURPLE_CANDLE = "minecraft:purple_candle".toResourceLocation()
+ val BLUE_CANDLE = "minecraft:blue_candle".toResourceLocation()
+ val BROWN_CANDLE = "minecraft:brown_candle".toResourceLocation()
+ val GREEN_CANDLE = "minecraft:green_candle".toResourceLocation()
+ val RED_CANDLE = "minecraft:red_candle".toResourceLocation()
+ val BLACK_CANDLE = "minecraft:black_candle".toResourceLocation()
+ val CANDLE_CAKE = "minecraft:candle_cake".toResourceLocation()
+ val WHITE_CANDLE_CAKE = "minecraft:white_candle_cake".toResourceLocation()
+ val ORANGE_CANDLE_CAKE = "minecraft:orange_candle_cake".toResourceLocation()
+ val MAGENTA_CANDLE_CAKE = "minecraft:magenta_candle_cake".toResourceLocation()
+ val LIGHT_BLUE_CANDLE_CAKE = "minecraft:light_blue_candle_cake".toResourceLocation()
+ val YELLOW_CANDLE_CAKE = "minecraft:yellow_candle_cake".toResourceLocation()
+ val LIME_CANDLE_CAKE = "minecraft:lime_candle_cake".toResourceLocation()
+ val PINK_CANDLE_CAKE = "minecraft:pink_candle_cake".toResourceLocation()
+ val GRAY_CANDLE_CAKE = "minecraft:gray_candle_cake".toResourceLocation()
+ val LIGHT_GRAY_CANDLE_CAKE = "minecraft:light_gray_candle_cake".toResourceLocation()
+ val CYAN_CANDLE_CAKE = "minecraft:cyan_candle_cake".toResourceLocation()
+ val PURPLE_CANDLE_CAKE = "minecraft:purple_candle_cake".toResourceLocation()
+ val BLUE_CANDLE_CAKE = "minecraft:blue_candle_cake".toResourceLocation()
+ val BROWN_CANDLE_CAKE = "minecraft:brown_candle_cake".toResourceLocation()
+ val GREEN_CANDLE_CAKE = "minecraft:green_candle_cake".toResourceLocation()
+ val RED_CANDLE_CAKE = "minecraft:red_candle_cake".toResourceLocation()
+ val BLACK_CANDLE_CAKE = "minecraft:black_candle_cake".toResourceLocation()
+ val AMETHYST_BLOCK = "minecraft:amethyst_block".toResourceLocation()
+ val BUDDING_AMETHYST = "minecraft:budding_amethyst".toResourceLocation()
+ val AMETHYST_CLUSTER = "minecraft:amethyst_cluster".toResourceLocation()
+ val LARGE_AMETHYST_BUD = "minecraft:large_amethyst_bud".toResourceLocation()
+ val MEDIUM_AMETHYST_BUD = "minecraft:medium_amethyst_bud".toResourceLocation()
+ val SMALL_AMETHYST_BUD = "minecraft:small_amethyst_bud".toResourceLocation()
+ val TUFF = "minecraft:tuff".toResourceLocation()
+ val CALCITE = "minecraft:calcite".toResourceLocation()
+ val TINTED_GLASS = "minecraft:tinted_glass".toResourceLocation()
+ val POWDER_SNOW = "minecraft:powder_snow".toResourceLocation()
+ val SCULK_SENSOR = "minecraft:sculk_sensor".toResourceLocation()
+ val OXIDIZED_COPPER = "minecraft:oxidized_copper".toResourceLocation()
+ val WEATHERED_COPPER = "minecraft:weathered_copper".toResourceLocation()
+ val EXPOSED_COPPER = "minecraft:exposed_copper".toResourceLocation()
+ val COPPER_BLOCK = "minecraft:copper_block".toResourceLocation()
+ val COPPER_ORE = "minecraft:copper_ore".toResourceLocation()
+ val DEEPSLATE_COPPER_ORE = "minecraft:deepslate_copper_ore".toResourceLocation()
+ val OXIDIZED_CUT_COPPER = "minecraft:oxidized_cut_copper".toResourceLocation()
+ val WEATHERED_CUT_COPPER = "minecraft:weathered_cut_copper".toResourceLocation()
+ val EXPOSED_CUT_COPPER = "minecraft:exposed_cut_copper".toResourceLocation()
+ val CUT_COPPER = "minecraft:cut_copper".toResourceLocation()
+ val OXIDIZED_CUT_COPPER_STAIRS = "minecraft:oxidized_cut_copper_stairs".toResourceLocation()
+ val WEATHERED_CUT_COPPER_STAIRS = "minecraft:weathered_cut_copper_stairs".toResourceLocation()
+ val EXPOSED_CUT_COPPER_STAIRS = "minecraft:exposed_cut_copper_stairs".toResourceLocation()
+ val CUT_COPPER_STAIRS = "minecraft:cut_copper_stairs".toResourceLocation()
+ val OXIDIZED_CUT_COPPER_SLAB = "minecraft:oxidized_cut_copper_slab".toResourceLocation()
+ val WEATHERED_CUT_COPPER_SLAB = "minecraft:weathered_cut_copper_slab".toResourceLocation()
+ val EXPOSED_CUT_COPPER_SLAB = "minecraft:exposed_cut_copper_slab".toResourceLocation()
+ val CUT_COPPER_SLAB = "minecraft:cut_copper_slab".toResourceLocation()
+ val WAXED_COPPER_BLOCK = "minecraft:waxed_copper_block".toResourceLocation()
+ val WAXED_WEATHERED_COPPER = "minecraft:waxed_weathered_copper".toResourceLocation()
+ val WAXED_EXPOSED_COPPER = "minecraft:waxed_exposed_copper".toResourceLocation()
+ val WAXED_OXIDIZED_COPPER = "minecraft:waxed_oxidized_copper".toResourceLocation()
+ val WAXED_OXIDIZED_CUT_COPPER = "minecraft:waxed_oxidized_cut_copper".toResourceLocation()
+ val WAXED_WEATHERED_CUT_COPPER = "minecraft:waxed_weathered_cut_copper".toResourceLocation()
+ val WAXED_EXPOSED_CUT_COPPER = "minecraft:waxed_exposed_cut_copper".toResourceLocation()
+ val WAXED_CUT_COPPER = "minecraft:waxed_cut_copper".toResourceLocation()
+ val WAXED_OXIDIZED_CUT_COPPER_STAIRS = "minecraft:waxed_oxidized_cut_copper_stairs".toResourceLocation()
+ val WAXED_WEATHERED_CUT_COPPER_STAIRS = "minecraft:waxed_weathered_cut_copper_stairs".toResourceLocation()
+ val WAXED_EXPOSED_CUT_COPPER_STAIRS = "minecraft:waxed_exposed_cut_copper_stairs".toResourceLocation()
+ val WAXED_CUT_COPPER_STAIRS = "minecraft:waxed_cut_copper_stairs".toResourceLocation()
+ val WAXED_OXIDIZED_CUT_COPPER_SLAB = "minecraft:waxed_oxidized_cut_copper_slab".toResourceLocation()
+ val WAXED_WEATHERED_CUT_COPPER_SLAB = "minecraft:waxed_weathered_cut_copper_slab".toResourceLocation()
+ val WAXED_EXPOSED_CUT_COPPER_SLAB = "minecraft:waxed_exposed_cut_copper_slab".toResourceLocation()
+ val WAXED_CUT_COPPER_SLAB = "minecraft:waxed_cut_copper_slab".toResourceLocation()
+ val LIGHTNING_ROD = "minecraft:lightning_rod".toResourceLocation()
+ val POINTED_DRIPSTONE = "minecraft:pointed_dripstone".toResourceLocation()
+ val DRIPSTONE_BLOCK = "minecraft:dripstone_block".toResourceLocation()
+ val CAVE_VINES = "minecraft:cave_vines".toResourceLocation()
+ val CAVE_VINES_PLANT = "minecraft:cave_vines_plant".toResourceLocation()
+ val SPORE_BLOSSOM = "minecraft:spore_blossom".toResourceLocation()
+ val AZALEA = "minecraft:azalea".toResourceLocation()
+ val FLOWERING_AZALEA = "minecraft:flowering_azalea".toResourceLocation()
+ val MOSS_CARPET = "minecraft:moss_carpet".toResourceLocation()
+ val MOSS_BLOCK = "minecraft:moss_block".toResourceLocation()
+ val BIG_DRIPLEAF = "minecraft:big_dripleaf".toResourceLocation()
+ val BIG_DRIPLEAF_STEM = "minecraft:big_dripleaf_stem".toResourceLocation()
+ val SMALL_DRIPLEAF = "minecraft:small_dripleaf".toResourceLocation()
+ val HANGING_ROOTS = "minecraft:hanging_roots".toResourceLocation()
+ val ROOTED_DIRT = "minecraft:rooted_dirt".toResourceLocation()
+ val DEEPSLATE = "minecraft:deepslate".toResourceLocation()
+ val COBBLED_DEEPSLATE = "minecraft:cobbled_deepslate".toResourceLocation()
+ val COBBLED_DEEPSLATE_STAIRS = "minecraft:cobbled_deepslate_stairs".toResourceLocation()
+ val COBBLED_DEEPSLATE_SLAB = "minecraft:cobbled_deepslate_slab".toResourceLocation()
+ val COBBLED_DEEPSLATE_WALL = "minecraft:cobbled_deepslate_wall".toResourceLocation()
+ val POLISHED_DEEPSLATE = "minecraft:polished_deepslate".toResourceLocation()
+ val POLISHED_DEEPSLATE_STAIRS = "minecraft:polished_deepslate_stairs".toResourceLocation()
+ val POLISHED_DEEPSLATE_SLAB = "minecraft:polished_deepslate_slab".toResourceLocation()
+ val POLISHED_DEEPSLATE_WALL = "minecraft:polished_deepslate_wall".toResourceLocation()
+ val DEEPSLATE_TILES = "minecraft:deepslate_tiles".toResourceLocation()
+ val DEEPSLATE_TILE_STAIRS = "minecraft:deepslate_tile_stairs".toResourceLocation()
+ val DEEPSLATE_TILE_SLAB = "minecraft:deepslate_tile_slab".toResourceLocation()
+ val DEEPSLATE_TILE_WALL = "minecraft:deepslate_tile_wall".toResourceLocation()
+ val DEEPSLATE_BRICKS = "minecraft:deepslate_bricks".toResourceLocation()
+ val DEEPSLATE_BRICK_STAIRS = "minecraft:deepslate_brick_stairs".toResourceLocation()
+ val DEEPSLATE_BRICK_SLAB = "minecraft:deepslate_brick_slab".toResourceLocation()
+ val DEEPSLATE_BRICK_WALL = "minecraft:deepslate_brick_wall".toResourceLocation()
+ val CHISELED_DEEPSLATE = "minecraft:chiseled_deepslate".toResourceLocation()
+ val CRACKED_DEEPSLATE_BRICKS = "minecraft:cracked_deepslate_bricks".toResourceLocation()
+ val CRACKED_DEEPSLATE_TILES = "minecraft:cracked_deepslate_tiles".toResourceLocation()
+ val INFESTED_DEEPSLATE = "minecraft:infested_deepslate".toResourceLocation()
+ val SMOOTH_BASALT = "minecraft:smooth_basalt".toResourceLocation()
+ val RAW_IRON_BLOCK = "minecraft:raw_iron_block".toResourceLocation()
+ val RAW_COPPER_BLOCK = "minecraft:raw_copper_block".toResourceLocation()
+ val RAW_GOLD_BLOCK = "minecraft:raw_gold_block".toResourceLocation()
+ val POTTED_AZALEA_BUSH = "minecraft:potted_azalea_bush".toResourceLocation()
+ val POTTED_FLOWERING_AZALEA_BUSH = "minecraft:potted_flowering_azalea_bush".toResourceLocation()
+}
diff --git a/src/main/java/de/bixilon/minosoft/data/registries/items/tools/SwordItem.kt b/src/main/java/de/bixilon/minosoft/data/registries/items/tools/SwordItem.kt
index 30434f7d3..37734082c 100644
--- a/src/main/java/de/bixilon/minosoft/data/registries/items/tools/SwordItem.kt
+++ b/src/main/java/de/bixilon/minosoft/data/registries/items/tools/SwordItem.kt
@@ -16,7 +16,7 @@ package de.bixilon.minosoft.data.registries.items.tools
import de.bixilon.minosoft.data.inventory.ItemStack
import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.blocks.BlockState
-import de.bixilon.minosoft.data.registries.blocks.DefaultBlocks
+import de.bixilon.minosoft.data.registries.blocks.MinecraftBlocks
import de.bixilon.minosoft.data.registries.registries.Registries
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.KUtil.unsafeCast
@@ -30,7 +30,7 @@ open class SwordItem(
override val attackDamage = data["attack_damage"]?.unsafeCast() ?: -1.0f
override fun getMiningSpeedMultiplier(connection: PlayConnection, blockState: BlockState, itemStack: ItemStack): Float {
- if (blockState.block.resourceLocation == DefaultBlocks.COBWEB) {
+ if (blockState.block.resourceLocation == MinecraftBlocks.COBWEB) {
return 15.0f
}
return super.getMiningSpeedMultiplier(connection, blockState, itemStack)
diff --git a/src/main/java/de/bixilon/minosoft/data/tags/DefaultBlockTags.kt b/src/main/java/de/bixilon/minosoft/data/tags/DefaultBlockTags.kt
index e8239fb53..51235b59e 100644
--- a/src/main/java/de/bixilon/minosoft/data/tags/DefaultBlockTags.kt
+++ b/src/main/java/de/bixilon/minosoft/data/tags/DefaultBlockTags.kt
@@ -13,8 +13,8 @@
package de.bixilon.minosoft.data.tags
-import de.bixilon.minosoft.data.registries.blocks.DefaultBlocks
+import de.bixilon.minosoft.data.registries.blocks.MinecraftBlocks
object DefaultBlockTags {
- val CLIMBABLE = setOf(DefaultBlocks.LADDER, DefaultBlocks.VINE, DefaultBlocks.SCAFFOLDING, DefaultBlocks.WEEPING_VINES, DefaultBlocks.WEEPING_VINES_PLANT, DefaultBlocks.TWISTING_VINES, DefaultBlocks.WEEPING_VINES_PLANT, DefaultBlocks.CAVE_VINES, DefaultBlocks.CAVE_VINES_PLANT)
+ val CLIMBABLE = setOf(MinecraftBlocks.LADDER, MinecraftBlocks.VINE, MinecraftBlocks.SCAFFOLDING, MinecraftBlocks.WEEPING_VINES, MinecraftBlocks.WEEPING_VINES_PLANT, MinecraftBlocks.TWISTING_VINES, MinecraftBlocks.WEEPING_VINES_PLANT, MinecraftBlocks.CAVE_VINES, MinecraftBlocks.CAVE_VINES_PLANT)
}
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/particle/types/render/texture/advanced/block/BlockDustParticle.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/particle/types/render/texture/advanced/block/BlockDustParticle.kt
index 9b7f96a85..60fd7380a 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/particle/types/render/texture/advanced/block/BlockDustParticle.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/particle/types/render/texture/advanced/block/BlockDustParticle.kt
@@ -14,7 +14,7 @@
package de.bixilon.minosoft.gui.rendering.particle.types.render.texture.advanced.block
import de.bixilon.minosoft.data.registries.ResourceLocation
-import de.bixilon.minosoft.data.registries.blocks.DefaultBlocks
+import de.bixilon.minosoft.data.registries.blocks.MinecraftBlocks
import de.bixilon.minosoft.data.registries.particle.data.BlockParticleData
import de.bixilon.minosoft.data.registries.particle.data.ParticleData
import de.bixilon.minosoft.data.text.RGBColor
@@ -38,7 +38,7 @@ class BlockDustParticle(connection: PlayConnection, position: Vec3d, velocity: V
gravityStrength = 1.0f
color = 0.6f.asGray()
- if (data.blockState.block.resourceLocation != DefaultBlocks.GRASS_BLOCK) {
+ if (data.blockState.block.resourceLocation != MinecraftBlocks.GRASS_BLOCK) {
val tintColor = connection.rendering!!.renderWindow.tintManager.getTint(data.blockState, null, blockPosition)?.asRGBColor()
tintColor?.let {
@@ -60,7 +60,7 @@ class BlockDustParticle(connection: PlayConnection, position: Vec3d, velocity: V
override fun build(connection: PlayConnection, position: Vec3d, velocity: Vec3d, data: ParticleData): BlockDustParticle? {
check(data is BlockParticleData)
- if (data.blockState == null || data.blockState.block.resourceLocation == DefaultBlocks.MOVING_PISTON) {
+ if (data.blockState == null || data.blockState.block.resourceLocation == MinecraftBlocks.MOVING_PISTON) {
return null
}
return BlockDustParticle(connection, position, velocity, data)
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/tint/FoliageTintCalculator.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/tint/FoliageTintCalculator.kt
new file mode 100644
index 000000000..58be221ba
--- /dev/null
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/tint/FoliageTintCalculator.kt
@@ -0,0 +1,23 @@
+package de.bixilon.minosoft.gui.rendering.tint
+
+import de.bixilon.minosoft.data.assets.AssetsManager
+import de.bixilon.minosoft.data.registries.biomes.Biome
+import de.bixilon.minosoft.data.registries.blocks.BlockState
+import de.bixilon.minosoft.gui.rendering.textures.TextureUtil.texture
+import de.bixilon.minosoft.util.KUtil.toResourceLocation
+
+class FoliageTintCalculator : TintProvider {
+ private lateinit var colorMap: IntArray
+
+ fun init(assetsManager: AssetsManager) {
+ colorMap = assetsManager.readRGBArrayAsset("minecraft:colormap/foliage".toResourceLocation().texture())
+ }
+
+ override fun getColor(blockState: BlockState?, biome: Biome?, x: Int, y: Int, z: Int, tintIndex: Int): Int {
+ if (blockState == null || biome == null) {
+ return 0x48B518
+ }
+ // ToDo: Override
+ return colorMap[biome.downfallColorMapCoordinate shl 8 or biome.getClampedTemperature(y)]
+ }
+}
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/tint/GrassTintCalculator.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/tint/GrassTintCalculator.kt
index 0951df02d..e7fe6bb3d 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/tint/GrassTintCalculator.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/tint/GrassTintCalculator.kt
@@ -7,11 +7,10 @@ import de.bixilon.minosoft.gui.rendering.textures.TextureUtil.texture
import de.bixilon.minosoft.util.KUtil.toResourceLocation
class GrassTintCalculator : TintProvider {
- override val indices: Int = 1
private lateinit var colorMap: IntArray
fun init(assetsManager: AssetsManager) {
- colorMap = assetsManager.readAGBArrayAsset("minecraft:colormap/grass".toResourceLocation().texture())
+ colorMap = assetsManager.readRGBArrayAsset("minecraft:colormap/grass".toResourceLocation().texture())
}
fun getColor(downfall: Int, temperature: Int): Int {
@@ -27,7 +26,7 @@ class GrassTintCalculator : TintProvider {
return color
}
- override fun getColor(blockState: BlockState, biome: Biome?, x: Int, y: Int, z: Int, tintIndex: Int): Int {
+ override fun getColor(blockState: BlockState?, biome: Biome?, x: Int, y: Int, z: Int, tintIndex: Int): Int {
if (biome == null) {
return getColor(127, 127)
}
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/tint/MultiTintProvider.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/tint/MultiTintProvider.kt
new file mode 100644
index 000000000..fef7992a6
--- /dev/null
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/tint/MultiTintProvider.kt
@@ -0,0 +1,5 @@
+package de.bixilon.minosoft.gui.rendering.tint
+
+interface MultiTintProvider {
+ val tints: Int
+}
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/tint/RedstoneWireTintCalculator.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/tint/RedstoneWireTintCalculator.kt
new file mode 100644
index 000000000..8e21509fa
--- /dev/null
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/tint/RedstoneWireTintCalculator.kt
@@ -0,0 +1,23 @@
+package de.bixilon.minosoft.gui.rendering.tint
+
+import de.bixilon.minosoft.data.registries.biomes.Biome
+import de.bixilon.minosoft.data.registries.blocks.BlockState
+import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties
+import de.bixilon.minosoft.data.text.RGBColor
+import de.bixilon.minosoft.util.KUtil.toInt
+import de.bixilon.minosoft.util.MMath
+
+object RedstoneWireTintCalculator : TintProvider {
+ private val COLORS = IntArray(16) {
+ val level = it / 15.0f
+ val red = level * 0.6f + (if (it > 0) 0.4f else 0.3f)
+ val green = MMath.clamp(level * level * 0.7f - 0.5f, 0.0f, 1.0f)
+ val blue = MMath.clamp(level * level * 0.6f - 0.7f, 0.0f, 1.0f)
+ return@IntArray ((red * RGBColor.COLOR_FLOAT_DIVIDER).toInt() shl 16) or ((green * RGBColor.COLOR_FLOAT_DIVIDER).toInt() shl 8) or ((blue * RGBColor.COLOR_FLOAT_DIVIDER).toInt())
+ }
+
+
+ override fun getColor(blockState: BlockState?, biome: Biome?, x: Int, y: Int, z: Int, tintIndex: Int): Int {
+ return COLORS[blockState?.properties?.get(BlockProperties.REDSTONE_POWER)?.toInt() ?: return -1]
+ }
+}
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/tint/StaticTintProvider.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/tint/StaticTintProvider.kt
new file mode 100644
index 000000000..6bad3d205
--- /dev/null
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/tint/StaticTintProvider.kt
@@ -0,0 +1,11 @@
+package de.bixilon.minosoft.gui.rendering.tint
+
+import de.bixilon.minosoft.data.registries.biomes.Biome
+import de.bixilon.minosoft.data.registries.blocks.BlockState
+
+class StaticTintProvider(val color: Int) : TintProvider {
+
+ override fun getColor(blockState: BlockState?, biome: Biome?, x: Int, y: Int, z: Int, tintIndex: Int): Int {
+ return color
+ }
+}
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/tint/StemTintCalculator.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/tint/StemTintCalculator.kt
new file mode 100644
index 000000000..0bcd01970
--- /dev/null
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/tint/StemTintCalculator.kt
@@ -0,0 +1,16 @@
+package de.bixilon.minosoft.gui.rendering.tint
+
+import de.bixilon.minosoft.data.registries.biomes.Biome
+import de.bixilon.minosoft.data.registries.blocks.BlockState
+import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties
+import de.bixilon.minosoft.util.KUtil.toInt
+
+object StemTintCalculator : TintProvider {
+
+
+ override fun getColor(blockState: BlockState?, biome: Biome?, x: Int, y: Int, z: Int, tintIndex: Int): Int {
+ val age = blockState?.properties?.get(BlockProperties.AGE)?.toInt() ?: return -1
+
+ return ((age * 32) shl 16) or ((0xFF - age * 8) shl 8) or (age * 4)
+ }
+}
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/tint/TintManager.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/tint/TintManager.kt
index bcac44ab1..63f18f394 100644
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/tint/TintManager.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/tint/TintManager.kt
@@ -17,22 +17,22 @@ import de.bixilon.minosoft.data.assets.AssetsManager
import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.data.registries.biomes.Biome
import de.bixilon.minosoft.data.registries.blocks.BlockState
-import de.bixilon.minosoft.data.registries.blocks.DefaultBlocks
+import de.bixilon.minosoft.data.registries.blocks.MinecraftBlocks
+import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties
+import de.bixilon.minosoft.data.registries.blocks.properties.Halves
import de.bixilon.minosoft.data.text.RGBColor
import de.bixilon.minosoft.data.text.RGBColor.Companion.asRGBColor
import de.bixilon.minosoft.data.world.Chunk
-import de.bixilon.minosoft.gui.rendering.textures.TextureUtil.texture
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
-import de.bixilon.minosoft.util.KUtil.toResourceLocation
import glm_.vec3.Vec3i
class TintManager(private val connection: PlayConnection) {
private val grassTintCalculator = GrassTintCalculator()
- private lateinit var foliageColorMap: IntArray
+ private val foliageTintCalculator = FoliageTintCalculator()
fun init(assetsManager: AssetsManager) {
grassTintCalculator.init(assetsManager)
- foliageColorMap = assetsManager.readAGBArrayAsset("minecraft:colormap/foliage".toResourceLocation().texture())
+ foliageTintCalculator.init(assetsManager)
val blockRegistry = connection.registries.blockRegistry
for ((blockNames, provider) in createDefaultTints()) {
@@ -48,7 +48,7 @@ class TintManager(private val connection: PlayConnection) {
val inChunkX = x and 0x0F
val inChunkZ = z and 0x0F
val biome = chunk.getBiome(inChunkX, y, inChunkZ)
- val tints = IntArray(tintProvider.indices)
+ val tints = IntArray(if (tintProvider is MultiTintProvider) tintProvider.tints else 1)
for (tintIndex in tints.indices) {
tints[tintIndex] = tintProvider.getColor(blockState, biome, x, y, z, tintIndex)
@@ -66,10 +66,30 @@ class TintManager(private val connection: PlayConnection) {
private fun createDefaultTints(): Map, TintProvider> {
- val defaultTints: Map, TintProvider> = mapOf(
- setOf(DefaultBlocks.GRASS_BLOCK) to grassTintCalculator
+ return mapOf(
+ setOf(MinecraftBlocks.GRASS_BLOCK, MinecraftBlocks.FERN, MinecraftBlocks.GRASS, MinecraftBlocks.POTTED_FERN) to grassTintCalculator,
+ setOf(MinecraftBlocks.LARGE_FERN, MinecraftBlocks.TALL_GRASS) to TintProvider { blockState: BlockState?, biome: Biome?, x: Int, y: Int, z: Int, tintIndex: Int ->
+ return@TintProvider if (blockState?.properties?.get(BlockProperties.STAIR_HALF) == Halves.UPPER) {
+ grassTintCalculator.getColor(blockState, biome, x, y - 1, z, tintIndex)
+ } else {
+ grassTintCalculator.getColor(blockState, biome, x, y, z, tintIndex)
+ }
+ },
+ setOf(MinecraftBlocks.SPRUCE_LEAVES) to StaticTintProvider(0x619961),
+ setOf(MinecraftBlocks.BIRCH_LEAVES) to StaticTintProvider(0x80A755),
+ setOf(MinecraftBlocks.OAK_LEAVES, MinecraftBlocks.JUNGLE_LEAVES, MinecraftBlocks.ACACIA_LEAVES, MinecraftBlocks.DARK_OAK_LEAVES, MinecraftBlocks.VINE) to foliageTintCalculator,
+ // ToDo: Water
+ setOf(MinecraftBlocks.REDSTONE_WIRE) to RedstoneWireTintCalculator,
+ setOf(MinecraftBlocks.SUGAR_CANE) to TintProvider { blockState: BlockState?, biome: Biome?, x: Int, y: Int, z: Int, tintIndex: Int ->
+ if (blockState == null || biome == null) {
+ return@TintProvider -1
+ }
+ return@TintProvider grassTintCalculator.getColor(blockState, biome, x, y, z, tintIndex)
+ },
+ setOf(MinecraftBlocks.ATTACHED_MELON_STEM, MinecraftBlocks.ATTACHED_PUMPKIN_STEM) to StaticTintProvider(0xE0C71C),
+ setOf(MinecraftBlocks.MELON_STEM, MinecraftBlocks.PUMPKIN_STEM) to StemTintCalculator,
+ setOf(MinecraftBlocks.LILY_PAD) to TintProvider { blockState: BlockState?, biome: Biome?, _: Int, _: Int, _: Int, _: Int -> if (blockState == null || biome == null) 0x71C35C else 0x208030 },
)
- return defaultTints
}
companion object {
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/tint/TintProvider.java b/src/main/java/de/bixilon/minosoft/gui/rendering/tint/TintProvider.java
new file mode 100644
index 000000000..ec7ed5f99
--- /dev/null
+++ b/src/main/java/de/bixilon/minosoft/gui/rendering/tint/TintProvider.java
@@ -0,0 +1,10 @@
+package de.bixilon.minosoft.gui.rendering.tint;
+
+import de.bixilon.minosoft.data.registries.biomes.Biome;
+import de.bixilon.minosoft.data.registries.blocks.BlockState;
+
+import javax.annotation.Nullable;
+
+public interface TintProvider {
+ int getColor(@Nullable BlockState blockState, @Nullable Biome biome, int x, int y, int z, int tintIndex);
+}
diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/tint/TintProvider.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/tint/TintProvider.kt
deleted file mode 100644
index 38e308a46..000000000
--- a/src/main/java/de/bixilon/minosoft/gui/rendering/tint/TintProvider.kt
+++ /dev/null
@@ -1,10 +0,0 @@
-package de.bixilon.minosoft.gui.rendering.tint
-
-import de.bixilon.minosoft.data.registries.biomes.Biome
-import de.bixilon.minosoft.data.registries.blocks.BlockState
-
-interface TintProvider {
- val indices: Int
-
- fun getColor(blockState: BlockState, biome: Biome?, x: Int, y: Int, z: Int, tintIndex: Int): Int
-}