more tints

This commit is contained in:
Bixilon 2021-11-17 18:57:41 +01:00
parent 73c5829893
commit 63d40dcad7
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
16 changed files with 1048 additions and 70 deletions

View File

@ -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)

View File

@ -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

View File

@ -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 <https://www.gnu.org/licenses/>.
*
* 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()
}

View File

@ -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 <https://www.gnu.org/licenses/>.
*
* 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()
}

View File

@ -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<Float>() ?: -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)

View File

@ -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)
}

View File

@ -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)

View File

@ -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)]
}
}

View File

@ -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)
}

View File

@ -0,0 +1,5 @@
package de.bixilon.minosoft.gui.rendering.tint
interface MultiTintProvider {
val tints: Int
}

View File

@ -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]
}
}

View File

@ -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
}
}

View File

@ -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)
}
}

View File

@ -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<Set<ResourceLocation>, TintProvider> {
val defaultTints: Map<Set<ResourceLocation>, 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 {

View File

@ -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);
}

View File

@ -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
}