From 8b314cb57047dedc1e357d6902cfc39b56dfb095 Mon Sep 17 00:00:00 2001 From: Noah Jelen Date: Sun, 30 Dec 2018 13:43:39 -0700 Subject: [PATCH] The Blues Update --- changelog.txt | 14 + .../CustomBlockCode/RubyPlateCode.java | 102 -- .../buttonTicks/DiamondButtonTicks.java | 314 ----- .../buttonTicks/EmeraldButtonTicks.java | 316 ----- .../buttonTicks/QuickButton.java | 293 ----- .../ParadiseMod/CustomBlockCode/planks.java | 111 -- .../pressurePlates/BedrockPlateCode.java | 106 -- .../pressurePlates/DiamondPlateCode.java | 103 -- .../pressurePlates/EmeraldPlateCode.java | 103 -- .../ParadiseMod/CustomBlockCode/xmasTree.java | 174 --- .../GUI/ContainerCustomCraftBench.java | 1 + .../NetherNoah/ParadiseMod/ParadiseMod.java | 6 +- .../com/NetherNoah/ParadiseMod/Reference.java | 7 +- .../com/NetherNoah/ParadiseMod/Utils.java | 64 + .../RSDoor.java => blocks/RedstoneDoor.java} | 149 +-- .../blocks/{fences => }/RedstoneFence.java | 2 +- .../RedstoneFenceGate.java} | 94 +- .../RedstoneTrapdoor.java} | 61 +- .../ParadiseMod/blocks/base/BasicBlock.java | 20 + .../icicle.java => base/CaveFormation.java} | 29 +- .../emeraldCrystal.java => base/Crystal.java} | 34 +- .../base/CustomButton.java} | 137 ++- .../ParadiseMod/blocks/base/CustomDoor.java | 45 + .../CustomFence.java} | 17 +- .../CustomGate.java} | 29 +- .../soulGlass.java => base/CustomGlass.java} | 31 +- .../CoalOreVoid.java => base/CustomOre.java} | 61 +- .../ParadiseMod/blocks/base/CustomPane.java | 40 + .../{misc/Rose.java => base/CustomPlant.java} | 24 +- .../blocks/base/CustomPressurePlate.java | 161 +++ .../BedrockSlab.java => base/CustomSlab.java} | 46 +- .../ParadiseMod/blocks/base/CustomStairs.java | 14 + .../blocks/base/CustomTrapDoor.java | 43 + .../base}/CustomWall.java | 20 +- .../base}/CustomWorkBench.java | 10 +- .../base/MossyFurnaceBase.java} | 11 +- .../base/VoidFurnaceBase.java} | 14 +- .../blocks/buttons/BedrockButton.java | 13 - .../blocks/buttons/CobblestoneButton.java | 11 - .../blocks/buttons/DiamondButton.java | 31 - .../blocks/buttons/DirtButton.java | 12 - .../blocks/buttons/EmeraldButton.java | 31 - .../ParadiseMod/blocks/buttons/EndButton.java | 11 - .../blocks/buttons/GlowingObsidianButton.java | 13 - .../blocks/buttons/GoldButton.java | 33 - .../blocks/buttons/GrassButton.java | 12 - .../blocks/buttons/IronButton.java | 30 - .../blocks/buttons/MossyButton.java | 11 - .../blocks/buttons/ObsidianButton.java | 12 - .../blocks/buttons/RubyButton.java | 31 - .../blocks/buttons/RustyButton.java | 31 - .../blocks/buttons/SilverButton.java | 31 - .../blocks/buttons/VoidButton.java | 11 - .../buttons/stoneVariants/AndesiteButton.java | 11 - .../buttons/stoneVariants/DioriteButton.java | 11 - .../buttons/stoneVariants/GraniteButton.java | 11 - .../blocks/buttons/wood/AcaciaButton.java | 13 - .../blocks/buttons/wood/BirchButton.java | 13 - .../blocks/buttons/wood/CactusButton.java | 13 - .../blocks/buttons/wood/DarkOakButton.java | 13 - .../blocks/buttons/wood/JungleButton.java | 13 - .../blocks/buttons/wood/SpruceButton.java | 13 - .../blocks/crystals/diamondCrystal.java | 109 -- .../blocks/crystals/quartzCrystal.java | 109 -- .../blocks/crystals/redstoneCrystal.java | 121 -- .../blocks/crystals/rubyCrystal.java | 109 -- .../blocks/doors/AndesiteDoor.java | 4 +- .../ParadiseMod/blocks/doors/BedrockDoor.java | 4 +- .../ParadiseMod/blocks/doors/CactusDoor.java | 4 +- .../blocks/doors/CobblestoneDoor.java | 4 +- .../ParadiseMod/blocks/doors/DiamondDoor.java | 4 +- .../ParadiseMod/blocks/doors/DioriteDoor.java | 4 +- .../ParadiseMod/blocks/doors/EmeraldDoor.java | 4 +- .../ParadiseMod/blocks/doors/EndDoor.java | 4 +- .../ParadiseMod/blocks/doors/GlassDoor.java | 4 +- .../blocks/doors/GlowingObsidianDoor.java | 4 +- .../ParadiseMod/blocks/doors/GoldDoor.java | 4 +- .../ParadiseMod/blocks/doors/GraniteDoor.java | 4 +- .../blocks/doors/MossStoneDoor.java | 4 +- .../blocks/doors/ObsidianDoor.java | 6 +- .../blocks/doors/RedstoneDoor.java | 61 - .../ParadiseMod/blocks/doors/RubyDoor.java | 6 +- .../ParadiseMod/blocks/doors/RustyDoor.java | 4 +- .../ParadiseMod/blocks/doors/SilverDoor.java | 4 +- .../ParadiseMod/blocks/doors/StoneDoor.java | 4 +- .../blocks/fenceGates/BrickFenceGate.java | 51 - .../blocks/fenceGates/CactusFenceGate.java | 52 - .../blocks/fenceGates/DiamondFenceGate.java | 53 - .../blocks/fenceGates/EmeraldFenceGate.java | 53 - .../blocks/fenceGates/IronFenceGate.java | 52 - .../blocks/fenceGates/RedstoneFenceGate.java | 62 - .../blocks/fenceGates/RubyFenceGate.java | 52 - .../blocks/fenceGates/RustyFenceGate.java | 52 - .../blocks/fenceGates/SilverFenceGate.java | 52 - .../blocks/fences/BedrockWall.java | 18 - .../ParadiseMod/blocks/fences/BrickFence.java | 35 - .../blocks/fences/DiamondFence.java | 37 - .../blocks/fences/EmeraldFence.java | 37 - .../ParadiseMod/blocks/fences/EndWall.java | 17 - .../blocks/fences/GlowingObsidianWall.java | 18 - .../ParadiseMod/blocks/fences/GoldFence.java | 37 - .../ParadiseMod/blocks/fences/IronFence.java | 37 - .../blocks/fences/ObsidianWall.java | 17 - .../ParadiseMod/blocks/fences/RubyFence.java | 37 - .../ParadiseMod/blocks/fences/RustyFence.java | 37 - .../blocks/fences/SilverFence.java | 37 - .../ParadiseMod/blocks/fences/VoidWall.java | 17 - .../formations/mossyStoneFormation.java | 100 -- .../formations/netherrackFormation.java | 100 -- .../blocks/formations/sandstoneFormation.java | 100 -- .../blocks/formations/stoneFormation.java | 100 -- .../ParadiseMod/blocks/misc/BlueRose.java | 58 - .../blocks/misc/CompressedCactus.java | 16 - .../ParadiseMod/blocks/misc/DUPortal.java | 39 +- .../ParadiseMod/blocks/misc/DVPortal.java | 8 +- .../ParadiseMod/blocks/misc/GoldBars.java | 19 - .../ParadiseMod/blocks/misc/MossyFurnace.java | 17 - .../blocks/misc/MossyFurnaceLit.java | 14 - .../blocks/misc/PolishedVoidStone.java | 16 - .../blocks/misc/RustyIronBars.java | 19 - .../ParadiseMod/blocks/misc/SilverBars.java | 19 - .../ParadiseMod/blocks/misc/Stonecutter.java | 16 - .../ParadiseMod/blocks/misc/VoidBricks.java | 16 - .../ParadiseMod/blocks/misc/VoidFurnace.java | 17 - .../blocks/misc/VoidFurnaceLit.java | 14 - .../ParadiseMod/blocks/misc/VoidStone.java | 15 - .../blocks/misc/bulletproofGlass.java | 60 - .../ParadiseMod/blocks/misc/glowingIce.java | 21 - .../blocks/misc/glowingObsidian.java | 25 - .../blocks/misc/soulGlassPane.java | 26 - .../blocks/ores/EnderPearlOre.java | 85 -- .../blocks/ores/GoldOreNether.java | 17 - .../ParadiseMod/blocks/ores/GoldOreVoid.java | 17 - .../ParadiseMod/blocks/ores/IronOreVoid.java | 17 - .../ParadiseMod/blocks/ores/RubyOre.java | 85 -- .../ParadiseMod/blocks/ores/RubyOreEnd.java | 85 -- .../ParadiseMod/blocks/ores/SaltOre.java | 75 -- .../ParadiseMod/blocks/ores/SilverOre.java | 17 - .../blocks/ores/SilverOreNether.java | 17 - .../blocks/ores/SilverOreVoid.java | 17 - .../ParadiseMod/blocks/ores/VoidPearlOre.java | 85 -- .../blocks/pressurePlates/BedrockPlate.java | 16 - .../pressurePlates/CobblestonePlate.java | 14 - .../blocks/pressurePlates/DiamondPlate.java | 16 - .../blocks/pressurePlates/DirtPlate.java | 14 - .../blocks/pressurePlates/EmeraldPlate.java | 17 - .../blocks/pressurePlates/EndPlate.java | 14 - .../pressurePlates/GlowingObsidianPlate.java | 16 - .../blocks/pressurePlates/GrassPlate.java | 14 - .../blocks/pressurePlates/MossyPlate.java | 14 - .../blocks/pressurePlates/RubyPlate.java | 17 - .../blocks/pressurePlates/RustyPlate.java | 15 - .../blocks/pressurePlates/SilverPlate.java | 17 - .../blocks/pressurePlates/VoidPlate.java | 14 - .../stoneVariants/AndesitePlate.java | 14 - .../stoneVariants/DioritePlate.java | 14 - .../stoneVariants/GranitePlate.java | 14 - .../pressurePlates/wood/AcaciaPlate.java | 14 - .../pressurePlates/wood/BirchPlate.java | 14 - .../pressurePlates/wood/CactusPlate.java | 14 - .../pressurePlates/wood/DarkOakPlate.java | 14 - .../pressurePlates/wood/JunglePlate.java | 14 - .../pressurePlates/wood/SprucePlate.java | 14 - .../blocks/redstone/lamps/BlackRSLamp.java | 8 +- .../blocks/redstone/lamps/BlueRSLamp.java | 8 +- .../blocks/redstone/lamps/BrownRSLamp.java | 8 +- .../blocks/redstone/lamps/CyanRSLamp.java | 8 +- .../blocks/redstone/lamps/GrayRSLamp.java | 8 +- .../blocks/redstone/lamps/GreenRSLamp.java | 8 +- .../redstone/lamps/LightBlueRSLamp.java | 8 +- .../blocks/redstone/lamps/LimeRSLamp.java | 8 +- .../blocks/redstone/lamps/MagentaRSLamp.java | 8 +- .../blocks/redstone/lamps/OrangeRSLamp.java | 8 +- .../blocks/redstone/lamps/PinkRSLamp.java | 8 +- .../blocks/redstone/lamps/PurpleRSLamp.java | 8 +- .../blocks/redstone/lamps/RedRSLamp.java | 8 +- .../blocks/redstone/lamps/SilverRSLamp.java | 8 +- .../blocks/redstone/lamps/WhiteRSLamp.java | 8 +- .../blocks/redstone/lamps/YellowRSLamp.java | 8 +- .../redstone/lamps/lit/LitBlackRSLamp.java | 10 +- .../redstone/lamps/lit/LitBlueRSLamp.java | 10 +- .../redstone/lamps/lit/LitBrownRSLamp.java | 10 +- .../redstone/lamps/lit/LitCyanRSLamp.java | 10 +- .../redstone/lamps/lit/LitGrayRSLamp.java | 10 +- .../redstone/lamps/lit/LitGreenRSLamp.java | 10 +- .../lamps/lit/LitLightBlueRSLamp.java | 8 +- .../redstone/lamps/lit/LitLimeRSLamp.java | 10 +- .../redstone/lamps/lit/LitMagentaRSLamp.java | 10 +- .../redstone/lamps/lit/LitOrangeRSLamp.java | 10 +- .../redstone/lamps/lit/LitPinkRSLamp.java | 10 +- .../redstone/lamps/lit/LitPurpleRSLamp.java | 10 +- .../redstone/lamps/lit/LitRedRSLamp.java | 10 +- .../redstone/lamps/lit/LitSilverRSLamp.java | 10 +- .../redstone/lamps/lit/LitWhiteRSLamp.java | 10 +- .../redstone/lamps/lit/LitYellowRSLamp.java | 10 +- .../blocks/resourceBlocks/BlockRuby.java | 26 - .../blocks/resourceBlocks/BlockRustyIron.java | 26 - .../blocks/resourceBlocks/SaltBlock.java | 22 - .../blocks/resourceBlocks/SilverBlock.java | 26 - .../blocks/resourceBlocks/blazeBlock.java | 25 - .../blocks/resourceBlocks/endPearlBlock.java | 24 - .../blocks/resourceBlocks/voidPearlBlock.java | 24 - .../ParadiseMod/blocks/slabs/CactusSlab.java | 102 -- .../ParadiseMod/blocks/slabs/EndSlab.java | 99 -- .../blocks/slabs/GlowingObsidianSlab.java | 101 -- .../blocks/slabs/ObsidianSlab.java | 95 -- .../blocks/slabs/VoidBrickSlab.java | 93 -- .../ParadiseMod/blocks/slabs/VoidSlab.java | 99 -- .../slabs/double_slabs/BedrockSlabDouble.java | 31 - .../slabs/double_slabs/CactusSlabDouble.java | 34 - .../slabs/double_slabs/EndSlabDouble.java | 31 - .../GlowingObsidianSlabDouble.java | 32 - .../double_slabs/ObsidianSlabDouble.java | 31 - .../double_slabs/VoidBrickSlabDouble.java | 31 - .../slabs/double_slabs/VoidSlabDouble.java | 31 - .../blocks/stairs/BedrockStairs.java | 17 - .../blocks/stairs/CactusStairs.java | 17 - .../ParadiseMod/blocks/stairs/EndStairs.java | 18 - .../blocks/stairs/GlowingObsidianStairs.java | 18 - .../blocks/stairs/ObsidianStairs.java | 18 - .../blocks/stairs/VoidBrickStairs.java | 17 - .../ParadiseMod/blocks/stairs/VoidStairs.java | 17 - .../{resourceBlocks => }/sugarBlock.java | 2 +- .../blocks/trapdoors/AndesiteTrapdoor.java | 17 - .../blocks/trapdoors/BedrockTrapdoor.java | 17 - .../blocks/trapdoors/CactusTrapdoor.java | 18 - .../blocks/trapdoors/CobblestoneTrapdoor.java | 17 - .../blocks/trapdoors/DiamondTrapdoor.java | 19 - .../blocks/trapdoors/DioriteTrapdoor.java | 19 - .../blocks/trapdoors/EmeraldTrapdoor.java | 38 - .../blocks/trapdoors/EndTrapdoor.java | 17 - .../blocks/trapdoors/GlassTrapdoor.java | 18 - .../trapdoors/GlowingObsidianTrapdoor.java | 18 - .../blocks/trapdoors/GoldTrapdoor.java | 19 - .../blocks/trapdoors/GraniteTrapdoor.java | 17 - .../blocks/trapdoors/MossStoneTrapdoor.java | 17 - .../blocks/trapdoors/ObsidianTrapdoor.java | 17 - .../blocks/trapdoors/RedstoneTrapdoor.java | 51 - .../blocks/trapdoors/RubyTrapdoor.java | 38 - .../blocks/trapdoors/RustyTrapdoor.java | 19 - .../blocks/trapdoors/SilverTrapdoor.java | 19 - .../blocks/trapdoors/StoneTrapdoor.java | 17 - .../workbenches/CustomWorkbenchAcacia.java | 17 - .../workbenches/CustomWorkbenchBirch.java | 17 - .../workbenches/CustomWorkbenchCactus.java | 17 - .../workbenches/CustomWorkbenchDarkOak.java | 17 - .../workbenches/CustomWorkbenchJungle.java | 17 - .../workbenches/CustomWorkbenchSpruce.java | 17 - .../blocks/xmas/ChristmasSapling.java | 164 ++- .../ParadiseMod/config/ModConfig.java | 3 + .../ParadiseMod/handlers/OreDictHandler.java | 6 +- .../ParadiseMod/init/LiquidRedstone.java | 4 +- .../ParadiseMod/init/ModBlocks/Buttons.java | 202 ++- .../ParadiseMod/init/ModBlocks/Chests.java | 11 +- .../ParadiseMod/init/ModBlocks/Crystals.java | 33 +- .../ParadiseMod/init/ModBlocks/Doors.java | 79 +- .../ParadiseMod/init/ModBlocks/Fences.java | 88 +- .../ParadiseMod/init/ModBlocks/Gates.java | 90 +- .../ParadiseMod/init/ModBlocks/Lamps.java | 177 +-- .../ParadiseMod/init/ModBlocks/Misc.java | 291 +++-- .../ParadiseMod/init/ModBlocks/Ores.java | 156 +-- .../ParadiseMod/init/ModBlocks/Plates.java | 166 +-- .../ParadiseMod/init/ModBlocks/Slabs.java | 113 +- .../ParadiseMod/init/ModBlocks/Stairs.java | 42 +- .../ParadiseMod/init/ModBlocks/Tables.java | 46 +- .../ParadiseMod/init/ModBlocks/Trapdoors.java | 158 +-- .../ParadiseMod/init/ModBlocks/Walls.java | 30 +- .../ParadiseMod/init/ModItems/Armor.java | 6 + .../ParadiseMod/init/ModItems/DoorItems.java | 116 +- .../ParadiseMod/init/ModItems/MiscItems.java | 82 +- .../ParadiseMod/init/ModSmelting.java | 10 - .../ParadiseMod/items/CactusStick.java | 12 - .../ParadiseMod/items/CookedEgg.java | 12 - .../ParadiseMod/items/DyeBlack.java | 12 - .../NetherNoah/ParadiseMod/items/DyeBlue.java | 12 - .../ParadiseMod/items/DyeBrown.java | 12 - .../ParadiseMod/items/ItemRuby.java | 12 - .../ParadiseMod/items/RustyIngot.java | 12 - .../ParadiseMod/items/RustyNugget.java | 12 - .../NetherNoah/ParadiseMod/items/Salt.java | 12 - .../ParadiseMod/items/SilverIngot.java | 12 - .../ParadiseMod/items/SilverNugget.java | 12 - .../ParadiseMod/items/VoidPearl.java | 12 - .../items/doors/ItemAndesiteDoor.java | 3 +- .../items/doors/ItemBedrockDoor.java | 2 +- .../items/doors/ItemCactusDoor.java | 2 +- .../items/doors/ItemCobblestoneDoor.java | 2 +- .../items/doors/ItemDiamondDoor.java | 2 +- .../items/doors/ItemDioriteDoor.java | 2 +- .../items/doors/ItemEmeraldDoor.java | 2 +- .../ParadiseMod/items/doors/ItemEndDoor.java | 2 +- .../items/doors/ItemGlassDoor.java | 2 +- .../items/doors/ItemGlowingObsidianDoor.java | 2 +- .../ParadiseMod/items/doors/ItemGoldDoor.java | 2 +- .../items/doors/ItemGraniteDoor.java | 2 +- .../items/doors/ItemMossStoneDoor.java | 2 +- .../items/doors/ItemObsidianDoor.java | 2 +- .../items/doors/ItemRedstoneDoor.java | 91 +- .../ParadiseMod/items/doors/ItemRubyDoor.java | 2 +- .../items/doors/ItemSilverDoor.java | 2 +- .../items/doors/ItemStoneDoor.java | 2 +- .../tileentity/furnace/TEMossyFurnace.java | 29 +- .../tileentity/furnace/TEVoidFurnace.java | 24 +- .../render/TileEntityCactusChestRender.java | 25 +- ...TileEntityCompressedCactusChestRender.java | 25 +- .../world/dimension/DUChunkGenerator.java | 4 +- .../world/dimension/DUWorldProvider.java | 2 +- .../world/dimension/DVChunkGenerator.java | 60 +- .../world/dimension/DVWorldProvider.java | 4 +- .../world/mapgen/MapGenDUCaves.java | 54 +- .../world/mapgen/MapGenDURavines.java | 27 +- .../world/worldgen/caveGen/CaveGenDesert.java | 1 + .../world/worldgen/caveGen/CaveGenHumid.java | 1 + .../world/worldgen/caveGen/CaveGenIcy.java | 1 + .../world/worldgen/caveGen/CaveGenMesa.java | 1 + .../world/worldgen/structures/Buoy.java | 2 +- .../structures/Dungeons/BrickPyramid.java | 69 +- .../structures/Dungeons/Minerbase.java | 2 +- .../structures/Dungeons/MiniStronghold.java | 3 +- .../structures/Dungeons/VoidDungeon.java | 11 - .../structures/Dungeons/VoidDungeonLarge.java | 98 +- .../structures/Dungeons/VoidTower.java | 19 +- .../world/worldgen/structures/EasterEgg.java | 88 +- .../world/worldgen/structures/Home.java | 141 ++- .../world/worldgen/structures/Ocean.java | 38 +- .../world/worldgen/structures/Runway.java | 197 ++- .../worldgen/structures/TreasureChest.java | 3 +- .../world/worldgen/structures/blackCross.java | 167 +++ .../models/block/acacia_door_bottom.json | 123 +- .../models/block/acacia_door_bottom_rh.json | 117 +- .../models/block/acacia_door_top.json | 47 +- .../models/block/acacia_door_top_rh.json | 39 +- .../block/activator_rail_active_flat.json | 278 +---- .../minecraft/models/block/dispenser.json | 36 +- .../models/block/dispenser_vertical.json | 21 +- .../models/block/iron_bars_side_alt.json | 63 +- .../minecraft/models/block/iron_door_top.json | 50 +- .../models/block/iron_door_top_rh.json | 58 +- .../models/block/iron_trapdoor_bottom.json | 58 +- .../models/block/iron_trapdoor_open.json | 217 +--- .../models/block/iron_trapdoor_top.json | 58 +- .../minecraft/models/block/jukebox.json | 7 +- .../models/block/jungle_door_bottom.json | 87 +- .../models/block/jungle_door_bottom_rh.json | 83 +- .../models/block/jungle_door_top.json | 91 +- .../models/block/jungle_door_top_rh.json | 69 +- .../assets/minecraft/models/block/ladder.json | 49 +- .../minecraft/models/block/rail_curved.json | 1089 ++++------------- .../minecraft/models/block/rail_flat.json | 397 ++---- .../models/block/rail_raised_ne.json | 743 +++-------- .../models/block/trapdoor_bottom.json | 76 +- .../minecraft/models/block/trapdoor_open.json | 217 +--- .../minecraft/models/block/trapdoor_top.json | 80 +- .../models/block/wooden_door_top.json | 60 +- .../models/block/wooden_door_top_rh.json | 56 +- .../minecraft/models/item/iron_trapdoor.json | 79 +- .../minecraft/models/item/trapdoor.json | 98 +- .../assets/minecraft/texts/splashes.txt | 9 +- .../minecraft/textures/blocks/anvil_base.png | Bin 0 -> 376 bytes .../textures/blocks/anvil_top_damaged_0.png | Bin 0 -> 310 bytes .../textures/blocks/anvil_top_damaged_1.png | Bin 0 -> 367 bytes .../textures/blocks/anvil_top_damaged_2.png | Bin 0 -> 406 bytes .../minecraft/textures/blocks/beacon.png | Bin 0 -> 208 bytes .../minecraft/textures/blocks/bedrock.png | Bin 0 -> 225 bytes .../textures/blocks/beetroots_stage_0.png | Bin 0 -> 108 bytes .../textures/blocks/beetroots_stage_1.png | Bin 0 -> 128 bytes .../textures/blocks/beetroots_stage_2.png | Bin 0 -> 187 bytes .../textures/blocks/beetroots_stage_3.png | Bin 0 -> 394 bytes .../textures/blocks/bone_block_side.png | Bin 0 -> 289 bytes .../textures/blocks/bone_block_top.png | Bin 0 -> 591 bytes .../minecraft/textures/blocks/bookshelf.png | Bin 0 -> 374 bytes .../textures/blocks/brewing_stand.png | Bin 0 -> 321 bytes .../textures/blocks/brewing_stand_base.png | Bin 0 -> 513 bytes .../minecraft/textures/blocks/brick.png | Bin 0 -> 506 bytes .../textures/blocks/cactus_bottom.png | Bin 0 -> 272 bytes .../minecraft/textures/blocks/cactus_side.png | Bin 0 -> 430 bytes .../minecraft/textures/blocks/cactus_top.png | Bin 0 -> 320 bytes .../minecraft/textures/blocks/cake_bottom.png | Bin 0 -> 144 bytes .../minecraft/textures/blocks/cake_inner.png | Bin 0 -> 165 bytes .../minecraft/textures/blocks/cake_side.png | Bin 0 -> 154 bytes .../minecraft/textures/blocks/cake_top.png | Bin 0 -> 199 bytes .../textures/blocks/carrots_stage_0.png | Bin 0 -> 108 bytes .../textures/blocks/carrots_stage_1.png | Bin 0 -> 128 bytes .../textures/blocks/carrots_stage_2.png | Bin 0 -> 187 bytes .../textures/blocks/carrots_stage_3.png | Bin 0 -> 306 bytes .../textures/blocks/cauldron_bottom.png | Bin 0 -> 147 bytes .../textures/blocks/cauldron_inner.png | Bin 0 -> 337 bytes .../textures/blocks/cauldron_side.png | Bin 0 -> 408 bytes .../textures/blocks/cauldron_top.png | Bin 0 -> 331 bytes .../blocks/chain_command_block_back.png | Bin 0 -> 501 bytes .../chain_command_block_back.png.mcmeta | 6 + .../chain_command_block_conditional.png | Bin 0 -> 473 bytes ...chain_command_block_conditional.png.mcmeta | 6 + .../blocks/chain_command_block_front.png | Bin 0 -> 455 bytes .../chain_command_block_front.png.mcmeta | 6 + .../blocks/chain_command_block_side.png | Bin 0 -> 491 bytes .../chain_command_block_side.png.mcmeta | 6 + .../textures/blocks/chorus_flower.png | Bin 0 -> 695 bytes .../textures/blocks/chorus_flower_dead.png | Bin 0 -> 679 bytes .../textures/blocks/chorus_plant.png | Bin 0 -> 621 bytes .../assets/minecraft/textures/blocks/clay.png | Bin 0 -> 584 bytes .../minecraft/textures/blocks/coal_block.png | Bin 0 -> 239 bytes .../minecraft/textures/blocks/coal_ore.png | Bin 0 -> 257 bytes .../minecraft/textures/blocks/coarse_dirt.png | Bin 0 -> 596 bytes .../minecraft/textures/blocks/cobblestone.png | Bin 0 -> 568 bytes .../textures/blocks/cobblestone_mossy.png | Bin 0 -> 630 bytes .../textures/blocks/cocoa_stage_0.png | Bin 0 -> 248 bytes .../textures/blocks/cocoa_stage_1.png | Bin 0 -> 404 bytes .../textures/blocks/cocoa_stage_2.png | Bin 0 -> 543 bytes .../textures/blocks/command_block_back.png | Bin 0 -> 508 bytes .../blocks/command_block_back.png.mcmeta | 6 + .../blocks/command_block_conditional.png | Bin 0 -> 471 bytes .../command_block_conditional.png.mcmeta | 6 + .../textures/blocks/command_block_front.png | Bin 0 -> 448 bytes .../blocks/command_block_front.png.mcmeta | 6 + .../textures/blocks/command_block_side.png | Bin 0 -> 488 bytes .../blocks/command_block_side.png.mcmeta | 6 + .../textures/blocks/comparator_off.png | Bin 0 -> 410 bytes .../textures/blocks/comparator_on.png | Bin 0 -> 413 bytes .../textures/blocks/concrete_black.png | Bin 0 -> 228 bytes .../textures/blocks/concrete_blue.png | Bin 0 -> 205 bytes .../textures/blocks/concrete_brown.png | Bin 0 -> 223 bytes .../textures/blocks/concrete_cyan.png | Bin 0 -> 233 bytes .../textures/blocks/concrete_gray.png | Bin 0 -> 187 bytes .../textures/blocks/concrete_green.png | Bin 0 -> 219 bytes .../textures/blocks/concrete_light_blue.png | Bin 0 -> 282 bytes .../textures/blocks/concrete_lime.png | Bin 0 -> 279 bytes .../textures/blocks/concrete_magenta.png | Bin 0 -> 251 bytes .../textures/blocks/concrete_orange.png | Bin 0 -> 291 bytes .../textures/blocks/concrete_pink.png | Bin 0 -> 270 bytes .../textures/blocks/concrete_powder_black.png | Bin 0 -> 480 bytes .../textures/blocks/concrete_powder_blue.png | Bin 0 -> 608 bytes .../textures/blocks/concrete_powder_brown.png | Bin 0 -> 612 bytes .../textures/blocks/concrete_powder_cyan.png | Bin 0 -> 590 bytes .../textures/blocks/concrete_powder_gray.png | Bin 0 -> 493 bytes .../textures/blocks/concrete_powder_green.png | Bin 0 -> 615 bytes .../blocks/concrete_powder_light_blue.png | Bin 0 -> 692 bytes .../textures/blocks/concrete_powder_lime.png | Bin 0 -> 633 bytes .../blocks/concrete_powder_magenta.png | Bin 0 -> 684 bytes .../blocks/concrete_powder_orange.png | Bin 0 -> 669 bytes .../textures/blocks/concrete_powder_pink.png | Bin 0 -> 714 bytes .../blocks/concrete_powder_purple.png | Bin 0 -> 618 bytes .../textures/blocks/concrete_powder_red.png | Bin 0 -> 565 bytes .../blocks/concrete_powder_silver.png | Bin 0 -> 567 bytes .../textures/blocks/concrete_powder_white.png | Bin 0 -> 555 bytes .../blocks/concrete_powder_yellow.png | Bin 0 -> 657 bytes .../textures/blocks/concrete_purple.png | Bin 0 -> 236 bytes .../textures/blocks/concrete_red.png | Bin 0 -> 246 bytes .../textures/blocks/concrete_silver.png | Bin 0 -> 205 bytes .../textures/blocks/concrete_white.png | Bin 0 -> 217 bytes .../textures/blocks/concrete_yellow.png | Bin 0 -> 304 bytes .../textures/blocks/crafting_table_front.png | Bin 0 -> 407 bytes .../textures/blocks/crafting_table_side.png | Bin 0 -> 384 bytes .../textures/blocks/crafting_table_top.png | Bin 0 -> 548 bytes .../blocks/daylight_detector_inverted_top.png | Bin 0 -> 148 bytes .../blocks/daylight_detector_side.png | Bin 0 -> 138 bytes .../textures/blocks/daylight_detector_top.png | Bin 0 -> 185 bytes .../minecraft/textures/blocks/deadbush.png | Bin 0 -> 168 bytes .../minecraft/textures/blocks/debug.png | Bin 0 -> 560 bytes .../minecraft/textures/blocks/debug2.png | Bin 0 -> 269 bytes .../textures/blocks/destroy_stage_0.png | Bin 0 -> 102 bytes .../textures/blocks/destroy_stage_1.png | Bin 0 -> 115 bytes .../textures/blocks/destroy_stage_2.png | Bin 0 -> 123 bytes .../textures/blocks/destroy_stage_3.png | Bin 0 -> 145 bytes .../textures/blocks/destroy_stage_4.png | Bin 0 -> 155 bytes .../textures/blocks/destroy_stage_5.png | Bin 0 -> 169 bytes .../textures/blocks/destroy_stage_6.png | Bin 0 -> 177 bytes .../textures/blocks/destroy_stage_7.png | Bin 0 -> 190 bytes .../textures/blocks/destroy_stage_8.png | Bin 0 -> 211 bytes .../textures/blocks/destroy_stage_9.png | Bin 0 -> 218 bytes .../textures/blocks/diamond_block.png | Bin 0 -> 468 bytes .../minecraft/textures/blocks/diamond_ore.png | Bin 0 -> 262 bytes .../assets/minecraft/textures/blocks/dirt.png | Bin 0 -> 266 bytes .../textures/blocks/dirt_podzol_side.png | Bin 0 -> 429 bytes .../textures/blocks/dirt_podzol_top.png | Bin 0 -> 634 bytes .../blocks/dispenser_front_horizontal.png | Bin 0 -> 494 bytes .../blocks/dispenser_front_vertical.png | Bin 0 -> 535 bytes .../textures/blocks/door_acacia_lower.png | Bin 0 -> 543 bytes .../textures/blocks/door_acacia_upper.png | Bin 0 -> 525 bytes .../textures/blocks/door_birch_lower.png | Bin 0 -> 586 bytes .../textures/blocks/door_birch_upper.png | Bin 0 -> 619 bytes .../textures/blocks/door_dark_oak_lower.png | Bin 0 -> 545 bytes .../textures/blocks/door_dark_oak_upper.png | Bin 0 -> 540 bytes .../textures/blocks/door_iron_lower.png | Bin 0 -> 429 bytes .../textures/blocks/door_iron_upper.png | Bin 0 -> 449 bytes .../textures/blocks/door_jungle_lower.png | Bin 0 -> 345 bytes .../textures/blocks/door_jungle_upper.png | Bin 0 -> 364 bytes .../textures/blocks/door_spruce_lower.png | Bin 0 -> 344 bytes .../textures/blocks/door_spruce_upper.png | Bin 0 -> 318 bytes .../textures/blocks/door_wood_lower.png | Bin 0 -> 398 bytes .../textures/blocks/door_wood_upper.png | Bin 0 -> 401 bytes .../blocks/double_plant_fern_bottom.png | Bin 0 -> 403 bytes .../textures/blocks/double_plant_fern_top.png | Bin 0 -> 383 bytes .../blocks/double_plant_grass_bottom.png | Bin 0 -> 415 bytes .../blocks/double_plant_grass_top.png | Bin 0 -> 387 bytes .../blocks/double_plant_paeonia_bottom.png | Bin 0 -> 349 bytes .../blocks/double_plant_paeonia_top.png | Bin 0 -> 342 bytes .../blocks/double_plant_rose_bottom.png | Bin 0 -> 428 bytes .../textures/blocks/double_plant_rose_top.png | Bin 0 -> 320 bytes .../blocks/double_plant_sunflower_back.png | Bin 0 -> 234 bytes .../blocks/double_plant_sunflower_bottom.png | Bin 0 -> 359 bytes .../blocks/double_plant_sunflower_front.png | Bin 0 -> 271 bytes .../blocks/double_plant_sunflower_top.png | Bin 0 -> 347 bytes .../blocks/double_plant_syringa_bottom.png | Bin 0 -> 392 bytes .../blocks/double_plant_syringa_top.png | Bin 0 -> 357 bytes .../minecraft/textures/blocks/dragon_egg.png | Bin 0 -> 192 bytes .../blocks/dropper_front_horizontal.png | Bin 0 -> 492 bytes .../blocks/dropper_front_vertical.png | Bin 0 -> 501 bytes .../textures/blocks/emerald_block.png | Bin 0 -> 658 bytes .../minecraft/textures/blocks/emerald_ore.png | Bin 0 -> 363 bytes .../blocks/enchanting_table_bottom.png | Bin 0 -> 437 bytes .../textures/blocks/enchanting_table_side.png | Bin 0 -> 359 bytes .../textures/blocks/enchanting_table_top.png | Bin 0 -> 221 bytes .../minecraft/textures/blocks/end_bricks.png | Bin 0 -> 579 bytes .../minecraft/textures/blocks/end_rod.png | Bin 0 -> 253 bytes .../minecraft/textures/blocks/end_stone.png | Bin 0 -> 404 bytes .../textures/blocks/endframe_eye.png | Bin 0 -> 201 bytes .../textures/blocks/endframe_side.png | Bin 0 -> 424 bytes .../textures/blocks/endframe_top.png | Bin 0 -> 492 bytes .../textures/blocks/farmland_dry.png | Bin 0 -> 258 bytes .../textures/blocks/farmland_wet.png | Bin 0 -> 610 bytes .../assets/minecraft/textures/blocks/fern.png | Bin 0 -> 157 bytes .../textures/blocks/fire_layer_0.png | Bin 0 -> 12500 bytes .../textures/blocks/fire_layer_0.png.mcmeta | 38 + .../textures/blocks/fire_layer_1.png | Bin 0 -> 13255 bytes .../textures/blocks/fire_layer_1.png.mcmeta | 3 + .../textures/blocks/flower_allium.png | Bin 0 -> 307 bytes .../textures/blocks/flower_blue_orchid.png | Bin 0 -> 348 bytes .../textures/blocks/flower_dandelion.png | Bin 0 -> 145 bytes .../textures/blocks/flower_houstonia.png | Bin 0 -> 334 bytes .../textures/blocks/flower_oxeye_daisy.png | Bin 0 -> 339 bytes .../textures/blocks/flower_paeonia.png | Bin 0 -> 320 bytes .../minecraft/textures/blocks/flower_pot.png | Bin 0 -> 229 bytes .../minecraft/textures/blocks/flower_rose.png | Bin 0 -> 190 bytes .../textures/blocks/flower_tulip_orange.png | Bin 0 -> 369 bytes .../textures/blocks/flower_tulip_pink.png | Bin 0 -> 360 bytes .../textures/blocks/flower_tulip_red.png | Bin 0 -> 357 bytes .../textures/blocks/flower_tulip_white.png | Bin 0 -> 360 bytes .../textures/blocks/frosted_ice_0.png | Bin 0 -> 150 bytes .../textures/blocks/frosted_ice_1.png | Bin 0 -> 179 bytes .../textures/blocks/frosted_ice_2.png | Bin 0 -> 193 bytes .../textures/blocks/frosted_ice_3.png | Bin 0 -> 210 bytes .../textures/blocks/furnace_front_off.png | Bin 0 -> 612 bytes .../textures/blocks/furnace_front_on.png | Bin 0 -> 658 bytes .../textures/blocks/furnace_side.png | Bin 0 -> 564 bytes .../minecraft/textures/blocks/furnace_top.png | Bin 0 -> 550 bytes .../minecraft/textures/blocks/glass.png | Bin 0 -> 184 bytes .../minecraft/textures/blocks/glass_black.png | Bin 0 -> 202 bytes .../minecraft/textures/blocks/glass_blue.png | Bin 0 -> 205 bytes .../minecraft/textures/blocks/glass_brown.png | Bin 0 -> 204 bytes .../minecraft/textures/blocks/glass_cyan.png | Bin 0 -> 204 bytes .../minecraft/textures/blocks/glass_gray.png | Bin 0 -> 202 bytes .../minecraft/textures/blocks/glass_green.png | Bin 0 -> 203 bytes .../textures/blocks/glass_light_blue.png | Bin 0 -> 203 bytes .../minecraft/textures/blocks/glass_lime.png | Bin 0 -> 205 bytes .../textures/blocks/glass_magenta.png | Bin 0 -> 205 bytes .../textures/blocks/glass_orange.png | Bin 0 -> 205 bytes .../textures/blocks/glass_pane_top.png | Bin 0 -> 117 bytes .../textures/blocks/glass_pane_top_black.png | Bin 0 -> 114 bytes .../textures/blocks/glass_pane_top_blue.png | Bin 0 -> 120 bytes .../textures/blocks/glass_pane_top_brown.png | Bin 0 -> 119 bytes .../textures/blocks/glass_pane_top_cyan.png | Bin 0 -> 119 bytes .../textures/blocks/glass_pane_top_gray.png | Bin 0 -> 119 bytes .../textures/blocks/glass_pane_top_green.png | Bin 0 -> 119 bytes .../blocks/glass_pane_top_light_blue.png | Bin 0 -> 120 bytes .../textures/blocks/glass_pane_top_lime.png | Bin 0 -> 119 bytes .../blocks/glass_pane_top_magenta.png | Bin 0 -> 120 bytes .../textures/blocks/glass_pane_top_orange.png | Bin 0 -> 120 bytes .../textures/blocks/glass_pane_top_pink.png | Bin 0 -> 120 bytes .../textures/blocks/glass_pane_top_purple.png | Bin 0 -> 120 bytes .../textures/blocks/glass_pane_top_red.png | Bin 0 -> 119 bytes .../textures/blocks/glass_pane_top_silver.png | Bin 0 -> 120 bytes .../textures/blocks/glass_pane_top_white.png | Bin 0 -> 121 bytes .../textures/blocks/glass_pane_top_yellow.png | Bin 0 -> 120 bytes .../minecraft/textures/blocks/glass_pink.png | Bin 0 -> 204 bytes .../textures/blocks/glass_purple.png | Bin 0 -> 204 bytes .../minecraft/textures/blocks/glass_red.png | Bin 0 -> 203 bytes .../textures/blocks/glass_silver.png | Bin 0 -> 201 bytes .../minecraft/textures/blocks/glass_white.png | Bin 0 -> 201 bytes .../textures/blocks/glass_yellow.png | Bin 0 -> 204 bytes .../blocks/glazed_terracotta_black.png | Bin 0 -> 349 bytes .../blocks/glazed_terracotta_blue.png | Bin 0 -> 257 bytes .../blocks/glazed_terracotta_brown.png | Bin 0 -> 326 bytes .../blocks/glazed_terracotta_cyan.png | Bin 0 -> 360 bytes .../blocks/glazed_terracotta_gray.png | Bin 0 -> 328 bytes .../blocks/glazed_terracotta_green.png | Bin 0 -> 363 bytes .../blocks/glazed_terracotta_light_blue.png | Bin 0 -> 317 bytes .../blocks/glazed_terracotta_lime.png | Bin 0 -> 308 bytes .../blocks/glazed_terracotta_magenta.png | Bin 0 -> 275 bytes .../blocks/glazed_terracotta_orange.png | Bin 0 -> 332 bytes .../blocks/glazed_terracotta_pink.png | Bin 0 -> 250 bytes .../blocks/glazed_terracotta_purple.png | Bin 0 -> 298 bytes .../textures/blocks/glazed_terracotta_red.png | Bin 0 -> 292 bytes .../blocks/glazed_terracotta_silver.png | Bin 0 -> 349 bytes .../blocks/glazed_terracotta_white.png | Bin 0 -> 308 bytes .../blocks/glazed_terracotta_yellow.png | Bin 0 -> 343 bytes .../minecraft/textures/blocks/glowstone.png | Bin 0 -> 283 bytes .../minecraft/textures/blocks/gold_block.png | Bin 0 -> 528 bytes .../minecraft/textures/blocks/gold_ore.png | Bin 0 -> 263 bytes .../textures/blocks/grass_path_side.png | Bin 0 -> 406 bytes .../textures/blocks/grass_path_top.png | Bin 0 -> 796 bytes .../minecraft/textures/blocks/grass_side.png | Bin 0 -> 408 bytes .../textures/blocks/grass_side_overlay.png | Bin 0 -> 219 bytes .../textures/blocks/grass_side_snowed.png | Bin 0 -> 267 bytes .../minecraft/textures/blocks/grass_top.png | Bin 0 -> 560 bytes .../minecraft/textures/blocks/gravel.png | Bin 0 -> 470 bytes .../textures/blocks/hardened_clay.png | Bin 0 -> 551 bytes .../blocks/hardened_clay_stained_black.png | Bin 0 -> 350 bytes .../blocks/hardened_clay_stained_blue.png | Bin 0 -> 390 bytes .../blocks/hardened_clay_stained_brown.png | Bin 0 -> 385 bytes .../blocks/hardened_clay_stained_cyan.png | Bin 0 -> 444 bytes .../blocks/hardened_clay_stained_gray.png | Bin 0 -> 351 bytes .../blocks/hardened_clay_stained_green.png | Bin 0 -> 394 bytes .../hardened_clay_stained_light_blue.png | Bin 0 -> 405 bytes .../blocks/hardened_clay_stained_lime.png | Bin 0 -> 461 bytes .../blocks/hardened_clay_stained_magenta.png | Bin 0 -> 467 bytes .../blocks/hardened_clay_stained_orange.png | Bin 0 -> 463 bytes .../blocks/hardened_clay_stained_pink.png | Bin 0 -> 477 bytes .../blocks/hardened_clay_stained_purple.png | Bin 0 -> 476 bytes .../blocks/hardened_clay_stained_red.png | Bin 0 -> 464 bytes .../blocks/hardened_clay_stained_silver.png | Bin 0 -> 421 bytes .../blocks/hardened_clay_stained_white.png | Bin 0 -> 434 bytes .../blocks/hardened_clay_stained_yellow.png | Bin 0 -> 469 bytes .../textures/blocks/hay_block_side.png | Bin 0 -> 717 bytes .../textures/blocks/hay_block_top.png | Bin 0 -> 714 bytes .../textures/blocks/hopper_inside.png | Bin 0 -> 337 bytes .../textures/blocks/hopper_outside.png | Bin 0 -> 425 bytes .../minecraft/textures/blocks/hopper_top.png | Bin 0 -> 320 bytes .../assets/minecraft/textures/blocks/ice.png | Bin 0 -> 150 bytes .../minecraft/textures/blocks/ice_packed.png | Bin 0 -> 465 bytes .../minecraft/textures/blocks/iron_bars.png | Bin 0 -> 490 bytes .../minecraft/textures/blocks/iron_ore.png | Bin 0 -> 265 bytes .../textures/blocks/iron_trapdoor.png | Bin 0 -> 279 bytes .../textures/blocks/itemframe_background.png | Bin 0 -> 409 bytes .../textures/blocks/jukebox_side.png | Bin 0 -> 395 bytes .../minecraft/textures/blocks/jukebox_top.png | Bin 0 -> 356 bytes .../minecraft/textures/blocks/ladder.png | Bin 0 -> 280 bytes .../minecraft/textures/blocks/lapis_block.png | Bin 0 -> 668 bytes .../minecraft/textures/blocks/lapis_ore.png | Bin 0 -> 446 bytes .../minecraft/textures/blocks/lava_flow.png | Bin 0 -> 5603 bytes .../textures/blocks/lava_flow.png.mcmeta | 5 + .../minecraft/textures/blocks/lava_still.png | Bin 0 -> 6540 bytes .../textures/blocks/lava_still.png.mcmeta | 45 + .../textures/blocks/leaves_acacia.png | Bin 0 -> 515 bytes .../textures/blocks/leaves_big_oak.png | Bin 0 -> 499 bytes .../textures/blocks/leaves_birch.png | Bin 0 -> 499 bytes .../textures/blocks/leaves_jungle.png | Bin 0 -> 341 bytes .../minecraft/textures/blocks/leaves_oak.png | Bin 0 -> 499 bytes .../textures/blocks/leaves_spruce.png | Bin 0 -> 263 bytes .../minecraft/textures/blocks/lever.png | Bin 0 -> 136 bytes .../minecraft/textures/blocks/log_acacia.png | Bin 0 -> 513 bytes .../textures/blocks/log_acacia_top.png | Bin 0 -> 449 bytes .../minecraft/textures/blocks/log_big_oak.png | Bin 0 -> 464 bytes .../textures/blocks/log_big_oak_top.png | Bin 0 -> 435 bytes .../minecraft/textures/blocks/log_birch.png | Bin 0 -> 742 bytes .../textures/blocks/log_birch_top.png | Bin 0 -> 619 bytes .../minecraft/textures/blocks/log_jungle.png | Bin 0 -> 609 bytes .../textures/blocks/log_jungle_top.png | Bin 0 -> 556 bytes .../minecraft/textures/blocks/log_oak.png | Bin 0 -> 528 bytes .../minecraft/textures/blocks/log_oak_top.png | Bin 0 -> 476 bytes .../minecraft/textures/blocks/log_spruce.png | Bin 0 -> 450 bytes .../textures/blocks/log_spruce_top.png | Bin 0 -> 448 bytes .../minecraft/textures/blocks/magma.png | Bin 0 -> 776 bytes .../textures/blocks/magma.png.mcmeta | 11 + .../minecraft/textures/blocks/melon_side.png | Bin 0 -> 448 bytes .../textures/blocks/melon_stem_connected.png | Bin 0 -> 165 bytes .../blocks/melon_stem_disconnected.png | Bin 0 -> 189 bytes .../minecraft/textures/blocks/melon_top.png | Bin 0 -> 323 bytes .../minecraft/textures/blocks/mob_spawner.png | Bin 0 -> 338 bytes .../textures/blocks/mushroom_block_inside.png | Bin 0 -> 314 bytes .../blocks/mushroom_block_skin_brown.png | Bin 0 -> 546 bytes .../blocks/mushroom_block_skin_red.png | Bin 0 -> 427 bytes .../blocks/mushroom_block_skin_stem.png | Bin 0 -> 399 bytes .../textures/blocks/mushroom_brown.png | Bin 0 -> 119 bytes .../textures/blocks/mushroom_red.png | Bin 0 -> 143 bytes .../textures/blocks/mycelium_side.png | Bin 0 -> 441 bytes .../textures/blocks/mycelium_top.png | Bin 0 -> 493 bytes .../textures/blocks/nether_brick.png | Bin 0 -> 326 bytes .../textures/blocks/nether_wart_block.png | Bin 0 -> 410 bytes .../textures/blocks/nether_wart_stage_0.png | Bin 0 -> 152 bytes .../textures/blocks/nether_wart_stage_1.png | Bin 0 -> 271 bytes .../textures/blocks/nether_wart_stage_2.png | Bin 0 -> 480 bytes .../minecraft/textures/blocks/netherrack.png | Bin 0 -> 727 bytes .../minecraft/textures/blocks/noteblock.png | Bin 0 -> 395 bytes .../textures/blocks/observer_back.png | Bin 0 -> 392 bytes .../textures/blocks/observer_back_lit.png | Bin 0 -> 15832 bytes .../textures/blocks/observer_front.png | Bin 0 -> 416 bytes .../textures/blocks/observer_side.png | Bin 0 -> 406 bytes .../textures/blocks/observer_top.png | Bin 0 -> 15008 bytes .../minecraft/textures/blocks/obsidian.png | Bin 0 -> 489 bytes .../textures/blocks/piston_bottom.png | Bin 0 -> 550 bytes .../textures/blocks/piston_inner.png | Bin 0 -> 508 bytes .../minecraft/textures/blocks/piston_side.png | Bin 0 -> 604 bytes .../textures/blocks/piston_top_normal.png | Bin 0 -> 388 bytes .../textures/blocks/piston_top_sticky.png | Bin 0 -> 622 bytes .../textures/blocks/planks_acacia.png | Bin 0 -> 267 bytes .../textures/blocks/planks_big_oak.png | Bin 0 -> 240 bytes .../textures/blocks/planks_birch.png | Bin 0 -> 265 bytes .../textures/blocks/planks_jungle.png | Bin 0 -> 262 bytes .../minecraft/textures/blocks/planks_oak.png | Bin 0 -> 247 bytes .../textures/blocks/planks_spruce.png | Bin 0 -> 254 bytes .../minecraft/textures/blocks/portal.png | Bin 0 -> 13586 bytes .../textures/blocks/portal.png.mcmeta | 3 + .../textures/blocks/potatoes_stage_0.png | Bin 0 -> 108 bytes .../textures/blocks/potatoes_stage_1.png | Bin 0 -> 128 bytes .../textures/blocks/potatoes_stage_2.png | Bin 0 -> 187 bytes .../textures/blocks/potatoes_stage_3.png | Bin 0 -> 236 bytes .../textures/blocks/prismarine_bricks.png | Bin 0 -> 865 bytes .../textures/blocks/prismarine_dark.png | Bin 0 -> 792 bytes .../textures/blocks/prismarine_rough.png | Bin 0 -> 3237 bytes .../blocks/prismarine_rough.png.mcmeta | 30 + .../textures/blocks/pumpkin_face_off.png | Bin 0 -> 240 bytes .../textures/blocks/pumpkin_face_on.png | Bin 0 -> 422 bytes .../textures/blocks/pumpkin_side.png | Bin 0 -> 219 bytes .../blocks/pumpkin_stem_connected.png | Bin 0 -> 165 bytes .../blocks/pumpkin_stem_disconnected.png | Bin 0 -> 189 bytes .../minecraft/textures/blocks/pumpkin_top.png | Bin 0 -> 271 bytes .../textures/blocks/purpur_block.png | Bin 0 -> 567 bytes .../textures/blocks/purpur_pillar.png | Bin 0 -> 575 bytes .../textures/blocks/purpur_pillar_top.png | Bin 0 -> 631 bytes .../textures/blocks/quartz_block_bottom.png | Bin 0 -> 377 bytes .../textures/blocks/quartz_block_chiseled.png | Bin 0 -> 359 bytes .../blocks/quartz_block_chiseled_top.png | Bin 0 -> 356 bytes .../textures/blocks/quartz_block_lines.png | Bin 0 -> 265 bytes .../blocks/quartz_block_lines_top.png | Bin 0 -> 358 bytes .../textures/blocks/quartz_block_side.png | Bin 0 -> 364 bytes .../textures/blocks/quartz_block_top.png | Bin 0 -> 364 bytes .../minecraft/textures/blocks/quartz_ore.png | Bin 0 -> 897 bytes .../textures/blocks/rail_activator.png | Bin 0 -> 268 bytes .../blocks/rail_activator_powered.png | Bin 0 -> 318 bytes .../textures/blocks/rail_detector.png | Bin 0 -> 309 bytes .../textures/blocks/rail_detector_powered.png | Bin 0 -> 351 bytes .../minecraft/textures/blocks/rail_golden.png | Bin 0 -> 290 bytes .../textures/blocks/rail_golden_powered.png | Bin 0 -> 341 bytes .../minecraft/textures/blocks/rail_normal.png | Bin 0 -> 232 bytes .../textures/blocks/rail_normal_turned.png | Bin 0 -> 247 bytes .../textures/blocks/red_nether_brick.png | Bin 0 -> 397 bytes .../minecraft/textures/blocks/red_sand.png | Bin 0 -> 738 bytes .../textures/blocks/red_sandstone_bottom.png | Bin 0 -> 506 bytes .../textures/blocks/red_sandstone_carved.png | Bin 0 -> 540 bytes .../textures/blocks/red_sandstone_normal.png | Bin 0 -> 629 bytes .../textures/blocks/red_sandstone_smooth.png | Bin 0 -> 469 bytes .../textures/blocks/red_sandstone_top.png | Bin 0 -> 517 bytes .../textures/blocks/redstone_block.png | Bin 0 -> 515 bytes .../textures/blocks/redstone_dust_dot.png | Bin 0 -> 126 bytes .../textures/blocks/redstone_dust_line0.png | Bin 0 -> 125 bytes .../textures/blocks/redstone_dust_line1.png | Bin 0 -> 130 bytes .../textures/blocks/redstone_dust_overlay.png | Bin 0 -> 90 bytes .../textures/blocks/redstone_lamp_off.png | Bin 0 -> 616 bytes .../textures/blocks/redstone_lamp_on.png | Bin 0 -> 682 bytes .../textures/blocks/redstone_ore.png | Bin 0 -> 264 bytes .../textures/blocks/redstone_torch_off.png | Bin 0 -> 155 bytes .../textures/blocks/redstone_torch_on.png | Bin 0 -> 160 bytes .../minecraft/textures/blocks/reeds.png | Bin 0 -> 186 bytes .../textures/blocks/repeater_off.png | Bin 0 -> 375 bytes .../minecraft/textures/blocks/repeater_on.png | Bin 0 -> 371 bytes .../blocks/repeating_command_block_back.png | Bin 0 -> 509 bytes .../repeating_command_block_back.png.mcmeta | 6 + .../repeating_command_block_conditional.png | Bin 0 -> 471 bytes ...ating_command_block_conditional.png.mcmeta | 6 + .../blocks/repeating_command_block_front.png | Bin 0 -> 454 bytes .../repeating_command_block_front.png.mcmeta | 6 + .../blocks/repeating_command_block_side.png | Bin 0 -> 488 bytes .../repeating_command_block_side.png.mcmeta | 6 + .../assets/minecraft/textures/blocks/sand.png | Bin 0 -> 720 bytes .../textures/blocks/sandstone_bottom.png | Bin 0 -> 638 bytes .../textures/blocks/sandstone_carved.png | Bin 0 -> 596 bytes .../textures/blocks/sandstone_normal.png | Bin 0 -> 777 bytes .../textures/blocks/sandstone_smooth.png | Bin 0 -> 544 bytes .../textures/blocks/sandstone_top.png | Bin 0 -> 641 bytes .../textures/blocks/sapling_acacia.png | Bin 0 -> 305 bytes .../textures/blocks/sapling_birch.png | Bin 0 -> 224 bytes .../textures/blocks/sapling_jungle.png | Bin 0 -> 239 bytes .../minecraft/textures/blocks/sapling_oak.png | Bin 0 -> 277 bytes .../textures/blocks/sapling_roofed_oak.png | Bin 0 -> 309 bytes .../textures/blocks/sapling_spruce.png | Bin 0 -> 211 bytes .../minecraft/textures/blocks/sea_lantern.png | Bin 0 -> 2960 bytes .../textures/blocks/sea_lantern.png.mcmeta | 5 + .../textures/blocks/shulker_top_black.png | Bin 0 -> 266 bytes .../textures/blocks/shulker_top_blue.png | Bin 0 -> 317 bytes .../textures/blocks/shulker_top_brown.png | Bin 0 -> 333 bytes .../textures/blocks/shulker_top_cyan.png | Bin 0 -> 320 bytes .../textures/blocks/shulker_top_gray.png | Bin 0 -> 306 bytes .../textures/blocks/shulker_top_green.png | Bin 0 -> 325 bytes .../blocks/shulker_top_light_blue.png | Bin 0 -> 332 bytes .../textures/blocks/shulker_top_lime.png | Bin 0 -> 344 bytes .../textures/blocks/shulker_top_magenta.png | Bin 0 -> 336 bytes .../textures/blocks/shulker_top_orange.png | Bin 0 -> 339 bytes .../textures/blocks/shulker_top_pink.png | Bin 0 -> 349 bytes .../textures/blocks/shulker_top_purple.png | Bin 0 -> 367 bytes .../textures/blocks/shulker_top_red.png | Bin 0 -> 329 bytes .../textures/blocks/shulker_top_silver.png | Bin 0 -> 307 bytes .../textures/blocks/shulker_top_white.png | Bin 0 -> 313 bytes .../textures/blocks/shulker_top_yellow.png | Bin 0 -> 342 bytes .../minecraft/textures/blocks/slime.png | Bin 0 -> 716 bytes .../assets/minecraft/textures/blocks/snow.png | Bin 0 -> 206 bytes .../minecraft/textures/blocks/soul_sand.png | Bin 0 -> 633 bytes .../minecraft/textures/blocks/sponge.png | Bin 0 -> 837 bytes .../minecraft/textures/blocks/sponge_wet.png | Bin 0 -> 876 bytes .../minecraft/textures/blocks/stone.png | Bin 0 -> 223 bytes .../textures/blocks/stone_andesite.png | Bin 0 -> 792 bytes .../textures/blocks/stone_andesite_smooth.png | Bin 0 -> 730 bytes .../textures/blocks/stone_diorite.png | Bin 0 -> 613 bytes .../textures/blocks/stone_diorite_smooth.png | Bin 0 -> 560 bytes .../textures/blocks/stone_granite.png | Bin 0 -> 484 bytes .../textures/blocks/stone_granite_smooth.png | Bin 0 -> 435 bytes .../textures/blocks/stone_slab_side.png | Bin 0 -> 271 bytes .../textures/blocks/stone_slab_top.png | Bin 0 -> 252 bytes .../minecraft/textures/blocks/stonebrick.png | Bin 0 -> 402 bytes .../textures/blocks/stonebrick_carved.png | Bin 0 -> 413 bytes .../textures/blocks/stonebrick_cracked.png | Bin 0 -> 469 bytes .../textures/blocks/stonebrick_mossy.png | Bin 0 -> 544 bytes .../textures/blocks/structure_block.png | Bin 0 -> 254 bytes .../blocks/structure_block_corner.png | Bin 0 -> 281 bytes .../textures/blocks/structure_block_data.png | Bin 0 -> 235 bytes .../textures/blocks/structure_block_load.png | Bin 0 -> 231 bytes .../textures/blocks/structure_block_save.png | Bin 0 -> 228 bytes .../minecraft/textures/blocks/tallgrass.png | Bin 0 -> 347 bytes .../minecraft/textures/blocks/tnt_bottom.png | Bin 0 -> 112 bytes .../minecraft/textures/blocks/tnt_side.png | Bin 0 -> 212 bytes .../minecraft/textures/blocks/tnt_top.png | Bin 0 -> 237 bytes .../minecraft/textures/blocks/torch_on.png | Bin 0 -> 159 bytes .../minecraft/textures/blocks/trapdoor.png | Bin 0 -> 374 bytes .../minecraft/textures/blocks/trip_wire.png | Bin 0 -> 214 bytes .../textures/blocks/trip_wire_source.png | Bin 0 -> 233 bytes .../assets/minecraft/textures/blocks/vine.png | Bin 0 -> 235 bytes .../minecraft/textures/blocks/water_flow.png | Bin 0 -> 9720 bytes .../textures/blocks/water_flow.png.mcmeta | 3 + .../textures/blocks/water_overlay.png | Bin 0 -> 82 bytes .../minecraft/textures/blocks/water_still.png | Bin 0 -> 9315 bytes .../textures/blocks/water_still.png.mcmeta | 5 + .../minecraft/textures/blocks/waterlily.png | Bin 0 -> 185 bytes .../assets/minecraft/textures/blocks/web.png | Bin 0 -> 212 bytes .../textures/blocks/wheat_stage_0.png | Bin 0 -> 100 bytes .../textures/blocks/wheat_stage_1.png | Bin 0 -> 155 bytes .../textures/blocks/wheat_stage_2.png | Bin 0 -> 257 bytes .../textures/blocks/wheat_stage_3.png | Bin 0 -> 379 bytes .../textures/blocks/wheat_stage_4.png | Bin 0 -> 454 bytes .../textures/blocks/wheat_stage_5.png | Bin 0 -> 532 bytes .../textures/blocks/wheat_stage_6.png | Bin 0 -> 562 bytes .../textures/blocks/wheat_stage_7.png | Bin 0 -> 621 bytes .../textures/blocks/wool_colored_black.png | Bin 0 -> 417 bytes .../textures/blocks/wool_colored_blue.png | Bin 0 -> 463 bytes .../textures/blocks/wool_colored_brown.png | Bin 0 -> 456 bytes .../textures/blocks/wool_colored_cyan.png | Bin 0 -> 443 bytes .../textures/blocks/wool_colored_gray.png | Bin 0 -> 427 bytes .../textures/blocks/wool_colored_green.png | Bin 0 -> 454 bytes .../blocks/wool_colored_light_blue.png | Bin 0 -> 491 bytes .../textures/blocks/wool_colored_lime.png | Bin 0 -> 448 bytes .../textures/blocks/wool_colored_magenta.png | Bin 0 -> 477 bytes .../textures/blocks/wool_colored_orange.png | Bin 0 -> 507 bytes .../textures/blocks/wool_colored_pink.png | Bin 0 -> 516 bytes .../textures/blocks/wool_colored_purple.png | Bin 0 -> 477 bytes .../textures/blocks/wool_colored_red.png | Bin 0 -> 430 bytes .../textures/blocks/wool_colored_silver.png | Bin 0 -> 441 bytes .../textures/blocks/wool_colored_white.png | Bin 0 -> 446 bytes .../textures/blocks/wool_colored_yellow.png | Bin 0 -> 509 bytes .../blockstates/bulletproof_glass_pane.json | 1 + .../blockstates/christmas_sapling.json | 2 +- .../blockstates/glass_button.json | 1 + .../blockstates/glass_pressure_plate.json | 1 + .../blockstates/red_sandstone_button.json | 1 + .../red_sandstone_pressure_plate.json | 1 + .../blockstates/redstone_door_block.json | 2 +- .../blockstates/redstone_fence_gate.json | 2 +- .../blockstates/sandstone_button.json | 1 + .../blockstates/sandstone_pressure_plate.json | 1 + .../assets/nnparadisemod/lang/en_US.lang | 10 +- .../block/bulletproof_glass_pane_noside.json | 1 + .../bulletproof_glass_pane_noside_alt.json | 1 + .../block/bulletproof_glass_pane_post.json | 1 + .../block/bulletproof_glass_pane_side.json | 1 + .../bulletproof_glass_pane_side_alt.json | 1 + .../block/diamond_pressure_plate_down.json | 2 +- .../models/block/glass_button.json | 1 + .../models/block/glass_button_pressed.json | 1 + .../block/glass_pressure_plate_down.json | 1 + .../models/block/glass_pressure_plate_up.json | 1 + .../models/block/jungle_button.json | 2 +- .../models/block/red_sandstone_button.json | 1 + .../block/red_sandstone_button_pressed.json | 1 + .../red_sandstone_pressure_plate_down.json | 1 + .../red_sandstone_pressure_plate_up.json | 1 + .../models/block/sandstone_button.json | 1 + .../block/sandstone_button_pressed.json | 1 + .../block/sandstone_pressure_plate_down.json | 1 + .../block/sandstone_pressure_plate_up.json | 1 + .../models/item/bulletproof_glass_pane.json | 1 + .../models/item/glass_button.json | 1 + .../models/item/glass_pressure_plate.json | 1 + .../models/item/red_sandstone_button.json | 1 + .../item/red_sandstone_pressure_plate.json | 1 + .../models/item/sandstone_button.json | 1 + .../models/item/sandstone_pressure_plate.json | 1 + .../recipes/blastproof_glass_pane.json | 16 + .../nnparadisemod/recipes/buttons/generate.py | 34 - .../recipes/buttons/glass_button.json | 14 + .../recipes/buttons/glass_trapdoor.json | 16 - .../recipes/buttons/red_sandstone_button.json | 12 + .../recipes/buttons/sandstone_button.json | 12 + .../recipes/buttons/type_button.json | 15 - .../recipes/fence gates/generate.py | 15 - .../recipes/fence gates/type_fence_gate.json | 19 - .../nnparadisemod/recipes/fences/generate.py | 15 - .../recipes/fences/type_fence.json | 19 - .../recipes/lamps/color_redstone_lamp.json | 21 - .../nnparadisemod/recipes/lamps/generate.py | 15 - .../nnparadisemod/recipes/plates/generate.py | 34 - .../recipes/plates/glass_pressure_plate.json | 14 + .../plates/red_sandstone_pressure_plate.json | 15 + .../plates/sandstone_pressure_plate.json | 15 + .../recipes/plates/type_pressure_plate.json | 15 - .../nnparadisemod/structures/black_cross.nbt | Bin 0 -> 3262 bytes .../structures/black_cross_void.nbt | Bin 0 -> 3189 bytes .../nnparadisemod/textures/blocks/.directory | 4 +- .../textures/entity/crates/acacia_crate.png | Bin 0 -> 6726 bytes .../textures/entity/crates/birch_crate.png | Bin 0 -> 6977 bytes .../textures/entity/crates/dark_oak_crate.png | Bin 0 -> 5172 bytes .../textures/entity/crates/jungle_crate.png | Bin 0 -> 6779 bytes .../textures/entity/crates/oak_crate.png | Bin 0 -> 7268 bytes .../textures/entity/crates/spruce_crate.png | Bin 0 -> 6156 bytes src/main/resources/mcmod.info | 4 +- 922 files changed, 4269 insertions(+), 12489 deletions(-) delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/RubyPlateCode.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/buttonTicks/DiamondButtonTicks.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/buttonTicks/EmeraldButtonTicks.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/buttonTicks/QuickButton.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/planks.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/pressurePlates/BedrockPlateCode.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/pressurePlates/DiamondPlateCode.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/pressurePlates/EmeraldPlateCode.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/xmasTree.java rename src/main/java/com/NetherNoah/ParadiseMod/{CustomBlockCode/RSDoor.java => blocks/RedstoneDoor.java} (70%) rename src/main/java/com/NetherNoah/ParadiseMod/blocks/{fences => }/RedstoneFence.java (97%) rename src/main/java/com/NetherNoah/ParadiseMod/{CustomBlockCode/RSFenceGate.java => blocks/RedstoneFenceGate.java} (58%) rename src/main/java/com/NetherNoah/ParadiseMod/{CustomBlockCode/RSTrapdoor.java => blocks/RedstoneTrapdoor.java} (86%) create mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/base/BasicBlock.java rename src/main/java/com/NetherNoah/ParadiseMod/blocks/{formations/icicle.java => base/CaveFormation.java} (76%) rename src/main/java/com/NetherNoah/ParadiseMod/blocks/{crystals/emeraldCrystal.java => base/Crystal.java} (83%) rename src/main/java/com/NetherNoah/ParadiseMod/{CustomBlockCode/buttonTicks/IronButtonTicks.java => blocks/base/CustomButton.java} (64%) create mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomDoor.java rename src/main/java/com/NetherNoah/ParadiseMod/blocks/{fences/CactusFence.java => base/CustomFence.java} (77%) rename src/main/java/com/NetherNoah/ParadiseMod/blocks/{fenceGates/GoldFenceGate.java => base/CustomGate.java} (51%) rename src/main/java/com/NetherNoah/ParadiseMod/blocks/{misc/soulGlass.java => base/CustomGlass.java} (69%) rename src/main/java/com/NetherNoah/ParadiseMod/blocks/{ores/CoalOreVoid.java => base/CustomOre.java} (72%) create mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomPane.java rename src/main/java/com/NetherNoah/ParadiseMod/blocks/{misc/Rose.java => base/CustomPlant.java} (87%) create mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomPressurePlate.java rename src/main/java/com/NetherNoah/ParadiseMod/blocks/{slabs/BedrockSlab.java => base/CustomSlab.java} (74%) create mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomStairs.java create mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomTrapDoor.java rename src/main/java/com/NetherNoah/ParadiseMod/{CustomBlockCode => blocks/base}/CustomWall.java (70%) rename src/main/java/com/NetherNoah/ParadiseMod/{CustomBlockCode => blocks/base}/CustomWorkBench.java (88%) rename src/main/java/com/NetherNoah/ParadiseMod/{CustomBlockCode/MossyFurnaceCode.java => blocks/base/MossyFurnaceBase.java} (95%) rename src/main/java/com/NetherNoah/ParadiseMod/{CustomBlockCode/VoidFurnaceCode.java => blocks/base/VoidFurnaceBase.java} (95%) delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/BedrockButton.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/CobblestoneButton.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/DiamondButton.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/DirtButton.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/EmeraldButton.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/EndButton.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/GlowingObsidianButton.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/GoldButton.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/GrassButton.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/IronButton.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/MossyButton.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/ObsidianButton.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/RubyButton.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/RustyButton.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/SilverButton.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/VoidButton.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/stoneVariants/AndesiteButton.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/stoneVariants/DioriteButton.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/stoneVariants/GraniteButton.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/wood/AcaciaButton.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/wood/BirchButton.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/wood/CactusButton.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/wood/DarkOakButton.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/wood/JungleButton.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/wood/SpruceButton.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/crystals/diamondCrystal.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/crystals/quartzCrystal.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/crystals/redstoneCrystal.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/crystals/rubyCrystal.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/RedstoneDoor.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/BrickFenceGate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/CactusFenceGate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/DiamondFenceGate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/EmeraldFenceGate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/IronFenceGate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/RedstoneFenceGate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/RubyFenceGate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/RustyFenceGate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/SilverFenceGate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/BedrockWall.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/BrickFence.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/DiamondFence.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/EmeraldFence.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/EndWall.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/GlowingObsidianWall.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/GoldFence.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/IronFence.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/ObsidianWall.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/RubyFence.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/RustyFence.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/SilverFence.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/VoidWall.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/formations/mossyStoneFormation.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/formations/netherrackFormation.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/formations/sandstoneFormation.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/formations/stoneFormation.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/BlueRose.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/CompressedCactus.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/GoldBars.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/MossyFurnace.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/MossyFurnaceLit.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/PolishedVoidStone.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/RustyIronBars.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/SilverBars.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/Stonecutter.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/VoidBricks.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/VoidFurnace.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/VoidFurnaceLit.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/VoidStone.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/bulletproofGlass.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/glowingIce.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/glowingObsidian.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/soulGlassPane.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/EnderPearlOre.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/GoldOreNether.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/GoldOreVoid.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/IronOreVoid.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/RubyOre.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/RubyOreEnd.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/SaltOre.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/SilverOre.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/SilverOreNether.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/SilverOreVoid.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/VoidPearlOre.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/BedrockPlate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/CobblestonePlate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/DiamondPlate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/DirtPlate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/EmeraldPlate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/EndPlate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/GlowingObsidianPlate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/GrassPlate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/MossyPlate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/RubyPlate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/RustyPlate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/SilverPlate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/VoidPlate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/stoneVariants/AndesitePlate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/stoneVariants/DioritePlate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/stoneVariants/GranitePlate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/wood/AcaciaPlate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/wood/BirchPlate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/wood/CactusPlate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/wood/DarkOakPlate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/wood/JunglePlate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/wood/SprucePlate.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/BlockRuby.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/BlockRustyIron.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/SaltBlock.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/SilverBlock.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/blazeBlock.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/endPearlBlock.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/voidPearlBlock.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/CactusSlab.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/EndSlab.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/GlowingObsidianSlab.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/ObsidianSlab.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/VoidBrickSlab.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/VoidSlab.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/BedrockSlabDouble.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/CactusSlabDouble.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/EndSlabDouble.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/GlowingObsidianSlabDouble.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/ObsidianSlabDouble.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/VoidBrickSlabDouble.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/VoidSlabDouble.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/BedrockStairs.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/CactusStairs.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/EndStairs.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/GlowingObsidianStairs.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/ObsidianStairs.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/VoidBrickStairs.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/VoidStairs.java rename src/main/java/com/NetherNoah/ParadiseMod/blocks/{resourceBlocks => }/sugarBlock.java (92%) delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/AndesiteTrapdoor.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/BedrockTrapdoor.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/CactusTrapdoor.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/CobblestoneTrapdoor.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/DiamondTrapdoor.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/DioriteTrapdoor.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/EmeraldTrapdoor.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/EndTrapdoor.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/GlassTrapdoor.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/GlowingObsidianTrapdoor.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/GoldTrapdoor.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/GraniteTrapdoor.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/MossStoneTrapdoor.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/ObsidianTrapdoor.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/RedstoneTrapdoor.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/RubyTrapdoor.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/RustyTrapdoor.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/SilverTrapdoor.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/StoneTrapdoor.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/workbenches/CustomWorkbenchAcacia.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/workbenches/CustomWorkbenchBirch.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/workbenches/CustomWorkbenchCactus.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/workbenches/CustomWorkbenchDarkOak.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/workbenches/CustomWorkbenchJungle.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/blocks/workbenches/CustomWorkbenchSpruce.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/items/CactusStick.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/items/CookedEgg.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/items/DyeBlack.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/items/DyeBlue.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/items/DyeBrown.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/items/ItemRuby.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/items/RustyIngot.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/items/RustyNugget.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/items/Salt.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/items/SilverIngot.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/items/SilverNugget.java delete mode 100644 src/main/java/com/NetherNoah/ParadiseMod/items/VoidPearl.java create mode 100644 src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/blackCross.java create mode 100644 src/main/resources/assets/minecraft/textures/blocks/anvil_base.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/anvil_top_damaged_0.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/anvil_top_damaged_1.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/anvil_top_damaged_2.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/beacon.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/bedrock.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/beetroots_stage_0.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/beetroots_stage_1.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/beetroots_stage_2.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/beetroots_stage_3.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/bone_block_side.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/bone_block_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/bookshelf.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/brewing_stand.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/brewing_stand_base.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/brick.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/cactus_bottom.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/cactus_side.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/cactus_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/cake_bottom.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/cake_inner.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/cake_side.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/cake_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/carrots_stage_0.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/carrots_stage_1.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/carrots_stage_2.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/carrots_stage_3.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/cauldron_bottom.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/cauldron_inner.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/cauldron_side.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/cauldron_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/chain_command_block_back.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/chain_command_block_back.png.mcmeta create mode 100644 src/main/resources/assets/minecraft/textures/blocks/chain_command_block_conditional.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/chain_command_block_conditional.png.mcmeta create mode 100644 src/main/resources/assets/minecraft/textures/blocks/chain_command_block_front.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/chain_command_block_front.png.mcmeta create mode 100644 src/main/resources/assets/minecraft/textures/blocks/chain_command_block_side.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/chain_command_block_side.png.mcmeta create mode 100644 src/main/resources/assets/minecraft/textures/blocks/chorus_flower.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/chorus_flower_dead.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/chorus_plant.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/clay.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/coal_block.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/coal_ore.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/coarse_dirt.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/cobblestone.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/cobblestone_mossy.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/cocoa_stage_0.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/cocoa_stage_1.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/cocoa_stage_2.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/command_block_back.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/command_block_back.png.mcmeta create mode 100644 src/main/resources/assets/minecraft/textures/blocks/command_block_conditional.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/command_block_conditional.png.mcmeta create mode 100644 src/main/resources/assets/minecraft/textures/blocks/command_block_front.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/command_block_front.png.mcmeta create mode 100644 src/main/resources/assets/minecraft/textures/blocks/command_block_side.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/command_block_side.png.mcmeta create mode 100644 src/main/resources/assets/minecraft/textures/blocks/comparator_off.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/comparator_on.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_black.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_blue.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_brown.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_cyan.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_gray.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_green.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_light_blue.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_lime.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_magenta.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_orange.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_pink.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_powder_black.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_powder_blue.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_powder_brown.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_powder_cyan.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_powder_gray.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_powder_green.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_powder_light_blue.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_powder_lime.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_powder_magenta.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_powder_orange.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_powder_pink.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_powder_purple.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_powder_red.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_powder_silver.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_powder_white.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_powder_yellow.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_purple.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_red.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_silver.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_white.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/concrete_yellow.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/crafting_table_front.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/crafting_table_side.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/crafting_table_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/daylight_detector_inverted_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/daylight_detector_side.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/daylight_detector_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/deadbush.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/debug.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/debug2.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/destroy_stage_0.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/destroy_stage_1.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/destroy_stage_2.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/destroy_stage_3.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/destroy_stage_4.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/destroy_stage_5.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/destroy_stage_6.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/destroy_stage_7.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/destroy_stage_8.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/destroy_stage_9.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/diamond_block.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/diamond_ore.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/dirt.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/dirt_podzol_side.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/dirt_podzol_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/dispenser_front_horizontal.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/dispenser_front_vertical.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/door_acacia_lower.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/door_acacia_upper.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/door_birch_lower.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/door_birch_upper.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/door_dark_oak_lower.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/door_dark_oak_upper.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/door_iron_lower.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/door_iron_upper.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/door_jungle_lower.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/door_jungle_upper.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/door_spruce_lower.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/door_spruce_upper.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/door_wood_lower.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/door_wood_upper.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/double_plant_fern_bottom.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/double_plant_fern_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/double_plant_grass_bottom.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/double_plant_grass_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/double_plant_paeonia_bottom.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/double_plant_paeonia_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/double_plant_rose_bottom.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/double_plant_rose_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/double_plant_sunflower_back.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/double_plant_sunflower_bottom.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/double_plant_sunflower_front.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/double_plant_sunflower_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/double_plant_syringa_bottom.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/double_plant_syringa_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/dragon_egg.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/dropper_front_horizontal.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/dropper_front_vertical.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/emerald_block.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/emerald_ore.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/enchanting_table_bottom.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/enchanting_table_side.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/enchanting_table_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/end_bricks.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/end_rod.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/end_stone.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/endframe_eye.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/endframe_side.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/endframe_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/farmland_dry.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/farmland_wet.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/fern.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/fire_layer_0.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/fire_layer_0.png.mcmeta create mode 100644 src/main/resources/assets/minecraft/textures/blocks/fire_layer_1.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/fire_layer_1.png.mcmeta create mode 100644 src/main/resources/assets/minecraft/textures/blocks/flower_allium.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/flower_blue_orchid.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/flower_dandelion.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/flower_houstonia.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/flower_oxeye_daisy.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/flower_paeonia.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/flower_pot.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/flower_rose.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/flower_tulip_orange.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/flower_tulip_pink.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/flower_tulip_red.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/flower_tulip_white.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/frosted_ice_0.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/frosted_ice_1.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/frosted_ice_2.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/frosted_ice_3.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/furnace_front_off.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/furnace_front_on.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/furnace_side.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/furnace_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_black.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_blue.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_brown.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_cyan.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_gray.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_green.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_light_blue.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_lime.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_magenta.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_orange.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_pane_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_black.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_blue.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_brown.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_cyan.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_gray.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_green.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_light_blue.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_lime.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_magenta.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_orange.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_pink.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_purple.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_red.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_silver.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_white.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_yellow.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_pink.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_purple.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_red.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_silver.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_white.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glass_yellow.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_black.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_blue.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_brown.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_cyan.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_gray.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_green.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_light_blue.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_lime.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_magenta.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_orange.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_pink.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_purple.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_red.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_silver.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_white.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_yellow.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/glowstone.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/gold_block.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/gold_ore.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/grass_path_side.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/grass_path_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/grass_side.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/grass_side_overlay.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/grass_side_snowed.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/grass_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/gravel.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/hardened_clay.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_black.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_blue.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_brown.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_cyan.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_gray.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_green.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_light_blue.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_lime.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_magenta.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_orange.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_pink.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_purple.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_red.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_silver.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_white.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_yellow.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/hay_block_side.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/hay_block_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/hopper_inside.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/hopper_outside.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/hopper_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/ice.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/ice_packed.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/iron_bars.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/iron_ore.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/iron_trapdoor.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/itemframe_background.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/jukebox_side.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/jukebox_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/ladder.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/lapis_block.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/lapis_ore.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/lava_flow.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/lava_flow.png.mcmeta create mode 100644 src/main/resources/assets/minecraft/textures/blocks/lava_still.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/lava_still.png.mcmeta create mode 100644 src/main/resources/assets/minecraft/textures/blocks/leaves_acacia.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/leaves_big_oak.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/leaves_birch.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/leaves_jungle.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/leaves_oak.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/leaves_spruce.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/lever.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/log_acacia.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/log_acacia_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/log_big_oak.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/log_big_oak_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/log_birch.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/log_birch_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/log_jungle.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/log_jungle_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/log_oak.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/log_oak_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/log_spruce.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/log_spruce_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/magma.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/magma.png.mcmeta create mode 100644 src/main/resources/assets/minecraft/textures/blocks/melon_side.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/melon_stem_connected.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/melon_stem_disconnected.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/melon_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/mob_spawner.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/mushroom_block_inside.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/mushroom_block_skin_brown.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/mushroom_block_skin_red.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/mushroom_block_skin_stem.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/mushroom_brown.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/mushroom_red.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/mycelium_side.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/mycelium_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/nether_brick.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/nether_wart_block.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/nether_wart_stage_0.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/nether_wart_stage_1.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/nether_wart_stage_2.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/netherrack.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/noteblock.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/observer_back.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/observer_back_lit.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/observer_front.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/observer_side.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/observer_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/obsidian.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/piston_bottom.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/piston_inner.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/piston_side.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/piston_top_normal.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/piston_top_sticky.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/planks_acacia.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/planks_big_oak.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/planks_birch.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/planks_jungle.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/planks_oak.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/planks_spruce.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/portal.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/portal.png.mcmeta create mode 100644 src/main/resources/assets/minecraft/textures/blocks/potatoes_stage_0.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/potatoes_stage_1.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/potatoes_stage_2.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/potatoes_stage_3.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/prismarine_bricks.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/prismarine_dark.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/prismarine_rough.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/prismarine_rough.png.mcmeta create mode 100644 src/main/resources/assets/minecraft/textures/blocks/pumpkin_face_off.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/pumpkin_face_on.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/pumpkin_side.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/pumpkin_stem_connected.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/pumpkin_stem_disconnected.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/pumpkin_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/purpur_block.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/purpur_pillar.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/purpur_pillar_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/quartz_block_bottom.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/quartz_block_chiseled.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/quartz_block_chiseled_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/quartz_block_lines.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/quartz_block_lines_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/quartz_block_side.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/quartz_block_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/quartz_ore.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/rail_activator.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/rail_activator_powered.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/rail_detector.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/rail_detector_powered.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/rail_golden.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/rail_golden_powered.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/rail_normal.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/rail_normal_turned.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/red_nether_brick.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/red_sand.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/red_sandstone_bottom.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/red_sandstone_carved.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/red_sandstone_normal.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/red_sandstone_smooth.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/red_sandstone_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/redstone_block.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/redstone_dust_dot.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/redstone_dust_line0.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/redstone_dust_line1.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/redstone_dust_overlay.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/redstone_lamp_off.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/redstone_lamp_on.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/redstone_ore.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/redstone_torch_off.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/redstone_torch_on.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/reeds.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/repeater_off.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/repeater_on.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/repeating_command_block_back.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/repeating_command_block_back.png.mcmeta create mode 100644 src/main/resources/assets/minecraft/textures/blocks/repeating_command_block_conditional.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/repeating_command_block_conditional.png.mcmeta create mode 100644 src/main/resources/assets/minecraft/textures/blocks/repeating_command_block_front.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/repeating_command_block_front.png.mcmeta create mode 100644 src/main/resources/assets/minecraft/textures/blocks/repeating_command_block_side.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/repeating_command_block_side.png.mcmeta create mode 100644 src/main/resources/assets/minecraft/textures/blocks/sand.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/sandstone_bottom.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/sandstone_carved.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/sandstone_normal.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/sandstone_smooth.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/sandstone_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/sapling_acacia.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/sapling_birch.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/sapling_jungle.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/sapling_oak.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/sapling_roofed_oak.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/sapling_spruce.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/sea_lantern.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/sea_lantern.png.mcmeta create mode 100644 src/main/resources/assets/minecraft/textures/blocks/shulker_top_black.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/shulker_top_blue.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/shulker_top_brown.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/shulker_top_cyan.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/shulker_top_gray.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/shulker_top_green.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/shulker_top_light_blue.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/shulker_top_lime.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/shulker_top_magenta.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/shulker_top_orange.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/shulker_top_pink.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/shulker_top_purple.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/shulker_top_red.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/shulker_top_silver.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/shulker_top_white.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/shulker_top_yellow.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/slime.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/snow.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/soul_sand.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/sponge.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/sponge_wet.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/stone.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/stone_andesite.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/stone_andesite_smooth.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/stone_diorite.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/stone_diorite_smooth.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/stone_granite.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/stone_granite_smooth.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/stone_slab_side.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/stone_slab_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/stonebrick.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/stonebrick_carved.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/stonebrick_cracked.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/stonebrick_mossy.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/structure_block.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/structure_block_corner.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/structure_block_data.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/structure_block_load.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/structure_block_save.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/tallgrass.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/tnt_bottom.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/tnt_side.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/tnt_top.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/torch_on.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/trapdoor.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/trip_wire.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/trip_wire_source.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/vine.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/water_flow.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/water_flow.png.mcmeta create mode 100644 src/main/resources/assets/minecraft/textures/blocks/water_overlay.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/water_still.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/water_still.png.mcmeta create mode 100644 src/main/resources/assets/minecraft/textures/blocks/waterlily.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/web.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/wheat_stage_0.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/wheat_stage_1.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/wheat_stage_2.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/wheat_stage_3.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/wheat_stage_4.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/wheat_stage_5.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/wheat_stage_6.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/wheat_stage_7.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/wool_colored_black.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/wool_colored_blue.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/wool_colored_brown.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/wool_colored_cyan.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/wool_colored_gray.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/wool_colored_green.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/wool_colored_light_blue.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/wool_colored_lime.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/wool_colored_magenta.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/wool_colored_orange.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/wool_colored_pink.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/wool_colored_purple.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/wool_colored_red.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/wool_colored_silver.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/wool_colored_white.png create mode 100644 src/main/resources/assets/minecraft/textures/blocks/wool_colored_yellow.png create mode 100644 src/main/resources/assets/nnparadisemod/blockstates/bulletproof_glass_pane.json create mode 100644 src/main/resources/assets/nnparadisemod/blockstates/glass_button.json create mode 100644 src/main/resources/assets/nnparadisemod/blockstates/glass_pressure_plate.json create mode 100644 src/main/resources/assets/nnparadisemod/blockstates/red_sandstone_button.json create mode 100644 src/main/resources/assets/nnparadisemod/blockstates/red_sandstone_pressure_plate.json create mode 100644 src/main/resources/assets/nnparadisemod/blockstates/sandstone_button.json create mode 100644 src/main/resources/assets/nnparadisemod/blockstates/sandstone_pressure_plate.json create mode 100644 src/main/resources/assets/nnparadisemod/models/block/bulletproof_glass_pane_noside.json create mode 100644 src/main/resources/assets/nnparadisemod/models/block/bulletproof_glass_pane_noside_alt.json create mode 100644 src/main/resources/assets/nnparadisemod/models/block/bulletproof_glass_pane_post.json create mode 100644 src/main/resources/assets/nnparadisemod/models/block/bulletproof_glass_pane_side.json create mode 100644 src/main/resources/assets/nnparadisemod/models/block/bulletproof_glass_pane_side_alt.json create mode 100644 src/main/resources/assets/nnparadisemod/models/block/glass_button.json create mode 100644 src/main/resources/assets/nnparadisemod/models/block/glass_button_pressed.json create mode 100644 src/main/resources/assets/nnparadisemod/models/block/glass_pressure_plate_down.json create mode 100644 src/main/resources/assets/nnparadisemod/models/block/glass_pressure_plate_up.json create mode 100644 src/main/resources/assets/nnparadisemod/models/block/red_sandstone_button.json create mode 100644 src/main/resources/assets/nnparadisemod/models/block/red_sandstone_button_pressed.json create mode 100644 src/main/resources/assets/nnparadisemod/models/block/red_sandstone_pressure_plate_down.json create mode 100644 src/main/resources/assets/nnparadisemod/models/block/red_sandstone_pressure_plate_up.json create mode 100644 src/main/resources/assets/nnparadisemod/models/block/sandstone_button.json create mode 100644 src/main/resources/assets/nnparadisemod/models/block/sandstone_button_pressed.json create mode 100644 src/main/resources/assets/nnparadisemod/models/block/sandstone_pressure_plate_down.json create mode 100644 src/main/resources/assets/nnparadisemod/models/block/sandstone_pressure_plate_up.json create mode 100644 src/main/resources/assets/nnparadisemod/models/item/bulletproof_glass_pane.json create mode 100644 src/main/resources/assets/nnparadisemod/models/item/glass_button.json create mode 100644 src/main/resources/assets/nnparadisemod/models/item/glass_pressure_plate.json create mode 100644 src/main/resources/assets/nnparadisemod/models/item/red_sandstone_button.json create mode 100644 src/main/resources/assets/nnparadisemod/models/item/red_sandstone_pressure_plate.json create mode 100644 src/main/resources/assets/nnparadisemod/models/item/sandstone_button.json create mode 100644 src/main/resources/assets/nnparadisemod/models/item/sandstone_pressure_plate.json create mode 100644 src/main/resources/assets/nnparadisemod/recipes/blastproof_glass_pane.json delete mode 100644 src/main/resources/assets/nnparadisemod/recipes/buttons/generate.py create mode 100644 src/main/resources/assets/nnparadisemod/recipes/buttons/glass_button.json delete mode 100644 src/main/resources/assets/nnparadisemod/recipes/buttons/glass_trapdoor.json create mode 100644 src/main/resources/assets/nnparadisemod/recipes/buttons/red_sandstone_button.json create mode 100644 src/main/resources/assets/nnparadisemod/recipes/buttons/sandstone_button.json delete mode 100644 src/main/resources/assets/nnparadisemod/recipes/buttons/type_button.json delete mode 100644 src/main/resources/assets/nnparadisemod/recipes/fence gates/generate.py delete mode 100644 src/main/resources/assets/nnparadisemod/recipes/fence gates/type_fence_gate.json delete mode 100644 src/main/resources/assets/nnparadisemod/recipes/fences/generate.py delete mode 100644 src/main/resources/assets/nnparadisemod/recipes/fences/type_fence.json delete mode 100644 src/main/resources/assets/nnparadisemod/recipes/lamps/color_redstone_lamp.json delete mode 100644 src/main/resources/assets/nnparadisemod/recipes/lamps/generate.py delete mode 100644 src/main/resources/assets/nnparadisemod/recipes/plates/generate.py create mode 100644 src/main/resources/assets/nnparadisemod/recipes/plates/glass_pressure_plate.json create mode 100644 src/main/resources/assets/nnparadisemod/recipes/plates/red_sandstone_pressure_plate.json create mode 100644 src/main/resources/assets/nnparadisemod/recipes/plates/sandstone_pressure_plate.json delete mode 100644 src/main/resources/assets/nnparadisemod/recipes/plates/type_pressure_plate.json create mode 100644 src/main/resources/assets/nnparadisemod/structures/black_cross.nbt create mode 100644 src/main/resources/assets/nnparadisemod/structures/black_cross_void.nbt create mode 100644 src/main/resources/assets/nnparadisemod/textures/entity/crates/acacia_crate.png create mode 100644 src/main/resources/assets/nnparadisemod/textures/entity/crates/birch_crate.png create mode 100644 src/main/resources/assets/nnparadisemod/textures/entity/crates/dark_oak_crate.png create mode 100644 src/main/resources/assets/nnparadisemod/textures/entity/crates/jungle_crate.png create mode 100644 src/main/resources/assets/nnparadisemod/textures/entity/crates/oak_crate.png create mode 100644 src/main/resources/assets/nnparadisemod/textures/entity/crates/spruce_crate.png diff --git a/changelog.txt b/changelog.txt index d17eb82..418e532 100644 --- a/changelog.txt +++ b/changelog.txt @@ -237,3 +237,17 @@ Added prismarine Crystal Block Crystals now generate in bunches in caves Added lava pockets in the deep underground + +1.4 (Update 2019): + Optimized and corrected some block models + Added another easter egg + Fixed several world generation bugs + Improved world generation + Removed smelting recipes for modded gold items (they're useless) + Made lots of backend optimizations + The bounding boxes of certain blocks are now changed to fit the block model + Fixed the jungle button model + Added glass pressure plate + Added sandstone pressure plate + Added red sandstone pressure plate + Added Blast Proof Glass Pane diff --git a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/RubyPlateCode.java b/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/RubyPlateCode.java deleted file mode 100644 index 5efbc4d..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/RubyPlateCode.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.NetherNoah.ParadiseMod.CustomBlockCode; - -import java.util.List; - -import net.minecraft.block.BlockBasePressurePlate; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.IProperty; -import net.minecraft.block.properties.PropertyBool; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.SoundEvents; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class RubyPlateCode extends BlockBasePressurePlate -{ - public static final PropertyBool POWERED = PropertyBool.create("powered"); - private final RubyPlateCode.Sensitivity sensitivity; - protected RubyPlateCode(Material materialIn, RubyPlateCode.Sensitivity sensitivityIn) - { - super(materialIn); - setDefaultState(blockState.getBaseState().withProperty(POWERED, Boolean.valueOf(false))); - sensitivity = sensitivityIn; - } - @Override - protected int getRedstoneStrength(IBlockState state) - { - return state.getValue(POWERED).booleanValue() ? 15 : 0; - } - @Override - protected IBlockState setRedstoneStrength(IBlockState state, int strength) - { - return state.withProperty(POWERED, Boolean.valueOf(strength > 0)); - } - @Override - protected void playClickOnSound(World worldIn, BlockPos color) - { - if (blockMaterial == Material.WOOD) - worldIn.playSound((EntityPlayer)null, color, SoundEvents.BLOCK_WOOD_PRESSPLATE_CLICK_ON, SoundCategory.BLOCKS, 0.3F, 0.8F); - else - worldIn.playSound((EntityPlayer)null, color, SoundEvents.BLOCK_STONE_PRESSPLATE_CLICK_ON, SoundCategory.BLOCKS, 0.3F, 0.6F); - } - @Override - protected void playClickOffSound(World worldIn, BlockPos pos) - { - if (blockMaterial == Material.WOOD) - worldIn.playSound((EntityPlayer)null, pos, SoundEvents.BLOCK_WOOD_PRESSPLATE_CLICK_OFF, SoundCategory.BLOCKS, 0.3F, 0.7F); - else - worldIn.playSound((EntityPlayer)null, pos, SoundEvents.BLOCK_STONE_PRESSPLATE_CLICK_OFF, SoundCategory.BLOCKS, 0.3F, 0.5F); - } - @Override - protected int computeRedstoneStrength(World worldIn, BlockPos pos) - { - AxisAlignedBB axisalignedbb = PRESSURE_AABB.offset(pos); - List list; - switch (sensitivity) - { - case EVERYTHING: - list = worldIn.getEntitiesWithinAABBExcludingEntity((Entity)null, axisalignedbb); - break; - case MOBS: - list = worldIn.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - break; - default: - return 0; - } - if (!list.isEmpty()) - { - for (Entity entity : list) - { - if (!entity.doesEntityNotTriggerPressurePlate()) - return 1; - } - } - return 0; - } - @Override - public IBlockState getStateFromMeta(int meta) - { - return getDefaultState().withProperty(POWERED, Boolean.valueOf(meta == 1)); - } - @Override - public int getMetaFromState(IBlockState state) - { - return state.getValue(POWERED).booleanValue() ? 1 : 0; - } - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, new IProperty[] {POWERED}); - } - public static enum Sensitivity - { - EVERYTHING, - MOBS; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/buttonTicks/DiamondButtonTicks.java b/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/buttonTicks/DiamondButtonTicks.java deleted file mode 100644 index 7c12c6a..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/buttonTicks/DiamondButtonTicks.java +++ /dev/null @@ -1,314 +0,0 @@ -package com.NetherNoah.ParadiseMod.CustomBlockCode.buttonTicks; - -import java.util.List; -import java.util.Random; - -import javax.annotation.Nullable; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockDirectional; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.IProperty; -import net.minecraft.block.properties.PropertyBool; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.Mirror; -import net.minecraft.util.Rotation; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -public abstract class DiamondButtonTicks extends BlockDirectional -{ - public static final PropertyBool POWERED = PropertyBool.create("powered"); - protected static final AxisAlignedBB AABB_DOWN_OFF = new AxisAlignedBB(0.3125D, 0.875D, 0.375D, 0.6875D, 1.0D, 0.625D); - protected static final AxisAlignedBB AABB_UP_OFF = new AxisAlignedBB(0.3125D, 0.0D, 0.375D, 0.6875D, 0.125D, 0.625D); - protected static final AxisAlignedBB AABB_NORTH_OFF = new AxisAlignedBB(0.3125D, 0.375D, 0.875D, 0.6875D, 0.625D, 1.0D); - protected static final AxisAlignedBB AABB_SOUTH_OFF = new AxisAlignedBB(0.3125D, 0.375D, 0.0D, 0.6875D, 0.625D, 0.125D); - protected static final AxisAlignedBB AABB_WEST_OFF = new AxisAlignedBB(0.875D, 0.375D, 0.3125D, 1.0D, 0.625D, 0.6875D); - protected static final AxisAlignedBB AABB_EAST_OFF = new AxisAlignedBB(0.0D, 0.375D, 0.3125D, 0.125D, 0.625D, 0.6875D); - protected static final AxisAlignedBB AABB_DOWN_ON = new AxisAlignedBB(0.3125D, 0.9375D, 0.375D, 0.6875D, 1.0D, 0.625D); - protected static final AxisAlignedBB AABB_UP_ON = new AxisAlignedBB(0.3125D, 0.0D, 0.375D, 0.6875D, 0.0625D, 0.625D); - protected static final AxisAlignedBB AABB_NORTH_ON = new AxisAlignedBB(0.3125D, 0.375D, 0.9375D, 0.6875D, 0.625D, 1.0D); - protected static final AxisAlignedBB AABB_SOUTH_ON = new AxisAlignedBB(0.3125D, 0.375D, 0.0D, 0.6875D, 0.625D, 0.0625D); - protected static final AxisAlignedBB AABB_WEST_ON = new AxisAlignedBB(0.9375D, 0.375D, 0.3125D, 1.0D, 0.625D, 0.6875D); - protected static final AxisAlignedBB AABB_EAST_ON = new AxisAlignedBB(0.0D, 0.375D, 0.3125D, 0.0625D, 0.625D, 0.6875D); - private final boolean wooden; - - protected DiamondButtonTicks(boolean wooden) - { - super(Material.CIRCUITS); - setDefaultState(blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH).withProperty(POWERED, Boolean.valueOf(false))); - setTickRandomly(true); - setCreativeTab(CreativeTabs.REDSTONE); - this.wooden = wooden; - } - @Override - @Nullable - public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, IBlockAccess worldIn, BlockPos pos) - { - return NULL_AABB; - } - @Override - public int tickRate(World worldIn) - { - return wooden ? 14 : 20; - } - @Override - public boolean isOpaqueCube(IBlockState state) - { - return false; - } - @Override - public boolean isFullCube(IBlockState state) - { - return false; - } - @Override - public boolean canPlaceBlockOnSide(World worldIn, BlockPos pos, EnumFacing side) - { - return canPlaceBlock(worldIn, pos, side.getOpposite()); - } - @Override - public boolean canPlaceBlockAt(World worldIn, BlockPos pos) - { - for (EnumFacing enumfacing : EnumFacing.values()) - { - if (canPlaceBlock(worldIn, pos, enumfacing)) - return true; - } - return false; - } - protected static boolean canPlaceBlock(World worldIn, BlockPos pos, EnumFacing direction) - { - BlockPos blockpos = pos.offset(direction); - return worldIn.getBlockState(blockpos).isSideSolid(worldIn, blockpos, direction.getOpposite()); - } - @Override - public IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer) - { - return canPlaceBlock(worldIn, pos, facing.getOpposite()) ? getDefaultState().withProperty(FACING, facing).withProperty(POWERED, Boolean.valueOf(false)) : getDefaultState().withProperty(FACING, EnumFacing.DOWN).withProperty(POWERED, Boolean.valueOf(false)); - } - @Override - public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos) - { - if (checkForDrop(worldIn, pos, state) && !canPlaceBlock(worldIn, pos, state.getValue(FACING).getOpposite())) - { - dropBlockAsItem(worldIn, pos, state, 0); - worldIn.setBlockToAir(pos); - } - } - private boolean checkForDrop(World worldIn, BlockPos pos, IBlockState state) - { - if (canPlaceBlockAt(worldIn, pos)) - return true; - else - { - dropBlockAsItem(worldIn, pos, state, 0); - worldIn.setBlockToAir(pos); - return false; - } - } - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) - { - EnumFacing enumfacing = state.getValue(FACING); - boolean flag = state.getValue(POWERED).booleanValue(); - switch (enumfacing) - { - case EAST: - return flag ? AABB_EAST_ON : AABB_EAST_OFF; - case WEST: - return flag ? AABB_WEST_ON : AABB_WEST_OFF; - case SOUTH: - return flag ? AABB_SOUTH_ON : AABB_SOUTH_OFF; - case NORTH: - default: - return flag ? AABB_NORTH_ON : AABB_NORTH_OFF; - case UP: - return flag ? AABB_UP_ON : AABB_UP_OFF; - case DOWN: - return flag ? AABB_DOWN_ON : AABB_DOWN_OFF; - } - } - @Override - public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) - { - if (state.getValue(POWERED).booleanValue()) - return true; - else - { - worldIn.setBlockState(pos, state.withProperty(POWERED, Boolean.valueOf(true)), 3); - worldIn.markBlockRangeForRenderUpdate(pos, pos); - playClickSound(playerIn, worldIn, pos); - notifyNeighbors(worldIn, pos, state.getValue(FACING)); - worldIn.scheduleUpdate(pos, this, tickRate(worldIn)); - return true; - } - } - protected abstract void playClickSound(@Nullable EntityPlayer player, World worldIn, BlockPos pos); - protected abstract void playReleaseSound(World worldIn, BlockPos pos); - @Override - public void breakBlock(World worldIn, BlockPos pos, IBlockState state) - { - if (state.getValue(POWERED).booleanValue()) - notifyNeighbors(worldIn, pos, state.getValue(FACING)); - super.breakBlock(worldIn, pos, state); - } - @Override - public int getWeakPower(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side) - { - return blockState.getValue(POWERED).booleanValue() ? 15 : 0; - } - @Override - public int getStrongPower(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side) - { - return !blockState.getValue(POWERED).booleanValue() ? 0 : (blockState.getValue(FACING) == side ? 15 : 0); - } - @Override - public boolean canProvidePower(IBlockState state) - { - return true; - } - @Override - public void randomTick(World worldIn, BlockPos pos, IBlockState state, Random random) - { - } - @Override - public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) - { - if (!worldIn.isRemote) - { - if (state.getValue(POWERED).booleanValue()) - { - if (wooden) - checkPressed(state, worldIn, pos); - else - { - worldIn.setBlockState(pos, state.withProperty(POWERED, Boolean.valueOf(false))); - notifyNeighbors(worldIn, pos, state.getValue(FACING)); - playReleaseSound(worldIn, pos); - worldIn.markBlockRangeForRenderUpdate(pos, pos); - } - } - } - } - @Override - public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState state, Entity entityIn) - { - if (!worldIn.isRemote) - { - if (wooden) - { - if (!state.getValue(POWERED).booleanValue()) - checkPressed(state, worldIn, pos); - } - } - } - private void checkPressed(IBlockState p_185616_1_, World p_185616_2_, BlockPos p_185616_3_) - { - List list = p_185616_2_.getEntitiesWithinAABB(EntityArrow.class, p_185616_1_.getBoundingBox(p_185616_2_, p_185616_3_).offset(p_185616_3_)); - boolean flag = !list.isEmpty(); - boolean flag1 = p_185616_1_.getValue(POWERED).booleanValue(); - if (flag && !flag1) - { - p_185616_2_.setBlockState(p_185616_3_, p_185616_1_.withProperty(POWERED, Boolean.valueOf(true))); - notifyNeighbors(p_185616_2_, p_185616_3_, p_185616_1_.getValue(FACING)); - p_185616_2_.markBlockRangeForRenderUpdate(p_185616_3_, p_185616_3_); - playClickSound((EntityPlayer)null, p_185616_2_, p_185616_3_); - } - if (!flag && flag1) - { - p_185616_2_.setBlockState(p_185616_3_, p_185616_1_.withProperty(POWERED, Boolean.valueOf(false))); - notifyNeighbors(p_185616_2_, p_185616_3_, p_185616_1_.getValue(FACING)); - p_185616_2_.markBlockRangeForRenderUpdate(p_185616_3_, p_185616_3_); - playReleaseSound(p_185616_2_, p_185616_3_); - } - if (flag) - p_185616_2_.scheduleUpdate(new BlockPos(p_185616_3_), this, tickRate(p_185616_2_)); - } - private void notifyNeighbors(World worldIn, BlockPos pos, EnumFacing facing) - { - worldIn.notifyNeighborsOfStateChange(pos, this, false); - worldIn.notifyNeighborsOfStateChange(pos.offset(facing.getOpposite()), this, false); - } - @Override - public IBlockState getStateFromMeta(int meta) - { - EnumFacing enumfacing; - switch (meta & 7) - { - case 0: - enumfacing = EnumFacing.DOWN; - break; - case 1: - enumfacing = EnumFacing.EAST; - break; - case 2: - enumfacing = EnumFacing.WEST; - break; - case 3: - enumfacing = EnumFacing.SOUTH; - break; - case 4: - enumfacing = EnumFacing.NORTH; - break; - case 5: - default: - enumfacing = EnumFacing.UP; - } - return getDefaultState().withProperty(FACING, enumfacing).withProperty(POWERED, Boolean.valueOf((meta & 8) > 0)); - } - @Override - public int getMetaFromState(IBlockState state) - { - int i; - switch (state.getValue(FACING)) - { - case EAST: - i = 1; - break; - case WEST: - i = 2; - break; - case SOUTH: - i = 3; - break; - case NORTH: - i = 4; - break; - case UP: - default: - i = 5; - break; - case DOWN: - i = 0; - } - if (state.getValue(POWERED).booleanValue()) - i |= 8; - return i; - } - @Override - public IBlockState withRotation(IBlockState state, Rotation rot) - { - return state.withProperty(FACING, rot.rotate(state.getValue(FACING))); - } - @Override - public IBlockState withMirror(IBlockState state, Mirror mirrorIn) - { - return state.withRotation(mirrorIn.toRotation(state.getValue(FACING))); - } - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, new IProperty[] {FACING, POWERED}); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/buttonTicks/EmeraldButtonTicks.java b/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/buttonTicks/EmeraldButtonTicks.java deleted file mode 100644 index 26b5698..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/buttonTicks/EmeraldButtonTicks.java +++ /dev/null @@ -1,316 +0,0 @@ -package com.NetherNoah.ParadiseMod.CustomBlockCode.buttonTicks; - -import java.util.List; -import java.util.Random; - -import javax.annotation.Nullable; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockDirectional; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.IProperty; -import net.minecraft.block.properties.PropertyBool; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.Mirror; -import net.minecraft.util.Rotation; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -public abstract class EmeraldButtonTicks extends BlockDirectional -{ - public static final PropertyBool POWERED = PropertyBool.create("powered"); - protected static final AxisAlignedBB AABB_DOWN_OFF = new AxisAlignedBB(0.3125D, 0.875D, 0.375D, 0.6875D, 1.0D, 0.625D); - protected static final AxisAlignedBB AABB_UP_OFF = new AxisAlignedBB(0.3125D, 0.0D, 0.375D, 0.6875D, 0.125D, 0.625D); - protected static final AxisAlignedBB AABB_NORTH_OFF = new AxisAlignedBB(0.3125D, 0.375D, 0.875D, 0.6875D, 0.625D, 1.0D); - protected static final AxisAlignedBB AABB_SOUTH_OFF = new AxisAlignedBB(0.3125D, 0.375D, 0.0D, 0.6875D, 0.625D, 0.125D); - protected static final AxisAlignedBB AABB_WEST_OFF = new AxisAlignedBB(0.875D, 0.375D, 0.3125D, 1.0D, 0.625D, 0.6875D); - protected static final AxisAlignedBB AABB_EAST_OFF = new AxisAlignedBB(0.0D, 0.375D, 0.3125D, 0.125D, 0.625D, 0.6875D); - protected static final AxisAlignedBB AABB_DOWN_ON = new AxisAlignedBB(0.3125D, 0.9375D, 0.375D, 0.6875D, 1.0D, 0.625D); - protected static final AxisAlignedBB AABB_UP_ON = new AxisAlignedBB(0.3125D, 0.0D, 0.375D, 0.6875D, 0.0625D, 0.625D); - protected static final AxisAlignedBB AABB_NORTH_ON = new AxisAlignedBB(0.3125D, 0.375D, 0.9375D, 0.6875D, 0.625D, 1.0D); - protected static final AxisAlignedBB AABB_SOUTH_ON = new AxisAlignedBB(0.3125D, 0.375D, 0.0D, 0.6875D, 0.625D, 0.0625D); - protected static final AxisAlignedBB AABB_WEST_ON = new AxisAlignedBB(0.9375D, 0.375D, 0.3125D, 1.0D, 0.625D, 0.6875D); - protected static final AxisAlignedBB AABB_EAST_ON = new AxisAlignedBB(0.0D, 0.375D, 0.3125D, 0.0625D, 0.625D, 0.6875D); - private final boolean wooden; - - protected EmeraldButtonTicks(boolean wooden) - { - super(Material.CIRCUITS); - setDefaultState(blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH).withProperty(POWERED, Boolean.valueOf(false))); - setTickRandomly(true); - setCreativeTab(CreativeTabs.REDSTONE); - this.wooden = wooden; - } - - @Override - @Nullable - public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, IBlockAccess worldIn, BlockPos pos) - { - return NULL_AABB; - } - @Override - public int tickRate(World worldIn) - { - return wooden ? 10 : 20; - } - @Override - public boolean isOpaqueCube(IBlockState state) - { - return false; - } - @Override - public boolean isFullCube(IBlockState state) - { - return false; - } - @Override - public boolean canPlaceBlockOnSide(World worldIn, BlockPos pos, EnumFacing side) - { - return canPlaceBlock(worldIn, pos, side.getOpposite()); - } - @Override - public boolean canPlaceBlockAt(World worldIn, BlockPos pos) - { - for (EnumFacing enumfacing : EnumFacing.values()) - { - if (canPlaceBlock(worldIn, pos, enumfacing)) - return true; - } - return false; - } - protected static boolean canPlaceBlock(World worldIn, BlockPos pos, EnumFacing direction) - { - BlockPos blockpos = pos.offset(direction); - return worldIn.getBlockState(blockpos).isSideSolid(worldIn, blockpos, direction.getOpposite()); - } - @Override - public IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer) - { - return canPlaceBlock(worldIn, pos, facing.getOpposite()) ? getDefaultState().withProperty(FACING, facing).withProperty(POWERED, Boolean.valueOf(false)) : getDefaultState().withProperty(FACING, EnumFacing.DOWN).withProperty(POWERED, Boolean.valueOf(false)); - } - @Override - public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos) - { - if (checkForDrop(worldIn, pos, state) && !canPlaceBlock(worldIn, pos, state.getValue(FACING).getOpposite())) - { - dropBlockAsItem(worldIn, pos, state, 0); - worldIn.setBlockToAir(pos); - } - } - private boolean checkForDrop(World worldIn, BlockPos pos, IBlockState state) - { - if (canPlaceBlockAt(worldIn, pos)) - return true; - else - { - dropBlockAsItem(worldIn, pos, state, 0); - worldIn.setBlockToAir(pos); - return false; - } - } - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) - { - EnumFacing enumfacing = state.getValue(FACING); - boolean flag = state.getValue(POWERED).booleanValue(); - switch (enumfacing) - { - case EAST: - return flag ? AABB_EAST_ON : AABB_EAST_OFF; - case WEST: - return flag ? AABB_WEST_ON : AABB_WEST_OFF; - case SOUTH: - return flag ? AABB_SOUTH_ON : AABB_SOUTH_OFF; - case NORTH: - default: - return flag ? AABB_NORTH_ON : AABB_NORTH_OFF; - case UP: - return flag ? AABB_UP_ON : AABB_UP_OFF; - case DOWN: - return flag ? AABB_DOWN_ON : AABB_DOWN_OFF; - } - } - @Override - public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) - { - if (state.getValue(POWERED).booleanValue()) - return true; - else - { - worldIn.setBlockState(pos, state.withProperty(POWERED, Boolean.valueOf(true)), 3); - worldIn.markBlockRangeForRenderUpdate(pos, pos); - playClickSound(playerIn, worldIn, pos); - notifyNeighbors(worldIn, pos, state.getValue(FACING)); - worldIn.scheduleUpdate(pos, this, tickRate(worldIn)); - return true; - } - } - protected abstract void playClickSound(@Nullable EntityPlayer player, World worldIn, BlockPos pos); - protected abstract void playReleaseSound(World worldIn, BlockPos pos); - @Override - public void breakBlock(World worldIn, BlockPos pos, IBlockState state) - { - if (state.getValue(POWERED).booleanValue()) - notifyNeighbors(worldIn, pos, state.getValue(FACING)); - super.breakBlock(worldIn, pos, state); - } - @Override - public int getWeakPower(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side) - { - return blockState.getValue(POWERED).booleanValue() ? 15 : 0; - } - @Override - public int getStrongPower(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side) - { - return !blockState.getValue(POWERED).booleanValue() ? 0 : (blockState.getValue(FACING) == side ? 15 : 0); - } - @Override - public boolean canProvidePower(IBlockState state) - { - return true; - } - @Override - public void randomTick(World worldIn, BlockPos pos, IBlockState state, Random random) - { - } - @Override - public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) - { - if (!worldIn.isRemote) - { - if (state.getValue(POWERED).booleanValue()) - { - if (wooden) - checkPressed(state, worldIn, pos); - else - { - worldIn.setBlockState(pos, state.withProperty(POWERED, Boolean.valueOf(false))); - notifyNeighbors(worldIn, pos, state.getValue(FACING)); - playReleaseSound(worldIn, pos); - worldIn.markBlockRangeForRenderUpdate(pos, pos); - } - } - } - } - @Override - public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState state, Entity entityIn) - { - if (!worldIn.isRemote) - { - if (wooden) - { - if (!state.getValue(POWERED).booleanValue()) - checkPressed(state, worldIn, pos); - } - } - } - private void checkPressed(IBlockState p_185616_1_, World p_185616_2_, BlockPos p_185616_3_) - { - List list = p_185616_2_.getEntitiesWithinAABB(EntityArrow.class, p_185616_1_.getBoundingBox(p_185616_2_, p_185616_3_).offset(p_185616_3_)); - boolean flag = !list.isEmpty(); - boolean flag1 = p_185616_1_.getValue(POWERED).booleanValue(); - if (flag && !flag1) - { - p_185616_2_.setBlockState(p_185616_3_, p_185616_1_.withProperty(POWERED, Boolean.valueOf(true))); - notifyNeighbors(p_185616_2_, p_185616_3_, p_185616_1_.getValue(FACING)); - p_185616_2_.markBlockRangeForRenderUpdate(p_185616_3_, p_185616_3_); - playClickSound((EntityPlayer)null, p_185616_2_, p_185616_3_); - } - if (!flag && flag1) - { - p_185616_2_.setBlockState(p_185616_3_, p_185616_1_.withProperty(POWERED, Boolean.valueOf(false))); - notifyNeighbors(p_185616_2_, p_185616_3_, p_185616_1_.getValue(FACING)); - p_185616_2_.markBlockRangeForRenderUpdate(p_185616_3_, p_185616_3_); - this.playReleaseSound(p_185616_2_, p_185616_3_); - } - if (flag) - p_185616_2_.scheduleUpdate(new BlockPos(p_185616_3_), this, this.tickRate(p_185616_2_)); - } - private void notifyNeighbors(World worldIn, BlockPos pos, EnumFacing facing) - { - worldIn.notifyNeighborsOfStateChange(pos, this, false); - worldIn.notifyNeighborsOfStateChange(pos.offset(facing.getOpposite()), this, false); - } - @Override - public IBlockState getStateFromMeta(int meta) - { - EnumFacing enumfacing; - - switch (meta & 7) - { - case 0: - enumfacing = EnumFacing.DOWN; - break; - case 1: - enumfacing = EnumFacing.EAST; - break; - case 2: - enumfacing = EnumFacing.WEST; - break; - case 3: - enumfacing = EnumFacing.SOUTH; - break; - case 4: - enumfacing = EnumFacing.NORTH; - break; - case 5: - default: - enumfacing = EnumFacing.UP; - } - return this.getDefaultState().withProperty(FACING, enumfacing).withProperty(POWERED, Boolean.valueOf((meta & 8) > 0)); - } - @Override - public int getMetaFromState(IBlockState state) - { - int i; - switch (state.getValue(FACING)) - { - case EAST: - i = 1; - break; - case WEST: - i = 2; - break; - case SOUTH: - i = 3; - break; - case NORTH: - i = 4; - break; - case UP: - default: - i = 5; - break; - case DOWN: - i = 0; - } - if (state.getValue(POWERED).booleanValue()) - i |= 8; - return i; - } - @Override - public IBlockState withRotation(IBlockState state, Rotation rot) - { - return state.withProperty(FACING, rot.rotate(state.getValue(FACING))); - } - @Override - public IBlockState withMirror(IBlockState state, Mirror mirrorIn) - { - return state.withRotation(mirrorIn.toRotation(state.getValue(FACING))); - } - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, new IProperty[] {FACING, POWERED}); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/buttonTicks/QuickButton.java b/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/buttonTicks/QuickButton.java deleted file mode 100644 index ac1c431..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/buttonTicks/QuickButton.java +++ /dev/null @@ -1,293 +0,0 @@ -package com.NetherNoah.ParadiseMod.CustomBlockCode.buttonTicks; - -import java.util.List; -import java.util.Random; - -import javax.annotation.Nullable; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockDirectional; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.IProperty; -import net.minecraft.block.properties.PropertyBool; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.Mirror; -import net.minecraft.util.Rotation; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -public abstract class QuickButton extends BlockDirectional { - public static final PropertyBool POWERED = PropertyBool.create("powered"); - protected static final AxisAlignedBB AABB_DOWN_OFF = new AxisAlignedBB(0.3125D, 0.875D, 0.375D, 0.6875D, 1.0D, - 0.625D); - protected static final AxisAlignedBB AABB_UP_OFF = new AxisAlignedBB(0.3125D, 0.0D, 0.375D, 0.6875D, 0.125D, - 0.625D); - protected static final AxisAlignedBB AABB_NORTH_OFF = new AxisAlignedBB(0.3125D, 0.375D, 0.875D, 0.6875D, 0.625D, - 1.0D); - protected static final AxisAlignedBB AABB_SOUTH_OFF = new AxisAlignedBB(0.3125D, 0.375D, 0.0D, 0.6875D, 0.625D, - 0.125D); - protected static final AxisAlignedBB AABB_WEST_OFF = new AxisAlignedBB(0.875D, 0.375D, 0.3125D, 1.0D, 0.625D, - 0.6875D); - protected static final AxisAlignedBB AABB_EAST_OFF = new AxisAlignedBB(0.0D, 0.375D, 0.3125D, 0.125D, 0.625D, - 0.6875D); - protected static final AxisAlignedBB AABB_DOWN_ON = new AxisAlignedBB(0.3125D, 0.9375D, 0.375D, 0.6875D, 1.0D, - 0.625D); - protected static final AxisAlignedBB AABB_UP_ON = new AxisAlignedBB(0.3125D, 0.0D, 0.375D, 0.6875D, 0.0625D, - 0.625D); - protected static final AxisAlignedBB AABB_NORTH_ON = new AxisAlignedBB(0.3125D, 0.375D, 0.9375D, 0.6875D, 0.625D, - 1.0D); - protected static final AxisAlignedBB AABB_SOUTH_ON = new AxisAlignedBB(0.3125D, 0.375D, 0.0D, 0.6875D, 0.625D, - 0.0625D); - protected static final AxisAlignedBB AABB_WEST_ON = new AxisAlignedBB(0.9375D, 0.375D, 0.3125D, 1.0D, 0.625D, - 0.6875D); - protected static final AxisAlignedBB AABB_EAST_ON = new AxisAlignedBB(0.0D, 0.375D, 0.3125D, 0.0625D, 0.625D, - 0.6875D); - private final boolean wooden; - protected QuickButton(boolean wooden) { - super(Material.CIRCUITS); - setDefaultState(blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH).withProperty(POWERED, - Boolean.valueOf(false))); - setTickRandomly(true); - setCreativeTab(CreativeTabs.REDSTONE); - this.wooden = wooden; - } - @Override - @Nullable - public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, IBlockAccess worldIn, BlockPos pos) { - return NULL_AABB; - } - @Override - public int tickRate(World worldIn) { - return wooden ? 2 : 4; - } - @Override - public boolean isOpaqueCube(IBlockState state) { - return false; - } - @Override - public boolean isFullCube(IBlockState state) { - return false; - } - @Override - public boolean canPlaceBlockOnSide(World worldIn, BlockPos pos, EnumFacing side) { - return canPlaceBlock(worldIn, pos, side.getOpposite()); - } - @Override - public boolean canPlaceBlockAt(World worldIn, BlockPos pos) { - for (EnumFacing enumfacing : EnumFacing.values()) { - if (canPlaceBlock(worldIn, pos, enumfacing)) - return true; - } - return false; - } - protected static boolean canPlaceBlock(World worldIn, BlockPos pos, EnumFacing direction) { - BlockPos blockpos = pos.offset(direction); - return worldIn.getBlockState(blockpos).isSideSolid(worldIn, blockpos, direction.getOpposite()); - } - @Override - public IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, - float hitZ, int meta, EntityLivingBase placer) { - return canPlaceBlock(worldIn, pos, facing.getOpposite()) - ? getDefaultState().withProperty(FACING, facing).withProperty(POWERED, Boolean.valueOf(false)) - : getDefaultState().withProperty(FACING, EnumFacing.DOWN).withProperty(POWERED, - Boolean.valueOf(false)); - } - @Override - public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos) { - if (checkForDrop(worldIn, pos, state) - && !canPlaceBlock(worldIn, pos, state.getValue(FACING).getOpposite())) { - dropBlockAsItem(worldIn, pos, state, 0); - worldIn.setBlockToAir(pos); - } - } - private boolean checkForDrop(World worldIn, BlockPos pos, IBlockState state) { - if (canPlaceBlockAt(worldIn, pos)) - return true; - else { - dropBlockAsItem(worldIn, pos, state, 0); - worldIn.setBlockToAir(pos); - return false; - } - } - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) { - EnumFacing enumfacing = state.getValue(FACING); - boolean flag = state.getValue(POWERED).booleanValue(); - switch (enumfacing) { - case EAST: - return flag ? AABB_EAST_ON : AABB_EAST_OFF; - case WEST: - return flag ? AABB_WEST_ON : AABB_WEST_OFF; - case SOUTH: - return flag ? AABB_SOUTH_ON : AABB_SOUTH_OFF; - case NORTH: - default: - return flag ? AABB_NORTH_ON : AABB_NORTH_OFF; - case UP: - return flag ? AABB_UP_ON : AABB_UP_OFF; - case DOWN: - return flag ? AABB_DOWN_ON : AABB_DOWN_OFF; - } - } - @Override - public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, - EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { - if (state.getValue(POWERED).booleanValue()) { - return true; - } else { - worldIn.setBlockState(pos, state.withProperty(POWERED, Boolean.valueOf(true)), 3); - worldIn.markBlockRangeForRenderUpdate(pos, pos); - playClickSound(playerIn, worldIn, pos); - notifyNeighbors(worldIn, pos, state.getValue(FACING)); - worldIn.scheduleUpdate(pos, this, tickRate(worldIn)); - return true; - } - } - protected abstract void playClickSound(@Nullable EntityPlayer player, World worldIn, BlockPos pos); - protected abstract void playReleaseSound(World worldIn, BlockPos pos); - @Override - public void breakBlock(World worldIn, BlockPos pos, IBlockState state) { - if (state.getValue(POWERED).booleanValue()) { - notifyNeighbors(worldIn, pos, state.getValue(FACING)); - } - super.breakBlock(worldIn, pos, state); - } - @Override - public int getWeakPower(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side) { - return blockState.getValue(POWERED).booleanValue() ? 15 : 0; - } - @Override - public int getStrongPower(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side) { - return !blockState.getValue(POWERED).booleanValue() ? 0 : (blockState.getValue(FACING) == side ? 15 : 0); - } - @Override - public boolean canProvidePower(IBlockState state) { - return true; - } - @Override - public void randomTick(World worldIn, BlockPos pos, IBlockState state, Random random) { - } - @Override - public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) { - if (!worldIn.isRemote) { - if (state.getValue(POWERED).booleanValue()) { - if (wooden) - checkPressed(state, worldIn, pos); - else { - worldIn.setBlockState(pos, state.withProperty(POWERED, Boolean.valueOf(false))); - notifyNeighbors(worldIn, pos, state.getValue(FACING)); - playReleaseSound(worldIn, pos); - worldIn.markBlockRangeForRenderUpdate(pos, pos); - } - } - } - } - @Override - public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState state, Entity entityIn) { - if (!worldIn.isRemote) { - if (wooden) { - if (!state.getValue(POWERED).booleanValue()) - checkPressed(state, worldIn, pos); - } - } - } - private void checkPressed(IBlockState p_185616_1_, World p_185616_2_, BlockPos p_185616_3_) { - List list = p_185616_2_.getEntitiesWithinAABB(EntityArrow.class, - p_185616_1_.getBoundingBox(p_185616_2_, p_185616_3_).offset(p_185616_3_)); - boolean flag = !list.isEmpty(); - boolean flag1 = p_185616_1_.getValue(POWERED).booleanValue(); - if (flag && !flag1) { - p_185616_2_.setBlockState(p_185616_3_, p_185616_1_.withProperty(POWERED, Boolean.valueOf(true))); - notifyNeighbors(p_185616_2_, p_185616_3_, p_185616_1_.getValue(FACING)); - p_185616_2_.markBlockRangeForRenderUpdate(p_185616_3_, p_185616_3_); - playClickSound((EntityPlayer) null, p_185616_2_, p_185616_3_); - } - if (!flag && flag1) { - p_185616_2_.setBlockState(p_185616_3_, p_185616_1_.withProperty(POWERED, Boolean.valueOf(false))); - notifyNeighbors(p_185616_2_, p_185616_3_, p_185616_1_.getValue(FACING)); - p_185616_2_.markBlockRangeForRenderUpdate(p_185616_3_, p_185616_3_); - playReleaseSound(p_185616_2_, p_185616_3_); - } - if (flag) - p_185616_2_.scheduleUpdate(new BlockPos(p_185616_3_), this, tickRate(p_185616_2_)); - } - private void notifyNeighbors(World worldIn, BlockPos pos, EnumFacing facing) { - worldIn.notifyNeighborsOfStateChange(pos, this, false); - worldIn.notifyNeighborsOfStateChange(pos.offset(facing.getOpposite()), this, false); - } - @Override - public IBlockState getStateFromMeta(int meta) { - EnumFacing enumfacing; - switch (meta & 7) { - case 0: - enumfacing = EnumFacing.DOWN; - break; - case 1: - enumfacing = EnumFacing.EAST; - break; - case 2: - enumfacing = EnumFacing.WEST; - break; - case 3: - enumfacing = EnumFacing.SOUTH; - break; - case 4: - enumfacing = EnumFacing.NORTH; - break; - case 5: - default: - enumfacing = EnumFacing.UP; - } - return getDefaultState().withProperty(FACING, enumfacing).withProperty(POWERED, - Boolean.valueOf((meta & 8) > 0)); - } - @Override - public int getMetaFromState(IBlockState state) { - int i; - switch (state.getValue(FACING)) { - case EAST: - i = 1; - break; - case WEST: - i = 2; - break; - case SOUTH: - i = 3; - break; - case NORTH: - i = 4; - break; - case UP: - default: - i = 5; - break; - case DOWN: - i = 0; - } - if (state.getValue(POWERED).booleanValue()) - i |= 8; - return i; - } - @Override - public IBlockState withRotation(IBlockState state, Rotation rot) { - return state.withProperty(FACING, rot.rotate(state.getValue(FACING))); - } - @Override - public IBlockState withMirror(IBlockState state, Mirror mirrorIn) { - return state.withRotation(mirrorIn.toRotation(state.getValue(FACING))); - } - @Override - protected BlockStateContainer createBlockState() { - return new BlockStateContainer(this, new IProperty[] { FACING, POWERED }); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/planks.java b/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/planks.java deleted file mode 100644 index 4aa6a70..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/planks.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.NetherNoah.ParadiseMod.CustomBlockCode; - -import net.minecraft.block.Block; -import net.minecraft.block.material.MapColor; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.IProperty; -import net.minecraft.block.properties.PropertyEnum; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IStringSerializable; -import net.minecraft.util.NonNullList; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class planks extends Block -{ - public static final PropertyEnum VARIANT = PropertyEnum.create("variant", planks.EnumType.class); - - public planks() - { - super(Material.WOOD); - setDefaultState(blockState.getBaseState().withProperty(VARIANT, planks.EnumType.CHRISTMAS)); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - } - @Override - public int damageDropped(IBlockState state) - { - return state.getValue(VARIANT).getMetadata(); - } - @SideOnly(Side.CLIENT) - public void getSubBlocks(Item itemIn, CreativeTabs tab, NonNullList list) - { - for (planks.EnumType blockplanks$enumtype : planks.EnumType.values()) - list.add(new ItemStack(itemIn, 1, blockplanks$enumtype.getMetadata())); - } - @Override - public IBlockState getStateFromMeta(int meta) - { - return getDefaultState().withProperty(VARIANT, planks.EnumType.byMetadata(meta)); - } - public MapColor getMapColor(IBlockState state) - { - return state.getValue(VARIANT).getMapColor(); - } - @Override - public int getMetaFromState(IBlockState state) - { - return state.getValue(VARIANT).getMetadata(); - } - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, new IProperty[] {VARIANT}); - } - public static enum EnumType implements IStringSerializable - { - CHRISTMAS(0, "christmas", MapColor.WOOD); - private static final planks.EnumType[] META_LOOKUP = new planks.EnumType[values().length]; - private final int meta; - private final String name; - private final String unlocalizedName; - private final MapColor mapColor; - private EnumType(int metaIn, String nameIn, MapColor mapColorIn) - { - this(metaIn, nameIn, nameIn, mapColorIn); - } - private EnumType(int metaIn, String nameIn, String unlocalizedNameIn, MapColor mapColorIn) - { - meta = metaIn; - name = nameIn; - unlocalizedName = unlocalizedNameIn; - mapColor = mapColorIn; - } - public int getMetadata() - { - return meta; - } - public MapColor getMapColor() - { - return mapColor; - } - @Override - public String toString() - { - return name; - } - public static planks.EnumType byMetadata(int meta) - { - if (meta < 0 || meta >= META_LOOKUP.length) - meta = 0; - return META_LOOKUP[meta]; - } - @Override - public String getName() - { - return name; - } - public String getUnlocalizedName() - { - return unlocalizedName; - } - static - { - for (planks.EnumType blockplanks$enumtype : values()) - META_LOOKUP[blockplanks$enumtype.getMetadata()] = blockplanks$enumtype; - } - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/pressurePlates/BedrockPlateCode.java b/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/pressurePlates/BedrockPlateCode.java deleted file mode 100644 index d250702..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/pressurePlates/BedrockPlateCode.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.NetherNoah.ParadiseMod.CustomBlockCode.pressurePlates; - -import java.util.List; - -import net.minecraft.block.BlockBasePressurePlate; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.IProperty; -import net.minecraft.block.properties.PropertyBool; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.SoundEvents; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class BedrockPlateCode extends BlockBasePressurePlate -{ - public static final PropertyBool POWERED = PropertyBool.create("powered"); - private final BedrockPlateCode.Sensitivity sensitivity; - protected BedrockPlateCode(Material materialIn, BedrockPlateCode.Sensitivity sensitivityIn) - { - super(materialIn); - setDefaultState(blockState.getBaseState().withProperty(POWERED, Boolean.valueOf(false))); - sensitivity = sensitivityIn; - } - @Override - protected int getRedstoneStrength(IBlockState state) - { - return state.getValue(POWERED).booleanValue() ? 15 : 0; - } - @Override - protected IBlockState setRedstoneStrength(IBlockState state, int strength) - { - return state.withProperty(POWERED, Boolean.valueOf(strength > 0)); - } - @Override - protected void playClickOnSound(World worldIn, BlockPos color) - { - if (blockMaterial == Material.WOOD) - worldIn.playSound((EntityPlayer)null, color, SoundEvents.BLOCK_WOOD_PRESSPLATE_CLICK_ON, SoundCategory.BLOCKS, 0.3F, 0.8F); - else - worldIn.playSound((EntityPlayer)null, color, SoundEvents.BLOCK_STONE_PRESSPLATE_CLICK_ON, SoundCategory.BLOCKS, 0.3F, 0.6F); - } - @Override - protected void playClickOffSound(World worldIn, BlockPos pos) - { - if (blockMaterial == Material.WOOD) - worldIn.playSound((EntityPlayer)null, pos, SoundEvents.BLOCK_WOOD_PRESSPLATE_CLICK_OFF, SoundCategory.BLOCKS, 0.3F, 0.7F); - else - worldIn.playSound((EntityPlayer)null, pos, SoundEvents.BLOCK_STONE_PRESSPLATE_CLICK_OFF, SoundCategory.BLOCKS, 0.3F, 0.5F); - } - @Override - protected int computeRedstoneStrength(World worldIn, BlockPos pos) - { - AxisAlignedBB axisalignedbb = PRESSURE_AABB.offset(pos); - List list; - switch (sensitivity) - { - case PLAYER: - list = worldIn.getEntitiesWithinAABB(EntityPlayer.class, axisalignedbb); - break; - case EVERYTHING: - list = worldIn.getEntitiesWithinAABBExcludingEntity((Entity)null, axisalignedbb); - break; - case MOBS: - list = worldIn.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - break; - default: - return 0; - } - if (!list.isEmpty()) - { - for (Entity entity : list) - { - if (!entity.doesEntityNotTriggerPressurePlate()) - return 15; - } - } - return 0; - } - @Override - public IBlockState getStateFromMeta(int meta) - { - return getDefaultState().withProperty(POWERED, Boolean.valueOf(meta == 1)); - } - @Override - public int getMetaFromState(IBlockState state) - { - return state.getValue(POWERED).booleanValue() ? 1 : 0; - } - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, new IProperty[] {POWERED}); - } - public static enum Sensitivity - { - PLAYER, - EVERYTHING, - MOBS; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/pressurePlates/DiamondPlateCode.java b/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/pressurePlates/DiamondPlateCode.java deleted file mode 100644 index 1e73446..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/pressurePlates/DiamondPlateCode.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.NetherNoah.ParadiseMod.CustomBlockCode.pressurePlates; - -import java.util.List; - -import net.minecraft.block.BlockBasePressurePlate; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.IProperty; -import net.minecraft.block.properties.PropertyBool; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.SoundEvents; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class DiamondPlateCode extends BlockBasePressurePlate -{ - public static final PropertyBool POWERED = PropertyBool.create("powered"); - private final DiamondPlateCode.Sensitivity sensitivity; - protected DiamondPlateCode(Material materialIn, DiamondPlateCode.Sensitivity sensitivityIn) - { - super(materialIn); - setDefaultState(blockState.getBaseState().withProperty(POWERED, Boolean.valueOf(false))); - sensitivity = sensitivityIn; - } - @Override - protected int getRedstoneStrength(IBlockState state) - { - return state.getValue(POWERED).booleanValue() ? 15 : 0; - } - @Override - protected IBlockState setRedstoneStrength(IBlockState state, int strength) - { - return state.withProperty(POWERED, Boolean.valueOf(strength > 0)); - } - @Override - protected void playClickOnSound(World worldIn, BlockPos color) - { - if (blockMaterial == Material.WOOD) - worldIn.playSound((EntityPlayer)null, color, SoundEvents.BLOCK_WOOD_PRESSPLATE_CLICK_ON, SoundCategory.BLOCKS, 0.3F, 0.8F); - else - worldIn.playSound((EntityPlayer)null, color, SoundEvents.BLOCK_STONE_PRESSPLATE_CLICK_ON, SoundCategory.BLOCKS, 0.3F, 0.6F); - } - @Override - protected void playClickOffSound(World worldIn, BlockPos pos) - { - if (blockMaterial == Material.WOOD) - worldIn.playSound((EntityPlayer)null, pos, SoundEvents.BLOCK_WOOD_PRESSPLATE_CLICK_OFF, SoundCategory.BLOCKS, 0.3F, 0.7F); - else - worldIn.playSound((EntityPlayer)null, pos, SoundEvents.BLOCK_STONE_PRESSPLATE_CLICK_OFF, SoundCategory.BLOCKS, 0.3F, 0.5F); - } - @Override - protected int computeRedstoneStrength(World worldIn, BlockPos pos) - { - AxisAlignedBB axisalignedbb = PRESSURE_AABB.offset(pos); - List list; - - switch (sensitivity) - { - case EVERYTHING: - list = worldIn.getEntitiesWithinAABBExcludingEntity((Entity)null, axisalignedbb); - break; - case MOBS: - list = worldIn.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - break; - default: - return 0; - } - if (!list.isEmpty()) - { - for (Entity entity : list) - { - if (!entity.doesEntityNotTriggerPressurePlate()) - return 7; - } - } - return 0; - } - @Override - public IBlockState getStateFromMeta(int meta) - { - return getDefaultState().withProperty(POWERED, Boolean.valueOf(meta == 1)); - } - @Override - public int getMetaFromState(IBlockState state) - { - return state.getValue(POWERED).booleanValue() ? 1 : 0; - } - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, new IProperty[] {POWERED}); - } - public static enum Sensitivity - { - EVERYTHING, - MOBS; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/pressurePlates/EmeraldPlateCode.java b/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/pressurePlates/EmeraldPlateCode.java deleted file mode 100644 index 8ada4e3..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/pressurePlates/EmeraldPlateCode.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.NetherNoah.ParadiseMod.CustomBlockCode.pressurePlates; - -import java.util.List; - -import net.minecraft.block.BlockBasePressurePlate; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.IProperty; -import net.minecraft.block.properties.PropertyBool; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.SoundEvents; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class EmeraldPlateCode extends BlockBasePressurePlate -{ - public static final PropertyBool POWERED = PropertyBool.create("powered"); - private final EmeraldPlateCode.Sensitivity sensitivity; - protected EmeraldPlateCode(Material materialIn, EmeraldPlateCode.Sensitivity sensitivityIn) - { - super(materialIn); - setDefaultState(blockState.getBaseState().withProperty(POWERED, Boolean.valueOf(false))); - sensitivity = sensitivityIn; - } - @Override - protected int getRedstoneStrength(IBlockState state) - { - return state.getValue(POWERED).booleanValue() ? 15 : 0; - } - @Override - protected IBlockState setRedstoneStrength(IBlockState state, int strength) - { - return state.withProperty(POWERED, Boolean.valueOf(strength > 0)); - } - @Override - protected void playClickOnSound(World worldIn, BlockPos color) - { - if (blockMaterial == Material.WOOD) - worldIn.playSound((EntityPlayer)null, color, SoundEvents.BLOCK_WOOD_PRESSPLATE_CLICK_ON, SoundCategory.BLOCKS, 0.3F, 0.8F); - else - worldIn.playSound((EntityPlayer)null, color, SoundEvents.BLOCK_STONE_PRESSPLATE_CLICK_ON, SoundCategory.BLOCKS, 0.3F, 0.6F); - } - @Override - protected void playClickOffSound(World worldIn, BlockPos pos) - { - if (blockMaterial == Material.WOOD) - worldIn.playSound((EntityPlayer)null, pos, SoundEvents.BLOCK_WOOD_PRESSPLATE_CLICK_OFF, SoundCategory.BLOCKS, 0.3F, 0.7F); - else - worldIn.playSound((EntityPlayer)null, pos, SoundEvents.BLOCK_STONE_PRESSPLATE_CLICK_OFF, SoundCategory.BLOCKS, 0.3F, 0.5F); - } - @Override - protected int computeRedstoneStrength(World worldIn, BlockPos pos) - { - AxisAlignedBB axisalignedbb = PRESSURE_AABB.offset(pos); - List list; - - switch (sensitivity) - { - case EVERYTHING: - list = worldIn.getEntitiesWithinAABBExcludingEntity((Entity)null, axisalignedbb); - break; - case MOBS: - list = worldIn.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - break; - default: - return 0; - } - if (!list.isEmpty()) - { - for (Entity entity : list) - { - if (!entity.doesEntityNotTriggerPressurePlate()) - return 5; - } - } - return 0; - } - @Override - public IBlockState getStateFromMeta(int meta) - { - return getDefaultState().withProperty(POWERED, Boolean.valueOf(meta == 1)); - } - @Override - public int getMetaFromState(IBlockState state) - { - return state.getValue(POWERED).booleanValue() ? 1 : 0; - } - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, new IProperty[] {POWERED}); - } - public static enum Sensitivity - { - EVERYTHING, - MOBS; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/xmasTree.java b/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/xmasTree.java deleted file mode 100644 index 61bdbf4..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/xmasTree.java +++ /dev/null @@ -1,174 +0,0 @@ -package com.NetherNoah.ParadiseMod.CustomBlockCode; - -import java.util.Random; - -import com.NetherNoah.ParadiseMod.world.worldgen.misc.ChristmasTree; - -import net.minecraft.block.BlockBush; -import net.minecraft.block.IGrowable; -import net.minecraft.block.properties.IProperty; -import net.minecraft.block.properties.PropertyEnum; -import net.minecraft.block.properties.PropertyInteger; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.translation.I18n; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraft.world.gen.feature.WorldGenBigTree; -import net.minecraft.world.gen.feature.WorldGenTrees; -import net.minecraft.world.gen.feature.WorldGenerator; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class xmasTree extends BlockBush implements IGrowable -{ - public static final PropertyEnum TYPE = PropertyEnum.create("type", planks.EnumType.class); - public static final PropertyInteger STAGE = PropertyInteger.create("stage", 0, 1); - protected static final AxisAlignedBB SAPLING_AABB = new AxisAlignedBB(0.09999999403953552D, 0.0D, 0.09999999403953552D, 0.8999999761581421D, 0.800000011920929D, 0.8999999761581421D); - protected xmasTree() - { - setDefaultState(blockState.getBaseState().withProperty(TYPE, planks.EnumType.CHRISTMAS).withProperty(STAGE, Integer.valueOf(0))); - setCreativeTab(CreativeTabs.DECORATIONS); - } - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) - { - return SAPLING_AABB; - } - @Override - public String getLocalizedName() - { - return I18n.translateToLocal(getUnlocalizedName() + "." + planks.EnumType.CHRISTMAS.getUnlocalizedName() + ".name"); - } - @Override - public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) - { - if (!worldIn.isRemote) - { - super.updateTick(worldIn, pos, state, rand); - if (worldIn.getLightFromNeighbors(pos.up()) >= 9 && rand.nextInt(7) == 0) - grow(worldIn, pos, state, rand); - } - } - public void grow(World worldIn, BlockPos pos, IBlockState state, Random rand) - { - if (state.getValue(STAGE).intValue() == 0) - worldIn.setBlockState(pos, state.cycleProperty(STAGE), 4); - else - generateTree(worldIn, pos, state, rand); - } - public void generateTree(World worldIn, BlockPos pos, IBlockState state, Random rand) - { - if (!net.minecraftforge.event.terraingen.TerrainGen.saplingGrowTree(worldIn, rand, pos)) return; - WorldGenerator worldgenerator = rand.nextInt(10) == 0 ? new WorldGenBigTree(true) : new WorldGenTrees(true); - int i = 0; - int j = 0; - boolean flag = false; - switch (state.getValue(TYPE)) - { - case CHRISTMAS: - label114: - for (i = 0; i >= -1; --i) - { - for (j = 0; j >= -1; --j) - { - if (isTwoByTwoOfType(worldIn, pos, i, j, planks.EnumType.CHRISTMAS)) - { - worldgenerator = new ChristmasTree(true); - flag = true; - break label114; - } - } - } - if (!flag) - { - i = 0; - j = 0; - worldgenerator = new ChristmasTree(true); - } - break; - } - IBlockState iblockstate2 = Blocks.AIR.getDefaultState(); - if (flag) - { - worldIn.setBlockState(pos.add(i, 0, j), iblockstate2, 4); - worldIn.setBlockState(pos.add(i + 1, 0, j), iblockstate2, 4); - worldIn.setBlockState(pos.add(i, 0, j + 1), iblockstate2, 4); - worldIn.setBlockState(pos.add(i + 1, 0, j + 1), iblockstate2, 4); - } - else - worldIn.setBlockState(pos, iblockstate2, 4); - if (!worldgenerator.generate(worldIn, rand, pos.add(i, 0, j))) - { - if (flag) - { - worldIn.setBlockState(pos.add(i, 0, j), state, 4); - worldIn.setBlockState(pos.add(i + 1, 0, j), state, 4); - worldIn.setBlockState(pos.add(i, 0, j + 1), state, 4); - worldIn.setBlockState(pos.add(i + 1, 0, j + 1), state, 4); - } - else - worldIn.setBlockState(pos, state, 4); - } - } - private boolean isTwoByTwoOfType(World worldIn, BlockPos pos, int p_181624_3_, int p_181624_4_, planks.EnumType type) - { - return isTypeAt(worldIn, pos.add(p_181624_3_, 0, p_181624_4_), type) && isTypeAt(worldIn, pos.add(p_181624_3_ + 1, 0, p_181624_4_), type) && isTypeAt(worldIn, pos.add(p_181624_3_, 0, p_181624_4_ + 1), type) && isTypeAt(worldIn, pos.add(p_181624_3_ + 1, 0, p_181624_4_ + 1), type); - } - public boolean isTypeAt(World worldIn, BlockPos pos, planks.EnumType type) - { - IBlockState iblockstate = worldIn.getBlockState(pos); - return iblockstate.getBlock() == this && iblockstate.getValue(TYPE) == type; - } - @Override - public int damageDropped(IBlockState state) - { - return state.getValue(TYPE).getMetadata(); - } - @SideOnly(Side.CLIENT) - public void getSubBlocks(Item itemIn, CreativeTabs tab, NonNullList list) - { - for (planks.EnumType planks$enumtype : planks.EnumType.values()) - list.add(new ItemStack(itemIn, 1, planks$enumtype.getMetadata())); - } - @Override - public boolean canGrow(World worldIn, BlockPos pos, IBlockState state, boolean isClient) - { - return true; - } - @Override - public boolean canUseBonemeal(World worldIn, Random rand, BlockPos pos, IBlockState state) - { - return worldIn.rand.nextFloat() < 0.45D; - } - @Override - public void grow(World worldIn, Random rand, BlockPos pos, IBlockState state) - { - grow(worldIn, pos, state, rand); - } - @Override - public IBlockState getStateFromMeta(int meta) - { - return getDefaultState().withProperty(TYPE, planks.EnumType.byMetadata(meta & 7)).withProperty(STAGE, Integer.valueOf((meta & 8) >> 3)); - } - @Override - public int getMetaFromState(IBlockState state) - { - int i = 0; - i = i | state.getValue(TYPE).getMetadata(); - i = i | state.getValue(STAGE).intValue() << 3; - return i; - } - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, new IProperty[] {TYPE, STAGE}); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/GUI/ContainerCustomCraftBench.java b/src/main/java/com/NetherNoah/ParadiseMod/GUI/ContainerCustomCraftBench.java index d06fbc1..af9797b 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/GUI/ContainerCustomCraftBench.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/GUI/ContainerCustomCraftBench.java @@ -1,4 +1,5 @@ package com.NetherNoah.ParadiseMod.GUI; + //this was derived from vanilla code import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; diff --git a/src/main/java/com/NetherNoah/ParadiseMod/ParadiseMod.java b/src/main/java/com/NetherNoah/ParadiseMod/ParadiseMod.java index 8763321..90c76fc 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/ParadiseMod.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/ParadiseMod.java @@ -62,6 +62,7 @@ import com.NetherNoah.ParadiseMod.world.worldgen.structures.TreasureChest; import com.NetherNoah.ParadiseMod.world.worldgen.structures.UndergroundVillage; import com.NetherNoah.ParadiseMod.world.worldgen.structures.WickerMan; +import com.NetherNoah.ParadiseMod.world.worldgen.structures.blackCross; import com.NetherNoah.ParadiseMod.world.worldgen.structures.AttieCat.JeffTank; import com.NetherNoah.ParadiseMod.world.worldgen.structures.AttieCat.Shrine; import com.NetherNoah.ParadiseMod.world.worldgen.structures.Dungeons.BrickPyramid; @@ -205,6 +206,9 @@ public void preInit(FMLPreInitializationEvent event) { new PlayerTemples(), new GiantGrassBlock(), + //I am NOT an apostolic christian, nor do I want to be one, Genesis! + new blackCross(), + //created by AttieCat new Shrine(), new JeffTank(), @@ -233,7 +237,7 @@ public void preInit(FMLPreInitializationEvent event) { for(int i=0;i maxValue && numbers[i]!=0){ + maxValue = numbers[i]; + } + } + return maxValue; + } + + /** + *Gets the minimum value of an integer array + */ + public static int getMinValue(int[] numbers){ + int minValue = numbers[0]; + for(int i=1;i HINGE = PropertyEnum.create("hinge", BlockDoor.EnumHingePosition.class); - public static final PropertyBool POWERED = PropertyBool.create("powered"); public static final PropertyEnum HALF = PropertyEnum.create("half", BlockDoor.EnumDoorHalf.class); - protected static final AxisAlignedBB SOUTH_AABB = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 0.1875D); - protected static final AxisAlignedBB NORTH_AABB = new AxisAlignedBB(0.0D, 0.0D, 0.8125D, 1.0D, 1.0D, 1.0D); - protected static final AxisAlignedBB WEST_AABB = new AxisAlignedBB(0.8125D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D); - protected static final AxisAlignedBB EAST_AABB = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 0.1875D, 1.0D, 1.0D); + protected static final AxisAlignedBB SOUTH = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 0.1875D); + protected static final AxisAlignedBB NORTH = new AxisAlignedBB(0.0D, 0.0D, 0.8125D, 1.0D, 1.0D, 1.0D); + protected static final AxisAlignedBB WEST = new AxisAlignedBB(0.8125D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D); + protected static final AxisAlignedBB EAST = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 0.1875D, 1.0D, 1.0D); + + public RedstoneDoor() { + super(Material.ROCK); + setUnlocalizedName("RedstoneDoor"); + setRegistryName("redstone_door_block"); + setHardness(5F); + setResistance(10F); + setHarvestLevel("pickaxe", 2); + setSoundType(SoundType.METAL); + } + //the item is the door itself + @Override + public Item getItemDropped(IBlockState state, Random rand, int fortune) + { + return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.RedstoneDoor; + } + @Override + public boolean canConnectRedstone(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side) { + return true; + } + //this door is a rs power block! + @Override + public int getWeakPower(IBlockState state, IBlockAccess worldIn, BlockPos pos, EnumFacing side){ + return 15; + } + @Override + public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) + { + return new ItemStack(DoorItems.RedstoneDoor); + } @Override public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) { @@ -58,20 +85,15 @@ public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, Bloc { case EAST: default: - return flag ? EAST_AABB : (flag1 ? NORTH_AABB : SOUTH_AABB); + return flag ? EAST : (flag1 ? NORTH : SOUTH); case SOUTH: - return flag ? SOUTH_AABB : (flag1 ? EAST_AABB : WEST_AABB); + return flag ? SOUTH : (flag1 ? EAST : WEST); case WEST: - return flag ? WEST_AABB : (flag1 ? SOUTH_AABB : NORTH_AABB); + return flag ? WEST : (flag1 ? SOUTH : NORTH); case NORTH: - return flag ? NORTH_AABB : (flag1 ? WEST_AABB : EAST_AABB); + return flag ? NORTH : (flag1 ? WEST : EAST); } } - @Override - public String getLocalizedName() - { - return I18n.translateToLocal((getUnlocalizedName() + ".name").replaceAll("tile", "item")); - } @Override public boolean isOpaqueCube(IBlockState state) { @@ -87,38 +109,32 @@ public boolean isFullCube(IBlockState state) { return false; } - private int getCloseSound() + public int getCloseSound() { - return blockMaterial == Material.IRON ? 1011 : 1012; + return 1011; } private int getOpenSound() { - return blockMaterial == Material.IRON ? 1005 : 1006; + return 1005; } @Override public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { - if (blockMaterial == Material.IRON) - return false; + BlockPos blockpos = state.getValue(HALF) == BlockDoor.EnumDoorHalf.LOWER ? pos : pos.down(); + IBlockState iblockstate = pos.equals(blockpos) ? state : worldIn.getBlockState(blockpos); + + if (iblockstate.getBlock() != this) + return false; else { - BlockPos blockpos = state.getValue(HALF) == BlockDoor.EnumDoorHalf.LOWER ? pos : pos.down(); - IBlockState iblockstate = pos.equals(blockpos) ? state : worldIn.getBlockState(blockpos); - - if (iblockstate.getBlock() != this) - return false; - else - { - state = iblockstate.cycleProperty(OPEN); - worldIn.setBlockState(blockpos, state, 10); - worldIn.markBlockRangeForRenderUpdate(blockpos, pos); - worldIn.playEvent(playerIn, state.getValue(OPEN).booleanValue() ? getOpenSound() : getCloseSound(), pos, 0); - return true; - } + state = iblockstate.cycleProperty(OPEN); + worldIn.setBlockState(blockpos, state, 10); + worldIn.markBlockRangeForRenderUpdate(blockpos, pos); + worldIn.playEvent(playerIn, state.getValue(OPEN).booleanValue() ? getOpenSound() : getCloseSound(), pos, 0); + return true; } } - public void toggleDoor(World worldIn, BlockPos pos, boolean open) - { + public void toggleDoor(World worldIn, BlockPos pos, boolean open){ IBlockState iblockstate = worldIn.getBlockState(pos); if (iblockstate.getBlock() == this) @@ -135,13 +151,7 @@ public void toggleDoor(World worldIn, BlockPos pos, boolean open) } } @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) - { - return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR : getItem(); - } - @Override - public boolean canPlaceBlockAt(World worldIn, BlockPos pos) - { + public boolean canPlaceBlockAt(World worldIn, BlockPos pos){ return pos.getY() >= worldIn.getHeight() - 1 ? false : worldIn.getBlockState(pos.down()).isSideSolid(worldIn, pos.down(), EnumFacing.UP) && super.canPlaceBlockAt(worldIn, pos) && super.canPlaceBlockAt(worldIn, pos.up()); } @Override @@ -167,11 +177,7 @@ public static int combineMetadata(IBlockAccess worldIn, BlockPos pos) @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(getItem()); - } - private Item getItem() - { - return DoorItems.ItemRedstoneDoor; + return new ItemStack(DoorItems.RedstoneDoor); } @Override public void onBlockHarvested(World worldIn, BlockPos pos, IBlockState state, EntityPlayer player) @@ -201,7 +207,7 @@ public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, Block IBlockState iblockstate = worldIn.getBlockState(pos.up()); if (iblockstate.getBlock() == this) - state = state.withProperty(HINGE, iblockstate.getValue(HINGE)).withProperty(POWERED, iblockstate.getValue(POWERED)); + state = state.withProperty(HINGE, iblockstate.getValue(HINGE)); } else { @@ -226,7 +232,7 @@ public IBlockState withMirror(IBlockState state, Mirror mirrorIn) @Override public IBlockState getStateFromMeta(int meta) { - return (meta & 8) > 0 ? getDefaultState().withProperty(HALF, BlockDoor.EnumDoorHalf.UPPER).withProperty(HINGE, (meta & 1) > 0 ? BlockDoor.EnumHingePosition.RIGHT : BlockDoor.EnumHingePosition.LEFT).withProperty(POWERED, Boolean.valueOf((meta & 2) > 0)) : getDefaultState().withProperty(HALF, BlockDoor.EnumDoorHalf.LOWER).withProperty(FACING, EnumFacing.getHorizontal(meta & 3).rotateYCCW()).withProperty(OPEN, Boolean.valueOf((meta & 4) > 0)); + return (meta & 8) > 0 ? getDefaultState().withProperty(HALF, BlockDoor.EnumDoorHalf.UPPER).withProperty(HINGE, (meta & 1) > 0 ? BlockDoor.EnumHingePosition.RIGHT : BlockDoor.EnumHingePosition.LEFT): getDefaultState().withProperty(HALF, BlockDoor.EnumDoorHalf.LOWER).withProperty(FACING, EnumFacing.getHorizontal(meta & 3).rotateYCCW()).withProperty(OPEN, Boolean.valueOf((meta & 4) > 0)); } @Override public int getMetaFromState(IBlockState state) @@ -237,8 +243,6 @@ public int getMetaFromState(IBlockState state) i = i | 8; if (state.getValue(HINGE) == BlockDoor.EnumHingePosition.RIGHT) i |= 1; - if (state.getValue(POWERED).booleanValue()) - i |= 2; } else { @@ -275,37 +279,6 @@ protected static boolean isTop(int meta) @Override protected BlockStateContainer createBlockState() { - return new BlockStateContainer(this, new IProperty[] {HALF, FACING, OPEN, HINGE, POWERED}); - } - - public static enum EnumDoorHalf implements IStringSerializable - { - UPPER, - LOWER; - @Override - public String toString() - { - return getName(); - } - @Override - public String getName() - { - return this == UPPER ? "upper" : "lower"; - } - } - public static enum EnumHingePosition implements IStringSerializable - { - LEFT, - RIGHT; - @Override - public String toString() - { - return getName(); - } - @Override - public String getName() - { - return this == LEFT ? "left" : "right"; - } + return new BlockStateContainer(this, new IProperty[] {HALF,FACING,OPEN,HINGE,}); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/RedstoneFence.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/RedstoneFence.java similarity index 97% rename from src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/RedstoneFence.java rename to src/main/java/com/NetherNoah/ParadiseMod/blocks/RedstoneFence.java index 16bd9c6..15ea7af 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/RedstoneFence.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/RedstoneFence.java @@ -1,4 +1,4 @@ -package com.NetherNoah.ParadiseMod.blocks.fences; +package com.NetherNoah.ParadiseMod.blocks; import net.minecraft.block.Block; import net.minecraft.block.BlockFence; diff --git a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/RSFenceGate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/RedstoneFenceGate.java similarity index 58% rename from src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/RSFenceGate.java rename to src/main/java/com/NetherNoah/ParadiseMod/blocks/RedstoneFenceGate.java index 9d1c03c..9138d4d 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/RSFenceGate.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/RedstoneFenceGate.java @@ -1,16 +1,21 @@ -//this was derived from the vanilla code -package com.NetherNoah.ParadiseMod.CustomBlockCode; +package com.NetherNoah.ParadiseMod.blocks; import javax.annotation.Nullable; +import com.NetherNoah.ParadiseMod.blocks.base.CustomWall; + import net.minecraft.block.Block; import net.minecraft.block.BlockFence; +import net.minecraft.block.BlockFenceGate; import net.minecraft.block.BlockHorizontal; import net.minecraft.block.BlockPlanks; import net.minecraft.block.BlockWall; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.MapColor; import net.minecraft.block.material.Material; import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyBool; +import net.minecraft.block.state.BlockFaceShape; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; @@ -25,36 +30,65 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -public class RSFenceGate extends BlockHorizontal +public class RedstoneFenceGate extends BlockHorizontal { public static final PropertyBool OPEN = PropertyBool.create("open"); - public static final PropertyBool POWERED = PropertyBool.create("powered"); public static final PropertyBool IN_WALL = PropertyBool.create("in_wall"); - protected static final AxisAlignedBB AABB_COLLIDE_ZAXIS = new AxisAlignedBB(0.0D, 0.0D, 0.375D, 1.0D, 1.0D, 0.625D); - protected static final AxisAlignedBB AABB_COLLIDE_XAXIS = new AxisAlignedBB(0.375D, 0.0D, 0.0D, 0.625D, 1.0D, 1.0D); - protected static final AxisAlignedBB AABB_COLLIDE_ZAXIS_INWALL = new AxisAlignedBB(0.0D, 0.0D, 0.375D, 1.0D, 0.8125D, 0.625D); - protected static final AxisAlignedBB AABB_COLLIDE_XAXIS_INWALL = new AxisAlignedBB(0.375D, 0.0D, 0.0D, 0.625D, 0.8125D, 1.0D); - protected static final AxisAlignedBB AABB_CLOSED_SELECTED_ZAXIS = new AxisAlignedBB(0.0D, 0.0D, 0.375D, 1.0D, 1.5D, 0.625D); - protected static final AxisAlignedBB AABB_CLOSED_SELECTED_XAXIS = new AxisAlignedBB(0.375D, 0.0D, 0.0D, 0.625D, 1.5D, 1.0D); - public RSFenceGate(BlockPlanks.EnumType p_i46394_1_) - { - super(Material.WOOD, p_i46394_1_.getMapColor()); - setDefaultState(blockState.getBaseState().withProperty(OPEN, Boolean.valueOf(false)).withProperty(POWERED, Boolean.valueOf(false)).withProperty(IN_WALL, Boolean.valueOf(false))); + protected static final AxisAlignedBB COLLIDE_ZAXIS = new AxisAlignedBB(0.0D, 0.0D, 0.375D, 1.0D, 1.0D, 0.625D); + protected static final AxisAlignedBB COLLIDE_XAXIS = new AxisAlignedBB(0.375D, 0.0D, 0.0D, 0.625D, 1.0D, 1.0D); + protected static final AxisAlignedBB COLLIDE_ZAXIS_INWALL = new AxisAlignedBB(0.0D, 0.0D, 0.375D, 1.0D, 0.8125D, 0.625D); + protected static final AxisAlignedBB COLLIDE_XAXIS_INWALL = new AxisAlignedBB(0.375D, 0.0D, 0.0D, 0.625D, 0.8125D, 1.0D); + protected static final AxisAlignedBB CLOSED_SELECTED_ZAXIS = new AxisAlignedBB(0.0D, 0.0D, 0.375D, 1.0D, 1.5D, 0.625D); + protected static final AxisAlignedBB CLOSED_SELECTED_XAXIS = new AxisAlignedBB(0.375D, 0.0D, 0.0D, 0.625D, 1.5D, 1.0D); + public RedstoneFenceGate() + { + super(Material.WOOD, MapColor.RED); + setDefaultState(blockState.getBaseState().withProperty(OPEN, Boolean.valueOf(false)).withProperty(IN_WALL, Boolean.valueOf(false))); setCreativeTab(CreativeTabs.REDSTONE); + setUnlocalizedName("RedstoneFenceGate"); + setRegistryName("redstone_fence_gate"); + setHardness(5F); + setResistance(10F); + setSoundType(SoundType.METAL); + setHarvestLevel("pickaxe", 2); } @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) + public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos) { - state = getActualState(state, source, pos); - return state.getValue(IN_WALL).booleanValue() ? (state.getValue(FACING).getAxis() == EnumFacing.Axis.X ? AABB_COLLIDE_XAXIS_INWALL : AABB_COLLIDE_ZAXIS_INWALL) : (state.getValue(FACING).getAxis() == EnumFacing.Axis.X ? AABB_COLLIDE_XAXIS : AABB_COLLIDE_ZAXIS); + EnumFacing.Axis enumfacing$axis = ((EnumFacing)state.getValue(FACING)).getAxis(); + + if (enumfacing$axis == EnumFacing.Axis.Z && (worldIn.getBlockState(pos.west()).getBlock() instanceof BlockWall || worldIn.getBlockState(pos.east()).getBlock() instanceof BlockWall) || enumfacing$axis == EnumFacing.Axis.X && (worldIn.getBlockState(pos.north()).getBlock() instanceof BlockWall || worldIn.getBlockState(pos.south()).getBlock() instanceof BlockWall)) + state = state.withProperty(IN_WALL, Boolean.valueOf(true)); + else if (enumfacing$axis == EnumFacing.Axis.Z && (worldIn.getBlockState(pos.west()).getBlock() instanceof CustomWall || worldIn.getBlockState(pos.east()).getBlock() instanceof CustomWall) || enumfacing$axis == EnumFacing.Axis.X && (worldIn.getBlockState(pos.north()).getBlock() instanceof CustomWall || worldIn.getBlockState(pos.south()).getBlock() instanceof CustomWall)) + state = state.withProperty(IN_WALL, Boolean.valueOf(true)); + return state; } + // this fence post is a rs power block! + @Override + public int getWeakPower(IBlockState state, IBlockAccess worldIn, BlockPos pos, EnumFacing side) { + return 15; + } + @Override + public boolean canConnectRedstone(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side) { + return true; + } @Override - public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos) + public boolean canBeConnectedTo(IBlockAccess world, BlockPos pos, EnumFacing facing) { - EnumFacing.Axis enumfacing$axis = state.getValue(FACING).getAxis(); - if (enumfacing$axis == EnumFacing.Axis.Z && (canFenceGateConnectTo(worldIn, pos, EnumFacing.WEST) || canFenceGateConnectTo(worldIn, pos, EnumFacing.EAST)) || enumfacing$axis == EnumFacing.Axis.X && (canFenceGateConnectTo(worldIn, pos, EnumFacing.NORTH) || canFenceGateConnectTo(worldIn, pos, EnumFacing.SOUTH))) - state = state.withProperty(IN_WALL, Boolean.valueOf(true)); - return state; + IBlockState state = world.getBlockState(pos); + if (state.getBlock() instanceof BlockFenceGate && + state.getBlockFaceShape(world, pos, facing) == BlockFaceShape.MIDDLE_POLE) + { + Block connector = world.getBlockState(pos.offset(facing)).getBlock(); + return connector instanceof BlockFence || connector instanceof BlockWall || connector instanceof CustomWall; + } + return false; + } + @Override + public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) + { + state = getActualState(state, source, pos); + return state.getValue(IN_WALL).booleanValue() ? (state.getValue(FACING).getAxis() == EnumFacing.Axis.X ? COLLIDE_XAXIS_INWALL : COLLIDE_ZAXIS_INWALL) : (state.getValue(FACING).getAxis() == EnumFacing.Axis.X ? COLLIDE_XAXIS : COLLIDE_ZAXIS); } @Override public IBlockState withRotation(IBlockState state, Rotation rot) @@ -75,7 +109,7 @@ public boolean canPlaceBlockAt(World worldIn, BlockPos pos) @Nullable public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, IBlockAccess worldIn, BlockPos pos) { - return blockState.getValue(OPEN).booleanValue() ? NULL_AABB : (blockState.getValue(FACING).getAxis() == EnumFacing.Axis.Z ? AABB_CLOSED_SELECTED_ZAXIS : AABB_CLOSED_SELECTED_XAXIS); + return blockState.getValue(OPEN).booleanValue() ? NULL_AABB : (blockState.getValue(FACING).getAxis() == EnumFacing.Axis.Z ? CLOSED_SELECTED_ZAXIS : CLOSED_SELECTED_XAXIS); } @Override public boolean isOpaqueCube(IBlockState state) @@ -96,7 +130,7 @@ public boolean isPassable(IBlockAccess worldIn, BlockPos pos) public IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer) { boolean flag = worldIn.isBlockPowered(pos); - return getDefaultState().withProperty(FACING, placer.getHorizontalFacing()).withProperty(OPEN, Boolean.valueOf(flag)).withProperty(POWERED, Boolean.valueOf(flag)).withProperty(IN_WALL, Boolean.valueOf(false)); + return getDefaultState().withProperty(FACING, placer.getHorizontalFacing()).withProperty(OPEN, Boolean.valueOf(flag)).withProperty(IN_WALL, Boolean.valueOf(false)); } @Override public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) @@ -120,15 +154,13 @@ public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, @Override public IBlockState getStateFromMeta(int meta) { - return getDefaultState().withProperty(FACING, EnumFacing.getHorizontal(meta)).withProperty(OPEN, Boolean.valueOf((meta & 4) != 0)).withProperty(POWERED, Boolean.valueOf((meta & 8) != 0)); + return getDefaultState().withProperty(FACING, EnumFacing.getHorizontal(meta)).withProperty(OPEN, Boolean.valueOf((meta & 4) != 0)); } @Override public int getMetaFromState(IBlockState state) { int i = 0; i = i | state.getValue(FACING).getHorizontalIndex(); - if (state.getValue(POWERED).booleanValue()) - i |= 8; if (state.getValue(OPEN).booleanValue()) i |= 4; return i; @@ -136,13 +168,7 @@ public int getMetaFromState(IBlockState state) @Override protected BlockStateContainer createBlockState() { - return new BlockStateContainer(this, new IProperty[] {FACING, OPEN, POWERED, IN_WALL}); - } - @Override - public boolean canBeConnectedTo(IBlockAccess world, BlockPos pos, EnumFacing facing) - { - Block connector = world.getBlockState(pos.offset(facing)).getBlock(); - return connector instanceof BlockFence || connector instanceof BlockWall; + return new BlockStateContainer(this, new IProperty[] {FACING,OPEN,IN_WALL}); } private boolean canFenceGateConnectTo(IBlockAccess world, BlockPos pos, EnumFacing facing) { diff --git a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/RSTrapdoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/RedstoneTrapdoor.java similarity index 86% rename from src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/RSTrapdoor.java rename to src/main/java/com/NetherNoah/ParadiseMod/blocks/RedstoneTrapdoor.java index c4329d6..60e19d9 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/RSTrapdoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/RedstoneTrapdoor.java @@ -1,5 +1,4 @@ -//this was derived from the vanilla code -package com.NetherNoah.ParadiseMod.CustomBlockCode; +package com.NetherNoah.ParadiseMod.blocks; import javax.annotation.Nullable; @@ -7,6 +6,7 @@ import net.minecraft.block.BlockHorizontal; import net.minecraft.block.BlockLadder; import net.minecraft.block.BlockTrapDoor; +import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyBool; @@ -17,10 +17,10 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; import net.minecraft.util.BlockRenderLayer; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; -import net.minecraft.util.IStringSerializable; import net.minecraft.util.Mirror; import net.minecraft.util.Rotation; import net.minecraft.util.math.AxisAlignedBB; @@ -30,12 +30,7 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -public class RSTrapdoor extends Block{ - public RSTrapdoor(Material materialIn) { - super(materialIn); - setDefaultState(blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH).withProperty(OPEN, Boolean.valueOf(false)).withProperty(HALF, BlockTrapDoor.DoorHalf.BOTTOM)); - setCreativeTab(CreativeTabs.REDSTONE); - } +public class RedstoneTrapdoor extends Block{ public static final PropertyDirection FACING = BlockHorizontal.FACING; public static final PropertyBool OPEN = PropertyBool.create("open"); public static final PropertyEnum HALF = PropertyEnum.create("half", BlockTrapDoor.DoorHalf.class); @@ -45,6 +40,17 @@ public RSTrapdoor(Material materialIn) { protected static final AxisAlignedBB NORTH_OPEN_AABB = new AxisAlignedBB(0.0D, 0.0D, 0.8125D, 1.0D, 1.0D, 1.0D); protected static final AxisAlignedBB BOTTOM_AABB = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 0.1875D, 1.0D); protected static final AxisAlignedBB TOP_AABB = new AxisAlignedBB(0.0D, 0.8125D, 0.0D, 1.0D, 1.0D, 1.0D); + public RedstoneTrapdoor() { + super(Material.ROCK); + setUnlocalizedName("RedstoneTrapdoor"); + setRegistryName("redstone_trapdoor"); + setHardness(5F); + setResistance(10F); + setSoundType(SoundType.METAL); + setCreativeTab(CreativeTabs.REDSTONE); + setHarvestLevel("pickaxe", 2); + setDefaultState(blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH).withProperty(OPEN, Boolean.valueOf(false)).withProperty(HALF, BlockTrapDoor.DoorHalf.BOTTOM)); + } @Override public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) { @@ -91,26 +97,21 @@ public boolean isPassable(IBlockAccess worldIn, BlockPos pos) @Override public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { - if (blockMaterial == Material.IRON) - return false; - else - { - state = state.cycleProperty(OPEN); - worldIn.setBlockState(pos, state, 2); - playSound(playerIn, worldIn, pos, state.getValue(OPEN).booleanValue()); - return true; - } + state = state.cycleProperty(OPEN); + worldIn.setBlockState(pos, state, 2); + playSound(playerIn, worldIn, pos, state.getValue(OPEN).booleanValue()); + return true; } - protected void playSound(@Nullable EntityPlayer player, World worldIn, BlockPos pos, boolean p_185731_4_) + protected void playSound(@Nullable EntityPlayer player, World worldIn, BlockPos pos, boolean isOpen) { - if (p_185731_4_) + if (isOpen) { - int i = blockMaterial == Material.IRON ? 1037 : 1007; + int i = this.blockMaterial == Material.ROCK ? 1037 : 1007; worldIn.playEvent(player, i, pos, 0); } else { - int j = blockMaterial == Material.IRON ? 1036 : 1013; + int j = this.blockMaterial == Material.ROCK ? 1036 : 1013; worldIn.playEvent(player, j, pos, 0); } } @@ -128,15 +129,22 @@ public IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing iblockstate = iblockstate.withProperty(FACING, placer.getHorizontalFacing().getOpposite()).withProperty(OPEN, Boolean.valueOf(false)); iblockstate = iblockstate.withProperty(HALF, facing == EnumFacing.UP ? BlockTrapDoor.DoorHalf.BOTTOM : BlockTrapDoor.DoorHalf.TOP); } - if (worldIn.isBlockPowered(pos)) - iblockstate = iblockstate.withProperty(OPEN, Boolean.valueOf(true)); return iblockstate; } + @Override + public boolean canConnectRedstone(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side) { + return true; + } @Override public boolean canPlaceBlockOnSide(World worldIn, BlockPos pos, EnumFacing side) { return true; } + // this door is a rs power block! + @Override + public int getWeakPower(IBlockState state, IBlockAccess worldIn, BlockPos pos, EnumFacing side) { + return 15; + } protected static EnumFacing getFacing(int meta) { switch (meta & 3) @@ -210,11 +218,13 @@ public boolean isLadder(IBlockState state, IBlockAccess world, BlockPos pos, Ent if (state.getValue(OPEN)) { IBlockState down = world.getBlockState(pos.down()); - if (down.getBlock() == net.minecraft.init.Blocks.LADDER) + if (down.getBlock() == Blocks.LADDER) return down.getValue(BlockLadder.FACING) == state.getValue(FACING); } return false; } + + /* public static enum DoorHalf implements IStringSerializable { TOP("top"), @@ -235,4 +245,5 @@ public String getName() return name; } } + */ } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/BasicBlock.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/BasicBlock.java new file mode 100644 index 0000000..a008833 --- /dev/null +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/BasicBlock.java @@ -0,0 +1,20 @@ +package com.NetherNoah.ParadiseMod.blocks.base; +import net.minecraft.block.Block; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IBlockAccess; +public class BasicBlock extends Block{ + private boolean beaconBase; + public BasicBlock(Material material, SoundType sound, boolean beaconBase) { + super(material); + setSoundType(sound); + beaconBase=this.beaconBase; + } + @Override + public boolean isBeaconBase(IBlockAccess worldObj, BlockPos pos, BlockPos beacon) + { + return beaconBase; + } +} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/formations/icicle.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CaveFormation.java similarity index 76% rename from src/main/java/com/NetherNoah/ParadiseMod/blocks/formations/icicle.java rename to src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CaveFormation.java index 30e3096..4590ec3 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/formations/icicle.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CaveFormation.java @@ -1,4 +1,4 @@ -package com.NetherNoah.ParadiseMod.blocks.formations; +package com.NetherNoah.ParadiseMod.blocks.base; import net.minecraft.block.BlockDirectional; import net.minecraft.block.SoundType; @@ -16,19 +16,17 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -public class icicle extends BlockDirectional { - protected static final AxisAlignedBB END_ROD_VERTICAL_AABB = new AxisAlignedBB(0.375D, 0.0D, 0.375D, 0.625D, 1.0D, 0.625D); - protected static final AxisAlignedBB END_ROD_NS_AABB = new AxisAlignedBB(0.375D, 0.375D, 0.0D, 0.625D, 0.625D, 1.0D); - protected static final AxisAlignedBB END_ROD_EW_AABB = new AxisAlignedBB(0.0D, 0.375D, 0.375D, 1.0D, 0.625D, 0.625D); +public class CaveFormation extends BlockDirectional { + protected static final AxisAlignedBB FORMATION_VERTICAL = new AxisAlignedBB(0.3125D, 0.0D, 0.3125D, 0.6875D, 1.0D, 0.6875D); + protected static final AxisAlignedBB FORMATION_NS = new AxisAlignedBB(0.3125D, 0.3125D, 0.0D, 0.6875D, 0.6875D, 1.0D); + protected static final AxisAlignedBB FORMATION_EW = new AxisAlignedBB(0.0D, 0.3125D, 0.3125D, 1.0D, 0.6875D, 0.6875D); - public icicle() + public CaveFormation(SoundType sound) { super(Material.CIRCUITS); setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.UP)); setCreativeTab(CreativeTabs.DECORATIONS); - setUnlocalizedName("Icicle"); - setRegistryName("icicle"); - setSoundType(SoundType.GLASS); + setSoundType(sound); } @Override @@ -48,11 +46,11 @@ public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, Bloc { case X: default: - return END_ROD_EW_AABB; + return FORMATION_EW; case Z: - return END_ROD_NS_AABB; + return FORMATION_NS; case Y: - return END_ROD_VERTICAL_AABB; + return FORMATION_VERTICAL; } } @Override @@ -80,14 +78,12 @@ public IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing { IBlockState iblockstate = worldIn.getBlockState(pos.offset(facing.getOpposite())); - if (iblockstate.getBlock() == Blocks.END_ROD) + if (iblockstate.getBlock() instanceof CaveFormation) { EnumFacing enumfacing = (EnumFacing)iblockstate.getValue(FACING); if (enumfacing == facing) - { return this.getDefaultState().withProperty(FACING, facing.getOpposite()); - } } return this.getDefaultState().withProperty(FACING, facing); @@ -98,5 +94,4 @@ protected BlockStateContainer createBlockState() { return new BlockStateContainer(this, new IProperty[] {FACING}); } - -} +} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/crystals/emeraldCrystal.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/Crystal.java similarity index 83% rename from src/main/java/com/NetherNoah/ParadiseMod/blocks/crystals/emeraldCrystal.java rename to src/main/java/com/NetherNoah/ParadiseMod/blocks/base/Crystal.java index 5cf1c12..948d35a 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/crystals/emeraldCrystal.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/Crystal.java @@ -1,30 +1,30 @@ -package com.NetherNoah.ParadiseMod.blocks.crystals; +package com.NetherNoah.ParadiseMod.blocks.base; import java.util.Random; import com.NetherNoah.ParadiseMod.init.LiquidRedstone.BlockLiquidRedstone; -import com.NetherNoah.ParadiseMod.init.ModBlocks.Crystals; import net.minecraft.block.BlockBush; import net.minecraft.block.SoundType; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; -import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.BlockRenderLayer; +import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.RayTraceResult; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -public class emeraldCrystal extends BlockBush { - public emeraldCrystal() { - setUnlocalizedName("emeraldCrystal"); - setRegistryName("emerald_crystal"); +public class Crystal extends BlockBush { + public Item dropItem; + public Crystal(Item drop) { + dropItem=drop; setHardness(.5F); setResistance(1F); setLightLevel(1F); @@ -32,14 +32,19 @@ public emeraldCrystal() { setTickRandomly(false); } @Override - protected boolean canSustainBush(IBlockState state) + public boolean canSustainBush(IBlockState state) { return state.getBlock() != Blocks.AIR&&state.getBlock() != Blocks.WATER&&state.getBlock() != Blocks.FLOWING_WATER&&state.getBlock() != Blocks.LAVA&&state.getBlock() != Blocks.FLOWING_LAVA&&state.getBlock() !=BlockLiquidRedstone.instance; } @Override public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) { - return new ItemStack(Crystals.emeraldCrystal); + return new ItemStack(this); + } + @Override + public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) + { + return FULL_BLOCK_AABB; } @Override @SideOnly(Side.CLIENT) @@ -47,20 +52,21 @@ public BlockRenderLayer getBlockLayer() { return BlockRenderLayer.TRANSLUCENT; } + //get item to drop @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Items.EMERALD; + return dropItem; } + //get amount of items to drop @Override public int quantityDropped(Random random) { - Random rand = new Random(); - int giveItem = rand.nextInt(4) + 1; - return giveItem; + return random.nextInt(4) + 1; } + //is the pick enchanted with fortune? @Override public int quantityDroppedWithBonus(int fortune, Random random) @@ -104,6 +110,6 @@ public int getExpDrop(IBlockState state, net.minecraft.world.IBlockAccess world, @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Items.EMERALD); + return new ItemStack(dropItem); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/buttonTicks/IronButtonTicks.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomButton.java similarity index 64% rename from src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/buttonTicks/IronButtonTicks.java rename to src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomButton.java index 12c4a4c..71d0649 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/buttonTicks/IronButtonTicks.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomButton.java @@ -1,4 +1,4 @@ -package com.NetherNoah.ParadiseMod.CustomBlockCode.buttonTicks; +package com.NetherNoah.ParadiseMod.blocks.base; import java.util.List; import java.util.Random; @@ -7,6 +7,7 @@ import net.minecraft.block.Block; import net.minecraft.block.BlockDirectional; +import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyBool; @@ -17,39 +18,67 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.init.SoundEvents; +import net.minecraft.util.BlockRenderLayer; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.Mirror; import net.minecraft.util.Rotation; +import net.minecraft.util.SoundCategory; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; -public abstract class IronButtonTicks extends BlockDirectional +public class CustomButton extends BlockDirectional { public static final PropertyBool POWERED = PropertyBool.create("powered"); - protected static final AxisAlignedBB AABB_DOWN_OFF = new AxisAlignedBB(0.3125D, 0.875D, 0.375D, 0.6875D, 1.0D, 0.625D); - protected static final AxisAlignedBB AABB_UP_OFF = new AxisAlignedBB(0.3125D, 0.0D, 0.375D, 0.6875D, 0.125D, 0.625D); - protected static final AxisAlignedBB AABB_NORTH_OFF = new AxisAlignedBB(0.3125D, 0.375D, 0.875D, 0.6875D, 0.625D, 1.0D); - protected static final AxisAlignedBB AABB_SOUTH_OFF = new AxisAlignedBB(0.3125D, 0.375D, 0.0D, 0.6875D, 0.625D, 0.125D); - protected static final AxisAlignedBB AABB_WEST_OFF = new AxisAlignedBB(0.875D, 0.375D, 0.3125D, 1.0D, 0.625D, 0.6875D); - protected static final AxisAlignedBB AABB_EAST_OFF = new AxisAlignedBB(0.0D, 0.375D, 0.3125D, 0.125D, 0.625D, 0.6875D); - protected static final AxisAlignedBB AABB_DOWN_ON = new AxisAlignedBB(0.3125D, 0.9375D, 0.375D, 0.6875D, 1.0D, 0.625D); - protected static final AxisAlignedBB AABB_UP_ON = new AxisAlignedBB(0.3125D, 0.0D, 0.375D, 0.6875D, 0.0625D, 0.625D); - protected static final AxisAlignedBB AABB_NORTH_ON = new AxisAlignedBB(0.3125D, 0.375D, 0.9375D, 0.6875D, 0.625D, 1.0D); - protected static final AxisAlignedBB AABB_SOUTH_ON = new AxisAlignedBB(0.3125D, 0.375D, 0.0D, 0.6875D, 0.625D, 0.0625D); - protected static final AxisAlignedBB AABB_WEST_ON = new AxisAlignedBB(0.9375D, 0.375D, 0.3125D, 1.0D, 0.625D, 0.6875D); - protected static final AxisAlignedBB AABB_EAST_ON = new AxisAlignedBB(0.0D, 0.375D, 0.3125D, 0.0625D, 0.625D, 0.6875D); - private final boolean wooden; - - protected IronButtonTicks(boolean wooden) + protected static final AxisAlignedBB DOWN_OFF = new AxisAlignedBB(0.3125D, 0.875D, 0.375D, 0.6875D, 1.0D, 0.625D); + protected static final AxisAlignedBB UP_OFF = new AxisAlignedBB(0.3125D, 0.0D, 0.375D, 0.6875D, 0.125D, 0.625D); + protected static final AxisAlignedBB NORTH_OFF = new AxisAlignedBB(0.3125D, 0.375D, 0.875D, 0.6875D, 0.625D, 1.0D); + protected static final AxisAlignedBB SOUTH_OFF = new AxisAlignedBB(0.3125D, 0.375D, 0.0D, 0.6875D, 0.625D, 0.125D); + protected static final AxisAlignedBB WEST_OFF = new AxisAlignedBB(0.875D, 0.375D, 0.3125D, 1.0D, 0.625D, 0.6875D); + protected static final AxisAlignedBB EAST_OFF = new AxisAlignedBB(0.0D, 0.375D, 0.3125D, 0.125D, 0.625D, 0.6875D); + protected static final AxisAlignedBB DOWN_ON = new AxisAlignedBB(0.3125D, 0.9375D, 0.375D, 0.6875D, 1.0D, 0.625D); + protected static final AxisAlignedBB UP_ON = new AxisAlignedBB(0.3125D, 0.0D, 0.375D, 0.6875D, 0.0625D, 0.625D); + protected static final AxisAlignedBB NORTH_ON = new AxisAlignedBB(0.3125D, 0.375D, 0.9375D, 0.6875D, 0.625D, 1.0D); + protected static final AxisAlignedBB SOUTH_ON = new AxisAlignedBB(0.3125D, 0.375D, 0.0D, 0.6875D, 0.625D, 0.0625D); + protected static final AxisAlignedBB WEST_ON = new AxisAlignedBB(0.9375D, 0.375D, 0.3125D, 1.0D, 0.625D, 0.6875D); + protected static final AxisAlignedBB EAST_ON = new AxisAlignedBB(0.0D, 0.375D, 0.3125D, 0.0625D, 0.625D, 0.6875D); + private boolean wooden; + private int tickRate; + private int sound; + private final SoundType[] sounds = { + blockSoundType.STONE, + blockSoundType.WOOD, + blockSoundType.METAL, + blockSoundType.PLANT, + blockSoundType.GROUND, + blockSoundType.GLASS + }; + /** + * @param soundType + * The type of sound made by the button + * 0: Stone + * 1: Wood + * 2: Metal + * 3: Plant + * 4: Dirt + * 5: Glass + * @param ticks + * The amount of time (in game ticks) before the button becomes unpowered + */ + public CustomButton(int ticks, int soundType) { super(Material.CIRCUITS); setDefaultState(blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH).withProperty(POWERED, Boolean.valueOf(false))); setTickRandomly(true); + sound=soundType; + tickRate=ticks; + this.setSoundType(sounds[soundType]); setCreativeTab(CreativeTabs.REDSTONE); - this.wooden = wooden; } @Override @Nullable @@ -60,7 +89,7 @@ public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, IBlockAcces @Override public int tickRate(World worldIn) { - return wooden ? 6 : 20; + return tickRate; } @Override public boolean isOpaqueCube(IBlockState state) @@ -77,6 +106,13 @@ public boolean canPlaceBlockOnSide(World worldIn, BlockPos pos, EnumFacing side) { return canPlaceBlock(worldIn, pos, side.getOpposite()); } + @Override + @SideOnly(Side.CLIENT) + public BlockRenderLayer getBlockLayer() { + if (sound==5) + return BlockRenderLayer.TRANSLUCENT; + return BlockRenderLayer.SOLID; + } @Override public boolean canPlaceBlockAt(World worldIn, BlockPos pos) { @@ -122,22 +158,21 @@ public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, Bloc { EnumFacing enumfacing = state.getValue(FACING); boolean flag = state.getValue(POWERED).booleanValue(); - switch (enumfacing) { case EAST: - return flag ? AABB_EAST_ON : AABB_EAST_OFF; + return flag ? EAST_ON : EAST_OFF; case WEST: - return flag ? AABB_WEST_ON : AABB_WEST_OFF; + return flag ? WEST_ON : WEST_OFF; case SOUTH: - return flag ? AABB_SOUTH_ON : AABB_SOUTH_OFF; + return flag ? SOUTH_ON : SOUTH_OFF; case NORTH: default: - return flag ? AABB_NORTH_ON : AABB_NORTH_OFF; + return flag ? NORTH_ON : NORTH_OFF; case UP: - return flag ? AABB_UP_ON : AABB_UP_OFF; + return flag ? UP_ON : UP_OFF; case DOWN: - return flag ? AABB_DOWN_ON : AABB_DOWN_OFF; + return flag ? DOWN_ON : DOWN_OFF; } } @Override @@ -155,8 +190,23 @@ public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, return true; } } - protected abstract void playClickSound(@Nullable EntityPlayer player, World worldIn, BlockPos pos); - protected abstract void playReleaseSound(World worldIn, BlockPos pos); + protected void playClickSound(@Nullable EntityPlayer player, World worldIn, BlockPos pos) { + + if (sound==0||sound==3||sound==4) + worldIn.playSound(player, pos, SoundEvents.BLOCK_STONE_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 0.3F, 0.6F); + else if (sound==2) + worldIn.playSound(player, pos, SoundEvents.BLOCK_WOOD_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 0.3F, 0.6F); + else + worldIn.playSound(player, pos, SoundEvents.BLOCK_WOOD_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 0.3F, 0.6F); + } + protected void playReleaseSound(World worldIn, BlockPos pos) { + if (sound==0||sound==3||sound==4) + worldIn.playSound((EntityPlayer) null, pos, SoundEvents.BLOCK_STONE_BUTTON_CLICK_OFF, SoundCategory.BLOCKS, 0.3F,0.5F); + else if(sound==2) + worldIn.playSound((EntityPlayer) null, pos, SoundEvents.BLOCK_WOOD_BUTTON_CLICK_OFF, SoundCategory.BLOCKS, 0.3F,0.5F); + else + worldIn.playSound((EntityPlayer) null, pos, SoundEvents.BLOCK_WOOD_BUTTON_CLICK_OFF, SoundCategory.BLOCKS, 0.3F,0.5F); + } @Override public void breakBlock(World worldIn, BlockPos pos, IBlockState state) { @@ -179,10 +229,7 @@ public boolean canProvidePower(IBlockState state) { return true; } - @Override - public void randomTick(World worldIn, BlockPos pos, IBlockState state, Random random) - { - } + @Override public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) { @@ -214,27 +261,27 @@ public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState s } } } - private void checkPressed(IBlockState p_185616_1_, World p_185616_2_, BlockPos p_185616_3_) + private void checkPressed(IBlockState state, World world, BlockPos position) { - List list = p_185616_2_.getEntitiesWithinAABB(EntityArrow.class, p_185616_1_.getBoundingBox(p_185616_2_, p_185616_3_).offset(p_185616_3_)); + List list = world.getEntitiesWithinAABB(EntityArrow.class, state.getBoundingBox(world, position).offset(position)); boolean flag = !list.isEmpty(); - boolean flag1 = p_185616_1_.getValue(POWERED).booleanValue(); + boolean flag1 = state.getValue(POWERED).booleanValue(); if (flag && !flag1) { - p_185616_2_.setBlockState(p_185616_3_, p_185616_1_.withProperty(POWERED, Boolean.valueOf(true))); - notifyNeighbors(p_185616_2_, p_185616_3_, p_185616_1_.getValue(FACING)); - p_185616_2_.markBlockRangeForRenderUpdate(p_185616_3_, p_185616_3_); - playClickSound((EntityPlayer)null, p_185616_2_, p_185616_3_); + world.setBlockState(position, state.withProperty(POWERED, Boolean.valueOf(true))); + notifyNeighbors(world, position, state.getValue(FACING)); + world.markBlockRangeForRenderUpdate(position, position); + playClickSound((EntityPlayer)null, world, position); } if (!flag && flag1) { - p_185616_2_.setBlockState(p_185616_3_, p_185616_1_.withProperty(POWERED, Boolean.valueOf(false))); - notifyNeighbors(p_185616_2_, p_185616_3_, p_185616_1_.getValue(FACING)); - p_185616_2_.markBlockRangeForRenderUpdate(p_185616_3_, p_185616_3_); - playReleaseSound(p_185616_2_, p_185616_3_); + world.setBlockState(position, state.withProperty(POWERED, Boolean.valueOf(false))); + notifyNeighbors(world, position, state.getValue(FACING)); + world.markBlockRangeForRenderUpdate(position, position); + playReleaseSound(world, position); } if (flag) - p_185616_2_.scheduleUpdate(new BlockPos(p_185616_3_), this, tickRate(p_185616_2_)); + world.scheduleUpdate(new BlockPos(position), this, tickRate(world)); } private void notifyNeighbors(World worldIn, BlockPos pos, EnumFacing facing) { @@ -245,7 +292,6 @@ private void notifyNeighbors(World worldIn, BlockPos pos, EnumFacing facing) public IBlockState getStateFromMeta(int meta) { EnumFacing enumfacing; - switch (meta & 7) { case 0: @@ -273,7 +319,6 @@ public IBlockState getStateFromMeta(int meta) public int getMetaFromState(IBlockState state) { int i; - switch (state.getValue(FACING)) { case EAST: diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomDoor.java new file mode 100644 index 0000000..64bff3d --- /dev/null +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomDoor.java @@ -0,0 +1,45 @@ +package com.NetherNoah.ParadiseMod.blocks.base; + +import java.util.Random; +import com.NetherNoah.ParadiseMod.init.ModItems.DoorItems; +import net.minecraft.block.BlockDoor; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.RayTraceResult; +import net.minecraft.world.World; + +public class CustomDoor extends BlockDoor { + private Item door; + public CustomDoor(Material material,Item doorItem, SoundType sound) { + super(material); + door=doorItem; + System.out.println(door); + setSoundType(sound); + } + + //the item is the door itself + @Override + public Item getItemDropped(IBlockState state, Random rand, int fortune) + { + //return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR : door; + return door; + } + + @Override + public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) + { + return new ItemStack(door); + } + + @Override + public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) + { + return new ItemStack(door); + } +} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/CactusFence.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomFence.java similarity index 77% rename from src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/CactusFence.java rename to src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomFence.java index ee693b3..09b9d3c 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/CactusFence.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomFence.java @@ -1,4 +1,4 @@ -package com.NetherNoah.ParadiseMod.blocks.fences; +package com.NetherNoah.ParadiseMod.blocks.base; import net.minecraft.block.Block; import net.minecraft.block.BlockFence; @@ -13,15 +13,14 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; -public class CactusFence extends BlockFence { - public CactusFence() { - super(Material.WOOD, MapColor.GREEN); - setUnlocalizedName("CactusFence"); - setRegistryName("cactus_fence"); - setHardness(2F); - setResistance(5F); +public class CustomFence extends BlockFence { + public CustomFence(Material material, MapColor color) { + super(material, color); setCreativeTab(CreativeTabs.DECORATIONS); - setSoundType(SoundType.WOOD); + if (material==Material.WOOD) + this.setSoundType(SoundType.WOOD); + if (material==Material.IRON) + this.setSoundType(SoundType.METAL); } @Override diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/GoldFenceGate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomGate.java similarity index 51% rename from src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/GoldFenceGate.java rename to src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomGate.java index 8def8a9..7aed7b0 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/GoldFenceGate.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomGate.java @@ -1,6 +1,4 @@ -package com.NetherNoah.ParadiseMod.blocks.fenceGates; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.CustomWall; +package com.NetherNoah.ParadiseMod.blocks.base; import net.minecraft.block.Block; import net.minecraft.block.BlockFence; @@ -15,22 +13,18 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; -public class GoldFenceGate extends BlockFenceGate { - public GoldFenceGate() { +public class CustomGate extends BlockFenceGate { + public CustomGate(SoundType sound) { super(BlockPlanks.EnumType.DARK_OAK); - setUnlocalizedName("GoldFenceGate"); - setRegistryName("gold_fence_gate"); - setHardness(5F); - setResistance(10F); setCreativeTab(CreativeTabs.REDSTONE); - setSoundType(SoundType.METAL); - setHarvestLevel("pickaxe", 2); + setSoundType(sound); } - @Override + + @Override public boolean canBeConnectedTo(IBlockAccess world, BlockPos pos, EnumFacing facing) { IBlockState state = world.getBlockState(pos); - if (state.getBlock() instanceof BlockFenceGate && + if (state.getBlock() instanceof CustomGate && state.getBlockFaceShape(world, pos, facing) == BlockFaceShape.MIDDLE_POLE) { Block connector = world.getBlockState(pos.offset(facing)).getBlock(); @@ -38,14 +32,17 @@ public boolean canBeConnectedTo(IBlockAccess world, BlockPos pos, EnumFacing fac } return false; } + @Override public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos) { EnumFacing.Axis enumfacing$axis = ((EnumFacing)state.getValue(FACING)).getAxis(); + Block northBlock = worldIn.getBlockState(pos.north()).getBlock(); + Block southBlock = worldIn.getBlockState(pos.south()).getBlock(); + Block eastBlock = worldIn.getBlockState(pos.east()).getBlock(); + Block westBlock = worldIn.getBlockState(pos.west()).getBlock(); - if (enumfacing$axis == EnumFacing.Axis.Z && (worldIn.getBlockState(pos.west()).getBlock() instanceof BlockWall || worldIn.getBlockState(pos.east()).getBlock() instanceof BlockWall) || enumfacing$axis == EnumFacing.Axis.X && (worldIn.getBlockState(pos.north()).getBlock() instanceof BlockWall || worldIn.getBlockState(pos.south()).getBlock() instanceof BlockWall)) - state = state.withProperty(IN_WALL, Boolean.valueOf(true)); - else if (enumfacing$axis == EnumFacing.Axis.Z && (worldIn.getBlockState(pos.west()).getBlock() instanceof CustomWall || worldIn.getBlockState(pos.east()).getBlock() instanceof CustomWall) || enumfacing$axis == EnumFacing.Axis.X && (worldIn.getBlockState(pos.north()).getBlock() instanceof CustomWall || worldIn.getBlockState(pos.south()).getBlock() instanceof CustomWall)) + if (enumfacing$axis == EnumFacing.Axis.Z && (westBlock instanceof BlockWall || eastBlock instanceof BlockWall || westBlock instanceof CustomWall || eastBlock instanceof CustomWall) || enumfacing$axis == EnumFacing.Axis.X && (northBlock instanceof BlockWall || southBlock instanceof BlockWall || northBlock instanceof CustomWall || southBlock instanceof CustomWall)) state = state.withProperty(IN_WALL, Boolean.valueOf(true)); return state; } diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/soulGlass.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomGlass.java similarity index 69% rename from src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/soulGlass.java rename to src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomGlass.java index b5a139e..6ac68a8 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/soulGlass.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomGlass.java @@ -1,4 +1,4 @@ -package com.NetherNoah.ParadiseMod.blocks.misc; +package com.NetherNoah.ParadiseMod.blocks.base; import com.NetherNoah.ParadiseMod.init.ModBlocks.Misc; @@ -15,16 +15,10 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -public class soulGlass extends BlockBreakable { - public soulGlass() { +public class CustomGlass extends BlockBreakable { + public CustomGlass() { super(Material.GLASS, true); - setUnlocalizedName("soulGlass"); - setRegistryName("soul_glass"); - setHardness(.5F); - setResistance(1F); - setLightLevel(1F); setSoundType(SoundType.GLASS); - setDefaultSlipperiness(1F); setCreativeTab(CreativeTabs.BUILDING_BLOCKS); } @Override @@ -32,18 +26,13 @@ public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAc IBlockState iblockstate = blockAccess.getBlockState(pos.offset(side)); Block block = iblockstate.getBlock(); - if (this == Misc.soulGlass) - { - if (blockState != iblockstate) - { - return true; - } - if (block == this) - { - return false; - } - } - return true; + if (blockState != iblockstate){ + return true; + } + if (block == this){ + return false; + } + return true; } @Override @SideOnly(Side.CLIENT) diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/CoalOreVoid.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomOre.java similarity index 72% rename from src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/CoalOreVoid.java rename to src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomOre.java index 6ba4cd3..779c5a2 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/CoalOreVoid.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomOre.java @@ -1,4 +1,4 @@ -package com.NetherNoah.ParadiseMod.blocks.ores; +package com.NetherNoah.ParadiseMod.blocks.base; import java.util.Random; @@ -17,35 +17,49 @@ import net.minecraft.util.math.RayTraceResult; import net.minecraft.world.World; -public class CoalOreVoid extends Block { - private Item drop; - private int meta; - private int least_quantity; - private int most_quantity; - public CoalOreVoid() { +public class CustomOre extends Block { + private int max; + private Item itemDrop; + /** + * Custom ore class for ores that drop items other than their own block + * @param drop + * Item to drop upon mining the ore + * @param maxAmount + * Maximum amount of items to drop + * @param harvestLevel + * Harvest level of the pickaxe needed to mine the ore + * Vanilla harvest levels: + * 0: Wood and Gold + * 1: Stone + * 2: Iron + * 3: Diamond + */ + public CustomOre(Item drop,int maxAmount,int harvestLevel) { super(Material.ROCK); - setUnlocalizedName("VoidCoalOre"); - setRegistryName("void_coal_ore"); - setHardness(5F); - setResistance(10F); + itemDrop=drop; + max=maxAmount; setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setHarvestLevel("pickaxe", 0); + setHarvestLevel("pickaxe", harvestLevel); } - @Override - public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) - { - return new ItemStack(Ores.CoalOreVoid); - } + // get item to drop @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Items.COAL; + return itemDrop; } + + @Override + public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) + { + return new ItemStack(this); + } + // get amount of items to drop @Override public int quantityDropped(Random random) { - return 1; + return 1+random.nextInt(max); } + // is the pick enchanted with fortune? @Override public int quantityDroppedWithBonus(int fortune, Random random) { @@ -61,11 +75,7 @@ public int quantityDroppedWithBonus(int fortune, Random random) { return this.quantityDropped(random); } } - // spawn the item in the world - @Override - public void dropBlockAsItemWithChance(World worldIn, BlockPos pos, IBlockState state, float chance, int fortune) { - super.dropBlockAsItemWithChance(worldIn, pos, state, chance, fortune); - } + // spawn xp orbs @Override public int getExpDrop(IBlockState state, net.minecraft.world.IBlockAccess world, BlockPos pos, int fortune) { @@ -77,9 +87,10 @@ public int getExpDrop(IBlockState state, net.minecraft.world.IBlockAccess world, } return 0; } + // spawn the actual item @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Items.COAL); + return new ItemStack(itemDrop); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomPane.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomPane.java new file mode 100644 index 0000000..84436b7 --- /dev/null +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomPane.java @@ -0,0 +1,40 @@ +package com.NetherNoah.ParadiseMod.blocks.base; + +import java.util.Random; + +import net.minecraft.block.BlockPane; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.util.BlockRenderLayer; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +public class CustomPane extends BlockPane { + private boolean metal; + public CustomPane(Material material, boolean isMetal,SoundType sound) { + super(material, isMetal); + metal=isMetal; + setSoundType(sound); + } + /* + //@Override + public Item getItemDropped(IBlockState state, Random rand, int fortune) + { + if (glass) + return Item.getItemFromBlock(this); + else + return null; + } + */ + @Override + @SideOnly(Side.CLIENT) + public BlockRenderLayer getBlockLayer() { + if (metal) + return BlockRenderLayer.SOLID; + else + return BlockRenderLayer.TRANSLUCENT; + } +} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/Rose.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomPlant.java similarity index 87% rename from src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/Rose.java rename to src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomPlant.java index 90d55c6..762104e 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/Rose.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomPlant.java @@ -1,4 +1,4 @@ -package com.NetherNoah.ParadiseMod.blocks.misc; +package com.NetherNoah.ParadiseMod.blocks.base; import java.util.Random; @@ -18,10 +18,8 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -public class Rose extends BlockBush implements IGrowable{ - public Rose() { - setUnlocalizedName("Rose"); - setRegistryName("rose"); +public class CustomPlant extends BlockBush implements IGrowable { + public CustomPlant() { setSoundType(SoundType.PLANT); } @Override @@ -32,24 +30,24 @@ protected boolean canSustainBush(IBlockState state) @Override public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) { - return new ItemStack(Misc.Rose); - } - - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getBlockLayer() - { - return BlockRenderLayer.CUTOUT; + return new ItemStack(this); } @Override public boolean canUseBonemeal(World worldIn, Random rand, BlockPos pos, IBlockState state) { return true; } + @Override public void grow(World worldIn, Random rand, BlockPos pos, IBlockState state) { spawnAsEntity(worldIn, pos, new ItemStack(this)); + } + @Override + @SideOnly(Side.CLIENT) + public BlockRenderLayer getBlockLayer() + { + return BlockRenderLayer.CUTOUT; } @Override public boolean canGrow(World worldIn, BlockPos pos, IBlockState state, boolean isClient) { diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomPressurePlate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomPressurePlate.java new file mode 100644 index 0000000..2663681 --- /dev/null +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomPressurePlate.java @@ -0,0 +1,161 @@ +package com.NetherNoah.ParadiseMod.blocks.base; + +import java.util.List; + +import net.minecraft.block.BlockBasePressurePlate; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; +import net.minecraft.block.properties.IProperty; +import net.minecraft.block.properties.PropertyBool; +import net.minecraft.block.state.BlockStateContainer; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.SoundEvents; +import net.minecraft.util.BlockRenderLayer; +import net.minecraft.util.SoundCategory; +import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +public class CustomPressurePlate extends BlockBasePressurePlate +{ + public static final PropertyBool POWERED = PropertyBool.create("powered"); + + private int sensitivity; + private int tickRate; + private int sound; + public Material type; + + private final SoundType[] sounds = { + blockSoundType.STONE, + blockSoundType.WOOD, + blockSoundType.METAL, + blockSoundType.PLANT, + blockSoundType.GROUND, + blockSoundType.GLASS + }; + /** + * @param sensitivityIn + * The sensitivity of the pressure plate + * 0: All entities + * 1: Mobs and players only + * 2: Players only + * @param ticks + * The amount of time (in game ticks) before the pressure plate becomes unpowered + * @param soundType + * The type of sound made by the pressure plate + * 0: Stone + * 1: Wood + * 2: Metal + * 3: Plant + * 4: Dirt + * 5: Glass + */ + public CustomPressurePlate(int sensitivityIn, int ticks,int soundType, Material material) + { + super(material); + tickRate=ticks; + sensitivity=sensitivityIn; + sound=soundType; + type=material; + setSoundType(sounds[soundType]); + setDefaultState(blockState.getBaseState().withProperty(POWERED, Boolean.valueOf(false))); + } + + @Override + @SideOnly(Side.CLIENT) + public BlockRenderLayer getBlockLayer() { + if (type==Material.GLASS) + return BlockRenderLayer.TRANSLUCENT; + return BlockRenderLayer.SOLID; + } + + @Override + public int tickRate(World worldIn) + { + return tickRate; + } + + @Override + protected int getRedstoneStrength(IBlockState state) + { + return state.getValue(POWERED).booleanValue() ? 15 : 0; + } + + @Override + protected IBlockState setRedstoneStrength(IBlockState state, int strength) + { + return state.withProperty(POWERED, Boolean.valueOf(strength > 0)); + } + + protected void playClickOnSound(World worldIn, BlockPos pos) + { + if (sound==0||sound==3||sound==4) + worldIn.playSound((EntityPlayer)null, pos, SoundEvents.BLOCK_STONE_PRESSPLATE_CLICK_ON, SoundCategory.BLOCKS, 0.3F, 0.6F); + else if (sound==2) + worldIn.playSound((EntityPlayer)null, pos, SoundEvents.BLOCK_WOOD_PRESSPLATE_CLICK_ON, SoundCategory.BLOCKS, 0.3F, 0.8F); + else + worldIn.playSound((EntityPlayer)null, pos, SoundEvents.BLOCK_WOOD_PRESSPLATE_CLICK_ON, SoundCategory.BLOCKS, 0.3F, 0.8F); + } + + protected void playClickOffSound(World worldIn, BlockPos pos) + { + if (sound==0||sound==3||sound==4) + worldIn.playSound((EntityPlayer)null, pos, SoundEvents.BLOCK_STONE_PRESSPLATE_CLICK_OFF, SoundCategory.BLOCKS, 0.3F, 0.5F); + else if(sound==2) + worldIn.playSound((EntityPlayer)null, pos, SoundEvents.BLOCK_WOOD_PRESSPLATE_CLICK_OFF, SoundCategory.BLOCKS, 0.3F, 0.7F); + else + worldIn.playSound((EntityPlayer)null, pos, SoundEvents.BLOCK_WOOD_PRESSPLATE_CLICK_OFF, SoundCategory.BLOCKS, 0.3F, 0.7F); + } + @Override + protected int computeRedstoneStrength(World worldIn, BlockPos pos) + { + AxisAlignedBB axisalignedbb = PRESSURE_AABB.offset(pos); + List list; + + switch (sensitivity) { + case 1: + //mobs and players only + list = worldIn.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); + break; + case 2: + //player only + list = worldIn.getEntitiesWithinAABB(EntityPlayer.class, axisalignedbb); + break; + default: + case 0: + //everything + list = worldIn.getEntitiesWithinAABBExcludingEntity((Entity)null, axisalignedbb); + break; + } + + if (!list.isEmpty()) + { + for (Entity entity : list) + { + if (!entity.doesEntityNotTriggerPressurePlate()) + return 15; + } + } + return 0; + } + @Override + public IBlockState getStateFromMeta(int meta) + { + return getDefaultState().withProperty(POWERED, Boolean.valueOf(meta == 1)); + } + @Override + public int getMetaFromState(IBlockState state) + { + return state.getValue(POWERED).booleanValue() ? 1 : 0; + } + @Override + protected BlockStateContainer createBlockState() + { + return new BlockStateContainer(this, new IProperty[] {POWERED}); + } +} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/BedrockSlab.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomSlab.java similarity index 74% rename from src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/BedrockSlab.java rename to src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomSlab.java index a82f414..c7b317b 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/BedrockSlab.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomSlab.java @@ -1,13 +1,13 @@ //this class is based off of CJMinecraft's example mod //https://github.com/CJMinecraft01/BitOfEverything -package com.NetherNoah.ParadiseMod.blocks.slabs; +package com.NetherNoah.ParadiseMod.blocks.base; import java.util.Random; import com.NetherNoah.ParadiseMod.DummyProperty; -import com.NetherNoah.ParadiseMod.Reference; import com.NetherNoah.ParadiseMod.init.ModBlocks.Slabs; +import net.minecraft.block.Block; import net.minecraft.block.BlockSlab; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; @@ -18,23 +18,23 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.RayTraceResult; import net.minecraft.world.World; -public class BedrockSlab extends BlockSlab { +public class CustomSlab extends BlockSlab { public static final DummyProperty DUMMY_VARIANT = DummyProperty.create("dummy"); - - public BedrockSlab(String name) { - super(Material.BARRIER); - setUnlocalizedName(name); - setRegistryName(name); - setHardness(-1F); - setResistance(6000000F); + private Block itemBlock; + private boolean Double; + public Block pickBlock; + + public CustomSlab(Material material, boolean isDouble) { + super(material); + Double=isDouble; setCreativeTab(CreativeTabs.BUILDING_BLOCKS); + if (material==Material.WOOD) + setSoundType(SoundType.WOOD); IBlockState state = this.blockState.getBaseState(); if (!this.isDouble()) @@ -42,6 +42,16 @@ public BedrockSlab(String name) { setDefaultState(state); this.useNeighborBrightness = true; } + public Block setItem(Block block) { + pickBlock=block; + return block; + } + + @Override + public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) + { + return new ItemStack(pickBlock); + } @Override public String getUnlocalizedName(int meta) { @@ -80,7 +90,7 @@ public int getMetaFromState(IBlockState state) { @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Slabs.end_slab); + return Item.getItemFromBlock(pickBlock); } @Override @@ -90,12 +100,6 @@ protected BlockStateContainer createBlockState() { @Override public boolean isDouble() { - return false; + return Double; } - - //@Override - //public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) - //{ - // return false; - //} } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomStairs.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomStairs.java new file mode 100644 index 0000000..4837267 --- /dev/null +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomStairs.java @@ -0,0 +1,14 @@ +package com.NetherNoah.ParadiseMod.blocks.base; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockStairs; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.init.Blocks; + +public class CustomStairs extends BlockStairs { + public CustomStairs(Block stairType) { + super(stairType.getDefaultState()); + setCreativeTab(CreativeTabs.BUILDING_BLOCKS); + useNeighborBrightness = true; + } +} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomTrapDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomTrapDoor.java new file mode 100644 index 0000000..26d092d --- /dev/null +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomTrapDoor.java @@ -0,0 +1,43 @@ +package com.NetherNoah.ParadiseMod.blocks.base; + +import javax.annotation.Nullable; + +import net.minecraft.block.BlockTrapDoor; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; + +public class CustomTrapDoor extends BlockTrapDoor { + /** + * + * @param material The block's material + * @param sound The sound the block makes when placed or removed + * @param creakSound What sound should it make when it opens or closes? + * 0: Iron + * 1: Wood + */ + private final int[] openSounds = {1037,1007}; + private final int[] closeSounds = {1036,1013}; + private int creak; + public CustomTrapDoor(Material material, SoundType sound, int creakSound) { + super(material); + setCreativeTab(CreativeTabs.REDSTONE); + setSoundType(sound); + creak=creakSound; + } + @Override + protected void playSound(@Nullable EntityPlayer player, World worldIn, BlockPos pos, boolean isOpen) + { + if (isOpen) + { + worldIn.playEvent(player, openSounds[creak], pos, 0); + } + else + { + worldIn.playEvent(player, closeSounds[creak], pos, 0); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/CustomWall.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomWall.java similarity index 70% rename from src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/CustomWall.java rename to src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomWall.java index 0404161..188224e 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/CustomWall.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomWall.java @@ -1,9 +1,11 @@ -package com.NetherNoah.ParadiseMod.CustomBlockCode; +package com.NetherNoah.ParadiseMod.blocks.base; import java.util.List; import javax.annotation.Nullable; +import com.NetherNoah.ParadiseMod.blocks.RedstoneFenceGate; + import net.minecraft.block.Block; import net.minecraft.block.BlockFence; import net.minecraft.block.BlockFenceGate; @@ -13,6 +15,7 @@ import net.minecraft.block.properties.PropertyBool; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; +import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.init.Blocks; import net.minecraft.util.EnumFacing; @@ -24,37 +27,38 @@ import net.minecraftforge.fml.relauncher.SideOnly; //Thank you so much winnetrie! //I had that same problem too! -public abstract class CustomWall extends Block +public class CustomWall extends Block { public static final PropertyBool UP = PropertyBool.create("up"); public static final PropertyBool NORTH = PropertyBool.create("north"); public static final PropertyBool EAST = PropertyBool.create("east"); public static final PropertyBool SOUTH = PropertyBool.create("south"); public static final PropertyBool WEST = PropertyBool.create("west"); - protected static final AxisAlignedBB[] AABB_BY_INDEX = new AxisAlignedBB[] {new AxisAlignedBB(0.25D, 0.0D, 0.25D, 0.75D, 1.0D, 0.75D), new AxisAlignedBB(0.25D, 0.0D, 0.25D, 0.75D, 1.0D, 1.0D), new AxisAlignedBB(0.0D, 0.0D, 0.25D, 0.75D, 1.0D, 0.75D), new AxisAlignedBB(0.0D, 0.0D, 0.25D, 0.75D, 1.0D, 1.0D), new AxisAlignedBB(0.25D, 0.0D, 0.0D, 0.75D, 1.0D, 0.75D), new AxisAlignedBB(0.3125D, 0.0D, 0.0D, 0.6875D, 0.875D, 1.0D), new AxisAlignedBB(0.0D, 0.0D, 0.0D, 0.75D, 1.0D, 0.75D), new AxisAlignedBB(0.0D, 0.0D, 0.0D, 0.75D, 1.0D, 1.0D), new AxisAlignedBB(0.25D, 0.0D, 0.25D, 1.0D, 1.0D, 0.75D), new AxisAlignedBB(0.25D, 0.0D, 0.25D, 1.0D, 1.0D, 1.0D), new AxisAlignedBB(0.0D, 0.0D, 0.3125D, 1.0D, 0.875D, 0.6875D), new AxisAlignedBB(0.0D, 0.0D, 0.25D, 1.0D, 1.0D, 1.0D), new AxisAlignedBB(0.25D, 0.0D, 0.0D, 1.0D, 1.0D, 0.75D), new AxisAlignedBB(0.25D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D), new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 0.75D), new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D)}; - protected static final AxisAlignedBB[] CLIP_AABB_BY_INDEX = new AxisAlignedBB[] {AABB_BY_INDEX[0].setMaxY(1.5D), AABB_BY_INDEX[1].setMaxY(1.5D), AABB_BY_INDEX[2].setMaxY(1.5D), AABB_BY_INDEX[3].setMaxY(1.5D), AABB_BY_INDEX[4].setMaxY(1.5D), AABB_BY_INDEX[5].setMaxY(1.5D), AABB_BY_INDEX[6].setMaxY(1.5D), AABB_BY_INDEX[7].setMaxY(1.5D), AABB_BY_INDEX[8].setMaxY(1.5D), AABB_BY_INDEX[9].setMaxY(1.5D), AABB_BY_INDEX[10].setMaxY(1.5D), AABB_BY_INDEX[11].setMaxY(1.5D), AABB_BY_INDEX[12].setMaxY(1.5D), AABB_BY_INDEX[13].setMaxY(1.5D), AABB_BY_INDEX[14].setMaxY(1.5D), AABB_BY_INDEX[15].setMaxY(1.5D)}; + protected static final AxisAlignedBB[] BY_INDEX = new AxisAlignedBB[] {new AxisAlignedBB(0.25D, 0.0D, 0.25D, 0.75D, 1.0D, 0.75D), new AxisAlignedBB(0.25D, 0.0D, 0.25D, 0.75D, 1.0D, 1.0D), new AxisAlignedBB(0.0D, 0.0D, 0.25D, 0.75D, 1.0D, 0.75D), new AxisAlignedBB(0.0D, 0.0D, 0.25D, 0.75D, 1.0D, 1.0D), new AxisAlignedBB(0.25D, 0.0D, 0.0D, 0.75D, 1.0D, 0.75D), new AxisAlignedBB(0.3125D, 0.0D, 0.0D, 0.6875D, 0.875D, 1.0D), new AxisAlignedBB(0.0D, 0.0D, 0.0D, 0.75D, 1.0D, 0.75D), new AxisAlignedBB(0.0D, 0.0D, 0.0D, 0.75D, 1.0D, 1.0D), new AxisAlignedBB(0.25D, 0.0D, 0.25D, 1.0D, 1.0D, 0.75D), new AxisAlignedBB(0.25D, 0.0D, 0.25D, 1.0D, 1.0D, 1.0D), new AxisAlignedBB(0.0D, 0.0D, 0.3125D, 1.0D, 0.875D, 0.6875D), new AxisAlignedBB(0.0D, 0.0D, 0.25D, 1.0D, 1.0D, 1.0D), new AxisAlignedBB(0.25D, 0.0D, 0.0D, 1.0D, 1.0D, 0.75D), new AxisAlignedBB(0.25D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D), new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 0.75D), new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D)}; + protected static final AxisAlignedBB[] CLIP_BY_INDEX = new AxisAlignedBB[] {BY_INDEX[0].setMaxY(1.5D), BY_INDEX[1].setMaxY(1.5D), BY_INDEX[2].setMaxY(1.5D), BY_INDEX[3].setMaxY(1.5D), BY_INDEX[4].setMaxY(1.5D), BY_INDEX[5].setMaxY(1.5D), BY_INDEX[6].setMaxY(1.5D), BY_INDEX[7].setMaxY(1.5D), BY_INDEX[8].setMaxY(1.5D), BY_INDEX[9].setMaxY(1.5D), BY_INDEX[10].setMaxY(1.5D), BY_INDEX[11].setMaxY(1.5D), BY_INDEX[12].setMaxY(1.5D), BY_INDEX[13].setMaxY(1.5D), BY_INDEX[14].setMaxY(1.5D), BY_INDEX[15].setMaxY(1.5D)}; public CustomWall(Material material) { super(material); + setCreativeTab(CreativeTabs.DECORATIONS); } @Override public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) { state = this.getActualState(state, source, pos); - return AABB_BY_INDEX[getAABBIndex(state)]; + return BY_INDEX[getAABBIndex(state)]; } @Nullable public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, World worldIn, BlockPos pos) { blockState = this.getActualState(blockState, worldIn, pos); - return CLIP_AABB_BY_INDEX[getAABBIndex(blockState)]; + return CLIP_BY_INDEX[getAABBIndex(blockState)]; } @Override public void addCollisionBoxToList(IBlockState state, World worldIn, BlockPos pos, AxisAlignedBB entityBox, List collidingBoxes, @Nullable Entity entityIn, boolean p_185477_7_) { if (!p_185477_7_) state = this.getActualState(state, worldIn, pos); - addCollisionBoxToList(pos, entityBox, collidingBoxes, CLIP_AABB_BY_INDEX[getAABBIndex(state)]); + addCollisionBoxToList(pos, entityBox, collidingBoxes, CLIP_BY_INDEX[getAABBIndex(state)]); } private static int getAABBIndex(IBlockState state) { @@ -88,7 +92,7 @@ private boolean canConnectTo(IBlockAccess worldIn, BlockPos pos) { IBlockState iblockstate = worldIn.getBlockState(pos); Block block = iblockstate.getBlock(); - return block == Blocks.BARRIER || block == this || block instanceof BlockWall || block instanceof CustomWall || block instanceof BlockFenceGate || block instanceof BlockFence || block instanceof RSFenceGate||(block.isOpaqueCube(iblockstate) && iblockstate.isFullCube()); + return block == Blocks.BARRIER || block == this || block instanceof BlockWall || block instanceof CustomWall || block instanceof BlockFenceGate || block instanceof BlockFence || block instanceof RedstoneFenceGate||(block.isOpaqueCube(iblockstate) && iblockstate.isFullCube()); } @Override @SideOnly(Side.CLIENT) diff --git a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/CustomWorkBench.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomWorkBench.java similarity index 88% rename from src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/CustomWorkBench.java rename to src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomWorkBench.java index 7c08aca..2cdb478 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/CustomWorkBench.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/CustomWorkBench.java @@ -1,11 +1,13 @@ -package com.NetherNoah.ParadiseMod.CustomBlockCode; +package com.NetherNoah.ParadiseMod.blocks.base; import com.NetherNoah.ParadiseMod.ParadiseMod; import com.NetherNoah.ParadiseMod.Reference; import net.minecraft.block.Block; +import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; +import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.init.Blocks; @@ -20,11 +22,15 @@ import net.minecraft.world.IInteractionObject; import net.minecraft.world.World; -public abstract class CustomWorkBench extends Block +public class CustomWorkBench extends Block { public CustomWorkBench() { super(Material.WOOD); + setHardness(2.5F); + setResistance(5F); + setCreativeTab(CreativeTabs.DECORATIONS); + setSoundType(SoundType.WOOD); } @Override public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) diff --git a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/MossyFurnaceCode.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/MossyFurnaceBase.java similarity index 95% rename from src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/MossyFurnaceCode.java rename to src/main/java/com/NetherNoah/ParadiseMod/blocks/base/MossyFurnaceBase.java index e732a1b..e7060c5 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/MossyFurnaceCode.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/MossyFurnaceBase.java @@ -1,5 +1,4 @@ -//this was derived from the vanilla code -package com.NetherNoah.ParadiseMod.CustomBlockCode; +package com.NetherNoah.ParadiseMod.blocks.base; import java.util.Random; @@ -34,16 +33,18 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -public class MossyFurnaceCode extends BlockContainer +public class MossyFurnaceBase extends BlockContainer { public static final PropertyDirection FACING = BlockHorizontal.FACING; private final boolean isBurning; private static boolean keepInventory; - protected MossyFurnaceCode(boolean isBurning) + public MossyFurnaceBase(boolean isBurning) { super(Material.ROCK); setDefaultState(blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH)); this.isBurning = isBurning; + setHarvestLevel("pickaxe", 0); + } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) @@ -134,12 +135,10 @@ public static void setState(boolean active, World worldIn, BlockPos pos) if (active) { worldIn.setBlockState(pos, Misc.MossyFurnaceLit.getDefaultState().withProperty(FACING, iblockstate.getValue(FACING)), 3); - worldIn.setBlockState(pos, Misc.MossyFurnaceLit.getDefaultState().withProperty(FACING, iblockstate.getValue(FACING)), 3); } else { worldIn.setBlockState(pos, Misc.MossyFurnace.getDefaultState().withProperty(FACING, iblockstate.getValue(FACING)), 3); - worldIn.setBlockState(pos, Misc.MossyFurnace.getDefaultState().withProperty(FACING, iblockstate.getValue(FACING)), 3); } keepInventory = false; if (tileentity != null) diff --git a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/VoidFurnaceCode.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/VoidFurnaceBase.java similarity index 95% rename from src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/VoidFurnaceCode.java rename to src/main/java/com/NetherNoah/ParadiseMod/blocks/base/VoidFurnaceBase.java index 6c50f25..d78cf79 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/CustomBlockCode/VoidFurnaceCode.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/base/VoidFurnaceBase.java @@ -1,5 +1,4 @@ -//this was derived from the vanilla code -package com.NetherNoah.ParadiseMod.CustomBlockCode; +package com.NetherNoah.ParadiseMod.blocks.base; import java.util.Random; @@ -34,16 +33,17 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -public class VoidFurnaceCode extends BlockContainer +public class VoidFurnaceBase extends BlockContainer { public static final PropertyDirection FACING = BlockHorizontal.FACING; private final boolean isBurning; private static boolean keepInventory; - protected VoidFurnaceCode(boolean isBurning) + public VoidFurnaceBase(boolean isBurning) { super(Material.ROCK); setDefaultState(blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH)); this.isBurning = isBurning; + setHarvestLevel("pickaxe", 0); } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) @@ -134,12 +134,10 @@ public static void setState(boolean active, World worldIn, BlockPos pos) if (active) { worldIn.setBlockState(pos, Misc.VoidFurnaceLit.getDefaultState().withProperty(FACING, iblockstate.getValue(FACING)), 3); - worldIn.setBlockState(pos, Misc.VoidFurnaceLit.getDefaultState().withProperty(FACING, iblockstate.getValue(FACING)), 3); } else { worldIn.setBlockState(pos, Misc.VoidFurnace.getDefaultState().withProperty(FACING, iblockstate.getValue(FACING)), 3); - worldIn.setBlockState(pos, Misc.VoidFurnace.getDefaultState().withProperty(FACING, iblockstate.getValue(FACING)), 3); } keepInventory = false; if (tileentity != null) @@ -148,16 +146,19 @@ public static void setState(boolean active, World worldIn, BlockPos pos) worldIn.setTileEntity(pos, tileentity); } } + @Override public TileEntity createNewTileEntity(World worldIn, int meta) { return new TEVoidFurnace(); } + @Override public IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer) { return getDefaultState().withProperty(FACING, placer.getHorizontalFacing().getOpposite()); } + @Override public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) { @@ -169,6 +170,7 @@ public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, Enti ((TEVoidFurnace)tileentity).setCustomInventoryName(stack.getDisplayName()); } } + @Override public void breakBlock(World worldIn, BlockPos pos, IBlockState state) { diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/BedrockButton.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/BedrockButton.java deleted file mode 100644 index b63ee66..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/BedrockButton.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.buttons; - -import net.minecraft.block.BlockButtonStone; - -public class BedrockButton extends BlockButtonStone { - public BedrockButton() { - setUnlocalizedName("BedrockButton"); - setRegistryName("bedrock_button"); - setHardness(-1F); - setResistance(18000000F); - setBlockUnbreakable(); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/CobblestoneButton.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/CobblestoneButton.java deleted file mode 100644 index 216cb5d..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/CobblestoneButton.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.buttons; - -import net.minecraft.block.BlockButtonStone; - -public class CobblestoneButton extends BlockButtonStone { - public CobblestoneButton() { - setUnlocalizedName("CobblestoneButton"); - setRegistryName("cobblestone_button"); - setHardness(0.5F); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/DiamondButton.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/DiamondButton.java deleted file mode 100644 index bfc739d..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/DiamondButton.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.buttons; - -import javax.annotation.Nullable; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.buttonTicks.DiamondButtonTicks; - -import net.minecraft.block.SoundType; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.SoundEvents; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class DiamondButton extends DiamondButtonTicks { - public DiamondButton() { - super(true); - setUnlocalizedName("DiamondButton"); - setRegistryName("diamond_button"); - setHardness(0.5F); - setSoundType(SoundType.METAL); - } - @Override - protected void playClickSound(@Nullable EntityPlayer player, World worldIn, BlockPos pos) { - worldIn.playSound(player, pos, SoundEvents.BLOCK_WOOD_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 0.3F, 0.6F); - } - @Override - protected void playReleaseSound(World worldIn, BlockPos pos) { - worldIn.playSound((EntityPlayer) null, pos, SoundEvents.BLOCK_WOOD_BUTTON_CLICK_OFF, SoundCategory.BLOCKS, 0.3F, - 0.5F); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/DirtButton.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/DirtButton.java deleted file mode 100644 index 9b4fc6c..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/DirtButton.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.buttons; - -import net.minecraft.block.BlockButtonStone; -import net.minecraft.block.SoundType; - -public class DirtButton extends BlockButtonStone { - public DirtButton() { - setUnlocalizedName("DirtButton"); - setRegistryName("dirt_button"); - setSoundType(SoundType.GROUND); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/EmeraldButton.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/EmeraldButton.java deleted file mode 100644 index 68b1c88..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/EmeraldButton.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.buttons; - -import javax.annotation.Nullable; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.buttonTicks.EmeraldButtonTicks; - -import net.minecraft.block.SoundType; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.SoundEvents; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class EmeraldButton extends EmeraldButtonTicks { - public EmeraldButton() { - super(true); - setUnlocalizedName("EmeraldButton"); - setRegistryName("emerald_button"); - setHardness(0.5F); - setSoundType(SoundType.METAL); - } - @Override - protected void playClickSound(@Nullable EntityPlayer player, World worldIn, BlockPos pos) { - worldIn.playSound(player, pos, SoundEvents.BLOCK_WOOD_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 0.3F, 0.6F); - } - @Override - protected void playReleaseSound(World worldIn, BlockPos pos) { - worldIn.playSound((EntityPlayer) null, pos, SoundEvents.BLOCK_WOOD_BUTTON_CLICK_OFF, SoundCategory.BLOCKS, 0.3F, - 0.5F); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/EndButton.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/EndButton.java deleted file mode 100644 index a9c69ca..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/EndButton.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.buttons; - -import net.minecraft.block.BlockButtonStone; - -public class EndButton extends BlockButtonStone { - public EndButton() { - setUnlocalizedName("EndButton"); - setRegistryName("end_button"); - setHardness(0.5F); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/GlowingObsidianButton.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/GlowingObsidianButton.java deleted file mode 100644 index e99708f..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/GlowingObsidianButton.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.buttons; - -import net.minecraft.block.BlockButtonStone; - -public class GlowingObsidianButton extends BlockButtonStone { - public GlowingObsidianButton() { - setUnlocalizedName("GlowingObsidianButton"); - setRegistryName("glowing_obsidian_button"); - setHardness(51F); - setResistance(2000F); - setLightLevel(.46666667F); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/GoldButton.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/GoldButton.java deleted file mode 100644 index b4faabf..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/GoldButton.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.buttons; - -import javax.annotation.Nullable; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.buttonTicks.QuickButton; - -import net.minecraft.block.SoundType; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.SoundEvents; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class GoldButton extends QuickButton { - - public GoldButton() { - super(true); - setUnlocalizedName("GoldButton"); - setRegistryName("gold_button"); - setHardness(0.5F); - setSoundType(SoundType.METAL); - } - @Override - protected void playClickSound(@Nullable EntityPlayer player, World worldIn, BlockPos pos) { - worldIn.playSound(player, pos, SoundEvents.BLOCK_WOOD_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 0.3F, 0.6F); - } - @Override - protected void playReleaseSound(World worldIn, BlockPos pos) { - worldIn.playSound((EntityPlayer) null, pos, SoundEvents.BLOCK_WOOD_BUTTON_CLICK_OFF, SoundCategory.BLOCKS, 0.3F, - 0.5F); - } - -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/GrassButton.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/GrassButton.java deleted file mode 100644 index 4b7311a..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/GrassButton.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.buttons; - -import net.minecraft.block.BlockButtonStone; -import net.minecraft.block.SoundType; - -public class GrassButton extends BlockButtonStone { - public GrassButton() { - setUnlocalizedName("GrassButton"); - setRegistryName("grass_button"); - setSoundType(SoundType.PLANT); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/IronButton.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/IronButton.java deleted file mode 100644 index 18e326a..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/IronButton.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.buttons; - -import javax.annotation.Nullable; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.buttonTicks.IronButtonTicks; - -import net.minecraft.block.SoundType; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.SoundEvents; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class IronButton extends IronButtonTicks { - public IronButton() { - super(true); - setUnlocalizedName("IronButton"); - setRegistryName("iron_button"); - setHardness(0.5F); - setSoundType(SoundType.METAL); - } - @Override - protected void playClickSound(@Nullable EntityPlayer player, World worldIn, BlockPos pos) { - worldIn.playSound(player, pos, SoundEvents.BLOCK_WOOD_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 0.3F, 0.6F); - } - @Override - protected void playReleaseSound(World worldIn, BlockPos pos) { - worldIn.playSound((EntityPlayer) null, pos, SoundEvents.BLOCK_WOOD_BUTTON_CLICK_OFF, SoundCategory.BLOCKS, 0.3F,0.5F); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/MossyButton.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/MossyButton.java deleted file mode 100644 index 65e8941..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/MossyButton.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.buttons; - -import net.minecraft.block.BlockButtonStone; - -public class MossyButton extends BlockButtonStone { - public MossyButton() { - setUnlocalizedName("MossyButton"); - setRegistryName("mossy_cobblestone_button"); - setHardness(0.5F); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/ObsidianButton.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/ObsidianButton.java deleted file mode 100644 index 349f4a4..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/ObsidianButton.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.buttons; - -import net.minecraft.block.BlockButtonStone; - -public class ObsidianButton extends BlockButtonStone { - public ObsidianButton() { - setUnlocalizedName("ObsidianButton"); - setRegistryName("obsidian_button"); - setHardness(51F); - setResistance(6000F); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/RubyButton.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/RubyButton.java deleted file mode 100644 index 9fbf04f..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/RubyButton.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.buttons; - -import javax.annotation.Nullable; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.buttonTicks.QuickButton; - -import net.minecraft.block.SoundType; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.SoundEvents; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class RubyButton extends QuickButton { - public RubyButton() { - super(true); - setUnlocalizedName("RubyButton"); - setRegistryName("ruby_button"); - setHardness(0.5F); - setSoundType(SoundType.METAL); - } - @Override - protected void playClickSound(@Nullable EntityPlayer player, World worldIn, BlockPos pos) { - worldIn.playSound(player, pos, SoundEvents.BLOCK_WOOD_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 0.3F, 0.6F); - } - @Override - protected void playReleaseSound(World worldIn, BlockPos pos) { - worldIn.playSound((EntityPlayer) null, pos, SoundEvents.BLOCK_WOOD_BUTTON_CLICK_OFF, SoundCategory.BLOCKS, 0.3F, - 0.5F); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/RustyButton.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/RustyButton.java deleted file mode 100644 index 67f6b11..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/RustyButton.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.buttons; - -import javax.annotation.Nullable; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.buttonTicks.IronButtonTicks; - -import net.minecraft.block.SoundType; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.SoundEvents; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class RustyButton extends IronButtonTicks { - public RustyButton() { - super(true); - setUnlocalizedName("RustyButton"); - setRegistryName("rusty_button"); - setHardness(0.5F); - setSoundType(SoundType.METAL); - } - @Override - protected void playClickSound(@Nullable EntityPlayer player, World worldIn, BlockPos pos) { - worldIn.playSound(player, pos, SoundEvents.BLOCK_WOOD_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 0.3F, 0.6F); - } - @Override - protected void playReleaseSound(World worldIn, BlockPos pos) { - worldIn.playSound((EntityPlayer) null, pos, SoundEvents.BLOCK_WOOD_BUTTON_CLICK_OFF, SoundCategory.BLOCKS, 0.3F, - 0.5F); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/SilverButton.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/SilverButton.java deleted file mode 100644 index 5f99e87..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/SilverButton.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.buttons; - -import javax.annotation.Nullable; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.buttonTicks.QuickButton; - -import net.minecraft.block.SoundType; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.SoundEvents; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class SilverButton extends QuickButton{ - public SilverButton() { - super(false); - setUnlocalizedName("SilverButton"); - setRegistryName("silver_button"); - setHardness(0.5F); - setSoundType(SoundType.METAL); - } - @Override - protected void playClickSound(@Nullable EntityPlayer player, World worldIn, BlockPos pos) { - worldIn.playSound(player, pos, SoundEvents.BLOCK_WOOD_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 0.3F, 0.6F); - } - @Override - protected void playReleaseSound(World worldIn, BlockPos pos) { - worldIn.playSound((EntityPlayer) null, pos, SoundEvents.BLOCK_WOOD_BUTTON_CLICK_OFF, SoundCategory.BLOCKS, 0.3F, - 0.5F); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/VoidButton.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/VoidButton.java deleted file mode 100644 index 588b504..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/VoidButton.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.buttons; - -import net.minecraft.block.BlockButtonStone; - -public class VoidButton extends BlockButtonStone { - public VoidButton() { - setUnlocalizedName("VoidButton"); - setRegistryName("void_button"); - setHardness(0.5F); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/stoneVariants/AndesiteButton.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/stoneVariants/AndesiteButton.java deleted file mode 100644 index cc1488e..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/stoneVariants/AndesiteButton.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.buttons.stoneVariants; - -import net.minecraft.block.BlockButtonStone; - -public class AndesiteButton extends BlockButtonStone { - public AndesiteButton() { - setUnlocalizedName("AndesiteButton"); - setRegistryName("andesite_button"); - setHardness(0.5F); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/stoneVariants/DioriteButton.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/stoneVariants/DioriteButton.java deleted file mode 100644 index 767d095..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/stoneVariants/DioriteButton.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.buttons.stoneVariants; - -import net.minecraft.block.BlockButtonStone; - -public class DioriteButton extends BlockButtonStone { - public DioriteButton() { - setUnlocalizedName("DioriteButton"); - setRegistryName("diorite_button"); - setHardness(0.5F); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/stoneVariants/GraniteButton.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/stoneVariants/GraniteButton.java deleted file mode 100644 index 3ac2c53..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/stoneVariants/GraniteButton.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.buttons.stoneVariants; - -import net.minecraft.block.BlockButtonStone; - -public class GraniteButton extends BlockButtonStone { - public GraniteButton() { - setUnlocalizedName("GraniteButton"); - setRegistryName("granite_button"); - setHardness(0.5F); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/wood/AcaciaButton.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/wood/AcaciaButton.java deleted file mode 100644 index ddace45..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/wood/AcaciaButton.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.buttons.wood; - -import net.minecraft.block.BlockButtonWood; -import net.minecraft.block.SoundType; - -public class AcaciaButton extends BlockButtonWood { - public AcaciaButton() { - setUnlocalizedName("AcaciaButton"); - setRegistryName("acacia_button"); - setHardness(0.5F); - setSoundType(SoundType.WOOD); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/wood/BirchButton.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/wood/BirchButton.java deleted file mode 100644 index e2428d2..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/wood/BirchButton.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.buttons.wood; - -import net.minecraft.block.BlockButtonWood; -import net.minecraft.block.SoundType; - -public class BirchButton extends BlockButtonWood { - public BirchButton() { - setUnlocalizedName("BirchButton"); - setRegistryName("birch_button"); - setHardness(0.5F); - setSoundType(SoundType.WOOD); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/wood/CactusButton.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/wood/CactusButton.java deleted file mode 100644 index 019abfc..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/wood/CactusButton.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.buttons.wood; - -import net.minecraft.block.BlockButtonWood; -import net.minecraft.block.SoundType; - -public class CactusButton extends BlockButtonWood { - public CactusButton() { - setUnlocalizedName("CactusButton"); - setRegistryName("cactus_button"); - setHardness(0.5F); - setSoundType(SoundType.WOOD); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/wood/DarkOakButton.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/wood/DarkOakButton.java deleted file mode 100644 index 2187146..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/wood/DarkOakButton.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.buttons.wood; - -import net.minecraft.block.BlockButtonWood; -import net.minecraft.block.SoundType; - -public class DarkOakButton extends BlockButtonWood { - public DarkOakButton() { - setUnlocalizedName("DarkOakButton"); - setRegistryName("dark_oak_button"); - setHardness(0.5F); - setSoundType(SoundType.WOOD); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/wood/JungleButton.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/wood/JungleButton.java deleted file mode 100644 index 6b7f8bd..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/wood/JungleButton.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.buttons.wood; - -import net.minecraft.block.BlockButtonWood; -import net.minecraft.block.SoundType; - -public class JungleButton extends BlockButtonWood { - public JungleButton() { - setUnlocalizedName("JungleButton"); - setRegistryName("jungle_button"); - setHardness(0.5F); - setSoundType(SoundType.WOOD); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/wood/SpruceButton.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/wood/SpruceButton.java deleted file mode 100644 index a0d1c8a..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/buttons/wood/SpruceButton.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.buttons.wood; - -import net.minecraft.block.BlockButtonWood; -import net.minecraft.block.SoundType; - -public class SpruceButton extends BlockButtonWood { - public SpruceButton() { - setUnlocalizedName("SpruceButton"); - setRegistryName("spruce_button"); - setHardness(0.5F); - setSoundType(SoundType.WOOD); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/crystals/diamondCrystal.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/crystals/diamondCrystal.java deleted file mode 100644 index 1264759..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/crystals/diamondCrystal.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.crystals; - -import java.util.Random; - -import com.NetherNoah.ParadiseMod.init.LiquidRedstone.BlockLiquidRedstone; -import com.NetherNoah.ParadiseMod.init.ModBlocks.Crystals; - -import net.minecraft.block.BlockBush; -import net.minecraft.block.SoundType; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class diamondCrystal extends BlockBush { - public diamondCrystal() { - setUnlocalizedName("diamondCrystal"); - setRegistryName("diamond_crystal"); - setHardness(.5F); - setResistance(1F); - setLightLevel(1F); - setSoundType(SoundType.GLASS); - setTickRandomly(false); - } - @Override - protected boolean canSustainBush(IBlockState state) - { - return state.getBlock() != Blocks.AIR&&state.getBlock() != Blocks.WATER&&state.getBlock() != Blocks.FLOWING_WATER&&state.getBlock() != Blocks.LAVA&&state.getBlock() != Blocks.FLOWING_LAVA&&state.getBlock() !=BlockLiquidRedstone.instance; - } - @Override - public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) - { - return new ItemStack(Crystals.diamondCrystal); - } - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getBlockLayer() - { - return BlockRenderLayer.TRANSLUCENT; - } - //get item to drop - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) - { - return Items.DIAMOND; - } - //get amount of items to drop - @Override - public int quantityDropped(Random random) - { - Random rand = new Random(); - int giveItem = rand.nextInt(4) + 1; - return giveItem; - } - //is the pick enchanted with fortune? - @Override - public int quantityDroppedWithBonus(int fortune, Random random) - { - if (fortune > 0 && Item.getItemFromBlock(this) != this.getItemDropped(this.getBlockState().getValidStates().iterator().next(), random, fortune)) - { - int i = random.nextInt(fortune + 2) - 1; - - if (i < 0) - { - i = 0; - } - - return this.quantityDropped(random) * (i + 1); - } - else - { - return this.quantityDropped(random); - } - } - //spawn the item in the world - @Override - public void dropBlockAsItemWithChance(World worldIn, BlockPos pos, IBlockState state, float chance, int fortune) - { - super.dropBlockAsItemWithChance(worldIn, pos, state, chance, fortune); - } - //spawn xp orbs - @Override - public int getExpDrop(IBlockState state, net.minecraft.world.IBlockAccess world, BlockPos pos, int fortune) - { - Random rand = world instanceof World ? ((World)world).rand : new Random(); - if (this.getItemDropped(state, rand, fortune) != Item.getItemFromBlock(this)) - { - int i = 0; - i = MathHelper.getInt(rand, 0, 5); - return i; - } - return 0; - } - //spawn the actual item - @Override - public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) - { - return new ItemStack(Items.DIAMOND); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/crystals/quartzCrystal.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/crystals/quartzCrystal.java deleted file mode 100644 index 5a731d8..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/crystals/quartzCrystal.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.crystals; - -import java.util.Random; - -import com.NetherNoah.ParadiseMod.init.LiquidRedstone.BlockLiquidRedstone; -import com.NetherNoah.ParadiseMod.init.ModBlocks.Crystals; - -import net.minecraft.block.BlockBush; -import net.minecraft.block.SoundType; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class quartzCrystal extends BlockBush { - public quartzCrystal() { - setUnlocalizedName("quartzCrystal"); - setRegistryName("quartz_crystal"); - setHardness(.5F); - setResistance(1F); - setLightLevel(1F); - setSoundType(SoundType.GLASS); - setTickRandomly(false); - } - @Override - protected boolean canSustainBush(IBlockState state) - { - return state.getBlock() != Blocks.AIR&&state.getBlock() != Blocks.WATER&&state.getBlock() != Blocks.FLOWING_WATER&&state.getBlock() != Blocks.LAVA&&state.getBlock() != Blocks.FLOWING_LAVA&&state.getBlock() !=BlockLiquidRedstone.instance; - } - @Override - public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) - { - return new ItemStack(Crystals.quartzCrystal); - } - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getBlockLayer() - { - return BlockRenderLayer.TRANSLUCENT; - } - //get item to drop - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) - { - return Items.QUARTZ; - } - //get amount of items to drop - @Override - public int quantityDropped(Random random) - { - Random rand = new Random(); - int giveItem = rand.nextInt(4) + 1; - return giveItem; - } - //is the pick enchanted with fortune? - @Override - public int quantityDroppedWithBonus(int fortune, Random random) - { - if (fortune > 0 && Item.getItemFromBlock(this) != this.getItemDropped(this.getBlockState().getValidStates().iterator().next(), random, fortune)) - { - int i = random.nextInt(fortune + 2) - 1; - - if (i < 0) - { - i = 0; - } - - return this.quantityDropped(random) * (i + 1); - } - else - { - return this.quantityDropped(random); - } - } - //spawn the item in the world - @Override - public void dropBlockAsItemWithChance(World worldIn, BlockPos pos, IBlockState state, float chance, int fortune) - { - super.dropBlockAsItemWithChance(worldIn, pos, state, chance, fortune); - } - //spawn xp orbs - @Override - public int getExpDrop(IBlockState state, net.minecraft.world.IBlockAccess world, BlockPos pos, int fortune) - { - Random rand = world instanceof World ? ((World)world).rand : new Random(); - if (this.getItemDropped(state, rand, fortune) != Item.getItemFromBlock(this)) - { - int i = 0; - i = MathHelper.getInt(rand, 0, 5); - return i; - } - return 0; - } - //spawn the actual item - @Override - public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) - { - return new ItemStack(Items.QUARTZ); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/crystals/redstoneCrystal.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/crystals/redstoneCrystal.java deleted file mode 100644 index bc7a5b5..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/crystals/redstoneCrystal.java +++ /dev/null @@ -1,121 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.crystals; - -import java.util.Random; - -import com.NetherNoah.ParadiseMod.init.LiquidRedstone.BlockLiquidRedstone; -import com.NetherNoah.ParadiseMod.init.ModBlocks.Crystals; - -import net.minecraft.block.BlockBush; -import net.minecraft.block.SoundType; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class redstoneCrystal extends BlockBush { - public redstoneCrystal() { - setUnlocalizedName("redstoneCrystal"); - setRegistryName("redstone_crystal"); - setHardness(.5F); - setResistance(1F); - setLightLevel(1F); - setSoundType(SoundType.GLASS); - setTickRandomly(false); - } - @Override - protected boolean canSustainBush(IBlockState state) - { - return state.getBlock() != Blocks.AIR&&state.getBlock() != Blocks.WATER&&state.getBlock() != Blocks.FLOWING_WATER&&state.getBlock() != Blocks.LAVA&&state.getBlock() != Blocks.FLOWING_LAVA&&state.getBlock() !=BlockLiquidRedstone.instance; - } - @Override - public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) - { - return new ItemStack(Crystals.redstoneCrystal); - } - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getBlockLayer() - { - return BlockRenderLayer.TRANSLUCENT; - } - //this is a rs power block! - @Override - public int getWeakPower(IBlockState state, IBlockAccess worldIn, BlockPos pos, EnumFacing side){ - return 15; - } - @Override - public boolean canConnectRedstone(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side) { - return true; - - } - //get item to drop - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) - { - return Items.REDSTONE; - } - //get amount of items to drop - @Override - public int quantityDropped(Random random) - { - Random rand = new Random(); - int giveItem = rand.nextInt(4) + 1; - return giveItem; - } - //is the pick enchanted with fortune? - @Override - public int quantityDroppedWithBonus(int fortune, Random random) - { - if (fortune > 0 && Item.getItemFromBlock(this) != this.getItemDropped(this.getBlockState().getValidStates().iterator().next(), random, fortune)) - { - int i = random.nextInt(fortune + 2) - 1; - - if (i < 0) - { - i = 0; - } - - return this.quantityDropped(random) * (i + 1); - } - else - { - return this.quantityDropped(random); - } - } - //spawn the item in the world - @Override - public void dropBlockAsItemWithChance(World worldIn, BlockPos pos, IBlockState state, float chance, int fortune) - { - super.dropBlockAsItemWithChance(worldIn, pos, state, chance, fortune); - } - //spawn xp orbs - @Override - public int getExpDrop(IBlockState state, net.minecraft.world.IBlockAccess world, BlockPos pos, int fortune) - { - Random rand = world instanceof World ? ((World)world).rand : new Random(); - if (this.getItemDropped(state, rand, fortune) != Item.getItemFromBlock(this)) - { - int i = 0; - i = MathHelper.getInt(rand, 0, 5); - return i; - } - return 0; - } - //spawn the actual item - @Override - public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) - { - return new ItemStack(Items.REDSTONE); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/crystals/rubyCrystal.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/crystals/rubyCrystal.java deleted file mode 100644 index 9c545fd..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/crystals/rubyCrystal.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.crystals; - -import java.util.Random; - -import com.NetherNoah.ParadiseMod.init.LiquidRedstone.BlockLiquidRedstone; -import com.NetherNoah.ParadiseMod.init.ModBlocks.Crystals; -import com.NetherNoah.ParadiseMod.init.ModItems.MiscItems; - -import net.minecraft.block.BlockBush; -import net.minecraft.block.SoundType; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class rubyCrystal extends BlockBush { - public rubyCrystal() { - setUnlocalizedName("rubyCrystal"); - setRegistryName("ruby_crystal"); - setHardness(.5F); - setResistance(1F); - setLightLevel(1F); - setSoundType(SoundType.GLASS); - setTickRandomly(false); - } - @Override - protected boolean canSustainBush(IBlockState state) - { - return state.getBlock() != Blocks.AIR&&state.getBlock() != Blocks.WATER&&state.getBlock() != Blocks.FLOWING_WATER&&state.getBlock() != Blocks.LAVA&&state.getBlock() != Blocks.FLOWING_LAVA&&state.getBlock() !=BlockLiquidRedstone.instance; - } - @Override - public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) - { - return new ItemStack(Crystals.rubyCrystal); - } - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getBlockLayer() - { - return BlockRenderLayer.TRANSLUCENT; - } - //get item to drop - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) - { - return MiscItems.Ruby; - } - //get amount of items to drop - @Override - public int quantityDropped(Random random) - { - Random rand = new Random(); - int giveItem = rand.nextInt(4) + 1; - return giveItem; - } - //is the pick enchanted with fortune? - @Override - public int quantityDroppedWithBonus(int fortune, Random random) - { - if (fortune > 0 && Item.getItemFromBlock(this) != this.getItemDropped(this.getBlockState().getValidStates().iterator().next(), random, fortune)) - { - int i = random.nextInt(fortune + 2) - 1; - - if (i < 0) - { - i = 0; - } - - return this.quantityDropped(random) * (i + 1); - } - else - { - return this.quantityDropped(random); - } - } - //spawn the item in the world - @Override - public void dropBlockAsItemWithChance(World worldIn, BlockPos pos, IBlockState state, float chance, int fortune) - { - super.dropBlockAsItemWithChance(worldIn, pos, state, chance, fortune); - } - //spawn xp orbs - @Override - public int getExpDrop(IBlockState state, net.minecraft.world.IBlockAccess world, BlockPos pos, int fortune) - { - Random rand = world instanceof World ? ((World)world).rand : new Random(); - if (this.getItemDropped(state, rand, fortune) != Item.getItemFromBlock(this)) - { - int i = 0; - i = MathHelper.getInt(rand, 0, 5); - return i; - } - return 0; - } - //spawn the actual item - @Override - public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) - { - return new ItemStack(MiscItems.Ruby); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/AndesiteDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/AndesiteDoor.java index bcffd92..e53bf9b 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/AndesiteDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/AndesiteDoor.java @@ -29,12 +29,12 @@ public AndesiteDoor() { @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR : DoorItems.ItemAndesiteDoor; + return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR : DoorItems.AndesiteDoor; } @Override public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) { - return new ItemStack(DoorItems.ItemAndesiteDoor); + return new ItemStack(DoorItems.AndesiteDoor); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/BedrockDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/BedrockDoor.java index 45502a9..ae58973 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/BedrockDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/BedrockDoor.java @@ -28,12 +28,12 @@ public BedrockDoor() { @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR : DoorItems.ItemBedrockDoor; + return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR : DoorItems.BedrockDoor; } @Override public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) { - return new ItemStack(DoorItems.ItemBedrockDoor); + return new ItemStack(DoorItems.BedrockDoor); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/CactusDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/CactusDoor.java index f3bfc04..67f6979 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/CactusDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/CactusDoor.java @@ -29,12 +29,12 @@ public CactusDoor() { @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.ItemCactusDoor; + return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.CactusDoor; } @Override public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) { - return new ItemStack(DoorItems.ItemCactusDoor); + return new ItemStack(DoorItems.CactusDoor); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/CobblestoneDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/CobblestoneDoor.java index 565c897..6fc669b 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/CobblestoneDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/CobblestoneDoor.java @@ -27,12 +27,12 @@ public CobblestoneDoor() { // the item is the door itself @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.ItemCobblestoneDoor; + return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.CobblestoneDoor; } @Override public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) { - return new ItemStack(DoorItems.ItemCobblestoneDoor); + return new ItemStack(DoorItems.CobblestoneDoor); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/DiamondDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/DiamondDoor.java index 1cf4711..f58d7ed 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/DiamondDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/DiamondDoor.java @@ -29,12 +29,12 @@ public DiamondDoor() { // the item is the door itself @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.ItemDiamondDoor; + return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.DiamondDoor; } @Override public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) { - return new ItemStack(DoorItems.ItemDiamondDoor); + return new ItemStack(DoorItems.DiamondDoor); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/DioriteDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/DioriteDoor.java index 3f6a7de..e442e01 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/DioriteDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/DioriteDoor.java @@ -28,12 +28,12 @@ public DioriteDoor() { @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.ItemDioriteDoor; + return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.DioriteDoor; } @Override public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) { - return new ItemStack(DoorItems.ItemDioriteDoor); + return new ItemStack(DoorItems.DioriteDoor); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/EmeraldDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/EmeraldDoor.java index d0514cd..f91e72a 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/EmeraldDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/EmeraldDoor.java @@ -29,7 +29,7 @@ public EmeraldDoor() { @Override public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) { - return new ItemStack(DoorItems.ItemEmeraldDoor); + return new ItemStack(DoorItems.EmeraldDoor); } private int getCloseSound() { @@ -42,6 +42,6 @@ private int getOpenSound() // the item is the door itself @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.ItemEmeraldDoor; + return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.EmeraldDoor; } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/EndDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/EndDoor.java index 8733cce..9065aa9 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/EndDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/EndDoor.java @@ -27,11 +27,11 @@ public EndDoor() { // the item is the door itself @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.ItemEndDoor; + return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.EndDoor; } @Override public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) { - return new ItemStack(DoorItems.ItemEndDoor); + return new ItemStack(DoorItems.EndDoor); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/GlassDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/GlassDoor.java index 32b30e1..01449d3 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/GlassDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/GlassDoor.java @@ -28,12 +28,12 @@ public GlassDoor() { // the item is the door itself @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR : DoorItems.ItemGlassDoor; + return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR : DoorItems.GlassDoor; } @Override public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) { - return new ItemStack(DoorItems.ItemGlassDoor); + return new ItemStack(DoorItems.GlassDoor); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/GlowingObsidianDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/GlowingObsidianDoor.java index 532caae..02cc17f 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/GlowingObsidianDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/GlowingObsidianDoor.java @@ -28,12 +28,12 @@ public GlowingObsidianDoor() { // the item is the door itself @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR : DoorItems.ItemGlowingObsidianDoor; + return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR : DoorItems.GlowingObsidianDoor; } @Override public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) { - return new ItemStack(DoorItems.ItemGlowingObsidianDoor); + return new ItemStack(DoorItems.GlowingObsidianDoor); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/GoldDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/GoldDoor.java index d3c4fb3..dd63e34 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/GoldDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/GoldDoor.java @@ -30,12 +30,12 @@ public GoldDoor() { // the item is the door itself @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.ItemGoldDoor; + return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.GoldDoor; } @Override public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) { - return new ItemStack(DoorItems.ItemGoldDoor); + return new ItemStack(DoorItems.GoldDoor); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/GraniteDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/GraniteDoor.java index 9b5dcd0..bcecabc 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/GraniteDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/GraniteDoor.java @@ -28,12 +28,12 @@ public GraniteDoor() { @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.ItemGraniteDoor; + return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.GraniteDoor; } @Override public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) { - return new ItemStack(DoorItems.ItemGraniteDoor); + return new ItemStack(DoorItems.GraniteDoor); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/MossStoneDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/MossStoneDoor.java index f028d4d..0bfbfbc 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/MossStoneDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/MossStoneDoor.java @@ -28,12 +28,12 @@ public MossStoneDoor() { @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.ItemMossStoneDoor; + return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.MossStoneDoor; } @Override public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) { - return new ItemStack(DoorItems.ItemMossStoneDoor); + return new ItemStack(DoorItems.MossStoneDoor); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/ObsidianDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/ObsidianDoor.java index 84969ab..148af86 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/ObsidianDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/ObsidianDoor.java @@ -16,7 +16,7 @@ import net.minecraft.world.World; public class ObsidianDoor extends BlockDoor { - private static Item item=DoorItems.ItemObsidianDoor; + private static Item item=DoorItems.ObsidianDoor; public ObsidianDoor() { super(Material.IRON); setUnlocalizedName("ObsidianDoor"); @@ -28,12 +28,12 @@ public ObsidianDoor() { // the item is the door itself @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.ItemObsidianDoor; + return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.ObsidianDoor; } @Override public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) { - return new ItemStack(DoorItems.ItemObsidianDoor); + return new ItemStack(DoorItems.ObsidianDoor); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/RedstoneDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/RedstoneDoor.java deleted file mode 100644 index 41ce38b..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/RedstoneDoor.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.doors; - -import java.util.Random; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.RSDoor; -import com.NetherNoah.ParadiseMod.init.ModItems.DoorItems; - -import net.minecraft.block.BlockDoor; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -public class RedstoneDoor extends RSDoor { - private static Item item=DoorItems.ItemRedstoneDoor; - public RedstoneDoor() { - super(Material.WOOD); - setUnlocalizedName("RedstoneDoor"); - setRegistryName("redstone_door_block"); - setHardness(5F); - setResistance(10F); - setHarvestLevel("pickaxe", 2); - setSoundType(SoundType.METAL); - } - public int getCloseSound() - { - return this.blockMaterial == Material.WOOD ? 1011 : 1012; - } - private int getOpenSound() - { - return this.blockMaterial == Material.WOOD ? 1005 : 1006; - } - @Override - public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) - { - return new ItemStack(DoorItems.ItemRedstoneDoor); - } - //this door is a rs power block! - @Override - public int getWeakPower(IBlockState state, IBlockAccess worldIn, BlockPos pos, EnumFacing side){ - return 15; - } - @Override - public boolean canConnectRedstone(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side) { - return true; - } - //the item is the door itself - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) - { - return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.ItemRedstoneDoor; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/RubyDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/RubyDoor.java index c1290b1..70cc3a6 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/RubyDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/RubyDoor.java @@ -17,7 +17,7 @@ import net.minecraft.world.World; public class RubyDoor extends BlockDoor { - private static Item item=DoorItems.ItemRubyDoor; + private static Item item=DoorItems.RubyDoor; public RubyDoor() { super(Material.WOOD); setUnlocalizedName("RubyDoor"); @@ -30,7 +30,7 @@ public RubyDoor() { @Override public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) { - return new ItemStack(DoorItems.ItemRubyDoor); + return new ItemStack(DoorItems.RubyDoor); } private int getCloseSound() { @@ -43,6 +43,6 @@ private int getOpenSound() // the item is the door itself @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.ItemRubyDoor; + return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.RubyDoor; } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/RustyDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/RustyDoor.java index 63d1e1f..b1005c5 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/RustyDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/RustyDoor.java @@ -30,11 +30,11 @@ public RustyDoor() { @Override public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) { - return new ItemStack(DoorItems.ItemRustyDoor); + return new ItemStack(DoorItems.RustyDoor); } // the item is the door itself @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.ItemRustyDoor; + return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.RustyDoor; } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/SilverDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/SilverDoor.java index 9d1c497..9f5eb2b 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/SilverDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/SilverDoor.java @@ -29,11 +29,11 @@ public SilverDoor() { @Override public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) { - return new ItemStack(DoorItems.ItemSilverDoor); + return new ItemStack(DoorItems.SilverDoor); } // the item is the door itself @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.ItemSilverDoor; + return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.SilverDoor; } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/StoneDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/StoneDoor.java index a4d4330..0555650 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/StoneDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/doors/StoneDoor.java @@ -27,11 +27,11 @@ public StoneDoor() { @Override public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) { - return new ItemStack(DoorItems.ItemStoneDoor); + return new ItemStack(DoorItems.StoneDoor); } // the item is the door itself @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.ItemStoneDoor; + return state.getValue(HALF) == BlockDoor.EnumDoorHalf.UPPER ? Items.AIR :DoorItems.StoneDoor; } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/BrickFenceGate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/BrickFenceGate.java deleted file mode 100644 index 2a01e39..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/BrickFenceGate.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.fenceGates; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.CustomWall; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockFence; -import net.minecraft.block.BlockFenceGate; -import net.minecraft.block.BlockPlanks; -import net.minecraft.block.BlockWall; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; - -public class BrickFenceGate extends BlockFenceGate { - public BrickFenceGate() { - super(BlockPlanks.EnumType.DARK_OAK); - setUnlocalizedName("BrickFenceGate"); - setRegistryName("brick_fence_gate"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.REDSTONE); - setHarvestLevel("pickaxe", 0); - } - @Override - public boolean canBeConnectedTo(IBlockAccess world, BlockPos pos, EnumFacing facing) - { - IBlockState state = world.getBlockState(pos); - if (state.getBlock() instanceof BlockFenceGate && - state.getBlockFaceShape(world, pos, facing) == BlockFaceShape.MIDDLE_POLE) - { - Block connector = world.getBlockState(pos.offset(facing)).getBlock(); - return connector instanceof BlockFence || connector instanceof BlockWall || connector instanceof CustomWall; - } - return false; - } - - @Override - public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos) - { - EnumFacing.Axis enumfacing$axis = ((EnumFacing)state.getValue(FACING)).getAxis(); - - if (enumfacing$axis == EnumFacing.Axis.Z && (worldIn.getBlockState(pos.west()).getBlock() instanceof BlockWall || worldIn.getBlockState(pos.east()).getBlock() instanceof BlockWall) || enumfacing$axis == EnumFacing.Axis.X && (worldIn.getBlockState(pos.north()).getBlock() instanceof BlockWall || worldIn.getBlockState(pos.south()).getBlock() instanceof BlockWall)) - state = state.withProperty(IN_WALL, Boolean.valueOf(true)); - else if (enumfacing$axis == EnumFacing.Axis.Z && (worldIn.getBlockState(pos.west()).getBlock() instanceof CustomWall || worldIn.getBlockState(pos.east()).getBlock() instanceof CustomWall) || enumfacing$axis == EnumFacing.Axis.X && (worldIn.getBlockState(pos.north()).getBlock() instanceof CustomWall || worldIn.getBlockState(pos.south()).getBlock() instanceof CustomWall)) - state = state.withProperty(IN_WALL, Boolean.valueOf(true)); - return state; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/CactusFenceGate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/CactusFenceGate.java deleted file mode 100644 index 9f610cb..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/CactusFenceGate.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.fenceGates; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.CustomWall; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockFence; -import net.minecraft.block.BlockFenceGate; -import net.minecraft.block.BlockPlanks; -import net.minecraft.block.BlockWall; -import net.minecraft.block.SoundType; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; - -public class CactusFenceGate extends BlockFenceGate { - public CactusFenceGate() { - super(BlockPlanks.EnumType.JUNGLE); - setUnlocalizedName("CactusFenceGate"); - setRegistryName("cactus_fence_gate"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.REDSTONE); - setSoundType(SoundType.WOOD); - } - @Override - public boolean canBeConnectedTo(IBlockAccess world, BlockPos pos, EnumFacing facing) - { - IBlockState state = world.getBlockState(pos); - if (state.getBlock() instanceof BlockFenceGate && - state.getBlockFaceShape(world, pos, facing) == BlockFaceShape.MIDDLE_POLE) - { - Block connector = world.getBlockState(pos.offset(facing)).getBlock(); - return connector instanceof BlockFence || connector instanceof BlockWall || connector instanceof CustomWall; - } - return false; - } - - @Override - public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos) - { - EnumFacing.Axis enumfacing$axis = ((EnumFacing)state.getValue(FACING)).getAxis(); - - if (enumfacing$axis == EnumFacing.Axis.Z && (worldIn.getBlockState(pos.west()).getBlock() instanceof BlockWall || worldIn.getBlockState(pos.east()).getBlock() instanceof BlockWall) || enumfacing$axis == EnumFacing.Axis.X && (worldIn.getBlockState(pos.north()).getBlock() instanceof BlockWall || worldIn.getBlockState(pos.south()).getBlock() instanceof BlockWall)) - state = state.withProperty(IN_WALL, Boolean.valueOf(true)); - else if (enumfacing$axis == EnumFacing.Axis.Z && (worldIn.getBlockState(pos.west()).getBlock() instanceof CustomWall || worldIn.getBlockState(pos.east()).getBlock() instanceof CustomWall) || enumfacing$axis == EnumFacing.Axis.X && (worldIn.getBlockState(pos.north()).getBlock() instanceof CustomWall || worldIn.getBlockState(pos.south()).getBlock() instanceof CustomWall)) - state = state.withProperty(IN_WALL, Boolean.valueOf(true)); - return state; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/DiamondFenceGate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/DiamondFenceGate.java deleted file mode 100644 index e0bf306..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/DiamondFenceGate.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.fenceGates; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.CustomWall; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockFence; -import net.minecraft.block.BlockFenceGate; -import net.minecraft.block.BlockPlanks; -import net.minecraft.block.BlockWall; -import net.minecraft.block.SoundType; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; - -public class DiamondFenceGate extends BlockFenceGate { - public DiamondFenceGate() { - super(BlockPlanks.EnumType.DARK_OAK); - setUnlocalizedName("DiamondFenceGate"); - setRegistryName("diamond_fence_gate"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.REDSTONE); - setSoundType(SoundType.METAL); - setHarvestLevel("pickaxe", 2); - } - @Override - public boolean canBeConnectedTo(IBlockAccess world, BlockPos pos, EnumFacing facing) - { - IBlockState state = world.getBlockState(pos); - if (state.getBlock() instanceof BlockFenceGate && - state.getBlockFaceShape(world, pos, facing) == BlockFaceShape.MIDDLE_POLE) - { - Block connector = world.getBlockState(pos.offset(facing)).getBlock(); - return connector instanceof BlockFence || connector instanceof BlockWall || connector instanceof CustomWall; - } - return false; - } - - @Override - public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos) - { - EnumFacing.Axis enumfacing$axis = ((EnumFacing)state.getValue(FACING)).getAxis(); - - if (enumfacing$axis == EnumFacing.Axis.Z && (worldIn.getBlockState(pos.west()).getBlock() instanceof BlockWall || worldIn.getBlockState(pos.east()).getBlock() instanceof BlockWall) || enumfacing$axis == EnumFacing.Axis.X && (worldIn.getBlockState(pos.north()).getBlock() instanceof BlockWall || worldIn.getBlockState(pos.south()).getBlock() instanceof BlockWall)) - state = state.withProperty(IN_WALL, Boolean.valueOf(true)); - else if (enumfacing$axis == EnumFacing.Axis.Z && (worldIn.getBlockState(pos.west()).getBlock() instanceof CustomWall || worldIn.getBlockState(pos.east()).getBlock() instanceof CustomWall) || enumfacing$axis == EnumFacing.Axis.X && (worldIn.getBlockState(pos.north()).getBlock() instanceof CustomWall || worldIn.getBlockState(pos.south()).getBlock() instanceof CustomWall)) - state = state.withProperty(IN_WALL, Boolean.valueOf(true)); - return state; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/EmeraldFenceGate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/EmeraldFenceGate.java deleted file mode 100644 index 4cdda1a..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/EmeraldFenceGate.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.fenceGates; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.CustomWall; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockFence; -import net.minecraft.block.BlockFenceGate; -import net.minecraft.block.BlockPlanks; -import net.minecraft.block.BlockWall; -import net.minecraft.block.SoundType; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; - -public class EmeraldFenceGate extends BlockFenceGate { - public EmeraldFenceGate() { - super(BlockPlanks.EnumType.DARK_OAK); - setUnlocalizedName("EmeraldFenceGate"); - setRegistryName("emerald_fence_gate"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.REDSTONE); - setSoundType(SoundType.METAL); - setHarvestLevel("pickaxe", 2); - } - @Override - public boolean canBeConnectedTo(IBlockAccess world, BlockPos pos, EnumFacing facing) - { - IBlockState state = world.getBlockState(pos); - if (state.getBlock() instanceof BlockFenceGate && - state.getBlockFaceShape(world, pos, facing) == BlockFaceShape.MIDDLE_POLE) - { - Block connector = world.getBlockState(pos.offset(facing)).getBlock(); - return connector instanceof BlockFence || connector instanceof BlockWall || connector instanceof CustomWall; - } - return false; - } - - @Override - public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos) - { - EnumFacing.Axis enumfacing$axis = ((EnumFacing)state.getValue(FACING)).getAxis(); - - if (enumfacing$axis == EnumFacing.Axis.Z && (worldIn.getBlockState(pos.west()).getBlock() instanceof BlockWall || worldIn.getBlockState(pos.east()).getBlock() instanceof BlockWall) || enumfacing$axis == EnumFacing.Axis.X && (worldIn.getBlockState(pos.north()).getBlock() instanceof BlockWall || worldIn.getBlockState(pos.south()).getBlock() instanceof BlockWall)) - state = state.withProperty(IN_WALL, Boolean.valueOf(true)); - else if (enumfacing$axis == EnumFacing.Axis.Z && (worldIn.getBlockState(pos.west()).getBlock() instanceof CustomWall || worldIn.getBlockState(pos.east()).getBlock() instanceof CustomWall) || enumfacing$axis == EnumFacing.Axis.X && (worldIn.getBlockState(pos.north()).getBlock() instanceof CustomWall || worldIn.getBlockState(pos.south()).getBlock() instanceof CustomWall)) - state = state.withProperty(IN_WALL, Boolean.valueOf(true)); - return state; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/IronFenceGate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/IronFenceGate.java deleted file mode 100644 index 4b0bc7e..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/IronFenceGate.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.fenceGates; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.CustomWall; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockFence; -import net.minecraft.block.BlockFenceGate; -import net.minecraft.block.BlockPlanks; -import net.minecraft.block.BlockWall; -import net.minecraft.block.SoundType; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; - -public class IronFenceGate extends BlockFenceGate { - public IronFenceGate() { - super(BlockPlanks.EnumType.DARK_OAK); - setUnlocalizedName("IronFenceGate"); - setRegistryName("iron_fence_gate"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.REDSTONE); - setSoundType(SoundType.METAL); - setHarvestLevel("pickaxe", 1); - } - @Override - public boolean canBeConnectedTo(IBlockAccess world, BlockPos pos, EnumFacing facing) - { - IBlockState state = world.getBlockState(pos); - if (state.getBlock() instanceof BlockFenceGate && - state.getBlockFaceShape(world, pos, facing) == BlockFaceShape.MIDDLE_POLE) - { - Block connector = world.getBlockState(pos.offset(facing)).getBlock(); - return connector instanceof BlockFence || connector instanceof BlockWall || connector instanceof CustomWall; - } - return false; - } - @Override - public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos) - { - EnumFacing.Axis enumfacing$axis = ((EnumFacing)state.getValue(FACING)).getAxis(); - - if (enumfacing$axis == EnumFacing.Axis.Z && (worldIn.getBlockState(pos.west()).getBlock() instanceof BlockWall || worldIn.getBlockState(pos.east()).getBlock() instanceof BlockWall) || enumfacing$axis == EnumFacing.Axis.X && (worldIn.getBlockState(pos.north()).getBlock() instanceof BlockWall || worldIn.getBlockState(pos.south()).getBlock() instanceof BlockWall)) - state = state.withProperty(IN_WALL, Boolean.valueOf(true)); - else if (enumfacing$axis == EnumFacing.Axis.Z && (worldIn.getBlockState(pos.west()).getBlock() instanceof CustomWall || worldIn.getBlockState(pos.east()).getBlock() instanceof CustomWall) || enumfacing$axis == EnumFacing.Axis.X && (worldIn.getBlockState(pos.north()).getBlock() instanceof CustomWall || worldIn.getBlockState(pos.south()).getBlock() instanceof CustomWall)) - state = state.withProperty(IN_WALL, Boolean.valueOf(true)); - return state; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/RedstoneFenceGate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/RedstoneFenceGate.java deleted file mode 100644 index 2e840e8..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/RedstoneFenceGate.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.fenceGates; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.CustomWall; -import com.NetherNoah.ParadiseMod.CustomBlockCode.RSFenceGate; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockFence; -import net.minecraft.block.BlockFenceGate; -import net.minecraft.block.BlockPlanks; -import net.minecraft.block.BlockWall; -import net.minecraft.block.SoundType; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; - -public class RedstoneFenceGate extends RSFenceGate { - public RedstoneFenceGate() { - super(BlockPlanks.EnumType.DARK_OAK); - setUnlocalizedName("RedstoneFenceGate"); - setRegistryName("redstone_fence_gate"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.REDSTONE); - setSoundType(SoundType.METAL); - setHarvestLevel("pickaxe", 2); - } - // this fence post is a rs power block! - @Override - public int getWeakPower(IBlockState state, IBlockAccess worldIn, BlockPos pos, EnumFacing side) { - return 15; - } - @Override - public boolean canConnectRedstone(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side) { - return true; - } - @Override - public boolean canBeConnectedTo(IBlockAccess world, BlockPos pos, EnumFacing facing) - { - IBlockState state = world.getBlockState(pos); - if (state.getBlock() instanceof BlockFenceGate && - state.getBlockFaceShape(world, pos, facing) == BlockFaceShape.MIDDLE_POLE) - { - Block connector = world.getBlockState(pos.offset(facing)).getBlock(); - return connector instanceof BlockFence || connector instanceof BlockWall || connector instanceof CustomWall; - } - return false; - } - @Override - public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos) - { - EnumFacing.Axis enumfacing$axis = ((EnumFacing)state.getValue(FACING)).getAxis(); - - if (enumfacing$axis == EnumFacing.Axis.Z && (worldIn.getBlockState(pos.west()).getBlock() instanceof BlockWall || worldIn.getBlockState(pos.east()).getBlock() instanceof BlockWall) || enumfacing$axis == EnumFacing.Axis.X && (worldIn.getBlockState(pos.north()).getBlock() instanceof BlockWall || worldIn.getBlockState(pos.south()).getBlock() instanceof BlockWall)) - state = state.withProperty(IN_WALL, Boolean.valueOf(true)); - else if (enumfacing$axis == EnumFacing.Axis.Z && (worldIn.getBlockState(pos.west()).getBlock() instanceof CustomWall || worldIn.getBlockState(pos.east()).getBlock() instanceof CustomWall) || enumfacing$axis == EnumFacing.Axis.X && (worldIn.getBlockState(pos.north()).getBlock() instanceof CustomWall || worldIn.getBlockState(pos.south()).getBlock() instanceof CustomWall)) - state = state.withProperty(IN_WALL, Boolean.valueOf(true)); - return state; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/RubyFenceGate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/RubyFenceGate.java deleted file mode 100644 index 97400e5..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/RubyFenceGate.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.fenceGates; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.CustomWall; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockFence; -import net.minecraft.block.BlockFenceGate; -import net.minecraft.block.BlockPlanks; -import net.minecraft.block.BlockWall; -import net.minecraft.block.SoundType; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; - -public class RubyFenceGate extends BlockFenceGate { - public RubyFenceGate() { - super(BlockPlanks.EnumType.DARK_OAK); - setUnlocalizedName("RubyFenceGate"); - setRegistryName("ruby_fence_gate"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.REDSTONE); - setSoundType(SoundType.METAL); - setHarvestLevel("pickaxe", 2); - } - @Override - public boolean canBeConnectedTo(IBlockAccess world, BlockPos pos, EnumFacing facing) - { - IBlockState state = world.getBlockState(pos); - if (state.getBlock() instanceof BlockFenceGate && - state.getBlockFaceShape(world, pos, facing) == BlockFaceShape.MIDDLE_POLE) - { - Block connector = world.getBlockState(pos.offset(facing)).getBlock(); - return connector instanceof BlockFence || connector instanceof BlockWall || connector instanceof CustomWall; - } - return false; - } - @Override - public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos) - { - EnumFacing.Axis enumfacing$axis = ((EnumFacing)state.getValue(FACING)).getAxis(); - - if (enumfacing$axis == EnumFacing.Axis.Z && (worldIn.getBlockState(pos.west()).getBlock() instanceof BlockWall || worldIn.getBlockState(pos.east()).getBlock() instanceof BlockWall) || enumfacing$axis == EnumFacing.Axis.X && (worldIn.getBlockState(pos.north()).getBlock() instanceof BlockWall || worldIn.getBlockState(pos.south()).getBlock() instanceof BlockWall)) - state = state.withProperty(IN_WALL, Boolean.valueOf(true)); - else if (enumfacing$axis == EnumFacing.Axis.Z && (worldIn.getBlockState(pos.west()).getBlock() instanceof CustomWall || worldIn.getBlockState(pos.east()).getBlock() instanceof CustomWall) || enumfacing$axis == EnumFacing.Axis.X && (worldIn.getBlockState(pos.north()).getBlock() instanceof CustomWall || worldIn.getBlockState(pos.south()).getBlock() instanceof CustomWall)) - state = state.withProperty(IN_WALL, Boolean.valueOf(true)); - return state; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/RustyFenceGate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/RustyFenceGate.java deleted file mode 100644 index 59e59c2..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/RustyFenceGate.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.fenceGates; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.CustomWall; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockFence; -import net.minecraft.block.BlockFenceGate; -import net.minecraft.block.BlockPlanks; -import net.minecraft.block.BlockWall; -import net.minecraft.block.SoundType; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; - -public class RustyFenceGate extends BlockFenceGate { - public RustyFenceGate() { - super(BlockPlanks.EnumType.DARK_OAK); - setUnlocalizedName("RustyFenceGate"); - setRegistryName("rusty_fence_gate"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.REDSTONE); - setSoundType(SoundType.METAL); - setHarvestLevel("pickaxe", 1); - } - @Override - public boolean canBeConnectedTo(IBlockAccess world, BlockPos pos, EnumFacing facing) - { - IBlockState state = world.getBlockState(pos); - if (state.getBlock() instanceof BlockFenceGate && - state.getBlockFaceShape(world, pos, facing) == BlockFaceShape.MIDDLE_POLE) - { - Block connector = world.getBlockState(pos.offset(facing)).getBlock(); - return connector instanceof BlockFence || connector instanceof BlockWall || connector instanceof CustomWall; - } - return false; - } - @Override - public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos) - { - EnumFacing.Axis enumfacing$axis = ((EnumFacing)state.getValue(FACING)).getAxis(); - - if (enumfacing$axis == EnumFacing.Axis.Z && (worldIn.getBlockState(pos.west()).getBlock() instanceof BlockWall || worldIn.getBlockState(pos.east()).getBlock() instanceof BlockWall) || enumfacing$axis == EnumFacing.Axis.X && (worldIn.getBlockState(pos.north()).getBlock() instanceof BlockWall || worldIn.getBlockState(pos.south()).getBlock() instanceof BlockWall)) - state = state.withProperty(IN_WALL, Boolean.valueOf(true)); - else if (enumfacing$axis == EnumFacing.Axis.Z && (worldIn.getBlockState(pos.west()).getBlock() instanceof CustomWall || worldIn.getBlockState(pos.east()).getBlock() instanceof CustomWall) || enumfacing$axis == EnumFacing.Axis.X && (worldIn.getBlockState(pos.north()).getBlock() instanceof CustomWall || worldIn.getBlockState(pos.south()).getBlock() instanceof CustomWall)) - state = state.withProperty(IN_WALL, Boolean.valueOf(true)); - return state; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/SilverFenceGate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/SilverFenceGate.java deleted file mode 100644 index bc1bd52..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fenceGates/SilverFenceGate.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.fenceGates; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.CustomWall; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockFence; -import net.minecraft.block.BlockFenceGate; -import net.minecraft.block.BlockPlanks; -import net.minecraft.block.BlockWall; -import net.minecraft.block.SoundType; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; - -public class SilverFenceGate extends BlockFenceGate { - public SilverFenceGate() { - super(BlockPlanks.EnumType.DARK_OAK); - setUnlocalizedName("SilverFenceGate"); - setRegistryName("silver_fence_gate"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.REDSTONE); - setSoundType(SoundType.METAL); - setHarvestLevel("pickaxe", 2); - } - @Override - public boolean canBeConnectedTo(IBlockAccess world, BlockPos pos, EnumFacing facing) - { - IBlockState state = world.getBlockState(pos); - if (state.getBlock() instanceof BlockFenceGate && - state.getBlockFaceShape(world, pos, facing) == BlockFaceShape.MIDDLE_POLE) - { - Block connector = world.getBlockState(pos.offset(facing)).getBlock(); - return connector instanceof BlockFence || connector instanceof BlockWall || connector instanceof CustomWall; - } - return false; - } - @Override - public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos) - { - EnumFacing.Axis enumfacing$axis = ((EnumFacing)state.getValue(FACING)).getAxis(); - - if (enumfacing$axis == EnumFacing.Axis.Z && (worldIn.getBlockState(pos.west()).getBlock() instanceof BlockWall || worldIn.getBlockState(pos.east()).getBlock() instanceof BlockWall) || enumfacing$axis == EnumFacing.Axis.X && (worldIn.getBlockState(pos.north()).getBlock() instanceof BlockWall || worldIn.getBlockState(pos.south()).getBlock() instanceof BlockWall)) - state = state.withProperty(IN_WALL, Boolean.valueOf(true)); - else if (enumfacing$axis == EnumFacing.Axis.Z && (worldIn.getBlockState(pos.west()).getBlock() instanceof CustomWall || worldIn.getBlockState(pos.east()).getBlock() instanceof CustomWall) || enumfacing$axis == EnumFacing.Axis.X && (worldIn.getBlockState(pos.north()).getBlock() instanceof CustomWall || worldIn.getBlockState(pos.south()).getBlock() instanceof CustomWall)) - state = state.withProperty(IN_WALL, Boolean.valueOf(true)); - return state; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/BedrockWall.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/BedrockWall.java deleted file mode 100644 index bd3b50f..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/BedrockWall.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.fences; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.CustomWall; - -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class BedrockWall extends CustomWall { - public BedrockWall() { - super(Material.BARRIER); - setUnlocalizedName("BedrockWall"); - setRegistryName("bedrock_wall"); - setHardness(-1F); - setResistance(6000000F); - setCreativeTab(CreativeTabs.DECORATIONS); - setBlockUnbreakable(); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/BrickFence.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/BrickFence.java deleted file mode 100644 index 263d8a9..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/BrickFence.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.fences; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockFence; -import net.minecraft.block.BlockFenceGate; -import net.minecraft.block.material.MapColor; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; - -public class BrickFence extends BlockFence { - public BrickFence() { - super(Material.ROCK, MapColor.ADOBE); - setUnlocalizedName("BrickFence"); - setRegistryName("brick_fence"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.DECORATIONS); - setHarvestLevel("pickaxe", 0); - } - - @Override - public boolean canConnectTo(IBlockAccess worldIn, BlockPos pos, EnumFacing facing) - { - IBlockState iblockstate = worldIn.getBlockState(pos); - BlockFaceShape blockfaceshape = iblockstate.getBlockFaceShape(worldIn, pos, facing); - Block block = iblockstate.getBlock(); - boolean flag = blockfaceshape == BlockFaceShape.MIDDLE_POLE && (block instanceof BlockFence || block instanceof BlockFenceGate); - return !isExcepBlockForAttachWithPiston(block) && blockfaceshape == BlockFaceShape.SOLID || flag; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/DiamondFence.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/DiamondFence.java deleted file mode 100644 index 20f06ea..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/DiamondFence.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.fences; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockFence; -import net.minecraft.block.BlockFenceGate; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.MapColor; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; - -public class DiamondFence extends BlockFence { - public DiamondFence() { - super(Material.ROCK, MapColor.DIAMOND); - setUnlocalizedName("DiamondFence"); - setRegistryName("diamond_fence"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.DECORATIONS); - setSoundType(SoundType.METAL); - setHarvestLevel("pickaxe", 2); - } - - @Override - public boolean canConnectTo(IBlockAccess worldIn, BlockPos pos, EnumFacing facing) - { - IBlockState iblockstate = worldIn.getBlockState(pos); - BlockFaceShape blockfaceshape = iblockstate.getBlockFaceShape(worldIn, pos, facing); - Block block = iblockstate.getBlock(); - boolean flag = blockfaceshape == BlockFaceShape.MIDDLE_POLE && (block instanceof BlockFence || block instanceof BlockFenceGate); - return !isExcepBlockForAttachWithPiston(block) && blockfaceshape == BlockFaceShape.SOLID || flag; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/EmeraldFence.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/EmeraldFence.java deleted file mode 100644 index b68c026..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/EmeraldFence.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.fences; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockFence; -import net.minecraft.block.BlockFenceGate; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.MapColor; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; - -public class EmeraldFence extends BlockFence { - public EmeraldFence() { - super(Material.ROCK, MapColor.EMERALD); - setUnlocalizedName("EmeraldFence"); - setRegistryName("emerald_fence"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.DECORATIONS); - setSoundType(SoundType.METAL); - setHarvestLevel("pickaxe", 2); - } - - @Override - public boolean canConnectTo(IBlockAccess worldIn, BlockPos pos, EnumFacing facing) - { - IBlockState iblockstate = worldIn.getBlockState(pos); - BlockFaceShape blockfaceshape = iblockstate.getBlockFaceShape(worldIn, pos, facing); - Block block = iblockstate.getBlock(); - boolean flag = blockfaceshape == BlockFaceShape.MIDDLE_POLE && (block instanceof BlockFence || block instanceof BlockFenceGate); - return !isExcepBlockForAttachWithPiston(block) && blockfaceshape == BlockFaceShape.SOLID || flag; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/EndWall.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/EndWall.java deleted file mode 100644 index a77256c..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/EndWall.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.fences; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.CustomWall; - -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class EndWall extends CustomWall { - public EndWall() { - super(Material.ROCK); - setRegistryName("end_wall"); - setUnlocalizedName("EndWall"); - setCreativeTab(CreativeTabs.DECORATIONS); - setHardness(5F); - setResistance(15F); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/GlowingObsidianWall.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/GlowingObsidianWall.java deleted file mode 100644 index 98c6f09..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/GlowingObsidianWall.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.fences; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.CustomWall; - -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class GlowingObsidianWall extends CustomWall { - public GlowingObsidianWall() { - super(Material.BARRIER); - setRegistryName("glowing_obsidian_wall"); - setUnlocalizedName("GlowingObsidianWall"); - setCreativeTab(CreativeTabs.DECORATIONS); - setHardness(51F); - setResistance(2000F); - setLightLevel(.46666667F); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/GoldFence.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/GoldFence.java deleted file mode 100644 index 210d7d7..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/GoldFence.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.fences; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockFence; -import net.minecraft.block.BlockFenceGate; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.MapColor; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; - -public class GoldFence extends BlockFence { - public GoldFence() { - super(Material.ROCK, MapColor.GOLD); - setUnlocalizedName("GoldFence"); - setRegistryName("gold_fence"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.DECORATIONS); - setSoundType(SoundType.METAL); - setHarvestLevel("pickaxe", 2); - } - - @Override - public boolean canConnectTo(IBlockAccess worldIn, BlockPos pos, EnumFacing facing) - { - IBlockState iblockstate = worldIn.getBlockState(pos); - BlockFaceShape blockfaceshape = iblockstate.getBlockFaceShape(worldIn, pos, facing); - Block block = iblockstate.getBlock(); - boolean flag = blockfaceshape == BlockFaceShape.MIDDLE_POLE && (block instanceof BlockFence || block instanceof BlockFenceGate); - return !isExcepBlockForAttachWithPiston(block) && blockfaceshape == BlockFaceShape.SOLID || flag; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/IronFence.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/IronFence.java deleted file mode 100644 index 22cb458..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/IronFence.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.fences; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockFence; -import net.minecraft.block.BlockFenceGate; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.MapColor; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; - -public class IronFence extends BlockFence { - public IronFence() { - super(Material.IRON, MapColor.IRON); - setUnlocalizedName("IronFence"); - setRegistryName("iron_fence"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.DECORATIONS); - setSoundType(SoundType.METAL); - setHarvestLevel("pickaxe", 1); - } - - @Override - public boolean canConnectTo(IBlockAccess worldIn, BlockPos pos, EnumFacing facing) - { - IBlockState iblockstate = worldIn.getBlockState(pos); - BlockFaceShape blockfaceshape = iblockstate.getBlockFaceShape(worldIn, pos, facing); - Block block = iblockstate.getBlock(); - boolean flag = blockfaceshape == BlockFaceShape.MIDDLE_POLE && (block instanceof BlockFence || block instanceof BlockFenceGate); - return !isExcepBlockForAttachWithPiston(block) && blockfaceshape == BlockFaceShape.SOLID || flag; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/ObsidianWall.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/ObsidianWall.java deleted file mode 100644 index 89a0ed8..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/ObsidianWall.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.fences; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.CustomWall; - -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class ObsidianWall extends CustomWall { - public ObsidianWall() { - super(Material.BARRIER); - setRegistryName("obsidian_wall"); - setUnlocalizedName("ObsidianWall"); - setCreativeTab(CreativeTabs.DECORATIONS); - setHardness(51F); - setResistance(2000F); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/RubyFence.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/RubyFence.java deleted file mode 100644 index ab64f2d..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/RubyFence.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.fences; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockFence; -import net.minecraft.block.BlockFenceGate; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.MapColor; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; - -public class RubyFence extends BlockFence { - public RubyFence() { - super(Material.IRON, MapColor.MAGENTA); - setUnlocalizedName("RubyFence"); - setRegistryName("ruby_fence"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.DECORATIONS); - setSoundType(SoundType.METAL); - setHarvestLevel("pickaxe", 2); - } - - @Override - public boolean canConnectTo(IBlockAccess worldIn, BlockPos pos, EnumFacing facing) - { - IBlockState iblockstate = worldIn.getBlockState(pos); - BlockFaceShape blockfaceshape = iblockstate.getBlockFaceShape(worldIn, pos, facing); - Block block = iblockstate.getBlock(); - boolean flag = blockfaceshape == BlockFaceShape.MIDDLE_POLE && (block instanceof BlockFence || block instanceof BlockFenceGate); - return !isExcepBlockForAttachWithPiston(block) && blockfaceshape == BlockFaceShape.SOLID || flag; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/RustyFence.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/RustyFence.java deleted file mode 100644 index c43e81b..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/RustyFence.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.fences; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockFence; -import net.minecraft.block.BlockFenceGate; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.MapColor; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; - -public class RustyFence extends BlockFence { - public RustyFence() { - super(Material.IRON, MapColor.IRON); - setUnlocalizedName("RustyFence"); - setRegistryName("rusty_fence"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.DECORATIONS); - setSoundType(SoundType.METAL); - setHarvestLevel("pickaxe", 1); - } - - @Override - public boolean canConnectTo(IBlockAccess worldIn, BlockPos pos, EnumFacing facing) - { - IBlockState iblockstate = worldIn.getBlockState(pos); - BlockFaceShape blockfaceshape = iblockstate.getBlockFaceShape(worldIn, pos, facing); - Block block = iblockstate.getBlock(); - boolean flag = blockfaceshape == BlockFaceShape.MIDDLE_POLE && (block instanceof BlockFence || block instanceof BlockFenceGate); - return !isExcepBlockForAttachWithPiston(block) && blockfaceshape == BlockFaceShape.SOLID || flag; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/SilverFence.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/SilverFence.java deleted file mode 100644 index d9a566b..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/SilverFence.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.fences; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockFence; -import net.minecraft.block.BlockFenceGate; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.MapColor; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.BlockFaceShape; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; - -public class SilverFence extends BlockFence { - public SilverFence() { - super(Material.IRON, MapColor.SILVER); - setUnlocalizedName("SilverFence"); - setRegistryName("silver_fence"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.DECORATIONS); - setSoundType(SoundType.METAL); - setHarvestLevel("pickaxe", 2); - } - - @Override - public boolean canConnectTo(IBlockAccess worldIn, BlockPos pos, EnumFacing facing) - { - IBlockState iblockstate = worldIn.getBlockState(pos); - BlockFaceShape blockfaceshape = iblockstate.getBlockFaceShape(worldIn, pos, facing); - Block block = iblockstate.getBlock(); - boolean flag = blockfaceshape == BlockFaceShape.MIDDLE_POLE && (block instanceof BlockFence || block instanceof BlockFenceGate); - return !isExcepBlockForAttachWithPiston(block) && blockfaceshape == BlockFaceShape.SOLID || flag; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/VoidWall.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/VoidWall.java deleted file mode 100644 index c80945e..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/fences/VoidWall.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.fences; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.CustomWall; - -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class VoidWall extends CustomWall { - public VoidWall() { - super(Material.ROCK); - setUnlocalizedName("VoidWall"); - setRegistryName("void_wall"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.DECORATIONS); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/formations/mossyStoneFormation.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/formations/mossyStoneFormation.java deleted file mode 100644 index f78d20f..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/formations/mossyStoneFormation.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.formations; - -import net.minecraft.block.BlockDirectional; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.IProperty; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.init.Blocks; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -public class mossyStoneFormation extends BlockDirectional { - protected static final AxisAlignedBB END_ROD_VERTICAL_AABB = new AxisAlignedBB(0.375D, 0.0D, 0.375D, 0.625D, 1.0D, 0.625D); - protected static final AxisAlignedBB END_ROD_NS_AABB = new AxisAlignedBB(0.375D, 0.375D, 0.0D, 0.625D, 0.625D, 1.0D); - protected static final AxisAlignedBB END_ROD_EW_AABB = new AxisAlignedBB(0.0D, 0.375D, 0.375D, 1.0D, 0.625D, 0.625D); - - public mossyStoneFormation() - { - super(Material.CIRCUITS); - setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.UP)); - setCreativeTab(CreativeTabs.DECORATIONS); - setUnlocalizedName("mossyStoneFormation"); - setRegistryName("mossy_stone_formation"); - } - - @Override - public boolean isOpaqueCube(IBlockState state) { - return false; - } - - @Override - public boolean isFullCube(IBlockState state) { - return false; - } - - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) - { - switch (((EnumFacing)state.getValue(FACING)).getAxis()) - { - case X: - default: - return END_ROD_EW_AABB; - case Z: - return END_ROD_NS_AABB; - case Y: - return END_ROD_VERTICAL_AABB; - } - } - @Override - public BlockRenderLayer getBlockLayer() - { - return BlockRenderLayer.TRANSLUCENT; - } - - @Override - public IBlockState getStateFromMeta(int meta) - { - IBlockState iblockstate = this.getDefaultState(); - iblockstate = iblockstate.withProperty(FACING, EnumFacing.getFront(meta)); - return iblockstate; - } - - @Override - public int getMetaFromState(IBlockState state) - { - return ((EnumFacing)state.getValue(FACING)).getIndex(); - } - - @Override - public IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer) - { - IBlockState iblockstate = worldIn.getBlockState(pos.offset(facing.getOpposite())); - - if (iblockstate.getBlock() == Blocks.END_ROD) - { - EnumFacing enumfacing = (EnumFacing)iblockstate.getValue(FACING); - - if (enumfacing == facing) - { - return this.getDefaultState().withProperty(FACING, facing.getOpposite()); - } - } - - return this.getDefaultState().withProperty(FACING, facing); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, new IProperty[] {FACING}); - } - -} diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/formations/netherrackFormation.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/formations/netherrackFormation.java deleted file mode 100644 index af18ff0..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/formations/netherrackFormation.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.formations; - -import net.minecraft.block.BlockDirectional; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.IProperty; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.init.Blocks; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -public class netherrackFormation extends BlockDirectional { - protected static final AxisAlignedBB END_ROD_VERTICAL_AABB = new AxisAlignedBB(0.375D, 0.0D, 0.375D, 0.625D, 1.0D, 0.625D); - protected static final AxisAlignedBB END_ROD_NS_AABB = new AxisAlignedBB(0.375D, 0.375D, 0.0D, 0.625D, 0.625D, 1.0D); - protected static final AxisAlignedBB END_ROD_EW_AABB = new AxisAlignedBB(0.0D, 0.375D, 0.375D, 1.0D, 0.625D, 0.625D); - - public netherrackFormation() - { - super(Material.CIRCUITS); - setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.UP)); - setCreativeTab(CreativeTabs.DECORATIONS); - setUnlocalizedName("netherrackFormation"); - setRegistryName("netherrack_formation"); - } - - @Override - public boolean isOpaqueCube(IBlockState state) { - return false; - } - - @Override - public boolean isFullCube(IBlockState state) { - return false; - } - - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) - { - switch (((EnumFacing)state.getValue(FACING)).getAxis()) - { - case X: - default: - return END_ROD_EW_AABB; - case Z: - return END_ROD_NS_AABB; - case Y: - return END_ROD_VERTICAL_AABB; - } - } - @Override - public BlockRenderLayer getBlockLayer() - { - return BlockRenderLayer.TRANSLUCENT; - } - - @Override - public IBlockState getStateFromMeta(int meta) - { - IBlockState iblockstate = this.getDefaultState(); - iblockstate = iblockstate.withProperty(FACING, EnumFacing.getFront(meta)); - return iblockstate; - } - - @Override - public int getMetaFromState(IBlockState state) - { - return ((EnumFacing)state.getValue(FACING)).getIndex(); - } - - @Override - public IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer) - { - IBlockState iblockstate = worldIn.getBlockState(pos.offset(facing.getOpposite())); - - if (iblockstate.getBlock() == Blocks.END_ROD) - { - EnumFacing enumfacing = (EnumFacing)iblockstate.getValue(FACING); - - if (enumfacing == facing) - { - return this.getDefaultState().withProperty(FACING, facing.getOpposite()); - } - } - - return this.getDefaultState().withProperty(FACING, facing); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, new IProperty[] {FACING}); - } - -} diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/formations/sandstoneFormation.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/formations/sandstoneFormation.java deleted file mode 100644 index ac068a7..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/formations/sandstoneFormation.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.formations; - -import net.minecraft.block.BlockDirectional; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.IProperty; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.init.Blocks; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -public class sandstoneFormation extends BlockDirectional { - protected static final AxisAlignedBB END_ROD_VERTICAL_AABB = new AxisAlignedBB(0.375D, 0.0D, 0.375D, 0.625D, 1.0D, 0.625D); - protected static final AxisAlignedBB END_ROD_NS_AABB = new AxisAlignedBB(0.375D, 0.375D, 0.0D, 0.625D, 0.625D, 1.0D); - protected static final AxisAlignedBB END_ROD_EW_AABB = new AxisAlignedBB(0.0D, 0.375D, 0.375D, 1.0D, 0.625D, 0.625D); - - public sandstoneFormation() - { - super(Material.CIRCUITS); - setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.UP)); - setCreativeTab(CreativeTabs.DECORATIONS); - setUnlocalizedName("sandstoneFormation"); - setRegistryName("sandstone_formation"); - } - - @Override - public boolean isOpaqueCube(IBlockState state) { - return false; - } - - @Override - public boolean isFullCube(IBlockState state) { - return false; - } - - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) - { - switch (((EnumFacing)state.getValue(FACING)).getAxis()) - { - case X: - default: - return END_ROD_EW_AABB; - case Z: - return END_ROD_NS_AABB; - case Y: - return END_ROD_VERTICAL_AABB; - } - } - @Override - public BlockRenderLayer getBlockLayer() - { - return BlockRenderLayer.TRANSLUCENT; - } - - @Override - public IBlockState getStateFromMeta(int meta) - { - IBlockState iblockstate = this.getDefaultState(); - iblockstate = iblockstate.withProperty(FACING, EnumFacing.getFront(meta)); - return iblockstate; - } - - @Override - public int getMetaFromState(IBlockState state) - { - return ((EnumFacing)state.getValue(FACING)).getIndex(); - } - - @Override - public IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer) - { - IBlockState iblockstate = worldIn.getBlockState(pos.offset(facing.getOpposite())); - - if (iblockstate.getBlock() == Blocks.END_ROD) - { - EnumFacing enumfacing = (EnumFacing)iblockstate.getValue(FACING); - - if (enumfacing == facing) - { - return this.getDefaultState().withProperty(FACING, facing.getOpposite()); - } - } - - return this.getDefaultState().withProperty(FACING, facing); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, new IProperty[] {FACING}); - } - -} diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/formations/stoneFormation.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/formations/stoneFormation.java deleted file mode 100644 index 36caebf..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/formations/stoneFormation.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.formations; - -import net.minecraft.block.BlockDirectional; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.IProperty; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.init.Blocks; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -public class stoneFormation extends BlockDirectional { - protected static final AxisAlignedBB END_ROD_VERTICAL_AABB = new AxisAlignedBB(0.375D, 0.0D, 0.375D, 0.625D, 1.0D, 0.625D); - protected static final AxisAlignedBB END_ROD_NS_AABB = new AxisAlignedBB(0.375D, 0.375D, 0.0D, 0.625D, 0.625D, 1.0D); - protected static final AxisAlignedBB END_ROD_EW_AABB = new AxisAlignedBB(0.0D, 0.375D, 0.375D, 1.0D, 0.625D, 0.625D); - - public stoneFormation() - { - super(Material.CIRCUITS); - setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.UP)); - setCreativeTab(CreativeTabs.DECORATIONS); - setUnlocalizedName("stoneFormation"); - setRegistryName("stone_formation"); - } - - @Override - public boolean isOpaqueCube(IBlockState state) { - return false; - } - - @Override - public boolean isFullCube(IBlockState state) { - return false; - } - - @Override - public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) - { - switch (((EnumFacing)state.getValue(FACING)).getAxis()) - { - case X: - default: - return END_ROD_EW_AABB; - case Z: - return END_ROD_NS_AABB; - case Y: - return END_ROD_VERTICAL_AABB; - } - } - @Override - public BlockRenderLayer getBlockLayer() - { - return BlockRenderLayer.TRANSLUCENT; - } - - @Override - public IBlockState getStateFromMeta(int meta) - { - IBlockState iblockstate = this.getDefaultState(); - iblockstate = iblockstate.withProperty(FACING, EnumFacing.getFront(meta)); - return iblockstate; - } - - @Override - public int getMetaFromState(IBlockState state) - { - return ((EnumFacing)state.getValue(FACING)).getIndex(); - } - - @Override - public IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer) - { - IBlockState iblockstate = worldIn.getBlockState(pos.offset(facing.getOpposite())); - - if (iblockstate.getBlock() == Blocks.END_ROD) - { - EnumFacing enumfacing = (EnumFacing)iblockstate.getValue(FACING); - - if (enumfacing == facing) - { - return this.getDefaultState().withProperty(FACING, facing.getOpposite()); - } - } - - return this.getDefaultState().withProperty(FACING, facing); - } - - @Override - protected BlockStateContainer createBlockState() - { - return new BlockStateContainer(this, new IProperty[] {FACING}); - } - -} diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/BlueRose.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/BlueRose.java deleted file mode 100644 index 9d8a8e3..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/BlueRose.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.misc; - -import java.util.Random; - -import com.NetherNoah.ParadiseMod.init.ModBlocks.Misc; - -import net.minecraft.block.BlockBush; -import net.minecraft.block.IGrowable; -import net.minecraft.block.SoundType; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class BlueRose extends BlockBush implements IGrowable { - public BlueRose() { - setUnlocalizedName("BlueRose"); - setRegistryName("blue_rose"); - setSoundType(SoundType.PLANT); - } - @Override - protected boolean canSustainBush(IBlockState state) - { - return state.getBlock()==Blocks.GRASS|state.getBlock()==Blocks.DIRT; - } - @Override - public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) - { - return new ItemStack(Misc.BlueRose); - } - @Override - public boolean canUseBonemeal(World worldIn, Random rand, BlockPos pos, IBlockState state) - { - return true; - } - - @Override - public void grow(World worldIn, Random rand, BlockPos pos, IBlockState state) - { - spawnAsEntity(worldIn, pos, new ItemStack(this)); - } - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getBlockLayer() - { - return BlockRenderLayer.CUTOUT; - } - @Override - public boolean canGrow(World worldIn, BlockPos pos, IBlockState state, boolean isClient) { - return true; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/CompressedCactus.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/CompressedCactus.java deleted file mode 100644 index 4c82b53..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/CompressedCactus.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.misc; -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; -public class CompressedCactus extends Block{ - public CompressedCactus() { - super(Material.WOOD); - setUnlocalizedName("CompressedCactus"); - setRegistryName("compressed_cactus"); - setHardness(2.5F); - setResistance(5F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setSoundType(SoundType.WOOD); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/DUPortal.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/DUPortal.java index afff69b..12fce4f 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/DUPortal.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/DUPortal.java @@ -117,6 +117,7 @@ public int getMetaFromState(IBlockState state) { public IBlockState getStateFromMeta(int meta) { return getDefaultState().withProperty(AXIS, (meta & 3) == 2 ? EnumFacing.Axis.Z : EnumFacing.Axis.X); } + public boolean trySpawnPortal(World worldIn, BlockPos pos) { DUPortal.Size blockportal$size = new DUPortal.Size(worldIn, pos, EnumFacing.Axis.X); if(blockportal$size.isValid() && blockportal$size.portalBlockCount == 0) { @@ -138,6 +139,7 @@ public boolean trySpawnPortal(World worldIn, BlockPos pos) { public void addCollisionBoxToList(IBlockState state, World worldIn, BlockPos pos, AxisAlignedBB entityBox, List collidingBoxes, @Nullable Entity entityIn, boolean p_185477_7_) { } + public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Block blockIn) { EnumFacing.Axis enumfacing$axis = state.getValue(AXIS); if(enumfacing$axis == EnumFacing.Axis.X) { @@ -153,14 +155,17 @@ else if (enumfacing$axis == EnumFacing.Axis.Z) { } } } + @Override public int quantityDropped(Random random) { return 1; } + @Override public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState state, Entity entityIn) { - if(!entityIn.isRiding() && !entityIn.isBeingRidden() && entityIn.isNonBoss() && entityIn instanceof EntityPlayerMP) { + if(!entityIn.isRiding() && !entityIn.isBeingRidden() && entityIn.isNonBoss()&& entityIn instanceof EntityPlayerMP) { EntityPlayerMP thePlayer = (EntityPlayerMP)entityIn; + if(thePlayer.timeUntilPortal > 0) { thePlayer.timeUntilPortal = 10; } @@ -177,11 +182,13 @@ else if (thePlayer.dimension != DimensionRegistry.DeepUnderground) { } } } + @SideOnly(Side.CLIENT) @Override public BlockRenderLayer getBlockLayer() { return BlockRenderLayer.TRANSLUCENT; } + @SideOnly(Side.CLIENT) @Override public void randomDisplayTick(IBlockState stateIn, World worldIn, BlockPos pos, Random rand) { @@ -239,11 +246,11 @@ public static class Size private BlockPos bottomLeft; private int height; private int width; - public Size(World worldIn, BlockPos p_i45694_2_, EnumFacing.Axis p_i45694_3_) + public Size(World worldIn, BlockPos position, EnumFacing.Axis axisIn) { world = worldIn; - axis = p_i45694_3_; - if (p_i45694_3_ == EnumFacing.Axis.X) + axis = axisIn; + if (axisIn == EnumFacing.Axis.X) { leftDir = EnumFacing.EAST; rightDir = EnumFacing.WEST; @@ -253,14 +260,14 @@ public Size(World worldIn, BlockPos p_i45694_2_, EnumFacing.Axis p_i45694_3_) leftDir = EnumFacing.NORTH; rightDir = EnumFacing.SOUTH; } - for (BlockPos blockpos = p_i45694_2_; p_i45694_2_.getY() > blockpos.getY() - 21 && p_i45694_2_.getY() > 0 && isEmptyBlock(worldIn.getBlockState(p_i45694_2_.down()).getBlock()); p_i45694_2_ = p_i45694_2_.down()) + for (BlockPos blockpos = position; position.getY() > blockpos.getY() - 21 && position.getY() > 0 && isEmptyBlock(worldIn.getBlockState(position.down()).getBlock()); position = position.down()) { ; } - int i = getDistanceUntilEdge(p_i45694_2_, leftDir) - 1; + int i = getDistanceUntilEdge(position, leftDir) - 1; if (i >= 0) { - bottomLeft = p_i45694_2_.offset(leftDir, i); + bottomLeft = position.offset(leftDir, i); width = getDistanceUntilEdge(bottomLeft, rightDir); if (width < 2 || width > 21) { @@ -273,20 +280,20 @@ public Size(World worldIn, BlockPos p_i45694_2_, EnumFacing.Axis p_i45694_3_) height = calculatePortalHeight(); } } - protected int getDistanceUntilEdge(BlockPos p_180120_1_, EnumFacing p_180120_2_) + protected int getDistanceUntilEdge(BlockPos position, EnumFacing p_180120_2_) { int i; for (i = 0; i < 22; ++i) { - BlockPos blockpos = p_180120_1_.offset(p_180120_2_, i); + BlockPos blockpos = position.offset(p_180120_2_, i); if (!isEmptyBlock(world.getBlockState(blockpos).getBlock()) || world.getBlockState(blockpos.down()).getBlock() != Blocks.BOOKSHELF) { break; } } - Block block = world.getBlockState(p_180120_1_.offset(p_180120_2_, i)).getBlock(); + Block block = world.getBlockState(position.offset(p_180120_2_, i)).getBlock(); return block == Ores.blazeBlock ? i : 0; } public int getHeight() @@ -301,7 +308,7 @@ public int getWidth() protected int calculatePortalHeight() { label24: - for (height = 0; height < 21; ++height) + for (height = 0; height < 21; height++) { for (int i = 0; i < width; ++i) { @@ -311,9 +318,9 @@ protected int calculatePortalHeight() { break label24; } - if (block == Misc.DVPortal) + if (block == Misc.DUPortal) { - ++portalBlockCount; + portalBlockCount++; } if (i == 0) { @@ -363,12 +370,12 @@ public boolean isValid() } public void placePortalBlocks() { - for (int i = 0; i < width; ++i) + for (int i = 0; i < width; i++) { BlockPos blockpos = bottomLeft.offset(rightDir, i); - for (int j = 0; j < height; ++j) + for (int j = 0; j < height; j++) { - world.setBlockState(blockpos.up(j), Misc.DVPortal.getDefaultState().withProperty(BlockPortal.AXIS, axis), 2); + world.setBlockState(blockpos.up(j), Misc.DUPortal.getDefaultState().withProperty(BlockPortal.AXIS, axis), 2); } } } diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/DVPortal.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/DVPortal.java index 292fd97..8aa2876 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/DVPortal.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/DVPortal.java @@ -239,7 +239,7 @@ public static class Size private BlockPos bottomLeft; private int height; private int width; - public Size(World worldIn, BlockPos p_i45694_2_, EnumFacing.Axis p_i45694_3_) + public Size(World worldIn, BlockPos position, EnumFacing.Axis p_i45694_3_) { world = worldIn; axis = p_i45694_3_; @@ -253,14 +253,14 @@ public Size(World worldIn, BlockPos p_i45694_2_, EnumFacing.Axis p_i45694_3_) leftDir = EnumFacing.NORTH; rightDir = EnumFacing.SOUTH; } - for (BlockPos blockpos = p_i45694_2_; p_i45694_2_.getY() > blockpos.getY() - 21 && p_i45694_2_.getY() > 0 && isEmptyBlock(worldIn.getBlockState(p_i45694_2_.down()).getBlock()); p_i45694_2_ = p_i45694_2_.down()) + for (BlockPos blockpos = position; position.getY() > blockpos.getY() - 21 && position.getY() > 0 && isEmptyBlock(worldIn.getBlockState(position.down()).getBlock()); position = position.down()) { ; } - int i = getDistanceUntilEdge(p_i45694_2_, leftDir) - 1; + int i = getDistanceUntilEdge(position, leftDir) - 1; if (i >= 0) { - bottomLeft = p_i45694_2_.offset(leftDir, i); + bottomLeft = position.offset(leftDir, i); width = getDistanceUntilEdge(bottomLeft, rightDir); if (width < 2 || width > 21) { diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/GoldBars.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/GoldBars.java deleted file mode 100644 index dd9e2b7..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/GoldBars.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.misc; - -import net.minecraft.block.BlockPane; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class GoldBars extends BlockPane { - public GoldBars() { - super(Material.IRON, true); - setUnlocalizedName("GoldBars"); - setRegistryName("gold_bars"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.DECORATIONS); - setSoundType(SoundType.METAL); - setHarvestLevel("pickaxe", 2); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/MossyFurnace.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/MossyFurnace.java deleted file mode 100644 index 456d67c..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/MossyFurnace.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.misc; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.MossyFurnaceCode; - -import net.minecraft.creativetab.CreativeTabs; - -public class MossyFurnace extends MossyFurnaceCode { - public MossyFurnace() { - super(false); - setUnlocalizedName("MossyFurnace"); - setRegistryName("mossy_furnace"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.DECORATIONS); - setHarvestLevel("pickaxe", 0); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/MossyFurnaceLit.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/MossyFurnaceLit.java deleted file mode 100644 index a99b9b5..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/MossyFurnaceLit.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.misc; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.MossyFurnaceCode; - -public class MossyFurnaceLit extends MossyFurnaceCode { - public MossyFurnaceLit() { - super(true); - setUnlocalizedName("MossyFurnaceLit"); - setRegistryName("lit_mossy_furnace"); - setHardness(5F); - setResistance(10F); - setHarvestLevel("pickaxe", 0); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/PolishedVoidStone.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/PolishedVoidStone.java deleted file mode 100644 index afa4b02..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/PolishedVoidStone.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.misc; -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; -public class PolishedVoidStone extends Block{ - public PolishedVoidStone() { - super(Material.ROCK); - setUnlocalizedName("PolishedVoidStone"); - setRegistryName("polished_void_stone"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setSoundType(SoundType.STONE); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/RustyIronBars.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/RustyIronBars.java deleted file mode 100644 index 9df802d..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/RustyIronBars.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.misc; - -import net.minecraft.block.BlockPane; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class RustyIronBars extends BlockPane { - public RustyIronBars() { - super(Material.IRON, true); - setUnlocalizedName("RustyIronBars"); - setRegistryName("rusty_iron_bars"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.DECORATIONS); - setSoundType(SoundType.METAL); - setHarvestLevel("pickaxe", 1); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/SilverBars.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/SilverBars.java deleted file mode 100644 index 5b77573..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/SilverBars.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.misc; - -import net.minecraft.block.BlockPane; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class SilverBars extends BlockPane { - public SilverBars() { - super(Material.IRON, true); - setUnlocalizedName("SilverBars"); - setRegistryName("silver_bars"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.DECORATIONS); - setSoundType(SoundType.METAL); - setHarvestLevel("pickaxe", 2); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/Stonecutter.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/Stonecutter.java deleted file mode 100644 index c7b4871..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/Stonecutter.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.misc; -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; -public class Stonecutter extends Block{ - public Stonecutter() { - super(Material.WOOD); - setUnlocalizedName("Stonecutter"); - setRegistryName("stonecutter"); - setHardness(5F); - setResistance(5.8333333333F); - setCreativeTab(CreativeTabs.DECORATIONS); - setSoundType(SoundType.STONE); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/VoidBricks.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/VoidBricks.java deleted file mode 100644 index ec51555..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/VoidBricks.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.misc; -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; -public class VoidBricks extends Block{ - public VoidBricks() { - super(Material.ROCK); - setUnlocalizedName("VoidBricks"); - setRegistryName("void_bricks"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setSoundType(SoundType.STONE); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/VoidFurnace.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/VoidFurnace.java deleted file mode 100644 index 28d5a5c..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/VoidFurnace.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.misc; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.VoidFurnaceCode; - -import net.minecraft.creativetab.CreativeTabs; - -public class VoidFurnace extends VoidFurnaceCode { - public VoidFurnace() { - super(false); - setUnlocalizedName("VoidFurnace"); - setRegistryName("void_furnace"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.DECORATIONS); - setHarvestLevel("pickaxe", 0); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/VoidFurnaceLit.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/VoidFurnaceLit.java deleted file mode 100644 index c5c1092..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/VoidFurnaceLit.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.misc; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.VoidFurnaceCode; - -public class VoidFurnaceLit extends VoidFurnaceCode { - public VoidFurnaceLit() { - super(true); - setUnlocalizedName("VoidFurnaceLit"); - setRegistryName("lit_void_furnace"); - setHardness(5F); - setResistance(10F); - setHarvestLevel("pickaxe", 0); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/VoidStone.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/VoidStone.java deleted file mode 100644 index f250da8..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/VoidStone.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.misc; -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; -public class VoidStone extends Block{ - public VoidStone() { - super(Material.ROCK); - setUnlocalizedName("VoidStone"); - setRegistryName("void_stone"); - setHardness(5F); - setResistance(15F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/bulletproofGlass.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/bulletproofGlass.java deleted file mode 100644 index 099fa15..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/bulletproofGlass.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.misc; - -import com.NetherNoah.ParadiseMod.init.ModBlocks.Misc; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockBreakable; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class bulletproofGlass extends BlockBreakable { - public bulletproofGlass() { - super(Material.GLASS, true); - setUnlocalizedName("bulletProofGlass"); - setRegistryName("bulletproof_glass"); - setHardness(.5F); - setResistance(2000F); - setSoundType(SoundType.GLASS); - setDefaultSlipperiness(1F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - } - @Override - public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos,EnumFacing side) { - IBlockState iblockstate = blockAccess.getBlockState(pos.offset(side)); - Block block = iblockstate.getBlock(); - - if (this == Misc.bulletproofGlass) - { - if (blockState != iblockstate) - { - return true; - } - if (block == this) - { - return false; - } - } - return true; - } - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getBlockLayer() { - return BlockRenderLayer.TRANSLUCENT; - } - @Override - protected boolean canSilkHarvest() { - return true; - } - @Override - public boolean isFullCube(IBlockState state) { - return false; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/glowingIce.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/glowingIce.java deleted file mode 100644 index deee7fc..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/glowingIce.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.misc; - -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class glowingIce extends Block { - public glowingIce() { - super(Material.ICE); - setUnlocalizedName("glowingIce"); - setRegistryName("glowing_ice"); - setHardness(.2F); - setResistance(2F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setHarvestLevel("pickaxe",0); - setLightLevel(.46666667F); - setSoundType(SoundType.GLASS); - setDefaultSlipperiness(1F); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/glowingObsidian.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/glowingObsidian.java deleted file mode 100644 index 9d58706..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/glowingObsidian.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.misc; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; - -public class glowingObsidian extends Block { - public glowingObsidian() { - super(Material.BARRIER); - setUnlocalizedName("glowingObsidian"); - setRegistryName("glowing_obsidian"); - setHardness(51F); - setResistance(2000F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setHarvestLevel("pickaxe",3); - setLightLevel(.46666667F); - } - @Override - public boolean isBeaconBase(IBlockAccess worldObj, BlockPos pos, BlockPos beacon) - { - return true; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/soulGlassPane.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/soulGlassPane.java deleted file mode 100644 index 06823cc..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/misc/soulGlassPane.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.misc; - -import net.minecraft.block.BlockPane; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.util.BlockRenderLayer; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class soulGlassPane extends BlockPane { - public soulGlassPane() { - super(Material.GLASS, false); - setUnlocalizedName("soulGlassPane"); - setRegistryName("soul_glass_pane"); - setHardness(.5F); - setResistance(1F); - setLightLevel(1F); - setSoundType(SoundType.GLASS); - setDefaultSlipperiness(1F); - } - @Override - @SideOnly(Side.CLIENT) - public BlockRenderLayer getBlockLayer() { - return BlockRenderLayer.TRANSLUCENT; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/EnderPearlOre.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/EnderPearlOre.java deleted file mode 100644 index c31b54b..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/EnderPearlOre.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.ores; - -import java.util.Random; - -import com.NetherNoah.ParadiseMod.init.ModBlocks.Ores; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.World; - -public class EnderPearlOre extends Block { - private Item drop; - private int meta; - private int least_quantity; - private int most_quantity; - public EnderPearlOre() { - super(Material.ROCK); - setUnlocalizedName("EndPearlOre"); - setRegistryName("ender_pearl_ore"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setHarvestLevel("pickaxe", 2); - } - @Override - public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) - { - return new ItemStack(Ores.EnderPearlOre); - } - // get item to drop - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Items.ENDER_PEARL; - } - // get amount of items to drop - @Override - public int quantityDropped(Random random) { - return 1; - } - // is the pick enchanted with fortune? - @Override - public int quantityDroppedWithBonus(int fortune, Random random) { - if (fortune > 0 && Item.getItemFromBlock(this) != this - .getItemDropped(this.getBlockState().getValidStates().iterator().next(), random, fortune)) { - int i = random.nextInt(fortune + 2) - 1; - - if (i < 0) { - i = 0; - } - return this.quantityDropped(random) * (i + 1); - } else { - return this.quantityDropped(random); - } - } - // spawn the item in the world - @Override - public void dropBlockAsItemWithChance(World worldIn, BlockPos pos, IBlockState state, float chance, int fortune) { - super.dropBlockAsItemWithChance(worldIn, pos, state, chance, fortune); - } - // spawn xp orbs - @Override - public int getExpDrop(IBlockState state, net.minecraft.world.IBlockAccess world, BlockPos pos, int fortune) { - Random rand = world instanceof World ? ((World) world).rand : new Random(); - if (this.getItemDropped(state, rand, fortune) != Item.getItemFromBlock(this)) { - int i = 0; - i = MathHelper.getInt(rand, 0, 5); - return i; - } - return 0; - } - // spawn the actual item - @Override - public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Items.ENDER_PEARL); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/GoldOreNether.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/GoldOreNether.java deleted file mode 100644 index f358146..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/GoldOreNether.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.ores; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class GoldOreNether extends Block { - public GoldOreNether() { - super(Material.ROCK); - setUnlocalizedName("NetherGoldOre"); - setRegistryName("nether_gold_ore"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setHarvestLevel("pickaxe", 2); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/GoldOreVoid.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/GoldOreVoid.java deleted file mode 100644 index cb8a005..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/GoldOreVoid.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.ores; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class GoldOreVoid extends Block { - public GoldOreVoid() { - super(Material.ROCK); - setUnlocalizedName("VoidGoldOre"); - setRegistryName("void_gold_ore"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setHarvestLevel("pickaxe", 2); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/IronOreVoid.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/IronOreVoid.java deleted file mode 100644 index d282a74..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/IronOreVoid.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.ores; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class IronOreVoid extends Block { - public IronOreVoid() { - super(Material.ROCK); - setUnlocalizedName("VoidIronOre"); - setRegistryName("void_iron_ore"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setHarvestLevel("pickaxe", 1); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/RubyOre.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/RubyOre.java deleted file mode 100644 index 55b0cb9..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/RubyOre.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.ores; - -import java.util.Random; - -import com.NetherNoah.ParadiseMod.init.ModBlocks.Ores; -import com.NetherNoah.ParadiseMod.init.ModItems.MiscItems; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.World; - -public class RubyOre extends Block { - private Item drop; - private int meta; - private int least_quantity; - private int most_quantity; - public RubyOre() { - super(Material.ROCK); - setUnlocalizedName("RubyOre"); - setRegistryName("ruby_ore"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setHarvestLevel("pickaxe", 2); - } - @Override - public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) - { - return new ItemStack(Ores.RubyOre); - } - // get item to drop - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return MiscItems.Ruby; - } - // get amount of items to drop - @Override - public int quantityDropped(Random random) { - return 1; - } - // is the pick enchanted with fortune? - @Override - public int quantityDroppedWithBonus(int fortune, Random random) { - if (fortune > 0 && Item.getItemFromBlock(this) != this - .getItemDropped(this.getBlockState().getValidStates().iterator().next(), random, fortune)) { - int i = random.nextInt(fortune + 2) - 1; - - if (i < 0) { - i = 0; - } - return this.quantityDropped(random) * (i + 1); - } else { - return this.quantityDropped(random); - } - } - // spawn the item in the world - @Override - public void dropBlockAsItemWithChance(World worldIn, BlockPos pos, IBlockState state, float chance, int fortune) { - super.dropBlockAsItemWithChance(worldIn, pos, state, chance, fortune); - } - // spawn xp orbs - @Override - public int getExpDrop(IBlockState state, net.minecraft.world.IBlockAccess world, BlockPos pos, int fortune) { - Random rand = world instanceof World ? ((World) world).rand : new Random(); - if (this.getItemDropped(state, rand, fortune) != Item.getItemFromBlock(this)) { - int i = 0; - i = MathHelper.getInt(rand, 0, 5); - return i; - } - return 0; - } - // spawn the actual item - @Override - public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(MiscItems.Ruby); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/RubyOreEnd.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/RubyOreEnd.java deleted file mode 100644 index 4132d20..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/RubyOreEnd.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.ores; - -import java.util.Random; - -import com.NetherNoah.ParadiseMod.init.ModBlocks.Ores; -import com.NetherNoah.ParadiseMod.init.ModItems.MiscItems; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.World; - -public class RubyOreEnd extends Block { - private Item drop; - private int meta; - private int least_quantity; - private int most_quantity; - public RubyOreEnd() { - super(Material.ROCK); - setUnlocalizedName("EndRubyOre"); - setRegistryName("ender_ruby_ore"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setHarvestLevel("pickaxe", 2); - } - @Override - public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) - { - return new ItemStack(Ores.EndRubyOre); - } - // get item to drop - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return MiscItems.Ruby; - } - // get amount of items to drop - @Override - public int quantityDropped(Random random) { - return 1; - } - // is the pick enchanted with fortune? - @Override - public int quantityDroppedWithBonus(int fortune, Random random) { - if (fortune > 0 && Item.getItemFromBlock(this) != this - .getItemDropped(this.getBlockState().getValidStates().iterator().next(), random, fortune)) { - int i = random.nextInt(fortune + 2) - 1; - - if (i < 0) { - i = 0; - } - return this.quantityDropped(random) * (i + 1); - } else { - return this.quantityDropped(random); - } - } - // spawn the item in the world - @Override - public void dropBlockAsItemWithChance(World worldIn, BlockPos pos, IBlockState state, float chance, int fortune) { - super.dropBlockAsItemWithChance(worldIn, pos, state, chance, fortune); - } - // spawn xp orbs - @Override - public int getExpDrop(IBlockState state, net.minecraft.world.IBlockAccess world, BlockPos pos, int fortune) { - Random rand = world instanceof World ? ((World) world).rand : new Random(); - if (this.getItemDropped(state, rand, fortune) != Item.getItemFromBlock(this)) { - int i = 0; - i = MathHelper.getInt(rand, 0, 5); - return i; - } - return 0; - } - // spawn the actual item - @Override - public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(MiscItems.Ruby); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/SaltOre.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/SaltOre.java deleted file mode 100644 index 7a77ae7..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/SaltOre.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.ores; - -import java.util.Random; - -import com.NetherNoah.ParadiseMod.init.ModBlocks.Ores; -import com.NetherNoah.ParadiseMod.init.ModItems.MiscItems; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.World; - -public class SaltOre extends Block { - private Item drop; - private int meta; - private int least_quantity; - private int most_quantity; - public SaltOre() { - super(Material.ROCK); - setUnlocalizedName("SaltOre"); - setRegistryName("salt_ore"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setHarvestLevel("pickaxe", 0); - } - @Override - public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) - { - return new ItemStack(Ores.SaltOre); - } - // get item to drop - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return MiscItems.salt; - } - // get amount of items to drop - @Override - public int quantityDropped(Random random) { - return 4 + random.nextInt(2); - } - // is the pick enchanted with fortune? - @Override - public int quantityDroppedWithBonus(int fortune, Random random) { - return this.quantityDropped(random)+random.nextInt(fortune+1); - } - // spawn the item in the world - @Override - public void dropBlockAsItemWithChance(World worldIn, BlockPos pos, IBlockState state, float chance, int fortune) { - super.dropBlockAsItemWithChance(worldIn, pos, state, chance, fortune); - } - // spawn xp orbs - @Override - public int getExpDrop(IBlockState state, net.minecraft.world.IBlockAccess world, BlockPos pos, int fortune) { - Random rand = world instanceof World ? ((World) world).rand : new Random(); - if (this.getItemDropped(state, rand, fortune) != Item.getItemFromBlock(this)) { - int i = 0; - i = MathHelper.getInt(rand, 0, 5); - return i; - } - return 0; - } - // spawn the actual item - @Override - public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(MiscItems.salt); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/SilverOre.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/SilverOre.java deleted file mode 100644 index 0190eec..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/SilverOre.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.ores; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class SilverOre extends Block { - public SilverOre() { - super(Material.ROCK); - setUnlocalizedName("SilverOre"); - setRegistryName("silver_ore"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setHarvestLevel("pickaxe", 2); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/SilverOreNether.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/SilverOreNether.java deleted file mode 100644 index 0416f80..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/SilverOreNether.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.ores; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class SilverOreNether extends Block { - public SilverOreNether() { - super(Material.ROCK); - setUnlocalizedName("NetherSilverOre"); - setRegistryName("nether_silver_ore"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setHarvestLevel("pickaxe", 2); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/SilverOreVoid.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/SilverOreVoid.java deleted file mode 100644 index d587d40..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/SilverOreVoid.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.ores; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class SilverOreVoid extends Block { - public SilverOreVoid() { - super(Material.ROCK); - setUnlocalizedName("VoidSilverOre"); - setRegistryName("void_silver_ore"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setHarvestLevel("pickaxe", 2); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/VoidPearlOre.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/VoidPearlOre.java deleted file mode 100644 index fc8460d..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/ores/VoidPearlOre.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.ores; - -import java.util.Random; - -import com.NetherNoah.ParadiseMod.init.ModBlocks.Ores; -import com.NetherNoah.ParadiseMod.init.ModItems.MiscItems; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.World; - -public class VoidPearlOre extends Block { - private Item drop; - private int meta; - private int least_quantity; - private int most_quantity; - public VoidPearlOre() { - super(Material.ROCK); - setUnlocalizedName("VoidPearlOre"); - setRegistryName("void_pearl_ore"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setHarvestLevel("pickaxe", 2); - } - @Override - public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) - { - return new ItemStack(Ores.VoidPearlOre); - } - // get item to drop - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return MiscItems.VoidPearl; - } - // get amount of items to drop - @Override - public int quantityDropped(Random random) { - return 1; - } - // is the pick enchanted with fortune? - @Override - public int quantityDroppedWithBonus(int fortune, Random random) { - if (fortune > 0 && Item.getItemFromBlock(this) != this - .getItemDropped(this.getBlockState().getValidStates().iterator().next(), random, fortune)) { - int i = random.nextInt(fortune + 2) - 1; - - if (i < 0) { - i = 0; - } - return this.quantityDropped(random) * (i + 1); - } else { - return this.quantityDropped(random); - } - } - //spawn the item in the world - @Override - public void dropBlockAsItemWithChance(World worldIn, BlockPos pos, IBlockState state, float chance, int fortune) { - super.dropBlockAsItemWithChance(worldIn, pos, state, chance, fortune); - } - //spawn xp orbs - @Override - public int getExpDrop(IBlockState state, net.minecraft.world.IBlockAccess world, BlockPos pos, int fortune) { - Random rand = world instanceof World ? ((World) world).rand : new Random(); - if (this.getItemDropped(state, rand, fortune) != Item.getItemFromBlock(this)) { - int i = 0; - i = MathHelper.getInt(rand, 0, 5); - return i; - } - return 0; - } - //spawn the actual item - @Override - public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(MiscItems.VoidPearl); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/BedrockPlate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/BedrockPlate.java deleted file mode 100644 index bb183c0..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/BedrockPlate.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.pressurePlates; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.pressurePlates.BedrockPlateCode; - -import net.minecraft.block.material.Material; - -public class BedrockPlate extends BedrockPlateCode { - public BedrockPlate() { - super(Material.ROCK, BedrockPlateCode.Sensitivity.PLAYER); - setUnlocalizedName("BedrockPlate"); - setRegistryName("bedrock_pressure_plate"); - setHardness(-1F); - setResistance(6000000F); - setBlockUnbreakable(); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/CobblestonePlate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/CobblestonePlate.java deleted file mode 100644 index 086ad93..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/CobblestonePlate.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.pressurePlates; - -import net.minecraft.block.BlockPressurePlate; -import net.minecraft.block.material.Material; - -public class CobblestonePlate extends BlockPressurePlate { - public CobblestonePlate() { - super(Material.ROCK, BlockPressurePlate.Sensitivity.MOBS); - setUnlocalizedName("CobblestonePlate"); - setRegistryName("cobblestone_pressure_plate"); - setHardness(0.5F); - setHarvestLevel("pickaxe", 0); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/DiamondPlate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/DiamondPlate.java deleted file mode 100644 index 36c3207..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/DiamondPlate.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.pressurePlates; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.pressurePlates.DiamondPlateCode; - -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class DiamondPlate extends DiamondPlateCode { - public DiamondPlate() { - super(Material.WOOD, DiamondPlateCode.Sensitivity.EVERYTHING); - setUnlocalizedName("DiamondPlate"); - setRegistryName("diamond_pressure_plate"); - setHardness(0.5F); - setSoundType(SoundType.METAL); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/DirtPlate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/DirtPlate.java deleted file mode 100644 index 461a9f3..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/DirtPlate.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.pressurePlates; - -import net.minecraft.block.BlockPressurePlate; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class DirtPlate extends BlockPressurePlate { - public DirtPlate() { - super(Material.GROUND, BlockPressurePlate.Sensitivity.EVERYTHING); - setUnlocalizedName("DirtPlate"); - setRegistryName("dirt_pressure_plate"); - setSoundType(SoundType.GROUND); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/EmeraldPlate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/EmeraldPlate.java deleted file mode 100644 index 5a4ec17..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/EmeraldPlate.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.pressurePlates; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.pressurePlates.EmeraldPlateCode; - -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class EmeraldPlate extends EmeraldPlateCode { - public EmeraldPlate() { - super(Material.WOOD, EmeraldPlateCode.Sensitivity.EVERYTHING); - setUnlocalizedName("EmeraldPlate"); - setRegistryName("emerald_pressure_plate"); - setHardness(0.5F); - setSoundType(SoundType.METAL); - setHarvestLevel("pickaxe", 2); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/EndPlate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/EndPlate.java deleted file mode 100644 index 552f51e..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/EndPlate.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.pressurePlates; - -import net.minecraft.block.BlockPressurePlate; -import net.minecraft.block.material.Material; - -public class EndPlate extends BlockPressurePlate { - public EndPlate() { - super(Material.ROCK, BlockPressurePlate.Sensitivity.MOBS); - setUnlocalizedName("EndPlate"); - setRegistryName("end_pressure_plate"); - setHardness(0.5F); - setHarvestLevel("pickaxe", 0); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/GlowingObsidianPlate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/GlowingObsidianPlate.java deleted file mode 100644 index d6155d9..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/GlowingObsidianPlate.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.pressurePlates; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.pressurePlates.BedrockPlateCode; - -import net.minecraft.block.material.Material; - -public class GlowingObsidianPlate extends BedrockPlateCode { - public GlowingObsidianPlate() { - super(Material.ROCK, BedrockPlateCode.Sensitivity.PLAYER); - setUnlocalizedName("GlowingObsidianPlate"); - setRegistryName("glowing_obsidian_pressure_plate"); - setHardness(51F); - setResistance(2000F); - setLightLevel(.46666667F); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/GrassPlate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/GrassPlate.java deleted file mode 100644 index 5eef2fd..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/GrassPlate.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.pressurePlates; - -import net.minecraft.block.BlockPressurePlate; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class GrassPlate extends BlockPressurePlate { - public GrassPlate() { - super(Material.GRASS, BlockPressurePlate.Sensitivity.EVERYTHING); - setUnlocalizedName("GrassPlate"); - setRegistryName("grass_pressure_plate"); - setSoundType(SoundType.PLANT); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/MossyPlate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/MossyPlate.java deleted file mode 100644 index 1875843..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/MossyPlate.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.pressurePlates; - -import net.minecraft.block.BlockPressurePlate; -import net.minecraft.block.material.Material; - -public class MossyPlate extends BlockPressurePlate { - public MossyPlate() { - super(Material.ROCK, BlockPressurePlate.Sensitivity.MOBS); - setUnlocalizedName("MossyPlate"); - setRegistryName("mossy_cobblestone_pressure_plate"); - setHardness(0.5F); - setHarvestLevel("pickaxe", 0); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/RubyPlate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/RubyPlate.java deleted file mode 100644 index 61f1a80..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/RubyPlate.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.pressurePlates; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.RubyPlateCode; - -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class RubyPlate extends RubyPlateCode { - public RubyPlate() { - super(Material.WOOD, RubyPlateCode.Sensitivity.EVERYTHING); - setUnlocalizedName("RubyPlate"); - setRegistryName("ruby_pressure_plate"); - setHardness(0.5F); - setSoundType(SoundType.METAL); - setHarvestLevel("pickaxe", 2); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/RustyPlate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/RustyPlate.java deleted file mode 100644 index e5e8c19..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/RustyPlate.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.pressurePlates; - -import net.minecraft.block.BlockPressurePlate; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class RustyPlate extends BlockPressurePlate { - public RustyPlate() { - super(Material.WOOD, BlockPressurePlate.Sensitivity.EVERYTHING); - setUnlocalizedName("RustyPlate"); - setRegistryName("rusty_pressure_plate"); - setHardness(0.5F); - setSoundType(SoundType.METAL); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/SilverPlate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/SilverPlate.java deleted file mode 100644 index 732fd79..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/SilverPlate.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.pressurePlates; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.RubyPlateCode; - -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; - -public class SilverPlate extends RubyPlateCode { - public SilverPlate() { - super(Material.WOOD, RubyPlateCode.Sensitivity.EVERYTHING); - setUnlocalizedName("SilverPlate"); - setRegistryName("silver_pressure_plate"); - setHardness(0.5F); - setSoundType(SoundType.METAL); - setHarvestLevel("pickaxe", 2); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/VoidPlate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/VoidPlate.java deleted file mode 100644 index da83b94..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/VoidPlate.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.pressurePlates; - -import net.minecraft.block.BlockPressurePlate; -import net.minecraft.block.material.Material; - -public class VoidPlate extends BlockPressurePlate { - public VoidPlate() { - super(Material.ROCK, BlockPressurePlate.Sensitivity.MOBS); - setUnlocalizedName("VoidPlate"); - setRegistryName("void_pressure_plate"); - setHardness(0.5F); - setHarvestLevel("pickaxe", 0); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/stoneVariants/AndesitePlate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/stoneVariants/AndesitePlate.java deleted file mode 100644 index d512935..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/stoneVariants/AndesitePlate.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.pressurePlates.stoneVariants; - -import net.minecraft.block.BlockPressurePlate; -import net.minecraft.block.material.Material; - -public class AndesitePlate extends BlockPressurePlate { - public AndesitePlate() { - super(Material.ROCK, BlockPressurePlate.Sensitivity.MOBS); - setUnlocalizedName("AndesitePlate"); - setRegistryName("andesite_pressure_plate"); - setHardness(0.5F); - setHarvestLevel("pickaxe", 0); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/stoneVariants/DioritePlate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/stoneVariants/DioritePlate.java deleted file mode 100644 index 4eeabeb..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/stoneVariants/DioritePlate.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.pressurePlates.stoneVariants; - -import net.minecraft.block.BlockPressurePlate; -import net.minecraft.block.material.Material; - -public class DioritePlate extends BlockPressurePlate { - public DioritePlate() { - super(Material.ROCK, BlockPressurePlate.Sensitivity.MOBS); - setUnlocalizedName("DioritePlate"); - setRegistryName("diorite_pressure_plate"); - setHardness(0.5F); - setHarvestLevel("pickaxe", 0); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/stoneVariants/GranitePlate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/stoneVariants/GranitePlate.java deleted file mode 100644 index 7ff5675..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/stoneVariants/GranitePlate.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.pressurePlates.stoneVariants; - -import net.minecraft.block.BlockPressurePlate; -import net.minecraft.block.material.Material; - -public class GranitePlate extends BlockPressurePlate { - public GranitePlate() { - super(Material.ROCK, BlockPressurePlate.Sensitivity.MOBS); - setUnlocalizedName("GranitePlate"); - setRegistryName("granite_pressure_plate"); - setHardness(0.5F); - setHarvestLevel("pickaxe", 0); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/wood/AcaciaPlate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/wood/AcaciaPlate.java deleted file mode 100644 index a728dfa..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/wood/AcaciaPlate.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.pressurePlates.wood; - -import net.minecraft.block.BlockPressurePlate; -import net.minecraft.block.material.Material; - -public class AcaciaPlate extends BlockPressurePlate { - public AcaciaPlate() { - super(Material.WOOD, BlockPressurePlate.Sensitivity.EVERYTHING); - setUnlocalizedName("AcaciaPlate"); - setRegistryName("acacia_pressure_plate"); - setHardness(0.5F); - setSoundType(blockSoundType.WOOD); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/wood/BirchPlate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/wood/BirchPlate.java deleted file mode 100644 index 19ed24a..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/wood/BirchPlate.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.pressurePlates.wood; - -import net.minecraft.block.BlockPressurePlate; -import net.minecraft.block.material.Material; - -public class BirchPlate extends BlockPressurePlate { - public BirchPlate() { - super(Material.WOOD, BlockPressurePlate.Sensitivity.EVERYTHING); - setUnlocalizedName("BirchPlate"); - setRegistryName("birch_pressure_plate"); - setHardness(0.5F); - setSoundType(blockSoundType.WOOD); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/wood/CactusPlate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/wood/CactusPlate.java deleted file mode 100644 index 3a3b2e8..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/wood/CactusPlate.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.pressurePlates.wood; - -import net.minecraft.block.BlockPressurePlate; -import net.minecraft.block.material.Material; - -public class CactusPlate extends BlockPressurePlate { - public CactusPlate() { - super(Material.WOOD, BlockPressurePlate.Sensitivity.EVERYTHING); - setUnlocalizedName("CactusPlate"); - setRegistryName("cactus_pressure_plate"); - setHardness(0.5F); - setSoundType(blockSoundType.WOOD); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/wood/DarkOakPlate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/wood/DarkOakPlate.java deleted file mode 100644 index 95806e7..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/wood/DarkOakPlate.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.pressurePlates.wood; - -import net.minecraft.block.BlockPressurePlate; -import net.minecraft.block.material.Material; - -public class DarkOakPlate extends BlockPressurePlate { - public DarkOakPlate() { - super(Material.WOOD, BlockPressurePlate.Sensitivity.EVERYTHING); - setUnlocalizedName("DarkOakPlate"); - setRegistryName("dark_oak_pressure_plate"); - setHardness(0.5F); - setSoundType(blockSoundType.WOOD); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/wood/JunglePlate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/wood/JunglePlate.java deleted file mode 100644 index 48bc60e..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/wood/JunglePlate.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.pressurePlates.wood; - -import net.minecraft.block.BlockPressurePlate; -import net.minecraft.block.material.Material; - -public class JunglePlate extends BlockPressurePlate { - public JunglePlate() { - super(Material.WOOD, BlockPressurePlate.Sensitivity.EVERYTHING); - setUnlocalizedName("JunglePlate"); - setRegistryName("jungle_pressure_plate"); - setHardness(0.5F); - setSoundType(blockSoundType.WOOD); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/wood/SprucePlate.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/wood/SprucePlate.java deleted file mode 100644 index 9f951e8..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/pressurePlates/wood/SprucePlate.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.pressurePlates.wood; - -import net.minecraft.block.BlockPressurePlate; -import net.minecraft.block.material.Material; - -public class SprucePlate extends BlockPressurePlate { - public SprucePlate() { - super(Material.WOOD, BlockPressurePlate.Sensitivity.EVERYTHING); - setUnlocalizedName("SprucePlate"); - setRegistryName("spruce_pressure_plate"); - setHardness(0.5F); - setSoundType(blockSoundType.WOOD); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/BlackRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/BlackRSLamp.java index 1e40435..91d5ce9 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/BlackRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/BlackRSLamp.java @@ -28,7 +28,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitBlackRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitBlackLamp.getDefaultState(), 2); } } } @@ -39,18 +39,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitBlackRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitBlackLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.BlackRSLamp); + return Item.getItemFromBlock(Lamps.BlackLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.BlackRSLamp); + return new ItemStack(Lamps.BlackLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/BlueRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/BlueRSLamp.java index 3f1391a..d673b83 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/BlueRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/BlueRSLamp.java @@ -28,7 +28,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitBlueRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitBlueLamp.getDefaultState(), 2); } } } @@ -39,18 +39,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitBlueRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitBlueLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.BlueRSLamp); + return Item.getItemFromBlock(Lamps.BlueLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.BlueRSLamp); + return new ItemStack(Lamps.BlueLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/BrownRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/BrownRSLamp.java index 7a521e8..1666c3a 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/BrownRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/BrownRSLamp.java @@ -28,7 +28,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitBrownRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitBrownLamp.getDefaultState(), 2); } } } @@ -39,18 +39,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitBrownRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitBrownLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.BrownRSLamp); + return Item.getItemFromBlock(Lamps.BrownLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.BrownRSLamp); + return new ItemStack(Lamps.BrownLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/CyanRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/CyanRSLamp.java index 353d285..c0b031a 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/CyanRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/CyanRSLamp.java @@ -28,7 +28,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitCyanRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitCyanLamp.getDefaultState(), 2); } } } @@ -39,18 +39,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitCyanRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitCyanLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.CyanRSLamp); + return Item.getItemFromBlock(Lamps.CyanLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.CyanRSLamp); + return new ItemStack(Lamps.CyanLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/GrayRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/GrayRSLamp.java index ed981bb..aaeb351 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/GrayRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/GrayRSLamp.java @@ -28,7 +28,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitGrayRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitGrayLamp.getDefaultState(), 2); } } } @@ -39,18 +39,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitGrayRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitGrayLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.GrayRSLamp); + return Item.getItemFromBlock(Lamps.GrayLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.GrayRSLamp); + return new ItemStack(Lamps.GrayLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/GreenRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/GreenRSLamp.java index a4e4f37..33ac0ed 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/GreenRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/GreenRSLamp.java @@ -28,7 +28,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitGreenRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitGreenLamp.getDefaultState(), 2); } } } @@ -39,18 +39,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitGreenRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitGreenLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.GreenRSLamp); + return Item.getItemFromBlock(Lamps.GreenLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.GreenRSLamp); + return new ItemStack(Lamps.GreenLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/LightBlueRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/LightBlueRSLamp.java index 7a62253..1f6641f 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/LightBlueRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/LightBlueRSLamp.java @@ -28,7 +28,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitLightBlueRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitLightBlueLamp.getDefaultState(), 2); } } } @@ -39,18 +39,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitLightBlueRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitLightBlueLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.LightBlueRSLamp); + return Item.getItemFromBlock(Lamps.LightBlueLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.LightBlueRSLamp); + return new ItemStack(Lamps.LightBlueLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/LimeRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/LimeRSLamp.java index 8a752ef..8bd5a86 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/LimeRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/LimeRSLamp.java @@ -28,7 +28,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitLimeRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitLimeLamp.getDefaultState(), 2); } } } @@ -39,18 +39,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitLimeRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitLimeLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.LimeRSLamp); + return Item.getItemFromBlock(Lamps.LimeLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.LimeRSLamp); + return new ItemStack(Lamps.LimeLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/MagentaRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/MagentaRSLamp.java index c1cfbbf..f45497a 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/MagentaRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/MagentaRSLamp.java @@ -28,7 +28,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitMagentaRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitMagentaLamp.getDefaultState(), 2); } } } @@ -39,18 +39,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitMagentaRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitMagentaLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.MagentaRSLamp); + return Item.getItemFromBlock(Lamps.MagentaLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.MagentaRSLamp); + return new ItemStack(Lamps.MagentaLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/OrangeRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/OrangeRSLamp.java index 5b95bb8..f84637f 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/OrangeRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/OrangeRSLamp.java @@ -28,7 +28,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitOrangeRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitOrangeLamp.getDefaultState(), 2); } } } @@ -39,18 +39,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitOrangeRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitOrangeLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.OrangeRSLamp); + return Item.getItemFromBlock(Lamps.OrangeLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.OrangeRSLamp); + return new ItemStack(Lamps.OrangeLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/PinkRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/PinkRSLamp.java index 4b14a06..dddb8f4 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/PinkRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/PinkRSLamp.java @@ -28,7 +28,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitPinkRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitPinkLamp.getDefaultState(), 2); } } } @@ -39,18 +39,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitPinkRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitPinkLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.PinkRSLamp); + return Item.getItemFromBlock(Lamps.PinkLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.PinkRSLamp); + return new ItemStack(Lamps.PinkLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/PurpleRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/PurpleRSLamp.java index 36ad18e..df950c8 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/PurpleRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/PurpleRSLamp.java @@ -28,7 +28,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitPurpleRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitPurpleLamp.getDefaultState(), 2); } } } @@ -39,18 +39,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitPurpleRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitPurpleLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.PurpleRSLamp); + return Item.getItemFromBlock(Lamps.PurpleLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.PurpleRSLamp); + return new ItemStack(Lamps.PurpleLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/RedRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/RedRSLamp.java index 374ce41..78efa60 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/RedRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/RedRSLamp.java @@ -28,14 +28,14 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitRedRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitRedLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.RedRSLamp); + return Item.getItemFromBlock(Lamps.RedLamp); } @Override public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos) @@ -44,13 +44,13 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitRedRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitRedLamp.getDefaultState(), 2); } } } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.RedRSLamp); + return new ItemStack(Lamps.RedLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/SilverRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/SilverRSLamp.java index a508f97..2b9c0b9 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/SilverRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/SilverRSLamp.java @@ -28,14 +28,14 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitSilverRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitSilverLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.SilverRSLamp); + return Item.getItemFromBlock(Lamps.SilverLamp); } @Override public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos) @@ -44,13 +44,13 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitSilverRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitSilverLamp.getDefaultState(), 2); } } } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.SilverRSLamp); + return new ItemStack(Lamps.SilverLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/WhiteRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/WhiteRSLamp.java index 5c6cbc9..c6d5d49 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/WhiteRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/WhiteRSLamp.java @@ -28,7 +28,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitWhiteRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitWhiteLamp.getDefaultState(), 2); } } } @@ -39,18 +39,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitWhiteRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitWhiteLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.WhiteRSLamp); + return Item.getItemFromBlock(Lamps.WhiteLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.WhiteRSLamp); + return new ItemStack(Lamps.WhiteLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/YellowRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/YellowRSLamp.java index b705816..e4e74e0 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/YellowRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/YellowRSLamp.java @@ -28,7 +28,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitYellowRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitYellowLamp.getDefaultState(), 2); } } } @@ -39,18 +39,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LitYellowRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LitYellowLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.YellowRSLamp); + return Item.getItemFromBlock(Lamps.YellowLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.YellowRSLamp); + return new ItemStack(Lamps.YellowLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitBlackRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitBlackRSLamp.java index c981f36..97ab863 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitBlackRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitBlackRSLamp.java @@ -28,7 +28,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.BlackRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.BlackLamp.getDefaultState(), 2); } } } @@ -36,7 +36,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) { if (!worldIn.isRemote) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.BlackRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.BlackLamp.getDefaultState(), 2); } } } @@ -44,18 +44,18 @@ public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random ra public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos) { if (!worldIn.isRemote) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.BlackRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.BlackLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.BlackRSLamp); + return Item.getItemFromBlock(Lamps.BlackLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.BlackRSLamp); + return new ItemStack(Lamps.BlackLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitBlueRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitBlueRSLamp.java index afdda81..1568960 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitBlueRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitBlueRSLamp.java @@ -27,7 +27,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.BlueRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.BlueLamp.getDefaultState(), 2); } } } @@ -35,7 +35,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) { if (!worldIn.isRemote) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.BlueRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.BlueLamp.getDefaultState(), 2); } } } @@ -46,18 +46,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.BlueRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.BlueLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.BlueRSLamp); + return Item.getItemFromBlock(Lamps.BlueLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.BlueRSLamp); + return new ItemStack(Lamps.BlueLamp); } } diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitBrownRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitBrownRSLamp.java index 14c6b68..5efabf7 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitBrownRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitBrownRSLamp.java @@ -24,7 +24,7 @@ public LitBrownRSLamp() { public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) { if (!worldIn.isRemote) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.BrownRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.BrownLamp.getDefaultState(), 2); } } } @@ -35,7 +35,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.BrownRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.BrownLamp.getDefaultState(), 2); } } } @@ -46,18 +46,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.BrownRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.BrownLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.BrownRSLamp); + return Item.getItemFromBlock(Lamps.BrownLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.BrownRSLamp); + return new ItemStack(Lamps.BrownLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitCyanRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitCyanRSLamp.java index 03028ff..8f149c4 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitCyanRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitCyanRSLamp.java @@ -24,7 +24,7 @@ public LitCyanRSLamp() { public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) { if (!worldIn.isRemote) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.CyanRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.CyanLamp.getDefaultState(), 2); } } } @@ -35,7 +35,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.CyanRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.CyanLamp.getDefaultState(), 2); } } } @@ -46,18 +46,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.CyanRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.CyanLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.CyanRSLamp); + return Item.getItemFromBlock(Lamps.CyanLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.CyanRSLamp); + return new ItemStack(Lamps.CyanLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitGrayRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitGrayRSLamp.java index 52db1d1..a98ace5 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitGrayRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitGrayRSLamp.java @@ -24,7 +24,7 @@ public LitGrayRSLamp() { public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) { if (!worldIn.isRemote) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.GrayRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.GrayLamp.getDefaultState(), 2); } } } @@ -35,7 +35,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.GrayRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.GrayLamp.getDefaultState(), 2); } } } @@ -46,18 +46,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.GrayRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.GrayLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.GrayRSLamp); + return Item.getItemFromBlock(Lamps.GrayLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.GrayRSLamp); + return new ItemStack(Lamps.GrayLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitGreenRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitGreenRSLamp.java index 26332e2..9bb8cd5 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitGreenRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitGreenRSLamp.java @@ -24,7 +24,7 @@ public LitGreenRSLamp() { public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) { if (!worldIn.isRemote) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.GreenRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.GreenLamp.getDefaultState(), 2); } } } @@ -35,7 +35,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.GreenRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.GreenLamp.getDefaultState(), 2); } } } @@ -46,18 +46,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.GreenRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.GreenLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.WhiteRSLamp); + return Item.getItemFromBlock(Lamps.WhiteLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.GreenRSLamp); + return new ItemStack(Lamps.GreenLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitLightBlueRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitLightBlueRSLamp.java index f3075a7..7571512 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitLightBlueRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitLightBlueRSLamp.java @@ -23,7 +23,7 @@ public LitLightBlueRSLamp() { public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) { if (!worldIn.isRemote) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LightBlueRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LightBlueLamp.getDefaultState(), 2); } } } @@ -34,7 +34,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LightBlueRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LightBlueLamp.getDefaultState(), 2); } } } @@ -45,13 +45,13 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LightBlueRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LightBlueLamp.getDefaultState(), 2); } } } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.LightBlueRSLamp); + return new ItemStack(Lamps.LightBlueLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitLimeRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitLimeRSLamp.java index 2c1260d..f39a957 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitLimeRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitLimeRSLamp.java @@ -24,7 +24,7 @@ public LitLimeRSLamp() { public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) { if (!worldIn.isRemote) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LimeRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LimeLamp.getDefaultState(), 2); } } } @@ -35,7 +35,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LimeRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LimeLamp.getDefaultState(), 2); } } } @@ -47,18 +47,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.LimeRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.LimeLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.LightBlueRSLamp); + return Item.getItemFromBlock(Lamps.LightBlueLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.LimeRSLamp); + return new ItemStack(Lamps.LimeLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitMagentaRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitMagentaRSLamp.java index 4ba80f7..6f7268c 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitMagentaRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitMagentaRSLamp.java @@ -24,7 +24,7 @@ public LitMagentaRSLamp() { public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) { if (!worldIn.isRemote) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.MagentaRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.MagentaLamp.getDefaultState(), 2); } } } @@ -35,7 +35,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.MagentaRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.MagentaLamp.getDefaultState(), 2); } } } @@ -47,18 +47,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.MagentaRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.MagentaLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.MagentaRSLamp); + return Item.getItemFromBlock(Lamps.MagentaLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.MagentaRSLamp); + return new ItemStack(Lamps.MagentaLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitOrangeRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitOrangeRSLamp.java index 3061e56..1f801ec 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitOrangeRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitOrangeRSLamp.java @@ -24,7 +24,7 @@ public LitOrangeRSLamp() { public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) { if (!worldIn.isRemote) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.OrangeRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.OrangeLamp.getDefaultState(), 2); } } } @@ -36,7 +36,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.OrangeRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.OrangeLamp.getDefaultState(), 2); } } } @@ -48,18 +48,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.OrangeRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.OrangeLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.OrangeRSLamp); + return Item.getItemFromBlock(Lamps.OrangeLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.OrangeRSLamp); + return new ItemStack(Lamps.OrangeLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitPinkRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitPinkRSLamp.java index 74f56a6..db9230d 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitPinkRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitPinkRSLamp.java @@ -24,7 +24,7 @@ public LitPinkRSLamp() { public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) { if (!worldIn.isRemote) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.PinkRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.PinkLamp.getDefaultState(), 2); } } } @@ -35,7 +35,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.PinkRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.PinkLamp.getDefaultState(), 2); } } } @@ -47,18 +47,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.PinkRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.PinkLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.PinkRSLamp); + return Item.getItemFromBlock(Lamps.PinkLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.PinkRSLamp); + return new ItemStack(Lamps.PinkLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitPurpleRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitPurpleRSLamp.java index 9237043..980e03d 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitPurpleRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitPurpleRSLamp.java @@ -24,7 +24,7 @@ public LitPurpleRSLamp() { public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) { if (!worldIn.isRemote) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.PurpleRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.PurpleLamp.getDefaultState(), 2); } } } @@ -35,7 +35,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.PurpleRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.PurpleLamp.getDefaultState(), 2); } } } @@ -47,18 +47,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.PurpleRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.PurpleLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.PurpleRSLamp); + return Item.getItemFromBlock(Lamps.PurpleLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.PurpleRSLamp); + return new ItemStack(Lamps.PurpleLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitRedRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitRedRSLamp.java index b16673d..673c223 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitRedRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitRedRSLamp.java @@ -24,7 +24,7 @@ public LitRedRSLamp() { public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) { if (!worldIn.isRemote) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.RedRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.RedLamp.getDefaultState(), 2); } } } @@ -35,7 +35,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.RedRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.RedLamp.getDefaultState(), 2); } } } @@ -46,18 +46,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.RedRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.RedLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.RedRSLamp); + return Item.getItemFromBlock(Lamps.RedLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.RedRSLamp); + return new ItemStack(Lamps.RedLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitSilverRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitSilverRSLamp.java index 756e225..aa100f7 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitSilverRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitSilverRSLamp.java @@ -24,7 +24,7 @@ public LitSilverRSLamp() { public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) { if (!worldIn.isRemote) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.SilverRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.SilverLamp.getDefaultState(), 2); } } } @@ -35,7 +35,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.SilverRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.SilverLamp.getDefaultState(), 2); } } } @@ -46,18 +46,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.SilverRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.SilverLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.SilverRSLamp); + return Item.getItemFromBlock(Lamps.SilverLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.SilverRSLamp); + return new ItemStack(Lamps.SilverLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitWhiteRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitWhiteRSLamp.java index de72549..c4b704c 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitWhiteRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitWhiteRSLamp.java @@ -24,7 +24,7 @@ public LitWhiteRSLamp() { public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) { if (!worldIn.isRemote) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.WhiteRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.WhiteLamp.getDefaultState(), 2); } } } @@ -35,7 +35,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.WhiteRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.WhiteLamp.getDefaultState(), 2); } } } @@ -47,18 +47,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.WhiteRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.WhiteLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.WhiteRSLamp); + return Item.getItemFromBlock(Lamps.WhiteLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.WhiteRSLamp); + return new ItemStack(Lamps.WhiteLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitYellowRSLamp.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitYellowRSLamp.java index 39bdc94..39fb8ef 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitYellowRSLamp.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/redstone/lamps/lit/LitYellowRSLamp.java @@ -24,7 +24,7 @@ public LitYellowRSLamp() { public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) { if (!worldIn.isRemote) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.YellowRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.YellowLamp.getDefaultState(), 2); } } } @@ -35,7 +35,7 @@ public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.YellowRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.YellowLamp.getDefaultState(), 2); } } } @@ -46,18 +46,18 @@ public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Bloc { if (!worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, Lamps.YellowRSLamp.getDefaultState(), 2); + worldIn.setBlockState(pos, Lamps.YellowLamp.getDefaultState(), 2); } } } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Lamps.YellowRSLamp); + return Item.getItemFromBlock(Lamps.YellowLamp); } @Override public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) { - return new ItemStack(Lamps.YellowRSLamp); + return new ItemStack(Lamps.YellowLamp); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/BlockRuby.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/BlockRuby.java deleted file mode 100644 index 98e7e75..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/BlockRuby.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.resourceBlocks; - -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; - -public class BlockRuby extends Block { - public BlockRuby() { - super(Material.IRON); - setUnlocalizedName("BlockRuby"); - setRegistryName("ruby_block"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setSoundType(SoundType.METAL); - setHarvestLevel("pickaxe", 2); - } - @Override - public boolean isBeaconBase(IBlockAccess worldObj, BlockPos pos, BlockPos beacon) - { - return true; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/BlockRustyIron.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/BlockRustyIron.java deleted file mode 100644 index eeefe7d..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/BlockRustyIron.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.resourceBlocks; - -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; - -public class BlockRustyIron extends Block { - public BlockRustyIron() { - super(Material.IRON); - setUnlocalizedName("BlockRustyIron"); - setRegistryName("rusty_iron_block"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setSoundType(SoundType.METAL); - setHarvestLevel("pickaxe", 1); - } - @Override - public boolean isBeaconBase(IBlockAccess worldObj, BlockPos pos, BlockPos beacon) - { - return true; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/SaltBlock.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/SaltBlock.java deleted file mode 100644 index fb3a6b8..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/SaltBlock.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.resourceBlocks; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -public class SaltBlock extends Block{ - public SaltBlock() { - super(Material.IRON); - setUnlocalizedName("SaltBlock"); - setRegistryName("salt_block"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setHarvestLevel("pickaxe", 0); - } - @Override - public boolean isBeaconBase(IBlockAccess worldObj, BlockPos pos, BlockPos beacon) - { - return true; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/SilverBlock.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/SilverBlock.java deleted file mode 100644 index d7249bc..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/SilverBlock.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.resourceBlocks; - -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; - -public class SilverBlock extends Block { - public SilverBlock() { - super(Material.IRON); - setUnlocalizedName("SilverBlock"); - setRegistryName("silver_block"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setSoundType(SoundType.METAL); - setHarvestLevel("pickaxe", 2); - } - @Override - public boolean isBeaconBase(IBlockAccess worldObj, BlockPos pos, BlockPos beacon) - { - return true; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/blazeBlock.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/blazeBlock.java deleted file mode 100644 index c9a3e2f..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/blazeBlock.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.resourceBlocks; -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -public class blazeBlock extends Block{ - public blazeBlock() { - super(Material.IRON); - setUnlocalizedName("blazeBlock"); - setRegistryName("blaze_block"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setSoundType(SoundType.METAL); - setHarvestLevel("pickaxe", 0); - setLightLevel(1F); - } - @Override - public boolean isBeaconBase(IBlockAccess worldObj, BlockPos pos, BlockPos beacon) - { - return true; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/endPearlBlock.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/endPearlBlock.java deleted file mode 100644 index 33b09c4..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/endPearlBlock.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.resourceBlocks; -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -public class endPearlBlock extends Block{ - public endPearlBlock() { - super(Material.IRON); - setUnlocalizedName("endPearlBlock"); - setRegistryName("ender_pearl_block"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setSoundType(SoundType.METAL); - setHarvestLevel("pickaxe", 0); - } - @Override - public boolean isBeaconBase(IBlockAccess worldObj, BlockPos pos, BlockPos beacon) - { - return true; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/voidPearlBlock.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/voidPearlBlock.java deleted file mode 100644 index b3ee078..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/voidPearlBlock.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.resourceBlocks; -import net.minecraft.block.Block; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -public class voidPearlBlock extends Block{ - public voidPearlBlock() { - super(Material.IRON); - setUnlocalizedName("voidPearlBlock"); - setRegistryName("void_pearl_block"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setSoundType(SoundType.METAL); - setHarvestLevel("pickaxe",0); - } - @Override - public boolean isBeaconBase(IBlockAccess worldObj, BlockPos pos, BlockPos beacon) - { - return true; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/CactusSlab.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/CactusSlab.java deleted file mode 100644 index ce3b32f..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/CactusSlab.java +++ /dev/null @@ -1,102 +0,0 @@ -//this class is based off of CJMinecraft's example mod -//https://github.com/CJMinecraft01/BitOfEverything -package com.NetherNoah.ParadiseMod.blocks.slabs; - -import java.util.Random; - -import com.NetherNoah.ParadiseMod.DummyProperty; -import com.NetherNoah.ParadiseMod.Reference; -import com.NetherNoah.ParadiseMod.init.ModBlocks.Slabs; - -import net.minecraft.block.BlockSlab; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.IProperty; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class CactusSlab extends BlockSlab { - - public static final DummyProperty DUMMY_VARIANT = DummyProperty.create("dummy"); - - public CactusSlab(String name) { - super(Material.WOOD); - setUnlocalizedName(name); - setRegistryName(name); - setHardness(3); - setResistance(15); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setSoundType(SoundType.WOOD); - - IBlockState state = this.blockState.getBaseState(); - if (!this.isDouble()) - state = state.withProperty(HALF, EnumBlockHalf.BOTTOM); - setDefaultState(state); - this.useNeighborBrightness = true; // Makes it so that you don't get dark patches on the block - } - - @Override - public String getUnlocalizedName(int meta) { - return this.getUnlocalizedName(); - } - - @Override - public IProperty getVariantProperty() { - return DUMMY_VARIANT; - } - - @Override - public Comparable getTypeForItem(ItemStack stack) { - return false; - } - - @Override - public int damageDropped(IBlockState state) { - return 0; - } - - @Override - public IBlockState getStateFromMeta(int meta) { - if (!this.isDouble()) - return this.getDefaultState().withProperty(HALF, - EnumBlockHalf.values()[meta % EnumBlockHalf.values().length]); - return this.getDefaultState(); - } - - @Override - public int getMetaFromState(IBlockState state) { - if (this.isDouble()) - return 0; - return ((EnumBlockHalf) state.getValue(HALF)).ordinal() + 1; - } - - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Slabs.end_slab); - } - - @Override - protected BlockStateContainer createBlockState() { - return new BlockStateContainer(this, new IProperty[] { HALF, DUMMY_VARIANT }); - } - - @Override - public boolean isDouble() { - return false; - } - - //@Override - //public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) - //{ - // return false; - //} -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/EndSlab.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/EndSlab.java deleted file mode 100644 index b8c0b19..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/EndSlab.java +++ /dev/null @@ -1,99 +0,0 @@ -//this class is based off of CJMinecraft's example mod -//https://github.com/CJMinecraft01/BitOfEverything -package com.NetherNoah.ParadiseMod.blocks.slabs; - -import java.util.Random; - -import com.NetherNoah.ParadiseMod.DummyProperty; -import com.NetherNoah.ParadiseMod.Reference; -import com.NetherNoah.ParadiseMod.init.ModBlocks.Slabs; - -import net.minecraft.block.BlockSlab; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.IProperty; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class EndSlab extends BlockSlab { - - public static final DummyProperty DUMMY_VARIANT = DummyProperty.create("dummy"); - - public EndSlab(String name) { - super(Material.ROCK); - setUnlocalizedName(name); - setRegistryName(name); - setHardness(3); - setResistance(15); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - IBlockState state = this.blockState.getBaseState(); - if (!this.isDouble()) - state = state.withProperty(HALF, EnumBlockHalf.BOTTOM); - setDefaultState(state); - this.useNeighborBrightness = true; // Makes it so that you don't get dark patches on the block - } - - @Override - public String getUnlocalizedName(int meta) { - return this.getUnlocalizedName(); - } - - @Override - public IProperty getVariantProperty() { - return DUMMY_VARIANT; - } - - @Override - public Comparable getTypeForItem(ItemStack stack) { - return false; - } - - @Override - public int damageDropped(IBlockState state) { - return 0; - } - - @Override - public IBlockState getStateFromMeta(int meta) { - if (!this.isDouble()) - return this.getDefaultState().withProperty(HALF, - EnumBlockHalf.values()[meta % EnumBlockHalf.values().length]); - return this.getDefaultState(); - } - - @Override - public int getMetaFromState(IBlockState state) { - if (this.isDouble()) - return 0; - return ((EnumBlockHalf) state.getValue(HALF)).ordinal() + 1; - } - - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Slabs.end_slab); - } - - @Override - protected BlockStateContainer createBlockState() { - return new BlockStateContainer(this, new IProperty[] { HALF, DUMMY_VARIANT }); - } - - @Override - public boolean isDouble() { - return false; - } - - //@Override - //public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) - //{ - // return false; - //} -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/GlowingObsidianSlab.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/GlowingObsidianSlab.java deleted file mode 100644 index 5fe1944..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/GlowingObsidianSlab.java +++ /dev/null @@ -1,101 +0,0 @@ -//this class is based off of CJMinecraft's example mod -//https://github.com/CJMinecraft01/BitOfEverything -package com.NetherNoah.ParadiseMod.blocks.slabs; - -import java.util.Random; - -import com.NetherNoah.ParadiseMod.DummyProperty; -import com.NetherNoah.ParadiseMod.Reference; -import com.NetherNoah.ParadiseMod.init.ModBlocks.Slabs; - -import net.minecraft.block.BlockSlab; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.IProperty; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class GlowingObsidianSlab extends BlockSlab { - - public static final DummyProperty DUMMY_VARIANT = DummyProperty.create("dummy"); - - public GlowingObsidianSlab(String name) { - super(Material.BARRIER); - setUnlocalizedName(name); - setRegistryName(name); - setHardness(51); - setResistance(2000); - setLightLevel(.46666667F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - - IBlockState state = this.blockState.getBaseState(); - if (!this.isDouble()) - state = state.withProperty(HALF, EnumBlockHalf.BOTTOM); - setDefaultState(state); - this.useNeighborBrightness = true; - } - - @Override - public String getUnlocalizedName(int meta) { - return this.getUnlocalizedName(); - } - - @Override - public IProperty getVariantProperty() { - return DUMMY_VARIANT; - } - - @Override - public Comparable getTypeForItem(ItemStack stack) { - return false; - } - - @Override - public int damageDropped(IBlockState state) { - return 0; - } - - @Override - public IBlockState getStateFromMeta(int meta) { - if (!this.isDouble()) - return this.getDefaultState().withProperty(HALF, - EnumBlockHalf.values()[meta % EnumBlockHalf.values().length]); - return this.getDefaultState(); - } - - @Override - public int getMetaFromState(IBlockState state) { - if (this.isDouble()) - return 0; - return ((EnumBlockHalf) state.getValue(HALF)).ordinal() + 1; - } - - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Slabs.end_slab); - } - - @Override - protected BlockStateContainer createBlockState() { - return new BlockStateContainer(this, new IProperty[] { HALF, DUMMY_VARIANT }); - } - - @Override - public boolean isDouble() { - return false; - } - - //@Override - //public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) - //{ - // return false; - //} -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/ObsidianSlab.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/ObsidianSlab.java deleted file mode 100644 index b231b61..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/ObsidianSlab.java +++ /dev/null @@ -1,95 +0,0 @@ -//this class is based off of CJMinecraft's example mod -//https://github.com/CJMinecraft01/BitOfEverything -package com.NetherNoah.ParadiseMod.blocks.slabs; - -import java.util.Random; - -import com.NetherNoah.ParadiseMod.DummyProperty; -import com.NetherNoah.ParadiseMod.Reference; -import com.NetherNoah.ParadiseMod.init.ModBlocks.Slabs; - -import net.minecraft.block.BlockSlab; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.IProperty; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class ObsidianSlab extends BlockSlab { - - public static final DummyProperty DUMMY_VARIANT = DummyProperty.create("dummy"); - - public ObsidianSlab(String name) { - super(Material.BARRIER); - setUnlocalizedName(name); - setRegistryName(name); - setHardness(51); - setResistance(2000); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - - IBlockState state = this.blockState.getBaseState(); - if (!this.isDouble()) - state = state.withProperty(HALF, EnumBlockHalf.BOTTOM); - setDefaultState(state); - this.useNeighborBrightness = true; - } - - @Override - public String getUnlocalizedName(int meta) { - return this.getUnlocalizedName(); - } - - @Override - public IProperty getVariantProperty() { - return DUMMY_VARIANT; - } - - @Override - public Comparable getTypeForItem(ItemStack stack) { - return false; - } - - @Override - public int damageDropped(IBlockState state) { - return 0; - } - - @Override - public IBlockState getStateFromMeta(int meta) { - if (!this.isDouble()) - return this.getDefaultState().withProperty(HALF, - EnumBlockHalf.values()[meta % EnumBlockHalf.values().length]); - return this.getDefaultState(); - } - - @Override - public int getMetaFromState(IBlockState state) { - if (this.isDouble()) - return 0; - return ((EnumBlockHalf) state.getValue(HALF)).ordinal() + 1; - } - - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Slabs.end_slab); - } - - @Override - protected BlockStateContainer createBlockState() { - return new BlockStateContainer(this, new IProperty[] { HALF, DUMMY_VARIANT }); - } - - @Override - public boolean isDouble() { - return false; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/VoidBrickSlab.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/VoidBrickSlab.java deleted file mode 100644 index 3ac0598..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/VoidBrickSlab.java +++ /dev/null @@ -1,93 +0,0 @@ -//this class is based off of CJMinecraft's example mod -//https://github.com/CJMinecraft01/BitOfEverything -package com.NetherNoah.ParadiseMod.blocks.slabs; - -import java.util.Random; - -import com.NetherNoah.ParadiseMod.DummyProperty; -import com.NetherNoah.ParadiseMod.Reference; -import com.NetherNoah.ParadiseMod.init.ModBlocks.Slabs; - -import net.minecraft.block.BlockSlab; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.IProperty; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class VoidBrickSlab extends BlockSlab { - - public static final DummyProperty DUMMY_VARIANT = DummyProperty.create("dummy"); - - public VoidBrickSlab(String name) { - super(Material.ROCK); - setUnlocalizedName(name); - setRegistryName(name); - setHardness(3); - setResistance(15); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - IBlockState state = this.blockState.getBaseState(); - if (!this.isDouble()) - state = state.withProperty(HALF, EnumBlockHalf.BOTTOM); - setDefaultState(state); - this.useNeighborBrightness = true; - } - - @Override - public String getUnlocalizedName(int meta) { - return this.getUnlocalizedName(); - } - - @Override - public IProperty getVariantProperty() { - return DUMMY_VARIANT; - } - - @Override - public Comparable getTypeForItem(ItemStack stack) { - return false; - } - - @Override - public int damageDropped(IBlockState state) { - return 0; - } - - @Override - public IBlockState getStateFromMeta(int meta) { - if (!this.isDouble()) - return this.getDefaultState().withProperty(HALF, - EnumBlockHalf.values()[meta % EnumBlockHalf.values().length]); - return this.getDefaultState(); - } - - @Override - public int getMetaFromState(IBlockState state) { - if (this.isDouble()) - return 0; - return ((EnumBlockHalf) state.getValue(HALF)).ordinal() + 1; - } - - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Slabs.end_slab); - } - - @Override - protected BlockStateContainer createBlockState() { - return new BlockStateContainer(this, new IProperty[] { HALF, DUMMY_VARIANT }); - } - - @Override - public boolean isDouble() { - return false; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/VoidSlab.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/VoidSlab.java deleted file mode 100644 index 61f5605..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/VoidSlab.java +++ /dev/null @@ -1,99 +0,0 @@ -//this class is based off of CJMinecraft's example mod -//https://github.com/CJMinecraft01/BitOfEverything -package com.NetherNoah.ParadiseMod.blocks.slabs; - -import java.util.Random; - -import com.NetherNoah.ParadiseMod.DummyProperty; -import com.NetherNoah.ParadiseMod.Reference; -import com.NetherNoah.ParadiseMod.init.ModBlocks.Slabs; - -import net.minecraft.block.BlockSlab; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.IProperty; -import net.minecraft.block.state.BlockStateContainer; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumHand; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class VoidSlab extends BlockSlab { - - public static final DummyProperty DUMMY_VARIANT = DummyProperty.create("dummy"); - - public VoidSlab(String name) { - super(Material.ROCK); - setUnlocalizedName(name); - setRegistryName(name); - setHardness(3); - setResistance(15); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - IBlockState state = this.blockState.getBaseState(); - if (!this.isDouble()) - state = state.withProperty(HALF, EnumBlockHalf.BOTTOM); - setDefaultState(state); - this.useNeighborBrightness = true; - } - - @Override - public String getUnlocalizedName(int meta) { - return this.getUnlocalizedName(); - } - - @Override - public IProperty getVariantProperty() { - return DUMMY_VARIANT; - } - - @Override - public Comparable getTypeForItem(ItemStack stack) { - return false; - } - - @Override - public int damageDropped(IBlockState state) { - return 0; - } - - @Override - public IBlockState getStateFromMeta(int meta) { - if (!this.isDouble()) - return this.getDefaultState().withProperty(HALF, - EnumBlockHalf.values()[meta % EnumBlockHalf.values().length]); - return this.getDefaultState(); - } - - @Override - public int getMetaFromState(IBlockState state) { - if (this.isDouble()) - return 0; - return ((EnumBlockHalf) state.getValue(HALF)).ordinal() + 1; - } - - @Override - public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(Slabs.end_slab); - } - - @Override - protected BlockStateContainer createBlockState() { - return new BlockStateContainer(this, new IProperty[] { HALF, DUMMY_VARIANT }); - } - - @Override - public boolean isDouble() { - return false; - } - - //@Override - //public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) - //{ - // return false; - //} -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/BedrockSlabDouble.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/BedrockSlabDouble.java deleted file mode 100644 index 23b2cd4..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/BedrockSlabDouble.java +++ /dev/null @@ -1,31 +0,0 @@ -//this class is based off of CJMinecraft's example mod -//https://github.com/CJMinecraft01/BitOfEverything -package com.NetherNoah.ParadiseMod.blocks.slabs.double_slabs; - -import com.NetherNoah.ParadiseMod.blocks.slabs.BedrockSlab; -import com.NetherNoah.ParadiseMod.init.ModBlocks.Slabs; - -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.World; - -public class BedrockSlabDouble extends BedrockSlab { - - public BedrockSlabDouble() { - super("double_bedrock_slab"); - } - - @Override - public boolean isDouble() { - return true; - } - @Override - public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) - { - return new ItemStack(Slabs.bedrock_slab); - } - -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/CactusSlabDouble.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/CactusSlabDouble.java deleted file mode 100644 index d24bd3c..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/CactusSlabDouble.java +++ /dev/null @@ -1,34 +0,0 @@ -//this class is based off of CJMinecraft's example mod -//https://github.com/CJMinecraft01/BitOfEverything -package com.NetherNoah.ParadiseMod.blocks.slabs.double_slabs; - -import com.NetherNoah.ParadiseMod.blocks.slabs.CactusSlab; -import com.NetherNoah.ParadiseMod.init.ModBlocks.Slabs; - -import net.minecraft.block.SoundType; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.World; - -public class CactusSlabDouble extends CactusSlab { - - public CactusSlabDouble() { - super("double_cactus_slab"); - setSoundType(SoundType.WOOD); - } - - @Override - public boolean isDouble() { - return true; - } - @Override - public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) - { - return new ItemStack(Slabs.cactus_slab); - } - -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/EndSlabDouble.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/EndSlabDouble.java deleted file mode 100644 index 6b5cc48..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/EndSlabDouble.java +++ /dev/null @@ -1,31 +0,0 @@ -//this class is based off of CJMinecraft's example mod -//https://github.com/CJMinecraft01/BitOfEverything -package com.NetherNoah.ParadiseMod.blocks.slabs.double_slabs; - -import com.NetherNoah.ParadiseMod.blocks.slabs.EndSlab; -import com.NetherNoah.ParadiseMod.init.ModBlocks.Slabs; - -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.World; - -public class EndSlabDouble extends EndSlab { - - public EndSlabDouble() { - super("double_end_slab"); - } - - @Override - public boolean isDouble() { - return true; - } - @Override - public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) - { - return new ItemStack(Slabs.end_slab); - } - -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/GlowingObsidianSlabDouble.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/GlowingObsidianSlabDouble.java deleted file mode 100644 index 7739d40..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/GlowingObsidianSlabDouble.java +++ /dev/null @@ -1,32 +0,0 @@ -//this class is based off of CJMinecraft's example mod -//https://github.com/CJMinecraft01/BitOfEverything -package com.NetherNoah.ParadiseMod.blocks.slabs.double_slabs; - -import com.NetherNoah.ParadiseMod.blocks.slabs.GlowingObsidianSlab; -import com.NetherNoah.ParadiseMod.init.ModBlocks.Slabs; - -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.World; - -public class GlowingObsidianSlabDouble extends GlowingObsidianSlab { - - public GlowingObsidianSlabDouble() { - super("glowing_obsidian_slab_double"); - setLightLevel(.46666667F); - } - - @Override - public boolean isDouble() { - return true; - } - @Override - public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) - { - return new ItemStack(Slabs.glowing_obsidian_slab); - } - -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/ObsidianSlabDouble.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/ObsidianSlabDouble.java deleted file mode 100644 index e40dcb2..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/ObsidianSlabDouble.java +++ /dev/null @@ -1,31 +0,0 @@ -//this class is based off of CJMinecraft's example mod -//https://github.com/CJMinecraft01/BitOfEverything -package com.NetherNoah.ParadiseMod.blocks.slabs.double_slabs; - -import com.NetherNoah.ParadiseMod.blocks.slabs.BedrockSlab; -import com.NetherNoah.ParadiseMod.init.ModBlocks.Slabs; - -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.World; - -public class ObsidianSlabDouble extends BedrockSlab { - - public ObsidianSlabDouble() { - super("double_obsidian_slab"); - } - - @Override - public boolean isDouble() { - return true; - } - @Override - public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) - { - return new ItemStack(Slabs.obsidian_slab); - } - -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/VoidBrickSlabDouble.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/VoidBrickSlabDouble.java deleted file mode 100644 index 510ba05..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/VoidBrickSlabDouble.java +++ /dev/null @@ -1,31 +0,0 @@ -//this class is based off of CJMinecraft's example mod -//https://github.com/CJMinecraft01/BitOfEverything -package com.NetherNoah.ParadiseMod.blocks.slabs.double_slabs; - -import com.NetherNoah.ParadiseMod.blocks.slabs.VoidSlab; -import com.NetherNoah.ParadiseMod.init.ModBlocks.Slabs; - -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.World; - -public class VoidBrickSlabDouble extends VoidSlab { - - public VoidBrickSlabDouble() { - super("double_void_bricks_slab"); - } - - @Override - public boolean isDouble() { - return true; - } - @Override - public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) - { - return new ItemStack(Slabs.void_slab); - } - -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/VoidSlabDouble.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/VoidSlabDouble.java deleted file mode 100644 index 480f50a..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/slabs/double_slabs/VoidSlabDouble.java +++ /dev/null @@ -1,31 +0,0 @@ -//this class is based off of CJMinecraft's example mod -//https://github.com/CJMinecraft01/BitOfEverything -package com.NetherNoah.ParadiseMod.blocks.slabs.double_slabs; - -import com.NetherNoah.ParadiseMod.blocks.slabs.VoidSlab; -import com.NetherNoah.ParadiseMod.init.ModBlocks.Slabs; - -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.World; - -public class VoidSlabDouble extends VoidSlab { - - public VoidSlabDouble() { - super("double_void_slab"); - } - - @Override - public boolean isDouble() { - return true; - } - @Override - public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) - { - return new ItemStack(Slabs.void_slab); - } - -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/BedrockStairs.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/BedrockStairs.java deleted file mode 100644 index 54b5697..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/BedrockStairs.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.stairs; - -import net.minecraft.block.BlockStairs; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.init.Blocks; - -public class BedrockStairs extends BlockStairs { - public BedrockStairs() { - super(Blocks.BARRIER.getDefaultState()); - setUnlocalizedName("BedrockStairs"); - setRegistryName("bedrock_stairs"); - setHardness(-1F); - setResistance(6000000F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - useNeighborBrightness = true; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/CactusStairs.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/CactusStairs.java deleted file mode 100644 index b5fb065..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/CactusStairs.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.stairs; - -import net.minecraft.block.BlockStairs; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.init.Blocks; - -public class CactusStairs extends BlockStairs { - public CactusStairs() { - super(Blocks.PLANKS.getDefaultState()); - setUnlocalizedName("CactusStairs"); - setRegistryName("cactus_stairs"); - setHardness(2F); - setResistance(5F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - useNeighborBrightness=true; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/EndStairs.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/EndStairs.java deleted file mode 100644 index 3ddc9f4..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/EndStairs.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.stairs; - -import net.minecraft.block.BlockStairs; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.init.Blocks; - -public class EndStairs extends BlockStairs { - public EndStairs() { - super(Blocks.END_STONE.getDefaultState()); - setUnlocalizedName("EndStairs"); - setRegistryName("end_stairs"); - setHardness(5F); - setResistance(15F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setHarvestLevel("pickaxe", 0); - useNeighborBrightness=true; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/GlowingObsidianStairs.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/GlowingObsidianStairs.java deleted file mode 100644 index 419487f..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/GlowingObsidianStairs.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.stairs; - -import net.minecraft.block.BlockStairs; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.init.Blocks; - -public class GlowingObsidianStairs extends BlockStairs { - public GlowingObsidianStairs() { - super(Blocks.BARRIER.getDefaultState()); - setUnlocalizedName("GlowingObsidianStairs"); - setRegistryName("glowing_obsidian_stairs"); - setHardness(51F); - setResistance(2000F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setHarvestLevel("pickaxe", 3); - useNeighborBrightness=true; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/ObsidianStairs.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/ObsidianStairs.java deleted file mode 100644 index 0a3070b..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/ObsidianStairs.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.stairs; - -import net.minecraft.block.BlockStairs; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.init.Blocks; - -public class ObsidianStairs extends BlockStairs { - public ObsidianStairs() { - super(Blocks.BARRIER.getDefaultState()); - setUnlocalizedName("ObsidianStairs"); - setRegistryName("obsidian_stairs"); - setHardness(51F); - setResistance(2000F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - setHarvestLevel("pickaxe", 3); - useNeighborBrightness=true; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/VoidBrickStairs.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/VoidBrickStairs.java deleted file mode 100644 index ff3a1d6..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/VoidBrickStairs.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.stairs; - -import net.minecraft.block.BlockStairs; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.init.Blocks; - -public class VoidBrickStairs extends BlockStairs { - public VoidBrickStairs() { - super(Blocks.STONE.getDefaultState()); - setUnlocalizedName("VoidBrickStairs"); - setRegistryName("void_brick_stairs"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - useNeighborBrightness=true; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/VoidStairs.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/VoidStairs.java deleted file mode 100644 index 54b1c44..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/stairs/VoidStairs.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.stairs; - -import net.minecraft.block.BlockStairs; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.init.Blocks; - -public class VoidStairs extends BlockStairs { - public VoidStairs() { - super(Blocks.STONE.getDefaultState()); - setUnlocalizedName("VoidStairs"); - setRegistryName("void_stairs"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.BUILDING_BLOCKS); - useNeighborBrightness=true; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/sugarBlock.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/sugarBlock.java similarity index 92% rename from src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/sugarBlock.java rename to src/main/java/com/NetherNoah/ParadiseMod/blocks/sugarBlock.java index 3f5425f..b7bd5f3 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/resourceBlocks/sugarBlock.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/sugarBlock.java @@ -1,4 +1,4 @@ -package com.NetherNoah.ParadiseMod.blocks.resourceBlocks; +package com.NetherNoah.ParadiseMod.blocks; import net.minecraft.block.BlockFalling; import net.minecraft.block.SoundType; diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/AndesiteTrapdoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/AndesiteTrapdoor.java deleted file mode 100644 index 1d4d6fa..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/AndesiteTrapdoor.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.trapdoors; - -import net.minecraft.block.BlockTrapDoor; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class AndesiteTrapdoor extends BlockTrapDoor { - public AndesiteTrapdoor() { - super(Material.IRON); - setUnlocalizedName("AndesiteTrapdoor"); - setRegistryName("andesite_trapdoor"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.REDSTONE); - setHarvestLevel("pickaxe", 0); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/BedrockTrapdoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/BedrockTrapdoor.java deleted file mode 100644 index e5ea15a..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/BedrockTrapdoor.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.trapdoors; - -import net.minecraft.block.BlockTrapDoor; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class BedrockTrapdoor extends BlockTrapDoor { - public BedrockTrapdoor() { - super(Material.IRON); - setUnlocalizedName("BedrockTrapdoor"); - setRegistryName("bedrock_trapdoor"); - setHardness(-1F); - setResistance(6000000F); - setCreativeTab(CreativeTabs.REDSTONE); - setBlockUnbreakable(); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/CactusTrapdoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/CactusTrapdoor.java deleted file mode 100644 index f362db8..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/CactusTrapdoor.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.trapdoors; - -import net.minecraft.block.BlockTrapDoor; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class CactusTrapdoor extends BlockTrapDoor { - public CactusTrapdoor() { - super(Material.WOOD); - setUnlocalizedName("CactusTrapdoor"); - setRegistryName("cactus_trapdoor"); - setHardness(2F); - setResistance(5F); - setCreativeTab(CreativeTabs.REDSTONE); - setSoundType(SoundType.WOOD); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/CobblestoneTrapdoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/CobblestoneTrapdoor.java deleted file mode 100644 index 2754599..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/CobblestoneTrapdoor.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.trapdoors; - -import net.minecraft.block.BlockTrapDoor; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class CobblestoneTrapdoor extends BlockTrapDoor { - public CobblestoneTrapdoor() { - super(Material.IRON); - setUnlocalizedName("CobblestoneTrapdoor"); - setRegistryName("cobblestone_trapdoor"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.REDSTONE); - setHarvestLevel("pickaxe", 0); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/DiamondTrapdoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/DiamondTrapdoor.java deleted file mode 100644 index d200393..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/DiamondTrapdoor.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.trapdoors; - -import net.minecraft.block.BlockTrapDoor; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class DiamondTrapdoor extends BlockTrapDoor { - public DiamondTrapdoor() { - super(Material.IRON); - setUnlocalizedName("DiamondTrapdoor"); - setRegistryName("diamond_trapdoor"); - setHardness(5F); - setResistance(10F); - setSoundType(SoundType.METAL); - setCreativeTab(CreativeTabs.REDSTONE); - setHarvestLevel("pickaxe", 2); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/DioriteTrapdoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/DioriteTrapdoor.java deleted file mode 100644 index c899a4a..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/DioriteTrapdoor.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.trapdoors; - -import net.minecraft.block.BlockTrapDoor; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class DioriteTrapdoor extends BlockTrapDoor { - public DioriteTrapdoor() { - super(Material.IRON); - setUnlocalizedName("DioriteTrapdoor"); - setRegistryName("diorite_trapdoor"); - setHardness(5F); - setResistance(10F); - setSoundType(SoundType.STONE); - setCreativeTab(CreativeTabs.REDSTONE); - setHarvestLevel("pickaxe", 0); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/EmeraldTrapdoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/EmeraldTrapdoor.java deleted file mode 100644 index 8e0d13b..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/EmeraldTrapdoor.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.trapdoors; - -import javax.annotation.Nullable; - -import net.minecraft.block.BlockTrapDoor; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class EmeraldTrapdoor extends BlockTrapDoor { - public EmeraldTrapdoor() { - super(Material.ROCK); - setUnlocalizedName("EmeraldTrapdoor"); - setRegistryName("emerald_trapdoor"); - setHardness(5F); - setResistance(10F); - setSoundType(SoundType.METAL); - setCreativeTab(CreativeTabs.REDSTONE); - setHarvestLevel("pickaxe", 2); - } - @Override - protected void playSound(@Nullable EntityPlayer player, World worldIn, BlockPos pos, boolean p_185731_4_) - { - if (p_185731_4_) - { - int i = this.blockMaterial == Material.ROCK ? 1037 : 1007; - worldIn.playEvent(player, i, pos, 0); - } - else - { - int j = this.blockMaterial == Material.ROCK ? 1036 : 1013; - worldIn.playEvent(player, j, pos, 0); - } - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/EndTrapdoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/EndTrapdoor.java deleted file mode 100644 index 2c38fe5..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/EndTrapdoor.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.trapdoors; - -import net.minecraft.block.BlockTrapDoor; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class EndTrapdoor extends BlockTrapDoor { - public EndTrapdoor() { - super(Material.IRON); - setUnlocalizedName("EndTrapdoor"); - setRegistryName("end_trapdoor"); - setHardness(5F); - setResistance(15F); - setCreativeTab(CreativeTabs.REDSTONE); - setHarvestLevel("pickaxe", 0); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/GlassTrapdoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/GlassTrapdoor.java deleted file mode 100644 index 2042cc8..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/GlassTrapdoor.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.trapdoors; - -import net.minecraft.block.BlockTrapDoor; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class GlassTrapdoor extends BlockTrapDoor { - public GlassTrapdoor() { - super(Material.GLASS); - setUnlocalizedName("GlassTrapdoor"); - setRegistryName("glass_trapdoor"); - setHardness(.5F); - setResistance(1F); - setSoundType(SoundType.GLASS); - setCreativeTab(CreativeTabs.REDSTONE); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/GlowingObsidianTrapdoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/GlowingObsidianTrapdoor.java deleted file mode 100644 index 87d89f5..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/GlowingObsidianTrapdoor.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.trapdoors; - -import net.minecraft.block.BlockTrapDoor; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class GlowingObsidianTrapdoor extends BlockTrapDoor { - public GlowingObsidianTrapdoor() { - super(Material.IRON); - setUnlocalizedName("GlowingObsidianTrapdoor"); - setRegistryName("glowing_obsidian_trapdoor"); - setHardness(51F); - setResistance(2000F); - setCreativeTab(CreativeTabs.REDSTONE); - setHarvestLevel("pickaxe", 3); - setLightLevel(.46666667F); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/GoldTrapdoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/GoldTrapdoor.java deleted file mode 100644 index 0a638b1..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/GoldTrapdoor.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.trapdoors; - -import net.minecraft.block.BlockTrapDoor; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class GoldTrapdoor extends BlockTrapDoor { - public GoldTrapdoor() { - super(Material.IRON); - setUnlocalizedName("GoldTrapdoor"); - setRegistryName("gold_trapdoor"); - setHardness(5F); - setResistance(10F); - setSoundType(SoundType.METAL); - setCreativeTab(CreativeTabs.REDSTONE); - setHarvestLevel("pickaxe", 2); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/GraniteTrapdoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/GraniteTrapdoor.java deleted file mode 100644 index b616a7c..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/GraniteTrapdoor.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.trapdoors; - -import net.minecraft.block.BlockTrapDoor; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class GraniteTrapdoor extends BlockTrapDoor { - public GraniteTrapdoor() { - super(Material.IRON); - setUnlocalizedName("GraniteTrapdoor"); - setRegistryName("granite_trapdoor"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.REDSTONE); - setHarvestLevel("pickaxe", 0); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/MossStoneTrapdoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/MossStoneTrapdoor.java deleted file mode 100644 index e56af07..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/MossStoneTrapdoor.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.trapdoors; - -import net.minecraft.block.BlockTrapDoor; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class MossStoneTrapdoor extends BlockTrapDoor { - public MossStoneTrapdoor() { - super(Material.IRON); - setUnlocalizedName("MossStoneTrapdoor"); - setRegistryName("moss_stone_trapdoor"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.REDSTONE); - setHarvestLevel("pickaxe", 0); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/ObsidianTrapdoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/ObsidianTrapdoor.java deleted file mode 100644 index e27c994..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/ObsidianTrapdoor.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.trapdoors; - -import net.minecraft.block.BlockTrapDoor; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class ObsidianTrapdoor extends BlockTrapDoor { - public ObsidianTrapdoor() { - super(Material.IRON); - setUnlocalizedName("ObsidianTrapdoor"); - setRegistryName("obsidian_trapdoor"); - setHardness(51F); - setResistance(2000F); - setCreativeTab(CreativeTabs.REDSTONE); - setHarvestLevel("pickaxe", 3); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/RedstoneTrapdoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/RedstoneTrapdoor.java deleted file mode 100644 index ab2ceba..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/RedstoneTrapdoor.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.trapdoors; - -import javax.annotation.Nullable; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.RSTrapdoor; - -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -public class RedstoneTrapdoor extends RSTrapdoor { - public RedstoneTrapdoor() { - super(Material.ROCK); - setUnlocalizedName("RedstoneTrapdoor"); - setRegistryName("redstone_trapdoor"); - setHardness(5F); - setResistance(10F); - setSoundType(SoundType.METAL); - setCreativeTab(CreativeTabs.REDSTONE); - setHarvestLevel("pickaxe", 2); - } - @Override - protected void playSound(@Nullable EntityPlayer player, World worldIn, BlockPos pos, boolean p_185731_4_) - { - if (p_185731_4_) - { - int i = this.blockMaterial == Material.ROCK ? 1037 : 1007; - worldIn.playEvent(player, i, pos, 0); - } - else - { - int j = this.blockMaterial == Material.ROCK ? 1036 : 1013; - worldIn.playEvent(player, j, pos, 0); - } - } - // this door is a rs power block! - @Override - public int getWeakPower(IBlockState state, IBlockAccess worldIn, BlockPos pos, EnumFacing side) { - return 15; - } - @Override - public boolean canConnectRedstone(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side) { - return true; - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/RubyTrapdoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/RubyTrapdoor.java deleted file mode 100644 index 0c81219..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/RubyTrapdoor.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.trapdoors; - -import javax.annotation.Nullable; - -import net.minecraft.block.BlockTrapDoor; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class RubyTrapdoor extends BlockTrapDoor { - public RubyTrapdoor() { - super(Material.ROCK); - setUnlocalizedName("RubyTrapdoor"); - setRegistryName("ruby_trapdoor"); - setHardness(5F); - setResistance(10F); - setSoundType(SoundType.METAL); - setCreativeTab(CreativeTabs.REDSTONE); - setHarvestLevel("pickaxe", 2); - } - @Override - protected void playSound(@Nullable EntityPlayer player, World worldIn, BlockPos pos, boolean p_185731_4_) - { - if (p_185731_4_) - { - int i = this.blockMaterial == Material.ROCK ? 1037 : 1007; - worldIn.playEvent(player, i, pos, 0); - } - else - { - int j = this.blockMaterial == Material.ROCK ? 1036 : 1013; - worldIn.playEvent(player, j, pos, 0); - } - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/RustyTrapdoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/RustyTrapdoor.java deleted file mode 100644 index 029458e..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/RustyTrapdoor.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.trapdoors; - -import net.minecraft.block.BlockTrapDoor; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class RustyTrapdoor extends BlockTrapDoor { - public RustyTrapdoor() { - super(Material.IRON); - setUnlocalizedName("RustyTrapdoor"); - setRegistryName("rusty_trapdoor"); - setHardness(5F); - setResistance(10F); - setSoundType(SoundType.METAL); - setCreativeTab(CreativeTabs.REDSTONE); - setHarvestLevel("pickaxe",1); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/SilverTrapdoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/SilverTrapdoor.java deleted file mode 100644 index 4421aab..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/SilverTrapdoor.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.trapdoors; - -import net.minecraft.block.BlockTrapDoor; -import net.minecraft.block.SoundType; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class SilverTrapdoor extends BlockTrapDoor { - public SilverTrapdoor() { - super(Material.IRON); - setUnlocalizedName("SilverTrapdoor"); - setRegistryName("silver_trapdoor"); - setHardness(5F); - setResistance(10F); - setSoundType(SoundType.METAL); - setCreativeTab(CreativeTabs.REDSTONE); - setHarvestLevel("pickaxe", 2); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/StoneTrapdoor.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/StoneTrapdoor.java deleted file mode 100644 index c1174e2..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/trapdoors/StoneTrapdoor.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.trapdoors; - -import net.minecraft.block.BlockTrapDoor; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class StoneTrapdoor extends BlockTrapDoor { - public StoneTrapdoor() { - super(Material.IRON); - setUnlocalizedName("StoneTrapdoor"); - setRegistryName("stone_trapdoor"); - setHardness(5F); - setResistance(10F); - setCreativeTab(CreativeTabs.REDSTONE); - setHarvestLevel("pickaxe", 0); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/workbenches/CustomWorkbenchAcacia.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/workbenches/CustomWorkbenchAcacia.java deleted file mode 100644 index c397b84..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/workbenches/CustomWorkbenchAcacia.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.workbenches; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.CustomWorkBench; - -import net.minecraft.block.SoundType; -import net.minecraft.creativetab.CreativeTabs; - -public class CustomWorkbenchAcacia extends CustomWorkBench { - public CustomWorkbenchAcacia() { - setUnlocalizedName("CustomWorkbenchAcacia"); - setRegistryName("acacia_crafting_table"); - setHardness(2.5F); - setResistance(5F); - setCreativeTab(CreativeTabs.DECORATIONS); - setSoundType(SoundType.WOOD); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/workbenches/CustomWorkbenchBirch.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/workbenches/CustomWorkbenchBirch.java deleted file mode 100644 index 5810c9e..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/workbenches/CustomWorkbenchBirch.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.workbenches; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.CustomWorkBench; - -import net.minecraft.block.SoundType; -import net.minecraft.creativetab.CreativeTabs; - -public class CustomWorkbenchBirch extends CustomWorkBench { - public CustomWorkbenchBirch() { - setUnlocalizedName("CustomWorkbenchBirch"); - setRegistryName("birch_crafting_table"); - setHardness(2.5F); - setResistance(5F); - setCreativeTab(CreativeTabs.DECORATIONS); - setSoundType(SoundType.WOOD); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/workbenches/CustomWorkbenchCactus.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/workbenches/CustomWorkbenchCactus.java deleted file mode 100644 index b9a0dec..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/workbenches/CustomWorkbenchCactus.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.workbenches; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.CustomWorkBench; - -import net.minecraft.block.SoundType; -import net.minecraft.creativetab.CreativeTabs; - -public class CustomWorkbenchCactus extends CustomWorkBench { - public CustomWorkbenchCactus() { - setUnlocalizedName("CustomWorkbenchCactus"); - setRegistryName("cactus_crafting_table"); - setHardness(2.5F); - setResistance(5F); - setCreativeTab(CreativeTabs.DECORATIONS); - setSoundType(SoundType.WOOD); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/workbenches/CustomWorkbenchDarkOak.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/workbenches/CustomWorkbenchDarkOak.java deleted file mode 100644 index 960192c..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/workbenches/CustomWorkbenchDarkOak.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.workbenches; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.CustomWorkBench; - -import net.minecraft.block.SoundType; -import net.minecraft.creativetab.CreativeTabs; - -public class CustomWorkbenchDarkOak extends CustomWorkBench { - public CustomWorkbenchDarkOak() { - setUnlocalizedName("CustomWorkbenchDarkOak"); - setRegistryName("dark_oak_crafting_table"); - setHardness(2.5F); - setResistance(5F); - setCreativeTab(CreativeTabs.DECORATIONS); - setSoundType(SoundType.WOOD); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/workbenches/CustomWorkbenchJungle.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/workbenches/CustomWorkbenchJungle.java deleted file mode 100644 index 8a5447f..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/workbenches/CustomWorkbenchJungle.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.workbenches; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.CustomWorkBench; - -import net.minecraft.block.SoundType; -import net.minecraft.creativetab.CreativeTabs; - -public class CustomWorkbenchJungle extends CustomWorkBench { - public CustomWorkbenchJungle() { - setUnlocalizedName("CustomWorkbenchJungle"); - setRegistryName("jungle_crafting_table"); - setHardness(2.5F); - setResistance(5F); - setCreativeTab(CreativeTabs.DECORATIONS); - setSoundType(SoundType.WOOD); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/workbenches/CustomWorkbenchSpruce.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/workbenches/CustomWorkbenchSpruce.java deleted file mode 100644 index de98534..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/workbenches/CustomWorkbenchSpruce.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.NetherNoah.ParadiseMod.blocks.workbenches; - -import com.NetherNoah.ParadiseMod.CustomBlockCode.CustomWorkBench; - -import net.minecraft.block.SoundType; -import net.minecraft.creativetab.CreativeTabs; - -public class CustomWorkbenchSpruce extends CustomWorkBench { - public CustomWorkbenchSpruce() { - setUnlocalizedName("CustomWorkbenchSpruce"); - setRegistryName("spruce_crafting_table"); - setHardness(2.5F); - setResistance(5F); - setCreativeTab(CreativeTabs.DECORATIONS); - setSoundType(SoundType.WOOD); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/blocks/xmas/ChristmasSapling.java b/src/main/java/com/NetherNoah/ParadiseMod/blocks/xmas/ChristmasSapling.java index c750e25..ccea9f3 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/blocks/xmas/ChristmasSapling.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/blocks/xmas/ChristmasSapling.java @@ -3,40 +3,158 @@ import java.util.Random; import com.NetherNoah.ParadiseMod.ParadiseMod; -import com.NetherNoah.ParadiseMod.CustomBlockCode.xmasTree; import com.NetherNoah.ParadiseMod.config.ModConfig; +import com.NetherNoah.ParadiseMod.world.worldgen.misc.ChristmasTree; +import net.minecraft.block.BlockBush; +import net.minecraft.block.IGrowable; import net.minecraft.block.SoundType; +import net.minecraft.block.properties.IProperty; +import net.minecraft.block.properties.PropertyEnum; +import net.minecraft.block.properties.PropertyInteger; +import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.NonNullList; +import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.text.translation.I18n; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenBigTree; +import net.minecraft.world.gen.feature.WorldGenTrees; +import net.minecraft.world.gen.feature.WorldGenerator; +import net.minecraftforge.event.terraingen.TerrainGen; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; -public class ChristmasSapling extends xmasTree { - public ChristmasSapling() { +public class ChristmasSapling extends BlockBush implements IGrowable +{ + public static final PropertyInteger STAGE = PropertyInteger.create("stage", 0, 1); + protected static final AxisAlignedBB SAPLING_AABB = new AxisAlignedBB(0.09999999403953552D, 0.0D, 0.09999999403953552D, 0.8999999761581421D, 0.800000011920929D, 0.8999999761581421D); + public ChristmasSapling() + { + setDefaultState(blockState.getBaseState().withProperty(STAGE, Integer.valueOf(0))); + setCreativeTab(CreativeTabs.DECORATIONS); setUnlocalizedName("ChristmasSapling"); setRegistryName("christmas_sapling"); setLightLevel(1F); setSoundType(SoundType.PLANT); if (!ModConfig.HideXmasFeatures) setCreativeTab(ParadiseMod.xmas); - } - @Override - public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) { - if (!worldIn.isRemote) { - super.updateTick(worldIn, pos, state, rand); - - if (worldIn.getLightFromNeighbors(pos.up()) >= 9 && rand.nextInt(7) == 0) { - this.grow(worldIn, pos, state, rand); - } - } - } - @Override - public void grow(World worldIn, BlockPos pos, IBlockState state, Random rand) { - if (state.getValue(STAGE).intValue() == 0) { - worldIn.setBlockState(pos, state.cycleProperty(STAGE), 4); - } - else { - this.generateTree(worldIn, pos, state, rand); - } - } + } + @Override + public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) + { + return SAPLING_AABB; + } + @Override + public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) + { + if (!worldIn.isRemote) + { + super.updateTick(worldIn, pos, state, rand); + if (worldIn.getLightFromNeighbors(pos.up()) >= 9 && rand.nextInt(7) == 0) + grow(worldIn, pos, state, rand); + } + } + public void grow(World worldIn, BlockPos pos, IBlockState state, Random rand) + { + if (state.getValue(STAGE).intValue() == 0) + worldIn.setBlockState(pos, state.cycleProperty(STAGE), 4); + else + generateTree(worldIn, pos, state, rand); + } + public void generateTree(World worldIn, BlockPos pos, IBlockState state, Random rand) + { + if (!TerrainGen.saplingGrowTree(worldIn, rand, pos)) return; + WorldGenerator worldgenerator = rand.nextInt(10) == 0 ? new WorldGenBigTree(true) : new WorldGenTrees(true); + int i = 0; + int j = 0; + boolean flag = false; + tree: + for (i = 0; i >= -1; --i){ + for (j = 0; j >= -1; --j){ + if (isTwoByTwoOfType(worldIn, pos, i, j)){ + worldgenerator = new ChristmasTree(true); + flag = true; + break tree; + } + } + } + if (!flag){ + i = 0; + j = 0; + worldgenerator = new ChristmasTree(true); + } + IBlockState iblockstate2 = Blocks.AIR.getDefaultState(); + if (flag) + { + worldIn.setBlockState(pos.add(i, 0, j), iblockstate2, 4); + worldIn.setBlockState(pos.add(i + 1, 0, j), iblockstate2, 4); + worldIn.setBlockState(pos.add(i, 0, j + 1), iblockstate2, 4); + worldIn.setBlockState(pos.add(i + 1, 0, j + 1), iblockstate2, 4); + } + else + worldIn.setBlockState(pos, iblockstate2, 4); + if (!worldgenerator.generate(worldIn, rand, pos.add(i, 0, j))) + { + if (flag) + { + worldIn.setBlockState(pos.add(i, 0, j), state, 4); + worldIn.setBlockState(pos.add(i + 1, 0, j), state, 4); + worldIn.setBlockState(pos.add(i, 0, j + 1), state, 4); + worldIn.setBlockState(pos.add(i + 1, 0, j + 1), state, 4); + } + else + worldIn.setBlockState(pos, state, 4); + } + } + private boolean isTwoByTwoOfType(World worldIn, BlockPos pos, int x, int z) + { + return isTypeAt(worldIn, pos.add(x, 0, z)) + && isTypeAt(worldIn, pos.add(x + 1, 0, z)) + && isTypeAt(worldIn, pos.add(x, 0, z + 1)) + && isTypeAt(worldIn, pos.add(x + 1, 0, z + 1)); + } + public boolean isTypeAt(World worldIn, BlockPos pos) + { + IBlockState iblockstate = worldIn.getBlockState(pos); + return iblockstate.getBlock() == this; + } + @Override + public boolean canGrow(World worldIn, BlockPos pos, IBlockState state, boolean isClient) + { + return true; + } + @Override + public boolean canUseBonemeal(World worldIn, Random rand, BlockPos pos, IBlockState state) + { + return worldIn.rand.nextFloat() < 0.45D; + } + @Override + public void grow(World worldIn, Random rand, BlockPos pos, IBlockState state) + { + grow(worldIn, pos, state, rand); + } + @Override + public IBlockState getStateFromMeta(int meta) + { + return getDefaultState().withProperty(STAGE, Integer.valueOf((meta & 8) >> 3)); + } + @Override + public int getMetaFromState(IBlockState state) + { + int i = 0; + i = i | state.getValue(STAGE).intValue() << 3; + return i; + } + @Override + protected BlockStateContainer createBlockState() + { + return new BlockStateContainer(this, new IProperty[] {STAGE}); + } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/config/ModConfig.java b/src/main/java/com/NetherNoah/ParadiseMod/config/ModConfig.java index 2612e2d..485d779 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/config/ModConfig.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/config/ModConfig.java @@ -22,6 +22,9 @@ public static class WorldGen{ @Config.LangKey("config.structures") public Structures structures=new Structures(); public class Structures{ + @Config.Comment("Generate the black cross") + @Config.LangKey("config.blackcross") + public Boolean blackCross=false; @Config.Comment("Generate Brick Pyramids") @Config.LangKey("config.brickpyramids") public Boolean BrickPyramids=true; diff --git a/src/main/java/com/NetherNoah/ParadiseMod/handlers/OreDictHandler.java b/src/main/java/com/NetherNoah/ParadiseMod/handlers/OreDictHandler.java index 1ae1f57..ba90c91 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/handlers/OreDictHandler.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/handlers/OreDictHandler.java @@ -29,9 +29,9 @@ public static void registerOreDict() { OreDictionary.registerOre("ingotRustyIron", MiscItems.RustyIngot); OreDictionary.registerOre("blockRustyIron", Ores.RustyIronBlock); OreDictionary.registerOre("nuggetRustyIron", MiscItems.RustyNugget); - OreDictionary.registerOre("dyeBlack", MiscItems.DyeBlack); - OreDictionary.registerOre("dyeBrown", MiscItems.DyeBrown); - OreDictionary.registerOre("dyeBlue", MiscItems.DyeBlue); + OreDictionary.registerOre("dyeBlack", MiscItems.BlackDye); + OreDictionary.registerOre("dyeBrown", MiscItems.BrownDye); + OreDictionary.registerOre("dyeBlue", MiscItems.BlueDye); OreDictionary.registerOre("cobblestone", Misc.VoidStone); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/init/LiquidRedstone.java b/src/main/java/com/NetherNoah/ParadiseMod/init/LiquidRedstone.java index 5a954a9..510c1e3 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/init/LiquidRedstone.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/init/LiquidRedstone.java @@ -27,14 +27,14 @@ import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fml.common.registry.ForgeRegistries; public class LiquidRedstone { - private static ModelResourceLocation lr_location = new ModelResourceLocation(Reference.MOD_ID + ":" + BlockLiquidRedstone.name, "fluid"); + //private static ModelResourceLocation lr_location = new ModelResourceLocation(Reference.MOD_ID + ":" + BlockLiquidRedstone.name, "fluid"); public static void register() { FluidRegistry.registerFluid(FluidLiquidRedstone.instance); ForgeRegistries.BLOCKS.register(BlockLiquidRedstone.instance); ModelLoader.setCustomStateMapper(BlockLiquidRedstone.instance, new StateMapperBase() { @Override protected ModelResourceLocation getModelResourceLocation(IBlockState state) { - return lr_location; + return new ModelResourceLocation(Reference.MOD_ID + ":" + BlockLiquidRedstone.name, "fluid"); } }); } diff --git a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Buttons.java b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Buttons.java index 3a26146..5961823 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Buttons.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Buttons.java @@ -1,121 +1,115 @@ package com.NetherNoah.ParadiseMod.init.ModBlocks; import com.NetherNoah.ParadiseMod.Utils; -import com.NetherNoah.ParadiseMod.CustomBlockCode.buttonTicks.DiamondButtonTicks; -import com.NetherNoah.ParadiseMod.CustomBlockCode.buttonTicks.EmeraldButtonTicks; -import com.NetherNoah.ParadiseMod.CustomBlockCode.buttonTicks.IronButtonTicks; -import com.NetherNoah.ParadiseMod.CustomBlockCode.buttonTicks.QuickButton; -import com.NetherNoah.ParadiseMod.blocks.buttons.BedrockButton; -import com.NetherNoah.ParadiseMod.blocks.buttons.CobblestoneButton; -import com.NetherNoah.ParadiseMod.blocks.buttons.DiamondButton; -import com.NetherNoah.ParadiseMod.blocks.buttons.DirtButton; -import com.NetherNoah.ParadiseMod.blocks.buttons.EmeraldButton; -import com.NetherNoah.ParadiseMod.blocks.buttons.EndButton; -import com.NetherNoah.ParadiseMod.blocks.buttons.GlowingObsidianButton; -import com.NetherNoah.ParadiseMod.blocks.buttons.GoldButton; -import com.NetherNoah.ParadiseMod.blocks.buttons.GrassButton; -import com.NetherNoah.ParadiseMod.blocks.buttons.IronButton; -import com.NetherNoah.ParadiseMod.blocks.buttons.MossyButton; -import com.NetherNoah.ParadiseMod.blocks.buttons.ObsidianButton; -import com.NetherNoah.ParadiseMod.blocks.buttons.RubyButton; -import com.NetherNoah.ParadiseMod.blocks.buttons.RustyButton; -import com.NetherNoah.ParadiseMod.blocks.buttons.SilverButton; -import com.NetherNoah.ParadiseMod.blocks.buttons.VoidButton; -import com.NetherNoah.ParadiseMod.blocks.buttons.stoneVariants.AndesiteButton; -import com.NetherNoah.ParadiseMod.blocks.buttons.stoneVariants.DioriteButton; -import com.NetherNoah.ParadiseMod.blocks.buttons.stoneVariants.GraniteButton; -import com.NetherNoah.ParadiseMod.blocks.buttons.wood.AcaciaButton; -import com.NetherNoah.ParadiseMod.blocks.buttons.wood.BirchButton; -import com.NetherNoah.ParadiseMod.blocks.buttons.wood.CactusButton; -import com.NetherNoah.ParadiseMod.blocks.buttons.wood.DarkOakButton; -import com.NetherNoah.ParadiseMod.blocks.buttons.wood.JungleButton; -import com.NetherNoah.ParadiseMod.blocks.buttons.wood.SpruceButton; -import net.minecraft.block.BlockButton; -import net.minecraft.block.BlockButtonStone; +import com.NetherNoah.ParadiseMod.blocks.base.CustomButton; -public class Buttons { - +public class Buttons { //buttons - public static BlockButtonStone VoidButton; - public static BlockButtonStone DirtButton; - public static BlockButtonStone GrassButton; - public static BlockButton GlowingObsidianButton; - public static BlockButton EndButton; - public static BlockButton CactusButton; - public static BlockButton BedrockButton; - public static BlockButton ObsidianButton; - public static BlockButton MossyButton; - public static BlockButton CobblestoneButton; - public static BlockButton AcaciaButton; - public static BlockButton BirchButton; - public static BlockButton DarkOakButton; - public static BlockButton JungleButton; - public static BlockButton SpruceButton; - public static BlockButton AndesiteButton; - public static BlockButton DioriteButton; - public static BlockButton GraniteButton; - public static DiamondButtonTicks DiamondButton; - public static EmeraldButtonTicks EmeraldButton; - public static QuickButton RubyButton; - public static QuickButton SilverButton; - public static QuickButton GoldButton; - public static IronButtonTicks IronButton; - public static IronButtonTicks RustyButton; + //dirt and grass + public static CustomButton DirtButton = new CustomButton(20,4); + public static CustomButton GrassButton = new CustomButton(20,3); + + //special buttons + public static CustomButton DiamondButton = new CustomButton(14,2); + public static CustomButton EmeraldButton = new CustomButton(10,2); + public static CustomButton GlassButton = new CustomButton(20,5); + public static CustomButton GoldButton = new CustomButton(2,2); + public static CustomButton IronButton = new CustomButton(6,2); + public static CustomButton RubyButton = new CustomButton(4,2); + public static CustomButton RustyButton = new CustomButton(20,2); + public static CustomButton SilverButton = new CustomButton(2,2); + + //stone variants + public static CustomButton AndesiteButton = new CustomButton(20,0); + public static CustomButton CobblestoneButton = new CustomButton(20,0); + public static CustomButton DioriteButton = new CustomButton(20,0); + public static CustomButton EndButton = new CustomButton(20,0); + public static CustomButton GraniteButton = new CustomButton(20,0); + public static CustomButton MossyButton = new CustomButton(20,0); + public static CustomButton RedSandstoneButton = new CustomButton(20,0); + public static CustomButton SandstoneButton = new CustomButton(20,0); + public static CustomButton VoidButton = new CustomButton(20,0); + + //unbreakable buttons + public static CustomButton GlowingObsidianButton = new CustomButton(20,2); + public static CustomButton BedrockButton = new CustomButton(20,2); + public static CustomButton ObsidianButton = new CustomButton(20,2); + + //wooden buttons + public static CustomButton AcaciaButton = new CustomButton(30,1); + public static CustomButton BirchButton = new CustomButton(30,1); + public static CustomButton DarkOakButton = new CustomButton(30,1); + public static CustomButton JungleButton = new CustomButton(30,1); + public static CustomButton SpruceButton = new CustomButton(30,1); + public static CustomButton CactusButton = new CustomButton(30,1); public static void initAndRegister() { - //buttons - Utils.regBlock(VoidButton=new VoidButton()); - Utils.regBlock(DirtButton=new DirtButton()); - Utils.regBlock(GrassButton=new GrassButton()); - Utils.regBlock(RustyButton=new RustyButton()); - Utils.regBlock(EndButton=new EndButton()); - Utils.regBlock(CactusButton=new CactusButton()); - Utils.regBlock(GlowingObsidianButton=new GlowingObsidianButton()); - Utils.regBlock(DiamondButton = new DiamondButton()); - Utils.regBlock(EmeraldButton = new EmeraldButton()); - Utils.regBlock(GoldButton = new GoldButton()); - Utils.regBlock(IronButton = new IronButton()); - Utils.regBlock(SilverButton = new SilverButton()); - Utils.regBlock(RubyButton = new RubyButton()); - Utils.regBlock(ObsidianButton = new ObsidianButton()); - Utils.regBlock(BedrockButton = new BedrockButton()); - Utils.regBlock(MossyButton = new MossyButton()); - Utils.regBlock(CobblestoneButton = new CobblestoneButton()); - Utils.regBlock(AndesiteButton = new AndesiteButton()); - Utils.regBlock(DioriteButton = new DioriteButton()); - Utils.regBlock(GraniteButton = new GraniteButton()); - Utils.regBlock(AcaciaButton = new AcaciaButton()); - Utils.regBlock(BirchButton = new BirchButton()); - Utils.regBlock(DarkOakButton = new DarkOakButton()); - Utils.regBlock(JungleButton = new JungleButton()); - Utils.regBlock(SpruceButton = new SpruceButton()); - + //dirt and grass + Utils.regBlock(DirtButton.setUnlocalizedName("DirtButton").setRegistryName("dirt_button")); + Utils.regBlock(GrassButton.setUnlocalizedName("GrassButton").setRegistryName("grass_button")); + + //special buttons + Utils.regBlock(DiamondButton.setUnlocalizedName("DiamondButton").setRegistryName("diamond_button").setHardness(0.5F)); + Utils.regBlock(EmeraldButton.setUnlocalizedName("EmeraldButton").setRegistryName("emerald_button").setHardness(0.5F)); + Utils.regBlock(GlassButton.setUnlocalizedName("GlassButton").setRegistryName("glass_button").setHardness(0.5F)); + Utils.regBlock(GoldButton.setUnlocalizedName("GoldButton").setRegistryName("gold_button").setHardness(0.5F)); + Utils.regBlock(IronButton.setUnlocalizedName("IronButton").setRegistryName("iron_button").setHardness(0.5F)); + Utils.regBlock(RubyButton.setUnlocalizedName("RubyButton").setRegistryName("ruby_button").setHardness(0.5F)); + Utils.regBlock(RustyButton.setUnlocalizedName("RustyButton").setRegistryName("rusty_button").setHardness(0.5F)); + Utils.regBlock(SilverButton.setUnlocalizedName("SilverButton").setRegistryName("silver_button").setHardness(0.5F)); + + //stone variant buttons + Utils.regBlock(AndesiteButton.setUnlocalizedName("AndesiteButton").setRegistryName("andesite_button").setHardness(0.5F)); + Utils.regBlock(CobblestoneButton.setUnlocalizedName("CobblestoneButton").setRegistryName("cobblestone_button").setHardness(0.5F)); + Utils.regBlock(DioriteButton.setUnlocalizedName("DioriteButton").setRegistryName("diorite_button").setHardness(0.5F)); + Utils.regBlock(EndButton.setUnlocalizedName("EndButton").setRegistryName("end_button").setHardness(0.5F)); + Utils.regBlock(GraniteButton.setUnlocalizedName("GraniteButton").setRegistryName("granite_button").setHardness(0.5F)); + Utils.regBlock(MossyButton.setUnlocalizedName("MossyButton").setRegistryName("mossy_cobblestone_button").setHardness(0.5F)); + Utils.regBlock(RedSandstoneButton.setUnlocalizedName("RedSandstoneButton").setRegistryName("red_sandstone_button").setHardness(0.5F)); + Utils.regBlock(SandstoneButton.setUnlocalizedName("SandstoneButton").setRegistryName("sandstone_button").setHardness(0.5F)); + Utils.regBlock(VoidButton.setUnlocalizedName("VoidButton").setRegistryName("void_button").setHardness(0.5F)); + + //unbreakable buttons + Utils.regBlock(BedrockButton.setUnlocalizedName("BedrockButton").setRegistryName("bedrock_button").setHardness(-1F).setResistance(18000000F).setBlockUnbreakable()); + Utils.regBlock(GlowingObsidianButton.setUnlocalizedName("GlowingObsidianButton").setRegistryName("glowing_obsidian_button").setHardness(51F).setResistance(2000F).setLightLevel(.46666667F)); + Utils.regBlock(ObsidianButton.setUnlocalizedName("ObsidianButton").setRegistryName("obsidian_button").setHardness(51F).setResistance(6000F)); + + //wooden buttons + Utils.regBlock(AcaciaButton.setUnlocalizedName("AcaciaButton").setRegistryName("acacia_button").setHardness(0.5F)); + Utils.regBlock(BirchButton.setUnlocalizedName("BirchButton").setRegistryName("birch_button").setHardness(0.5F)); + Utils.regBlock(CactusButton.setUnlocalizedName("CactusButton").setRegistryName("cactus_button").setHardness(0.5F)); + Utils.regBlock(DarkOakButton.setUnlocalizedName("DarkOakButton").setRegistryName("dark_oak_button").setHardness(0.5F)); + Utils.regBlock(JungleButton.setUnlocalizedName("JungleButton").setRegistryName("jungle_button").setHardness(0.5F)); + Utils.regBlock(SpruceButton.setUnlocalizedName("SpruceButton").setRegistryName("spruce_button").setHardness(0.5F)); } public static void regRenders() { - Utils.regRender(VoidButton); - Utils.regRender(DirtButton); - Utils.regRender(GrassButton); - Utils.regRender(RustyButton); + Utils.regRender(AcaciaButton); + Utils.regRender(AndesiteButton); + Utils.regRender(BedrockButton); + Utils.regRender(BirchButton); Utils.regRender(CactusButton); - Utils.regRender(GlowingObsidianButton); - Utils.regRender(EndButton); - Utils.regRender(SilverButton); + Utils.regRender(CobblestoneButton); + Utils.regRender(DarkOakButton); Utils.regRender(DiamondButton); + Utils.regRender(DioriteButton); + Utils.regRender(DirtButton); Utils.regRender(EmeraldButton); + Utils.regRender(EndButton); + Utils.regRender(GlassButton); Utils.regRender(GoldButton); - Utils.regRender(IronButton); - Utils.regRender(RubyButton); - Utils.regRender(BedrockButton); - Utils.regRender(ObsidianButton); - Utils.regRender(CobblestoneButton); - Utils.regRender(MossyButton); - Utils.regRender(AndesiteButton); - Utils.regRender(DioriteButton); + Utils.regRender(GlowingObsidianButton); Utils.regRender(GraniteButton); - Utils.regRender(AcaciaButton); - Utils.regRender(BirchButton); - Utils.regRender(DarkOakButton); + Utils.regRender(GrassButton); + Utils.regRender(IronButton); Utils.regRender(JungleButton); + Utils.regRender(MossyButton); + Utils.regRender(ObsidianButton); + Utils.regRender(RedSandstoneButton); + Utils.regRender(RubyButton); + Utils.regRender(RustyButton); + Utils.regRender(SandstoneButton); + Utils.regRender(SilverButton); Utils.regRender(SpruceButton); + Utils.regRender(VoidButton); } -} +} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Chests.java b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Chests.java index 32be0c2..0cffcf5 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Chests.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Chests.java @@ -15,19 +15,16 @@ public class Chests { public static Block CompressedCactusChestTrapped; public static void initAndRegister() { - //chests - Utils.regBlock(CompressedCactusChest=new CompressedCactusChest()); - Utils.regBlock(CompressedCactusChestTrapped=new CompressedCactusChestTrapped()); Utils.regBlock(CactusChest = new CactusChest()); Utils.regBlock(CactusChestTrapped = new CactusChestTrapped()); - + Utils.regBlock(CompressedCactusChest=new CompressedCactusChest()); + Utils.regBlock(CompressedCactusChestTrapped=new CompressedCactusChestTrapped()); } public static void regRenders() { - Utils.regRender(CompressedCactusChest); - Utils.regRender(CompressedCactusChestTrapped); Utils.regRender(CactusChest); Utils.regRender(CactusChestTrapped); - + Utils.regRender(CompressedCactusChest); + Utils.regRender(CompressedCactusChestTrapped); } } diff --git a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Crystals.java b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Crystals.java index e617784..d29dbbf 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Crystals.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Crystals.java @@ -1,29 +1,24 @@ package com.NetherNoah.ParadiseMod.init.ModBlocks; import com.NetherNoah.ParadiseMod.Utils; -import com.NetherNoah.ParadiseMod.blocks.crystals.diamondCrystal; -import com.NetherNoah.ParadiseMod.blocks.crystals.emeraldCrystal; -import com.NetherNoah.ParadiseMod.blocks.crystals.quartzCrystal; -import com.NetherNoah.ParadiseMod.blocks.crystals.redstoneCrystal; -import com.NetherNoah.ParadiseMod.blocks.crystals.rubyCrystal; -import net.minecraft.block.BlockBush; +import com.NetherNoah.ParadiseMod.blocks.base.Crystal; +import com.NetherNoah.ParadiseMod.init.ModItems.MiscItems; + +import net.minecraft.init.Items; public class Crystals { - //crystals - public static BlockBush diamondCrystal; - public static BlockBush emeraldCrystal; - public static BlockBush quartzCrystal; - public static BlockBush redstoneCrystal; - public static BlockBush rubyCrystal; + public static Crystal diamondCrystal = new Crystal(Items.DIAMOND); + public static Crystal emeraldCrystal = new Crystal(Items.EMERALD); + public static Crystal quartzCrystal = new Crystal(Items.QUARTZ); + public static Crystal redstoneCrystal = new Crystal(Items.REDSTONE); + public static Crystal rubyCrystal = new Crystal(MiscItems.Ruby); public static void initAndRegister() { - - //crystals - Utils.regBlock(diamondCrystal = new diamondCrystal()); - Utils.regBlock(emeraldCrystal = new emeraldCrystal()); - Utils.regBlock(quartzCrystal = new quartzCrystal()); - Utils.regBlock(redstoneCrystal = new redstoneCrystal()); - Utils.regBlock(rubyCrystal = new rubyCrystal()); + Utils.regBlock(diamondCrystal.setUnlocalizedName("diamondCrystal").setRegistryName("diamond_crystal")); + Utils.regBlock(emeraldCrystal.setUnlocalizedName("emeraldCrystal").setRegistryName("emerald_crystal")); + Utils.regBlock(quartzCrystal.setUnlocalizedName("quartzCrystal").setRegistryName("quartz_crystal")); + Utils.regBlock(redstoneCrystal.setUnlocalizedName("redstoneCrystal").setRegistryName("redstone_crystal")); + Utils.regBlock(rubyCrystal.setUnlocalizedName("rubyCrystal").setRegistryName("ruby_crystal")); } public static void regRenders() { diff --git a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Doors.java b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Doors.java index 3537fc6..6db44b7 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Doors.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Doors.java @@ -1,6 +1,6 @@ package com.NetherNoah.ParadiseMod.init.ModBlocks; -import com.NetherNoah.ParadiseMod.CustomBlockCode.RSDoor; +import com.NetherNoah.ParadiseMod.blocks.RedstoneDoor; import com.NetherNoah.ParadiseMod.blocks.doors.AndesiteDoor; import com.NetherNoah.ParadiseMod.blocks.doors.BedrockDoor; import com.NetherNoah.ParadiseMod.blocks.doors.CactusDoor; @@ -15,58 +15,59 @@ import com.NetherNoah.ParadiseMod.blocks.doors.GraniteDoor; import com.NetherNoah.ParadiseMod.blocks.doors.MossStoneDoor; import com.NetherNoah.ParadiseMod.blocks.doors.ObsidianDoor; -import com.NetherNoah.ParadiseMod.blocks.doors.RedstoneDoor; import com.NetherNoah.ParadiseMod.blocks.doors.RubyDoor; import com.NetherNoah.ParadiseMod.blocks.doors.RustyDoor; import com.NetherNoah.ParadiseMod.blocks.doors.SilverDoor; import com.NetherNoah.ParadiseMod.blocks.doors.StoneDoor; + +import net.minecraft.block.Block; import net.minecraft.block.BlockDoor; import net.minecraftforge.fml.common.registry.ForgeRegistries; public class Doors { //doors - public static BlockDoor BlockCactusDoor; - public static BlockDoor BlockEndDoor; - public static BlockDoor BlockSilverDoor; - public static BlockDoor BlockGlassDoor; - public static BlockDoor BlockGoldDoor; - public static BlockDoor BlockDiamondDoor; - public static BlockDoor BlockEmeraldDoor; - public static BlockDoor BlockAndesiteDoor; - public static BlockDoor BlockDioriteDoor; - public static BlockDoor BlockGraniteDoor; - public static BlockDoor BlockStoneDoor; - public static BlockDoor BlockCobblestoneDoor; - public static BlockDoor BlockMossStoneDoor; - public static BlockDoor BlockGlowingObsidianDoor; - public static BlockDoor BlockObsidianDoor; - public static BlockDoor BlockBedrockDoor; - public static BlockDoor BlockRubyDoor; - public static RSDoor BlockRedstoneDoor; - public static BlockDoor RustyDoor;; + public static BlockDoor CactusDoor; + public static BlockDoor EndDoor; + public static BlockDoor SilverDoor; + public static BlockDoor GlassDoor; + public static BlockDoor GoldDoor; + public static BlockDoor DiamondDoor; + public static BlockDoor EmeraldDoor; + public static BlockDoor AndesiteDoor; + public static BlockDoor DioriteDoor; + public static BlockDoor GraniteDoor; + public static BlockDoor StoneDoor; + public static BlockDoor CobblestoneDoor; + public static BlockDoor MossStoneDoor; + public static BlockDoor GlowingObsidianDoor; + public static BlockDoor ObsidianDoor; + public static BlockDoor BedrockDoor; + public static BlockDoor RubyDoor; + public static Block RedstoneDoor; + public static BlockDoor RustyDoor; public static void initAndRegister() { // door blocks // they don't need their own items ForgeRegistries.BLOCKS.register(RustyDoor=new RustyDoor()); - ForgeRegistries.BLOCKS.register(BlockCactusDoor=new CactusDoor()); - ForgeRegistries.BLOCKS.register(BlockGlowingObsidianDoor=new GlowingObsidianDoor()); - ForgeRegistries.BLOCKS.register(BlockEndDoor=new EndDoor()); - ForgeRegistries.BLOCKS.register(BlockSilverDoor=new SilverDoor()); - ForgeRegistries.BLOCKS.register(BlockGlassDoor = new GlassDoor()); - ForgeRegistries.BLOCKS.register(BlockGoldDoor = new GoldDoor()); - ForgeRegistries.BLOCKS.register(BlockDiamondDoor = new DiamondDoor()); - ForgeRegistries.BLOCKS.register(BlockEmeraldDoor = new EmeraldDoor()); - ForgeRegistries.BLOCKS.register(BlockAndesiteDoor = new AndesiteDoor()); - ForgeRegistries.BLOCKS.register(BlockDioriteDoor = new DioriteDoor()); - ForgeRegistries.BLOCKS.register(BlockGraniteDoor = new GraniteDoor()); - ForgeRegistries.BLOCKS.register(BlockStoneDoor = new StoneDoor()); - ForgeRegistries.BLOCKS.register(BlockCobblestoneDoor = new CobblestoneDoor()); - ForgeRegistries.BLOCKS.register(BlockMossStoneDoor = new MossStoneDoor()); - ForgeRegistries.BLOCKS.register(BlockObsidianDoor = new ObsidianDoor()); - ForgeRegistries.BLOCKS.register(BlockBedrockDoor = new BedrockDoor()); - ForgeRegistries.BLOCKS.register(BlockRubyDoor = new RubyDoor()); - ForgeRegistries.BLOCKS.register(BlockRedstoneDoor = new RedstoneDoor()); + ForgeRegistries.BLOCKS.register(CactusDoor=new CactusDoor()); + ForgeRegistries.BLOCKS.register(GlowingObsidianDoor=new GlowingObsidianDoor()); + ForgeRegistries.BLOCKS.register(EndDoor=new EndDoor()); + ForgeRegistries.BLOCKS.register(SilverDoor=new SilverDoor()); + ForgeRegistries.BLOCKS.register(GlassDoor = new GlassDoor()); + ForgeRegistries.BLOCKS.register(GoldDoor = new GoldDoor()); + ForgeRegistries.BLOCKS.register(DiamondDoor = new DiamondDoor()); + ForgeRegistries.BLOCKS.register(EmeraldDoor = new EmeraldDoor()); + ForgeRegistries.BLOCKS.register(AndesiteDoor = new AndesiteDoor()); + ForgeRegistries.BLOCKS.register(DioriteDoor = new DioriteDoor()); + ForgeRegistries.BLOCKS.register(GraniteDoor = new GraniteDoor()); + ForgeRegistries.BLOCKS.register(StoneDoor = new StoneDoor()); + ForgeRegistries.BLOCKS.register(CobblestoneDoor = new CobblestoneDoor()); + ForgeRegistries.BLOCKS.register(MossStoneDoor = new MossStoneDoor()); + ForgeRegistries.BLOCKS.register(ObsidianDoor = new ObsidianDoor()); + ForgeRegistries.BLOCKS.register(BedrockDoor = new BedrockDoor()); + ForgeRegistries.BLOCKS.register(RubyDoor = new RubyDoor()); + ForgeRegistries.BLOCKS.register(RedstoneDoor = new RedstoneDoor()); } } diff --git a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Fences.java b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Fences.java index b185bac..47e46c9 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Fences.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Fences.java @@ -1,58 +1,58 @@ package com.NetherNoah.ParadiseMod.init.ModBlocks; import com.NetherNoah.ParadiseMod.Utils; -import com.NetherNoah.ParadiseMod.blocks.fences.BrickFence; -import com.NetherNoah.ParadiseMod.blocks.fences.CactusFence; -import com.NetherNoah.ParadiseMod.blocks.fences.DiamondFence; -import com.NetherNoah.ParadiseMod.blocks.fences.EmeraldFence; -import com.NetherNoah.ParadiseMod.blocks.fences.GoldFence; -import com.NetherNoah.ParadiseMod.blocks.fences.IronFence; -import com.NetherNoah.ParadiseMod.blocks.fences.RedstoneFence; -import com.NetherNoah.ParadiseMod.blocks.fences.RubyFence; -import com.NetherNoah.ParadiseMod.blocks.fences.RustyFence; -import com.NetherNoah.ParadiseMod.blocks.fences.SilverFence; -import net.minecraft.block.BlockFence; +import com.NetherNoah.ParadiseMod.blocks.RedstoneFence; +import com.NetherNoah.ParadiseMod.blocks.base.CustomFence; + +import net.minecraft.block.material.MapColor; +import net.minecraft.block.material.Material; public class Fences { - //fences - public static BlockFence RustyFence; - public static BlockFence BlockCactusFence; - public static BlockFence BlockSilverFence; - public static BlockFence BlockBrickFence; - public static BlockFence BlockDiamondFence; - public static BlockFence BlockEmeraldFence; - public static BlockFence BlockGoldFence; - public static BlockFence BlockIronFence; - public static BlockFence BlockRubyFence; - public static BlockFence BlockRedstoneFence; + public static CustomFence BrickFence = new CustomFence(Material.ROCK, MapColor.ADOBE); + public static CustomFence CactusFence = new CustomFence(Material.WOOD, MapColor.GREEN); + public static CustomFence DiamondFence = new CustomFence(Material.IRON, MapColor.DIAMOND); + public static CustomFence EmeraldFence = new CustomFence(Material.IRON, MapColor.EMERALD); + public static CustomFence GoldFence = new CustomFence(Material.IRON, MapColor.GOLD); + public static CustomFence IronFence = new CustomFence(Material.IRON, MapColor.IRON); + public static RedstoneFence RedstoneFence = new RedstoneFence(); + public static CustomFence RubyFence = new CustomFence(Material.IRON, MapColor.MAGENTA); + public static CustomFence RustyFence = new CustomFence(Material.IRON, MapColor.IRON); + public static CustomFence SilverFence = new CustomFence(Material.IRON, MapColor.SILVER); public static void initAndRegister() { //fences - Utils.regBlock(RustyFence=new RustyFence()); - Utils.regBlock(BlockCactusFence=new CactusFence()); - Utils.regBlock(BlockSilverFence=new SilverFence()); - Utils.regBlock(BlockBrickFence = new BrickFence()); - Utils.regBlock(BlockDiamondFence = new DiamondFence()); - Utils.regBlock(BlockEmeraldFence = new EmeraldFence()); - Utils.regBlock(BlockGoldFence = new GoldFence()); - Utils.regBlock(BlockIronFence = new IronFence()); - Utils.regBlock(BlockRubyFence = new RubyFence()); - Utils.regBlock(BlockRedstoneFence = new RedstoneFence()); - + BrickFence.setHarvestLevel("pickaxe", 0); + DiamondFence.setHarvestLevel("pickaxe", 2); + EmeraldFence.setHarvestLevel("pickaxe", 2); + GoldFence.setHarvestLevel("pickaxe", 2); + IronFence.setHarvestLevel("pickaxe", 1); + RubyFence.setHarvestLevel("pickaxe", 2); + RustyFence.setHarvestLevel("pickaxe", 1); + SilverFence.setHarvestLevel("pickaxe", 2); + Utils.regBlock(BrickFence.setUnlocalizedName("BrickFence").setRegistryName("brick_fence").setHardness(5F).setResistance(10F)); + Utils.regBlock(CactusFence.setUnlocalizedName("CactusFence").setRegistryName("cactus_fence").setHardness(2F).setResistance(5F)); + Utils.regBlock(DiamondFence.setUnlocalizedName("DiamondFence").setRegistryName("diamond_fence").setHardness(5F).setResistance(10F)); + Utils.regBlock(EmeraldFence.setUnlocalizedName("EmeraldFence").setRegistryName("emerald_fence").setHardness(5F).setResistance(10F)); + Utils.regBlock(GoldFence.setUnlocalizedName("GoldFence").setRegistryName("gold_fence").setHardness(5F).setResistance(10F)); + Utils.regBlock(IronFence.setUnlocalizedName("IronFence").setRegistryName("iron_fence").setHardness(5F).setResistance(10F)); + Utils.regBlock(RedstoneFence); + Utils.regBlock(RubyFence.setUnlocalizedName("RubyFence").setRegistryName("ruby_fence").setHardness(5F).setResistance(10F)); + Utils.regBlock(RustyFence.setUnlocalizedName("RustyFence").setRegistryName("rusty_fence").setHardness(5F).setResistance(10F)); + Utils.regBlock(SilverFence.setUnlocalizedName("SilverFence").setRegistryName("silver_fence").setHardness(5F).setResistance(10F)); } + public static void regRenders() { + Utils.regRender(BrickFence); + Utils.regRender(CactusFence); + Utils.regRender(DiamondFence); + Utils.regRender(EmeraldFence); + Utils.regRender(GoldFence); + Utils.regRender(IronFence); + Utils.regRender(RedstoneFence); + Utils.regRender(RubyFence); Utils.regRender(RustyFence); - Utils.regRender(BlockCactusFence); - Utils.regRender(BlockSilverFence); - Utils.regRender(BlockBrickFence); - Utils.regRender(BlockDiamondFence); - Utils.regRender(BlockEmeraldFence); - Utils.regRender(BlockGoldFence); - Utils.regRender(BlockIronFence); - Utils.regRender(BlockRubyFence); - Utils.regRender(BlockRedstoneFence); - + Utils.regRender(SilverFence); } -} +} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Gates.java b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Gates.java index 503696c..4b20d3d 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Gates.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Gates.java @@ -1,60 +1,58 @@ package com.NetherNoah.ParadiseMod.init.ModBlocks; import com.NetherNoah.ParadiseMod.Utils; -import com.NetherNoah.ParadiseMod.CustomBlockCode.RSFenceGate; -import com.NetherNoah.ParadiseMod.blocks.fenceGates.BrickFenceGate; -import com.NetherNoah.ParadiseMod.blocks.fenceGates.CactusFenceGate; -import com.NetherNoah.ParadiseMod.blocks.fenceGates.DiamondFenceGate; -import com.NetherNoah.ParadiseMod.blocks.fenceGates.EmeraldFenceGate; -import com.NetherNoah.ParadiseMod.blocks.fenceGates.GoldFenceGate; -import com.NetherNoah.ParadiseMod.blocks.fenceGates.IronFenceGate; -import com.NetherNoah.ParadiseMod.blocks.fenceGates.RedstoneFenceGate; -import com.NetherNoah.ParadiseMod.blocks.fenceGates.RubyFenceGate; -import com.NetherNoah.ParadiseMod.blocks.fenceGates.RustyFenceGate; -import com.NetherNoah.ParadiseMod.blocks.fenceGates.SilverFenceGate; +import com.NetherNoah.ParadiseMod.blocks.RedstoneFenceGate; +import com.NetherNoah.ParadiseMod.blocks.base.CustomGate; -import net.minecraft.block.BlockFenceGate; +import net.minecraft.block.BlockHorizontal; +import net.minecraft.block.SoundType; public class Gates { - //fence gates - public static BlockFenceGate RustyFenceGate; - public static BlockFenceGate BlockCactusFenceGate; - public static BlockFenceGate BlockSilverFenceGate; - public static BlockFenceGate BlockBrickFenceGate; - public static BlockFenceGate BlockDiamondFenceGate; - public static BlockFenceGate BlockEmeraldFenceGate; - public static BlockFenceGate BlockGoldFenceGate; - public static BlockFenceGate BlockIronFenceGate; - public static BlockFenceGate BlockRubyFenceGate; - public static RSFenceGate BlockRedstoneFenceGate; + public static CustomGate RustyFenceGate = new CustomGate(SoundType.METAL); + public static CustomGate CactusFenceGate = new CustomGate(SoundType.WOOD); + public static CustomGate SilverFenceGate = new CustomGate(SoundType.METAL); + public static CustomGate BrickFenceGate = new CustomGate(SoundType.STONE); + public static CustomGate DiamondFenceGate = new CustomGate(SoundType.METAL); + public static CustomGate EmeraldFenceGate = new CustomGate(SoundType.METAL); + public static CustomGate GoldFenceGate = new CustomGate(SoundType.METAL); + public static CustomGate IronFenceGate = new CustomGate(SoundType.METAL); + public static CustomGate RubyFenceGate = new CustomGate(SoundType.METAL); + public static BlockHorizontal RedstoneFenceGate; public static void initAndRegister() { - //fence gates - Utils.regBlock(RustyFenceGate=new RustyFenceGate()); - Utils.regBlock(BlockCactusFenceGate=new CactusFenceGate()); - Utils.regBlock(BlockSilverFenceGate=new SilverFenceGate()); - Utils.regBlock(BlockBrickFenceGate = new BrickFenceGate()); - Utils.regBlock(BlockDiamondFenceGate = new DiamondFenceGate()); - Utils.regBlock(BlockEmeraldFenceGate = new EmeraldFenceGate()); - Utils.regBlock(BlockGoldFenceGate = new GoldFenceGate()); - Utils.regBlock(BlockIronFenceGate = new IronFenceGate()); - Utils.regBlock(BlockRubyFenceGate = new RubyFenceGate()); - Utils.regBlock(BlockRedstoneFenceGate = new RedstoneFenceGate()); + BrickFenceGate.setHarvestLevel("pickaxe", 0); + DiamondFenceGate.setHarvestLevel("pickaxe", 2); + EmeraldFenceGate.setHarvestLevel("pickaxe", 2); + GoldFenceGate.setHarvestLevel("pickaxe", 2); + IronFenceGate.setHarvestLevel("pickaxe", 1); + RubyFenceGate.setHarvestLevel("pickaxe", 2); + RustyFenceGate.setHarvestLevel("pickaxe", 1); + SilverFenceGate.setHarvestLevel("pickaxe", 2); + Utils.regBlock(BrickFenceGate.setUnlocalizedName("BrickFenceGate").setRegistryName("brick_fence_gate").setHardness(5F).setResistance(10F)); + Utils.regBlock(CactusFenceGate.setUnlocalizedName("CactusFenceGate").setRegistryName("cactus_fence_gate").setHardness(5F).setResistance(10F)); + Utils.regBlock(DiamondFenceGate.setUnlocalizedName("DiamondFenceGate").setRegistryName("diamond_fence_gate").setHardness(5F).setResistance(10F)); + Utils.regBlock(EmeraldFenceGate.setUnlocalizedName("EmeraldFenceGate").setRegistryName("emerald_fence_gate").setHardness(5F).setResistance(10F)); + Utils.regBlock(GoldFenceGate.setUnlocalizedName("GoldFenceGate").setRegistryName("gold_fence_gate").setHardness(5F).setResistance(10F)); + Utils.regBlock(IronFenceGate.setUnlocalizedName("IronFenceGate").setRegistryName("iron_fence_gate").setHardness(5F).setResistance(10F)); + Utils.regBlock(RedstoneFenceGate = new RedstoneFenceGate()); + Utils.regBlock(RubyFenceGate.setUnlocalizedName("RubyFenceGate").setRegistryName("ruby_fence_gate").setHardness(5F).setResistance(10F)); + Utils.regBlock(RustyFenceGate.setUnlocalizedName("RustyFenceGate").setRegistryName("rusty_fence_gate").setHardness(5F).setResistance(10F)); + Utils.regBlock(SilverFenceGate.setUnlocalizedName("SilverFenceGate").setRegistryName("silver_fence_gate").setHardness(5F).setResistance(10F)); } - public static void regRenders() { + + public static void regRenders() { + Utils.regRender(BrickFenceGate); + Utils.regRender(CactusFenceGate); + Utils.regRender(DiamondFenceGate); + Utils.regRender(EmeraldFenceGate); + Utils.regRender(GoldFenceGate); + Utils.regRender(IronFenceGate); + Utils.regRender(RedstoneFenceGate); + Utils.regRender(RubyFenceGate); Utils.regRender(RustyFenceGate); - Utils.regRender(BlockCactusFenceGate); - Utils.regRender(BlockBrickFenceGate); - Utils.regRender(BlockDiamondFenceGate); - Utils.regRender(BlockEmeraldFenceGate); - Utils.regRender(BlockSilverFenceGate); - Utils.regRender(BlockGoldFenceGate); - Utils.regRender(BlockIronFenceGate); - Utils.regRender(BlockRubyFenceGate); - Utils.regRender(BlockRedstoneFenceGate); - + Utils.regRender(SilverFenceGate); } -} +} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Lamps.java b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Lamps.java index 9d87952..3f02ed0 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Lamps.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Lamps.java @@ -44,100 +44,101 @@ public static SaltLamp getSaltLamp() return SaltLamp; } public static SaltLamp SaltLamp; - //unlit lamps - public static BlockRedstoneLight BlackRSLamp; - public static BlockRedstoneLight BlueRSLamp; - public static BlockRedstoneLight BrownRSLamp; - public static BlockRedstoneLight CyanRSLamp; - public static BlockRedstoneLight GrayRSLamp; - public static BlockRedstoneLight GreenRSLamp; - public static BlockRedstoneLight LightBlueRSLamp; - public static BlockRedstoneLight LimeRSLamp; - public static BlockRedstoneLight MagentaRSLamp; - public static BlockRedstoneLight OrangeRSLamp; - public static BlockRedstoneLight PinkRSLamp; - public static BlockRedstoneLight PurpleRSLamp; - public static BlockRedstoneLight RedRSLamp; - public static BlockRedstoneLight SilverRSLamp; - public static BlockRedstoneLight WhiteRSLamp; - public static BlockRedstoneLight YellowRSLamp; - + //lit lamps - public static BlockRedstoneLight LitBlackRSLamp; - public static BlockRedstoneLight LitBlueRSLamp; - public static BlockRedstoneLight LitBrownRSLamp; - public static BlockRedstoneLight LitCyanRSLamp; - public static BlockRedstoneLight LitGrayRSLamp; - public static BlockRedstoneLight LitGreenRSLamp; - public static BlockRedstoneLight LitLightBlueRSLamp; - public static BlockRedstoneLight LitLimeRSLamp; - public static BlockRedstoneLight LitMagentaRSLamp; - public static BlockRedstoneLight LitOrangeRSLamp; - public static BlockRedstoneLight LitPinkRSLamp; - public static BlockRedstoneLight LitPurpleRSLamp; - public static BlockRedstoneLight LitRedRSLamp; - public static BlockRedstoneLight LitSilverRSLamp; - public static BlockRedstoneLight LitWhiteRSLamp; - public static BlockRedstoneLight LitYellowRSLamp; + public static BlockRedstoneLight LitBlackLamp; + public static BlockRedstoneLight LitBlueLamp; + public static BlockRedstoneLight LitBrownLamp; + public static BlockRedstoneLight LitCyanLamp; + public static BlockRedstoneLight LitGrayLamp; + public static BlockRedstoneLight LitGreenLamp; + public static BlockRedstoneLight LitLightBlueLamp; + public static BlockRedstoneLight LitLimeLamp; + public static BlockRedstoneLight LitMagentaLamp; + public static BlockRedstoneLight LitOrangeLamp; + public static BlockRedstoneLight LitPinkLamp; + public static BlockRedstoneLight LitPurpleLamp; + public static BlockRedstoneLight LitRedLamp; + public static BlockRedstoneLight LitSilverLamp; + public static BlockRedstoneLight LitWhiteLamp; + public static BlockRedstoneLight LitYellowLamp; + + //unlit lamps + public static BlockRedstoneLight BlackLamp; + public static BlockRedstoneLight BlueLamp; + public static BlockRedstoneLight BrownLamp; + public static BlockRedstoneLight CyanLamp; + public static BlockRedstoneLight GrayLamp; + public static BlockRedstoneLight GreenLamp; + public static BlockRedstoneLight LightBlueLamp; + public static BlockRedstoneLight LimeLamp; + public static BlockRedstoneLight MagentaLamp; + public static BlockRedstoneLight OrangeLamp; + public static BlockRedstoneLight PinkLamp; + public static BlockRedstoneLight PurpleLamp; + public static BlockRedstoneLight RedLamp; + public static BlockRedstoneLight SilverLamp; + public static BlockRedstoneLight WhiteLamp; + public static BlockRedstoneLight YellowLamp; + public static void initAndRegister() { - Utils.regBlock(SaltLamp=new SaltLamp()); - //unlit lamps - Utils.regBlock(BlackRSLamp = new BlackRSLamp()); - Utils.regBlock(BlueRSLamp = new BlueRSLamp()); - Utils.regBlock(BrownRSLamp = new BrownRSLamp()); - Utils.regBlock(CyanRSLamp = new CyanRSLamp()); - Utils.regBlock(GrayRSLamp = new GrayRSLamp()); - Utils.regBlock(GreenRSLamp = new GreenRSLamp()); - Utils.regBlock(LightBlueRSLamp = new LightBlueRSLamp()); - Utils.regBlock(LimeRSLamp = new LimeRSLamp()); - Utils.regBlock(MagentaRSLamp = new MagentaRSLamp()); - Utils.regBlock(OrangeRSLamp = new OrangeRSLamp()); - Utils.regBlock(PinkRSLamp = new PinkRSLamp()); - Utils.regBlock(PurpleRSLamp = new PurpleRSLamp()); - Utils.regBlock(RedRSLamp = new RedRSLamp()); - Utils.regBlock(SilverRSLamp = new SilverRSLamp()); - Utils.regBlock(WhiteRSLamp = new WhiteRSLamp()); - Utils.regBlock(YellowRSLamp = new YellowRSLamp()); - + //lit lamps - ForgeRegistries.BLOCKS.register(LitBlackRSLamp = new LitBlackRSLamp()); - ForgeRegistries.BLOCKS.register(LitBlueRSLamp = new LitBlueRSLamp()); - ForgeRegistries.BLOCKS.register(LitBrownRSLamp = new LitBrownRSLamp()); - ForgeRegistries.BLOCKS.register(LitCyanRSLamp = new LitCyanRSLamp()); - ForgeRegistries.BLOCKS.register(LitGrayRSLamp = new LitGrayRSLamp()); - ForgeRegistries.BLOCKS.register(LitGreenRSLamp = new LitGreenRSLamp()); - ForgeRegistries.BLOCKS.register(LitLightBlueRSLamp = new LitLightBlueRSLamp()); - ForgeRegistries.BLOCKS.register(LitLimeRSLamp = new LitLimeRSLamp()); - ForgeRegistries.BLOCKS.register(LitMagentaRSLamp = new LitMagentaRSLamp()); - ForgeRegistries.BLOCKS.register(LitOrangeRSLamp = new LitOrangeRSLamp()); - ForgeRegistries.BLOCKS.register(LitPinkRSLamp = new LitPinkRSLamp()); - ForgeRegistries.BLOCKS.register(LitPurpleRSLamp = new LitPurpleRSLamp()); - ForgeRegistries.BLOCKS.register(LitRedRSLamp = new LitRedRSLamp()); - ForgeRegistries.BLOCKS.register(LitSilverRSLamp = new LitSilverRSLamp()); - ForgeRegistries.BLOCKS.register(LitWhiteRSLamp = new LitWhiteRSLamp()); - ForgeRegistries.BLOCKS.register(LitYellowRSLamp = new LitYellowRSLamp()); + ForgeRegistries.BLOCKS.register(LitBlackLamp = new LitBlackRSLamp()); + ForgeRegistries.BLOCKS.register(LitBlueLamp = new LitBlueRSLamp()); + ForgeRegistries.BLOCKS.register(LitBrownLamp = new LitBrownRSLamp()); + ForgeRegistries.BLOCKS.register(LitCyanLamp = new LitCyanRSLamp()); + ForgeRegistries.BLOCKS.register(LitGrayLamp = new LitGrayRSLamp()); + ForgeRegistries.BLOCKS.register(LitGreenLamp = new LitGreenRSLamp()); + ForgeRegistries.BLOCKS.register(LitLightBlueLamp = new LitLightBlueRSLamp()); + ForgeRegistries.BLOCKS.register(LitLimeLamp = new LitLimeRSLamp()); + ForgeRegistries.BLOCKS.register(LitMagentaLamp = new LitMagentaRSLamp()); + ForgeRegistries.BLOCKS.register(LitOrangeLamp = new LitOrangeRSLamp()); + ForgeRegistries.BLOCKS.register(LitPinkLamp = new LitPinkRSLamp()); + ForgeRegistries.BLOCKS.register(LitPurpleLamp = new LitPurpleRSLamp()); + ForgeRegistries.BLOCKS.register(LitRedLamp = new LitRedRSLamp()); + ForgeRegistries.BLOCKS.register(LitSilverLamp = new LitSilverRSLamp()); + ForgeRegistries.BLOCKS.register(LitWhiteLamp = new LitWhiteRSLamp()); + ForgeRegistries.BLOCKS.register(LitYellowLamp = new LitYellowRSLamp()); + //unlit lamps + Utils.regBlock(BlackLamp = new BlackRSLamp()); + Utils.regBlock(BlueLamp = new BlueRSLamp()); + Utils.regBlock(BrownLamp = new BrownRSLamp()); + Utils.regBlock(CyanLamp = new CyanRSLamp()); + Utils.regBlock(GrayLamp = new GrayRSLamp()); + Utils.regBlock(GreenLamp = new GreenRSLamp()); + Utils.regBlock(LightBlueLamp = new LightBlueRSLamp()); + Utils.regBlock(LimeLamp = new LimeRSLamp()); + Utils.regBlock(MagentaLamp = new MagentaRSLamp()); + Utils.regBlock(OrangeLamp = new OrangeRSLamp()); + Utils.regBlock(PinkLamp = new PinkRSLamp()); + Utils.regBlock(PurpleLamp = new PurpleRSLamp()); + Utils.regBlock(RedLamp = new RedRSLamp()); + Utils.regBlock(SilverLamp = new SilverRSLamp()); + Utils.regBlock(WhiteLamp = new WhiteRSLamp()); + Utils.regBlock(YellowLamp = new YellowRSLamp()); } - public static void regRenders() { + + public static void regRenders() { + Utils.regRender(BlackLamp); + Utils.regRender(BlueLamp); + Utils.regRender(BrownLamp); + Utils.regRender(CyanLamp); + Utils.regRender(GrayLamp); + Utils.regRender(GreenLamp); + Utils.regRender(LightBlueLamp); + Utils.regRender(LimeLamp); + Utils.regRender(MagentaLamp); + Utils.regRender(OrangeLamp); + Utils.regRender(PinkLamp); + Utils.regRender(PurpleLamp); + Utils.regRender(RedLamp); Utils.regRender(SaltLamp); - Utils.regRender(BlackRSLamp); - Utils.regRender(BlueRSLamp); - Utils.regRender(BrownRSLamp); - Utils.regRender(CyanRSLamp); - Utils.regRender(GrayRSLamp); - Utils.regRender(GreenRSLamp); - Utils.regRender(LightBlueRSLamp); - Utils.regRender(LimeRSLamp); - Utils.regRender(MagentaRSLamp); - Utils.regRender(OrangeRSLamp); - Utils.regRender(PinkRSLamp); - Utils.regRender(PurpleRSLamp); - Utils.regRender(RedRSLamp); - Utils.regRender(SilverRSLamp); - Utils.regRender(WhiteRSLamp); - Utils.regRender(YellowRSLamp); - + Utils.regRender(SilverLamp); + Utils.regRender(WhiteLamp); + Utils.regRender(YellowLamp); } -} +} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Misc.java b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Misc.java index 99e062f..0165c23 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Misc.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Misc.java @@ -1,39 +1,19 @@ package com.NetherNoah.ParadiseMod.init.ModBlocks; import com.NetherNoah.ParadiseMod.Utils; -import com.NetherNoah.ParadiseMod.CustomBlockCode.MossyFurnaceCode; -import com.NetherNoah.ParadiseMod.CustomBlockCode.VoidFurnaceCode; -import com.NetherNoah.ParadiseMod.CustomBlockCode.xmasTree; -import com.NetherNoah.ParadiseMod.blocks.formations.icicle; -import com.NetherNoah.ParadiseMod.blocks.formations.mossyStoneFormation; -import com.NetherNoah.ParadiseMod.blocks.formations.netherrackFormation; -import com.NetherNoah.ParadiseMod.blocks.formations.sandstoneFormation; -import com.NetherNoah.ParadiseMod.blocks.formations.stoneFormation; -import com.NetherNoah.ParadiseMod.blocks.misc.BlueRose; +import com.NetherNoah.ParadiseMod.blocks.base.BasicBlock; +import com.NetherNoah.ParadiseMod.blocks.base.CaveFormation; +import com.NetherNoah.ParadiseMod.blocks.base.CustomGlass; +import com.NetherNoah.ParadiseMod.blocks.base.CustomPane; +import com.NetherNoah.ParadiseMod.blocks.base.CustomPlant; +import com.NetherNoah.ParadiseMod.blocks.base.MossyFurnaceBase; +import com.NetherNoah.ParadiseMod.blocks.base.VoidFurnaceBase; import com.NetherNoah.ParadiseMod.blocks.misc.CactusBookshelf; -import com.NetherNoah.ParadiseMod.blocks.misc.CompressedCactus; import com.NetherNoah.ParadiseMod.blocks.misc.DUPortal; import com.NetherNoah.ParadiseMod.blocks.misc.DVPortal; -import com.NetherNoah.ParadiseMod.blocks.misc.GoldBars; -import com.NetherNoah.ParadiseMod.blocks.misc.MossyFurnace; -import com.NetherNoah.ParadiseMod.blocks.misc.MossyFurnaceLit; -import com.NetherNoah.ParadiseMod.blocks.misc.PolishedVoidStone; import com.NetherNoah.ParadiseMod.blocks.misc.RegenerationStone; -import com.NetherNoah.ParadiseMod.blocks.misc.Rose; -import com.NetherNoah.ParadiseMod.blocks.misc.RustyIronBars; -import com.NetherNoah.ParadiseMod.blocks.misc.SilverBars; -import com.NetherNoah.ParadiseMod.blocks.misc.Stonecutter; -import com.NetherNoah.ParadiseMod.blocks.misc.VoidBricks; -import com.NetherNoah.ParadiseMod.blocks.misc.VoidFurnace; -import com.NetherNoah.ParadiseMod.blocks.misc.VoidFurnaceLit; -import com.NetherNoah.ParadiseMod.blocks.misc.VoidStone; -import com.NetherNoah.ParadiseMod.blocks.misc.bulletproofGlass; import com.NetherNoah.ParadiseMod.blocks.misc.emeraldRail; -import com.NetherNoah.ParadiseMod.blocks.misc.glowingIce; -import com.NetherNoah.ParadiseMod.blocks.misc.glowingObsidian; import com.NetherNoah.ParadiseMod.blocks.misc.prismarineCrystalBlock; -import com.NetherNoah.ParadiseMod.blocks.misc.soulGlass; -import com.NetherNoah.ParadiseMod.blocks.misc.soulGlassPane; import com.NetherNoah.ParadiseMod.blocks.misc.undergroundAir; import com.NetherNoah.ParadiseMod.blocks.redstone.GoldHopper; import com.NetherNoah.ParadiseMod.blocks.redstone.SilverHopper; @@ -48,8 +28,6 @@ import net.minecraft.block.Block; import net.minecraft.block.BlockAir; import net.minecraft.block.BlockBreakable; -import net.minecraft.block.BlockBush; -import net.minecraft.block.BlockDirectional; import net.minecraft.block.BlockHopper; import net.minecraft.block.BlockLever; import net.minecraft.block.BlockOldLeaf; @@ -57,135 +35,188 @@ import net.minecraft.block.BlockPumpkin; import net.minecraft.block.BlockRail; import net.minecraft.block.BlockRailPowered; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; import net.minecraftforge.fml.common.registry.ForgeRegistries; public class Misc { //cave formations - public static BlockDirectional icicle; - public static BlockDirectional stoneFormation; - public static BlockDirectional mossyStoneFormation; - public static BlockDirectional sandstoneFormation; - public static BlockDirectional netherrackFormation; + public static CaveFormation icicle = new CaveFormation(SoundType.GLASS); + public static CaveFormation mossyStoneFormation = new CaveFormation(SoundType.STONE); + public static CaveFormation netherrackFormation = new CaveFormation(SoundType.STONE); + public static CaveFormation sandstoneFormation = new CaveFormation(SoundType.STONE); + public static CaveFormation stoneFormation = new CaveFormation(SoundType.STONE); - public static BlockBreakable bulletproofGlass; - public static BlockBreakable prismarineCrystalBlock; - public static BlockAir undergroundAir; - public static Block VoidBricks; + //christmas stuff + public static ChristmasSapling ChristmasSapling; + public static BlockOldLeaf ChristmasLeaves; + public static Block ChristmasTopper; + public static Block Present; + public static BlockPumpkin SantaHat; + + //deep void blocks + public static Block PolishedVoidStone = new Block(Material.ROCK); public static Block RegenerationStone; - public static Block PolishedVoidStone; - public static Block VoidStone; - public static BlockBush BlueRose; - public static BlockBush Rose; - public static Block Stonecutter; - public static Block CompressedCactus; + public static Block VoidBricks = new Block(Material.ROCK); + public static Block VoidStone = new Block(Material.ROCK); + + //flowers + public static CustomPlant BlueRose = new CustomPlant(); + public static CustomPlant Rose = new CustomPlant(); + + //furnaces + public static MossyFurnaceBase MossyFurnace = new MossyFurnaceBase(false); + public static MossyFurnaceBase MossyFurnaceLit = new MossyFurnaceBase(true); + public static VoidFurnaceBase VoidFurnace = new VoidFurnaceBase(false); + public static VoidFurnaceBase VoidFurnaceLit = new VoidFurnaceBase(true); + + //glass + public static BlockBreakable bulletproofGlass = new CustomGlass(); + public static CustomPane bulletproofGlassPane = new CustomPane(Material.GLASS, false, SoundType.GLASS); + public static BlockBreakable soulGlass = new CustomGlass(); + public static CustomPane soulGlassPane = new CustomPane(Material.GLASS, false, SoundType.GLASS); + + //hoppers + public static BlockHopper GoldHopper; + public static BlockHopper SilverHopper; + + //metal bars + public static CustomPane GoldBars = new CustomPane(Material.IRON, true, SoundType.METAL); + public static CustomPane RustyIronBars = new CustomPane(Material.IRON, true, SoundType.METAL); + public static CustomPane SilverBars = new CustomPane(Material.IRON, true, SoundType.METAL); + + //others public static Block CactusBookshelf; - public static BlockRailPowered emeraldRailPowered; - public static BlockRail emeraldRail; + public static BasicBlock CompressedCactus = new BasicBlock(Material.WOOD, SoundType.WOOD, false); + public static BasicBlock glowingIce = new BasicBlock(Material.ICE, SoundType.GLASS,false); + public static BasicBlock glowingObsidian = new BasicBlock(Material.ROCK,SoundType.STONE,true); public static BlockLever mossyLever; + public static BlockBreakable prismarineCrystalBlock; + public static Block Stonecutter = new Block(Material.ROCK); + public static BlockAir undergroundAir; + + //portal blocks public static DUPortal DUPortal; public static DVPortal DVPortal; - public static Block glowingObsidian; - public static Block Present; - public static xmasTree ChristmasSapling; - public static BlockPane GoldBars; - public static BlockOldLeaf ChristmasLeaves; - public static Block ChristmasTopper; - public static BlockPumpkin SantaHat; - public static BlockBreakable soulGlass; - public static BlockPane soulGlassPane; - public static BlockPane SilverBars; - public static BlockPane RustyIronBars; - public static BlockHopper SilverHopper; - public static BlockHopper GoldHopper; - public static MossyFurnaceCode MossyFurnace; - public static MossyFurnaceCode MossyFurnaceLit; - public static VoidFurnaceCode VoidFurnace; - public static VoidFurnaceCode VoidFurnaceLit; - public static Block glowingIce; + + //rails + public static BlockRail emeraldRail; + public static BlockRailPowered emeraldRailPowered; public static void initAndRegister() { - Utils.regBlock(icicle=new icicle()); - Utils.regBlock(stoneFormation=new stoneFormation()); - Utils.regBlock(mossyStoneFormation=new mossyStoneFormation()); - Utils.regBlock(sandstoneFormation=new sandstoneFormation()); - Utils.regBlock(netherrackFormation=new netherrackFormation()); + //cave formations + Utils.regBlock(icicle.setUnlocalizedName("Icicle").setRegistryName("icicle")); + Utils.regBlock(mossyStoneFormation.setUnlocalizedName("mossyStoneFormation").setRegistryName("mossy_stone_formation")); + Utils.regBlock(netherrackFormation.setUnlocalizedName("netherrackFormation").setRegistryName("netherrack_formation")); + Utils.regBlock(sandstoneFormation.setUnlocalizedName("sandstoneFormation").setRegistryName("sandstone_formation")); + Utils.regBlock(stoneFormation.setUnlocalizedName("stoneFormation").setRegistryName("stone_formation")); + + //christmas stuff + Utils.regBlock(ChristmasLeaves = new ChristmasLeaves()); + Utils.regBlock(ChristmasSapling = new ChristmasSapling()); + Utils.regBlock(ChristmasTopper = new ChristmasTopper()); + Utils.regBlock(Present = new Present()); + Utils.regBlock(SantaHat = new SantaHat()); - Utils.regBlock(bulletproofGlass=new bulletproofGlass()); - Utils.regBlock(prismarineCrystalBlock=new prismarineCrystalBlock()); + //deep void blocks + Utils.regBlock(PolishedVoidStone.setUnlocalizedName("PolishedVoidStone").setRegistryName("polished_void_stone").setHardness(5F).setResistance(10F).setCreativeTab(CreativeTabs.BUILDING_BLOCKS)); Utils.regBlock(RegenerationStone=new RegenerationStone()); - Utils.regBlock(VoidBricks=new VoidBricks()); - Utils.regBlock(PolishedVoidStone=new PolishedVoidStone()); - Utils.regBlock(VoidStone=new VoidStone()); - Utils.regBlock(DVPortal=new DVPortal()); - Utils.regBlock(BlueRose=new BlueRose()); - Utils.regBlock(Rose=new Rose()); - Utils.regBlock(Stonecutter=new Stonecutter()); - Utils.regBlock(RustyIronBars=new RustyIronBars()); - Utils.regBlock(CompressedCactus=new CompressedCactus()); - Utils.regBlock(CactusBookshelf=new CactusBookshelf()); + Utils.regBlock(VoidBricks.setUnlocalizedName("VoidBricks").setRegistryName("void_bricks").setHardness(5F).setResistance(10F).setCreativeTab(CreativeTabs.BUILDING_BLOCKS)); + Utils.regBlock(VoidStone.setUnlocalizedName("VoidStone").setRegistryName("void_stone").setHardness(5F).setResistance(15F).setCreativeTab(CreativeTabs.BUILDING_BLOCKS)); + + //flowers + Utils.regBlock(BlueRose.setUnlocalizedName("BlueRose").setRegistryName("blue_rose")); + Utils.regBlock(Rose.setUnlocalizedName("Rose").setRegistryName("rose")); + + //furnaces + Utils.regBlock(MossyFurnace.setUnlocalizedName("MossyFurnace").setRegistryName("mossy_furnace").setHardness(5F).setResistance(10F).setCreativeTab(CreativeTabs.DECORATIONS)); + ForgeRegistries.BLOCKS.register(MossyFurnaceLit.setUnlocalizedName("MossyFurnaceLit").setRegistryName("lit_mossy_furnace").setHardness(5F).setResistance(10F)); + Utils.regBlock(VoidFurnace.setUnlocalizedName("VoidFurnace").setRegistryName("void_furnace").setHardness(5F).setResistance(10F).setCreativeTab(CreativeTabs.DECORATIONS)); + ForgeRegistries.BLOCKS.register(VoidFurnaceLit.setUnlocalizedName("VoidFurnaceLit").setRegistryName("lit_void_furnace").setHardness(5F).setResistance(10F)); + + //glass + soulGlassPane.setDefaultSlipperiness(1F); + soulGlass.setDefaultSlipperiness(1F); + + Utils.regBlock(bulletproofGlass.setUnlocalizedName("bulletProofGlass").setRegistryName("bulletproof_glass").setHardness(.5F).setResistance(2000F).setCreativeTab(CreativeTabs.BUILDING_BLOCKS)); + Utils.regBlock(bulletproofGlassPane.setUnlocalizedName("bulletproofGlassPane").setRegistryName("bulletproof_glass_pane").setHardness(.5F).setResistance(2000F).setCreativeTab(CreativeTabs.DECORATIONS)); + Utils.regBlock(soulGlassPane.setUnlocalizedName("soulGlassPane").setRegistryName("soul_glass_pane").setHardness(.5F).setResistance(1F).setLightLevel(1F)); + Utils.regBlock(soulGlass.setUnlocalizedName("soulGlass").setRegistryName("soul_glass").setHardness(.5F).setResistance(1F).setLightLevel(1F)); + + //hoppers Utils.regBlock(SilverHopper=new SilverHopper()); - Utils.regBlock(SilverBars=new SilverBars()); - Utils.regBlock(emeraldRailPowered=new emeraldRailPowered()); - Utils.regBlock(emeraldRail=new emeraldRail()); - Utils.regBlock(mossyLever=new mossyLever()); - Utils.regBlock(DUPortal=new DUPortal()); - Utils.regBlock(glowingObsidian = new glowingObsidian()); - Utils.regBlock(soulGlassPane = new soulGlassPane()); - Utils.regBlock(soulGlass = new soulGlass()); - Utils.regBlock(Present = new Present()); - Utils.regBlock(SantaHat = new SantaHat()); - Utils.regBlock(ChristmasSapling = new ChristmasSapling()); - Utils.regBlock(ChristmasTopper = new ChristmasTopper()); - Utils.regBlock(GoldBars = new GoldBars()); - Utils.regBlock(ChristmasLeaves = new ChristmasLeaves()); Utils.regBlock(GoldHopper = new GoldHopper()); - Utils.regBlock(MossyFurnace = new MossyFurnace()); - Utils.regBlock(VoidFurnace=new VoidFurnace()); - Utils.regBlock(glowingIce=new glowingIce()); + + //metal bars + GoldBars.setHarvestLevel("pickaxe", 2); + RustyIronBars.setHarvestLevel("pickaxe", 0); + SilverBars.setHarvestLevel("pickaxe", 2); + + Utils.regBlock(GoldBars.setUnlocalizedName("GoldBars").setRegistryName("gold_bars").setHardness(5F).setResistance(10F).setCreativeTab(CreativeTabs.DECORATIONS)); + Utils.regBlock(RustyIronBars.setUnlocalizedName("RustyIronBars").setRegistryName("rusty_iron_bars").setHardness(5F).setResistance(10F).setCreativeTab(CreativeTabs.DECORATIONS)); + Utils.regBlock(SilverBars.setUnlocalizedName("SilverBars").setRegistryName("silver_bars").setHardness(5F).setResistance(10F).setCreativeTab(CreativeTabs.DECORATIONS)); + + //others + glowingIce.setDefaultSlipperiness(1F); + glowingObsidian.setHarvestLevel("pickaxe",3); + + Utils.regBlock(CactusBookshelf=new CactusBookshelf()); + Utils.regBlock(CompressedCactus.setUnlocalizedName("CompressedCactus").setRegistryName("compressed_cactus").setHardness(2.5F).setResistance(5F).setCreativeTab(CreativeTabs.BUILDING_BLOCKS)); + Utils.regBlock(glowingIce.setUnlocalizedName("glowingIce").setRegistryName("glowing_ice").setHardness(.2F).setResistance(2F).setCreativeTab(CreativeTabs.BUILDING_BLOCKS).setLightLevel(.46666667F)); + Utils.regBlock(glowingObsidian.setUnlocalizedName("glowingObsidian").setRegistryName("glowing_obsidian").setHardness(51F).setResistance(2000F).setCreativeTab(CreativeTabs.BUILDING_BLOCKS).setLightLevel(.46666667F)); + Utils.regBlock(mossyLever=new mossyLever()); + Utils.regBlock(prismarineCrystalBlock=new prismarineCrystalBlock()); + Utils.regBlock(Stonecutter.setUnlocalizedName("Stonecutter").setRegistryName("stonecutter").setHardness(5F).setResistance(5.8333333333F).setCreativeTab(CreativeTabs.DECORATIONS)); ForgeRegistries.BLOCKS.register(undergroundAir=new undergroundAir()); - ForgeRegistries.BLOCKS.register(MossyFurnaceLit = new MossyFurnaceLit()); - ForgeRegistries.BLOCKS.register(VoidFurnaceLit=new VoidFurnaceLit()); - + + //portal blocks + Utils.regBlock(DUPortal=new DUPortal()); + Utils.regBlock(DVPortal=new DVPortal()); + + //rails + Utils.regBlock(emeraldRail=new emeraldRail()); + Utils.regBlock(emeraldRailPowered=new emeraldRailPowered()); } public static void regRenders() { + Utils.regRender(BlueRose); + Utils.regRender(bulletproofGlass); + Utils.regRender(bulletproofGlassPane); + Utils.regRender(CactusBookshelf); + Utils.regRender(ChristmasLeaves); + Utils.regRender(ChristmasTopper); + Utils.regRender(ChristmasSapling); + Utils.regRender(CompressedCactus); + Utils.regRender(DUPortal); + Utils.regRender(DVPortal); + Utils.regRender(emeraldRailPowered); + Utils.regRender(emeraldRail); + Utils.regRender(glowingIce); + Utils.regRender(glowingObsidian); + Utils.regRender(GoldBars); + Utils.regRender(GoldHopper); Utils.regRender(icicle); - Utils.regRender(stoneFormation); + Utils.regRender(MossyFurnace); + Utils.regRender(mossyLever); Utils.regRender(mossyStoneFormation); - Utils.regRender(sandstoneFormation); Utils.regRender(netherrackFormation); - - Utils.regRender(bulletproofGlass); + Utils.regRender(PolishedVoidStone); + Utils.regRender(Present); Utils.regRender(prismarineCrystalBlock); - Utils.regRender(glowingIce); Utils.regRender(RegenerationStone); - Utils.regRender(VoidBricks); - Utils.regRender(PolishedVoidStone); - Utils.regRender(VoidStone); - Utils.regRender(DVPortal); - Utils.regRender(BlueRose); Utils.regRender(Rose); - Utils.regRender(Stonecutter); Utils.regRender(RustyIronBars); - Utils.regRender(CompressedCactus); - Utils.regRender(CactusBookshelf); - Utils.regRender(SilverHopper); + Utils.regRender(sandstoneFormation); + Utils.regRender(SantaHat); Utils.regRender(SilverBars); - Utils.regRender(emeraldRailPowered); - Utils.regRender(emeraldRail); - Utils.regRender(mossyLever); - Utils.regRender(DUPortal); - Utils.regRender(glowingObsidian); - Utils.regRender(soulGlassPane); + Utils.regRender(SilverHopper); Utils.regRender(soulGlass); - Utils.regRender(Present); - Utils.regRender(SantaHat); - Utils.regRender(ChristmasSapling); - Utils.regRender(ChristmasTopper); - Utils.regRender(GoldBars); - Utils.regRender(ChristmasLeaves); - Utils.regRender(GoldHopper); - Utils.regRender(MossyFurnace); + Utils.regRender(soulGlassPane); + Utils.regRender(Stonecutter); + Utils.regRender(stoneFormation); + Utils.regRender(VoidBricks); Utils.regRender(VoidFurnace); + Utils.regRender(VoidStone); } -} +} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Ores.java b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Ores.java index 919c32a..b0a82a7 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Ores.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Ores.java @@ -1,102 +1,104 @@ package com.NetherNoah.ParadiseMod.init.ModBlocks; import com.NetherNoah.ParadiseMod.Utils; -import com.NetherNoah.ParadiseMod.blocks.ores.CoalOreVoid; -import com.NetherNoah.ParadiseMod.blocks.ores.EnderPearlOre; -import com.NetherNoah.ParadiseMod.blocks.ores.GoldOreNether; -import com.NetherNoah.ParadiseMod.blocks.ores.GoldOreVoid; -import com.NetherNoah.ParadiseMod.blocks.ores.IronOreVoid; -import com.NetherNoah.ParadiseMod.blocks.ores.RubyOre; -import com.NetherNoah.ParadiseMod.blocks.ores.RubyOreEnd; -import com.NetherNoah.ParadiseMod.blocks.ores.SaltOre; -import com.NetherNoah.ParadiseMod.blocks.ores.SilverOre; -import com.NetherNoah.ParadiseMod.blocks.ores.SilverOreNether; -import com.NetherNoah.ParadiseMod.blocks.ores.SilverOreVoid; -import com.NetherNoah.ParadiseMod.blocks.ores.VoidPearlOre; -import com.NetherNoah.ParadiseMod.blocks.resourceBlocks.BlockRuby; -import com.NetherNoah.ParadiseMod.blocks.resourceBlocks.BlockRustyIron; -import com.NetherNoah.ParadiseMod.blocks.resourceBlocks.SaltBlock; -import com.NetherNoah.ParadiseMod.blocks.resourceBlocks.SilverBlock; -import com.NetherNoah.ParadiseMod.blocks.resourceBlocks.blazeBlock; -import com.NetherNoah.ParadiseMod.blocks.resourceBlocks.endPearlBlock; -import com.NetherNoah.ParadiseMod.blocks.resourceBlocks.sugarBlock; -import com.NetherNoah.ParadiseMod.blocks.resourceBlocks.voidPearlBlock; +import com.NetherNoah.ParadiseMod.blocks.sugarBlock; +import com.NetherNoah.ParadiseMod.blocks.base.BasicBlock; +import com.NetherNoah.ParadiseMod.blocks.base.CustomOre; +import com.NetherNoah.ParadiseMod.init.ModItems.MiscItems; import net.minecraft.block.Block; import net.minecraft.block.BlockFalling; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.init.Items; public class Ores { + //ores + public static CustomOre CoalOreVoid = new CustomOre(Items.COAL, 4, 0); + public static CustomOre EnderPearlOre = new CustomOre(Items.ENDER_PEARL, 1, 2); + public static CustomOre EndRubyOre = new CustomOre(MiscItems.Ruby, 1, 2); + public static Block GoldOreNether = new Block(Material.ROCK); + public static Block GoldOreVoid = new Block(Material.ROCK); + public static Block IronOreVoid = new Block(Material.ROCK); + public static CustomOre RubyOre = new CustomOre(MiscItems.Ruby, 1, 2); + public static CustomOre SaltOre = new CustomOre(MiscItems.salt, 6, 0); + public static Block SilverOre = new Block(Material.ROCK); + public static Block SilverOreNether = new Block(Material.ROCK); + public static Block SilverOreVoid = new Block(Material.ROCK); + public static CustomOre VoidPearlOre = new CustomOre(MiscItems.VoidPearl, 1, 2); + //resource blocks - public static Block RustyIronBlock; - public static Block blazeBlock; + public static BasicBlock blazeBlock = new BasicBlock(Material.IRON, SoundType.METAL, true); + public static BasicBlock endPearlBlock = new BasicBlock(Material.IRON, SoundType.METAL, true); + public static BasicBlock RubyBlock = new BasicBlock(Material.IRON, SoundType.METAL, true); + public static BasicBlock RustyIronBlock = new BasicBlock(Material.IRON, SoundType.METAL, true); + public static BasicBlock SaltBlock = new BasicBlock(Material.ROCK, SoundType.STONE, true); + public static BasicBlock SilverBlock = new BasicBlock(Material.IRON, SoundType.METAL, true); public static BlockFalling sugarBlock; - public static Block RubyBlock; - public static Block SilverBlock; - public static Block SaltBlock; - public static Block endPearlBlock; - public static Block voidPearlBlock; - - //ores - public static Block SilverOreVoid; - public static Block CoalOreVoid; - public static Block GoldOreVoid; - public static Block IronOreVoid; - public static Block EnderPearlOre; - public static Block SilverOreNether; - public static Block GoldOreNether; - public static Block RubyOre; - public static Block EndRubyOre; - public static Block SilverOre; - public static Block SaltOre; - public static Block VoidPearlOre; + public static BasicBlock voidPearlBlock = new BasicBlock(Material.IRON, SoundType.METAL, true); public static void initAndRegister() { - //ores - Utils.regBlock(VoidPearlOre=new VoidPearlOre()); - Utils.regBlock(CoalOreVoid=new CoalOreVoid()); - Utils.regBlock(GoldOreVoid=new GoldOreVoid()); - Utils.regBlock(IronOreVoid=new IronOreVoid()); - Utils.regBlock(SilverOreVoid=new SilverOreVoid()); - Utils.regBlock(EnderPearlOre=new EnderPearlOre()); - Utils.regBlock(EndRubyOre = new RubyOreEnd()); - Utils.regBlock(SilverOreNether=new SilverOreNether()); - Utils.regBlock(GoldOreNether=new GoldOreNether()); - Utils.regBlock(RubyOre = new RubyOre()); - Utils.regBlock(SilverOre=new SilverOre()); - Utils.regBlock(SaltOre=new SaltOre()); - + GoldOreNether.setHarvestLevel("pickaxe", 2); + GoldOreVoid.setHarvestLevel("pickaxe", 2); + IronOreVoid.setHarvestLevel("pickaxe", 1); + SilverOre.setHarvestLevel("pickaxe", 2); + SilverOreNether.setHarvestLevel("pickaxe", 2); + SilverOreVoid.setHarvestLevel("pickaxe", 2); + + Utils.regBlock(CoalOreVoid.setUnlocalizedName("VoidCoalOre").setRegistryName("void_coal_ore").setHardness(5F).setResistance(10F)); + Utils.regBlock(EnderPearlOre.setUnlocalizedName("EndPearlOre").setRegistryName("ender_pearl_ore").setHardness(5F).setResistance(10F)); + Utils.regBlock(EndRubyOre.setUnlocalizedName("EndRubyOre").setRegistryName("ender_ruby_ore").setHardness(5F).setResistance(10F)); + Utils.regBlock(GoldOreNether.setUnlocalizedName("NetherGoldOre").setRegistryName("nether_gold_ore").setHardness(5F).setResistance(10F).setCreativeTab(CreativeTabs.BUILDING_BLOCKS)); + Utils.regBlock(GoldOreVoid.setUnlocalizedName("VoidGoldOre").setRegistryName("void_gold_ore").setHardness(5F).setResistance(10F)); + Utils.regBlock(IronOreVoid.setUnlocalizedName("VoidIronOre").setRegistryName("void_iron_ore").setHardness(5F).setResistance(10F).setCreativeTab(CreativeTabs.BUILDING_BLOCKS)); + Utils.regBlock(RubyOre.setUnlocalizedName("RubyOre").setRegistryName("ruby_ore").setHardness(5F).setResistance(10F)); + Utils.regBlock(SaltOre.setUnlocalizedName("SaltOre").setRegistryName("salt_ore").setHardness(5F).setResistance(10F)); + Utils.regBlock(SilverOre.setUnlocalizedName("SilverOre").setRegistryName("silver_ore").setHardness(5F).setResistance(10F).setCreativeTab(CreativeTabs.BUILDING_BLOCKS)); + Utils.regBlock(SilverOreNether.setUnlocalizedName("NetherSilverOre").setRegistryName("nether_silver_ore").setHardness(5F).setResistance(10F).setCreativeTab(CreativeTabs.BUILDING_BLOCKS)); + Utils.regBlock(SilverOreVoid.setUnlocalizedName("VoidSilverOre").setRegistryName("void_silver_ore").setHardness(5F).setResistance(10F).setCreativeTab(CreativeTabs.BUILDING_BLOCKS)); + Utils.regBlock(VoidPearlOre.setUnlocalizedName("VoidPearlOre").setRegistryName("void_pearl_ore").setHardness(5F).setResistance(10F)); + //resource blocks - Utils.regBlock(voidPearlBlock=new voidPearlBlock()); - Utils.regBlock(blazeBlock=new blazeBlock()); + blazeBlock.setHarvestLevel("pickaxe", 0); + endPearlBlock.setHarvestLevel("pickaxe", 0); + RubyBlock.setHarvestLevel("pickaxe", 2); + RustyIronBlock.setHarvestLevel("pickaxe", 1); + SaltBlock.setHarvestLevel("pickaxe", 0); + SilverBlock.setHarvestLevel("pickaxe", 2); + voidPearlBlock.setHarvestLevel("pickaxe",0); + + Utils.regBlock(blazeBlock.setUnlocalizedName("blazeBlock").setRegistryName("blaze_block").setHardness(5F).setResistance(10F).setCreativeTab(CreativeTabs.BUILDING_BLOCKS).setLightLevel(1F)); + Utils.regBlock(endPearlBlock.setUnlocalizedName("endPearlBlock").setRegistryName("ender_pearl_block").setHardness(5F).setResistance(10F).setCreativeTab(CreativeTabs.BUILDING_BLOCKS)); + Utils.regBlock(RubyBlock.setUnlocalizedName("BlockRuby").setRegistryName("ruby_block").setHardness(5F).setResistance(10F).setCreativeTab(CreativeTabs.BUILDING_BLOCKS)); + Utils.regBlock(RustyIronBlock.setUnlocalizedName("BlockRustyIron").setRegistryName("rusty_iron_block").setHardness(5F).setResistance(10F).setCreativeTab(CreativeTabs.BUILDING_BLOCKS)); + Utils.regBlock(SaltBlock.setUnlocalizedName("SaltBlock").setRegistryName("salt_block").setHardness(5F).setResistance(10F).setCreativeTab(CreativeTabs.BUILDING_BLOCKS)); + Utils.regBlock(SilverBlock.setUnlocalizedName("SilverBlock").setRegistryName("silver_block").setHardness(5F).setResistance(10F).setCreativeTab(CreativeTabs.BUILDING_BLOCKS)); Utils.regBlock(sugarBlock=new sugarBlock()); - Utils.regBlock(RubyBlock = new BlockRuby()); - Utils.regBlock(SilverBlock=new SilverBlock()); - Utils.regBlock(SaltBlock=new SaltBlock()); - Utils.regBlock(endPearlBlock=new endPearlBlock()); - Utils.regBlock(RustyIronBlock=new BlockRustyIron()); + Utils.regBlock(voidPearlBlock.setUnlocalizedName("voidPearlBlock").setRegistryName("void_pearl_block").setHardness(5F).setResistance(10F).setCreativeTab(CreativeTabs.BUILDING_BLOCKS)); } + public static void regRenders() { - Utils.regRender(voidPearlBlock); - Utils.regRender(VoidPearlOre); - Utils.regRender(SilverOreVoid); + Utils.regRender(blazeBlock); Utils.regRender(CoalOreVoid); - Utils.regRender(GoldOreVoid); - Utils.regRender(IronOreVoid); + Utils.regRender(endPearlBlock); Utils.regRender(EnderPearlOre); Utils.regRender(EndRubyOre); - Utils.regRender(SilverOreNether); Utils.regRender(GoldOreNether); + Utils.regRender(GoldOreVoid); + Utils.regRender(IronOreVoid); + Utils.regRender(RubyBlock); + Utils.regRender(RubyOre); + Utils.regRender(RustyIronBlock); + Utils.regRender(SaltBlock); Utils.regRender(SaltOre); + Utils.regRender(SilverBlock); Utils.regRender(SilverOre); - Utils.regRender(RubyOre); + Utils.regRender(SilverOreNether); + Utils.regRender(SilverOreVoid); Utils.regRender(sugarBlock); - Utils.regRender(blazeBlock); - Utils.regRender(SilverBlock); - Utils.regRender(RubyBlock); - Utils.regRender(SaltBlock); - Utils.regRender(RustyIronBlock); - Utils.regRender(endPearlBlock); - + Utils.regRender(voidPearlBlock); + Utils.regRender(VoidPearlOre); } -} +} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Plates.java b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Plates.java index 52136d7..d6e6003 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Plates.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Plates.java @@ -1,90 +1,106 @@ package com.NetherNoah.ParadiseMod.init.ModBlocks; import com.NetherNoah.ParadiseMod.Utils; -import com.NetherNoah.ParadiseMod.CustomBlockCode.RubyPlateCode; -import com.NetherNoah.ParadiseMod.CustomBlockCode.pressurePlates.BedrockPlateCode; -import com.NetherNoah.ParadiseMod.CustomBlockCode.pressurePlates.DiamondPlateCode; -import com.NetherNoah.ParadiseMod.CustomBlockCode.pressurePlates.EmeraldPlateCode; -import com.NetherNoah.ParadiseMod.blocks.pressurePlates.BedrockPlate; -import com.NetherNoah.ParadiseMod.blocks.pressurePlates.CobblestonePlate; -import com.NetherNoah.ParadiseMod.blocks.pressurePlates.DiamondPlate; -import com.NetherNoah.ParadiseMod.blocks.pressurePlates.DirtPlate; -import com.NetherNoah.ParadiseMod.blocks.pressurePlates.EmeraldPlate; -import com.NetherNoah.ParadiseMod.blocks.pressurePlates.EndPlate; -import com.NetherNoah.ParadiseMod.blocks.pressurePlates.GlowingObsidianPlate; -import com.NetherNoah.ParadiseMod.blocks.pressurePlates.GrassPlate; -import com.NetherNoah.ParadiseMod.blocks.pressurePlates.MossyPlate; -import com.NetherNoah.ParadiseMod.blocks.pressurePlates.RubyPlate; -import com.NetherNoah.ParadiseMod.blocks.pressurePlates.RustyPlate; -import com.NetherNoah.ParadiseMod.blocks.pressurePlates.SilverPlate; -import com.NetherNoah.ParadiseMod.blocks.pressurePlates.VoidPlate; -import com.NetherNoah.ParadiseMod.blocks.pressurePlates.stoneVariants.AndesitePlate; -import com.NetherNoah.ParadiseMod.blocks.pressurePlates.stoneVariants.DioritePlate; -import com.NetherNoah.ParadiseMod.blocks.pressurePlates.stoneVariants.GranitePlate; -import com.NetherNoah.ParadiseMod.blocks.pressurePlates.wood.AcaciaPlate; -import com.NetherNoah.ParadiseMod.blocks.pressurePlates.wood.BirchPlate; -import com.NetherNoah.ParadiseMod.blocks.pressurePlates.wood.CactusPlate; -import com.NetherNoah.ParadiseMod.blocks.pressurePlates.wood.DarkOakPlate; -import com.NetherNoah.ParadiseMod.blocks.pressurePlates.wood.JunglePlate; -import com.NetherNoah.ParadiseMod.blocks.pressurePlates.wood.SprucePlate; -import net.minecraft.block.BlockPressurePlate; +import com.NetherNoah.ParadiseMod.blocks.base.CustomPressurePlate; + +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; public class Plates { - //pressure plates - public static BlockPressurePlate VoidPlate; - public static BlockPressurePlate DirtPlate; - public static BlockPressurePlate GrassPlate; - public static BedrockPlateCode GlowingObsidianPlate; - public static DiamondPlateCode DiamondPlate; - public static EmeraldPlateCode EmeraldPlate; - public static RubyPlateCode SilverPlate; - public static RubyPlateCode RubyPlate; - public static BedrockPlateCode BedrockPlate; - public static BlockPressurePlate CactusPlate; - public static BlockPressurePlate CobblestonePlate; - public static BlockPressurePlate MossyPlate; - public static BlockPressurePlate AcaciaPlate; - public static BlockPressurePlate BirchPlate; - public static BlockPressurePlate DarkOakPlate; - public static BlockPressurePlate JunglePlate; - public static BlockPressurePlate SprucePlate; - public static BlockPressurePlate AndesitePlate; - public static BlockPressurePlate DioritePlate; - public static BlockPressurePlate GranitePlate; - public static BlockPressurePlate EndPlate; - public static BlockPressurePlate RustyPlate; + //grass and dirt + public static CustomPressurePlate DirtPlate = new CustomPressurePlate(1,20,4, Material.GROUND); + public static CustomPressurePlate GrassPlate = new CustomPressurePlate(1,20,3, Material.GROUND); + + //others + public static CustomPressurePlate DiamondPlate = new CustomPressurePlate(0,14,2,Material.IRON); + public static CustomPressurePlate EmeraldPlate = new CustomPressurePlate(0,10,2,Material.IRON); + public static CustomPressurePlate glassPlate = new CustomPressurePlate(0,20,5, Material.GLASS); + public static CustomPressurePlate RubyPlate = new CustomPressurePlate(0,4,2,Material.IRON); + public static CustomPressurePlate RustyPlate = new CustomPressurePlate(0,20,2,Material.IRON); + public static CustomPressurePlate SilverPlate = new CustomPressurePlate(0,20,2,Material.IRON); + + //stone variants + public static CustomPressurePlate CobblestonePlate = new CustomPressurePlate(1,20,0, Material.ROCK); + public static CustomPressurePlate MossyPlate = new CustomPressurePlate(1,20,0, Material.ROCK); + public static CustomPressurePlate AndesitePlate = new CustomPressurePlate(1,20,0, Material.ROCK); + public static CustomPressurePlate DioritePlate = new CustomPressurePlate(1,20,0, Material.ROCK); + public static CustomPressurePlate GranitePlate = new CustomPressurePlate(1,20,0, Material.ROCK); + public static CustomPressurePlate EndPlate = new CustomPressurePlate(1,20,0, Material.ROCK); + public static CustomPressurePlate redSandstonePlate = new CustomPressurePlate(1,20,0, Material.ROCK); + public static CustomPressurePlate sandstonePlate = new CustomPressurePlate(1,20,0, Material.ROCK); + public static CustomPressurePlate VoidPlate = new CustomPressurePlate(1,20,0, Material.ROCK); + + //unbreakable + public static CustomPressurePlate GlowingObsidianPlate = new CustomPressurePlate(2,20,0,Material.ROCK); + public static CustomPressurePlate BedrockPlate = new CustomPressurePlate(2,20,0,Material.BARRIER); + + //wooden + public static CustomPressurePlate AcaciaPlate = new CustomPressurePlate(0, 30, 1, Material.WOOD); + public static CustomPressurePlate BirchPlate = new CustomPressurePlate(0, 30, 1, Material.WOOD); + public static CustomPressurePlate CactusPlate = new CustomPressurePlate(0, 30, 1, Material.WOOD); + public static CustomPressurePlate DarkOakPlate = new CustomPressurePlate(0, 30, 1, Material.WOOD); + public static CustomPressurePlate JunglePlate = new CustomPressurePlate(0, 30, 1, Material.WOOD); + public static CustomPressurePlate SprucePlate = new CustomPressurePlate(0, 30, 1,Material.WOOD); public static void initAndRegister() { - //pressure plates - Utils.regBlock(VoidPlate=new VoidPlate()); - Utils.regBlock(DirtPlate=new DirtPlate()); - Utils.regBlock(GrassPlate=new GrassPlate()); - Utils.regBlock(CactusPlate=new CactusPlate()); - Utils.regBlock(EndPlate=new EndPlate()); - Utils.regBlock(GlowingObsidianPlate=new GlowingObsidianPlate()); - Utils.regBlock(DiamondPlate = new DiamondPlate()); - Utils.regBlock(EmeraldPlate = new EmeraldPlate()); - Utils.regBlock(SilverPlate = new SilverPlate()); - Utils.regBlock(RubyPlate = new RubyPlate()); - Utils.regBlock(BedrockPlate = new BedrockPlate()); - Utils.regBlock(MossyPlate = new MossyPlate()); - Utils.regBlock(CobblestonePlate = new CobblestonePlate()); - Utils.regBlock(AndesitePlate = new AndesitePlate()); - Utils.regBlock(DioritePlate = new DioritePlate()); - Utils.regBlock(GranitePlate = new GranitePlate()); - Utils.regBlock(AcaciaPlate = new AcaciaPlate()); - Utils.regBlock(BirchPlate = new BirchPlate()); - Utils.regBlock(DarkOakPlate = new DarkOakPlate()); - Utils.regBlock(JunglePlate = new JunglePlate()); - Utils.regBlock(SprucePlate = new SprucePlate()); - Utils.regBlock(RustyPlate=new RustyPlate()); + //I have to set these motherf_ckers separately since java complains + //about them being set in the lines below! + AcaciaPlate.setHarvestLevel("axe", 0); + BirchPlate.setHarvestLevel("axe", 0); + CactusPlate.setHarvestLevel("axe", 0); + DarkOakPlate.setHarvestLevel("axe", 0); + DiamondPlate.setHarvestLevel("pickaxe", 2); + EmeraldPlate.setHarvestLevel("pickaxe", 2); + GlowingObsidianPlate.setHarvestLevel("pickaxe", 3); + JunglePlate.setHarvestLevel("axe", 0); + SilverPlate.setHarvestLevel("pickaxe", 2); + RubyPlate.setHarvestLevel("pickaxe", 2); + RustyPlate.setHarvestLevel("pickaxe", 1); + SprucePlate.setHarvestLevel("axe", 0); + //grass and dirt + Utils.regBlock(DirtPlate.setUnlocalizedName("DirtPlate").setRegistryName("dirt_pressure_plate")); + Utils.regBlock(GrassPlate.setUnlocalizedName("GrassPlate").setRegistryName("grass_pressure_plate")); + + //special + Utils.regBlock(DiamondPlate.setUnlocalizedName("DiamondPlate").setRegistryName("diamond_pressure_plate").setHardness(0.5F)); + Utils.regBlock(EmeraldPlate.setUnlocalizedName("EmeraldPlate").setRegistryName("emerald_pressure_plate").setHardness(0.5F)); + Utils.regBlock(glassPlate.setUnlocalizedName("GlassPlate").setRegistryName("glass_pressure_plate").setHardness(0.1F)); + Utils.regBlock(SilverPlate.setUnlocalizedName("SilverPlate").setRegistryName("silver_pressure_plate").setHardness(0.5F)); + Utils.regBlock(RubyPlate.setUnlocalizedName("RubyPlate").setRegistryName("ruby_pressure_plate").setHardness(0.5F)); + Utils.regBlock(RustyPlate.setUnlocalizedName("RustyPlate").setRegistryName("rusty_pressure_plate").setHardness(0.5F)); + + //stone variants + Utils.regBlock(MossyPlate.setUnlocalizedName("MossyPlate").setRegistryName("mossy_cobblestone_pressure_plate").setHardness(0.5F)); + Utils.regBlock(CobblestonePlate.setUnlocalizedName("CobblestonePlate").setRegistryName("cobblestone_pressure_plate").setHardness(0.5F)); + Utils.regBlock(AndesitePlate.setUnlocalizedName("AndesitePlate").setRegistryName("andesite_pressure_plate").setHardness(0.5F)); + Utils.regBlock(DioritePlate.setUnlocalizedName("DioritePlate").setRegistryName("diorite_pressure_plate").setHardness(0.5F)); + Utils.regBlock(GranitePlate.setUnlocalizedName("GranitePlate").setRegistryName("granite_pressure_plate").setHardness(0.5F)); + Utils.regBlock(EndPlate.setUnlocalizedName("EndPlate").setRegistryName("end_pressure_plate").setHardness(0.5F)); + Utils.regBlock(sandstonePlate.setUnlocalizedName("SandstonePlate").setRegistryName("sandstone_pressure_plate").setHardness(0.5F)); + Utils.regBlock(redSandstonePlate.setUnlocalizedName("RedSandstonePlate").setRegistryName("red_sandstone_pressure_plate").setHardness(0.5F)); + Utils.regBlock(VoidPlate.setUnlocalizedName("VoidPlate").setRegistryName("void_pressure_plate").setHardness(0.5F)); + + //unbreakable + Utils.regBlock(BedrockPlate.setUnlocalizedName("BedrockPlate").setRegistryName("bedrock_pressure_plate").setHardness(-1F).setResistance(6000000F).setBlockUnbreakable()); + Utils.regBlock(GlowingObsidianPlate.setUnlocalizedName("GlowingObsidianPlate").setRegistryName("glowing_obsidian_pressure_plate").setHardness(51F).setResistance(2000F).setLightLevel(.46666667F)); + + //wooden + Utils.regBlock(AcaciaPlate.setUnlocalizedName("AcaciaPlate").setRegistryName("acacia_pressure_plate").setHardness(0.5F)); + Utils.regBlock(BirchPlate.setUnlocalizedName("BirchPlate").setRegistryName("birch_pressure_plate").setHardness(0.5F)); + Utils.regBlock(CactusPlate.setUnlocalizedName("CactusPlate").setRegistryName("cactus_pressure_plate").setHardness(0.5F)); + Utils.regBlock(DarkOakPlate.setUnlocalizedName("DarkOakPlate").setRegistryName("dark_oak_pressure_plate").setHardness(0.5F)); + Utils.regBlock(JunglePlate.setUnlocalizedName("JunglePlate").setRegistryName("jungle_pressure_plate").setHardness(0.5F)); + Utils.regBlock(SprucePlate.setUnlocalizedName("SprucePlate").setRegistryName("spruce_pressure_plate").setHardness(0.5F)); } + + public static void regRenders() { Utils.regRender(VoidPlate); Utils.regRender(DirtPlate); + Utils.regRender(glassPlate); Utils.regRender(GrassPlate); Utils.regRender(RustyPlate); Utils.regRender(CactusPlate); @@ -93,6 +109,8 @@ public static void regRenders() { Utils.regRender(SilverPlate); Utils.regRender(DiamondPlate); Utils.regRender(EmeraldPlate); + Utils.regRender(sandstonePlate); + Utils.regRender(redSandstonePlate); Utils.regRender(RubyPlate); Utils.regRender(BedrockPlate); Utils.regRender(MossyPlate); @@ -106,4 +124,4 @@ public static void regRenders() { Utils.regRender(JunglePlate); Utils.regRender(SprucePlate); } -} +} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Slabs.java b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Slabs.java index 0f10fb2..d920855 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Slabs.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Slabs.java @@ -1,63 +1,85 @@ package com.NetherNoah.ParadiseMod.init.ModBlocks; import com.NetherNoah.ParadiseMod.Utils; -import com.NetherNoah.ParadiseMod.blocks.slabs.BedrockSlab; -import com.NetherNoah.ParadiseMod.blocks.slabs.CactusSlab; -import com.NetherNoah.ParadiseMod.blocks.slabs.EndSlab; -import com.NetherNoah.ParadiseMod.blocks.slabs.GlowingObsidianSlab; -import com.NetherNoah.ParadiseMod.blocks.slabs.ObsidianSlab; -import com.NetherNoah.ParadiseMod.blocks.slabs.VoidBrickSlab; -import com.NetherNoah.ParadiseMod.blocks.slabs.VoidSlab; -import com.NetherNoah.ParadiseMod.blocks.slabs.double_slabs.BedrockSlabDouble; -import com.NetherNoah.ParadiseMod.blocks.slabs.double_slabs.CactusSlabDouble; -import com.NetherNoah.ParadiseMod.blocks.slabs.double_slabs.EndSlabDouble; -import com.NetherNoah.ParadiseMod.blocks.slabs.double_slabs.GlowingObsidianSlabDouble; -import com.NetherNoah.ParadiseMod.blocks.slabs.double_slabs.ObsidianSlabDouble; -import com.NetherNoah.ParadiseMod.blocks.slabs.double_slabs.VoidBrickSlabDouble; -import com.NetherNoah.ParadiseMod.blocks.slabs.double_slabs.VoidSlabDouble; +import com.NetherNoah.ParadiseMod.blocks.base.CustomSlab; -import net.minecraft.block.BlockSlab; +import net.minecraft.block.material.Material; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemSlab; import net.minecraftforge.fml.common.registry.ForgeRegistries; -public class Slabs { - public static CactusSlab cactus_slab; - public static CactusSlabDouble cactus_slab_double; - - public static BedrockSlab bedrock_slab; - public static BedrockSlabDouble bedrock_slab_double; - - public static EndSlab end_slab; - public static EndSlabDouble end_slab_double; - - public static GlowingObsidianSlab glowing_obsidian_slab; - public static GlowingObsidianSlabDouble glowing_obsidian_slab_double; - - public static ObsidianSlab obsidian_slab; - public static ObsidianSlabDouble obsidian_slab_double; +public class Slabs { + public static CustomSlab bedrock_slab = new CustomSlab(Material.BARRIER, false); + public static CustomSlab bedrock_slab_double = new CustomSlab(Material.BARRIER, true); + + public static CustomSlab cactus_slab = new CustomSlab(Material.WOOD, false); + public static CustomSlab cactus_slab_double = new CustomSlab(Material.WOOD, true); + + public static CustomSlab end_slab = new CustomSlab(Material.ROCK, false); + public static CustomSlab end_slab_double = new CustomSlab(Material.ROCK, true); - public static VoidSlab void_slab; - public static VoidSlabDouble void_slab_double; + public static CustomSlab glowing_obsidian_slab = new CustomSlab(Material.BARRIER, false); + public static CustomSlab glowing_obsidian_slab_double = new CustomSlab(Material.BARRIER, true); - public static VoidBrickSlab void_bricks_slab; - public static VoidBrickSlabDouble void_bricks_slab_double; + public static CustomSlab obsidian_slab = new CustomSlab(Material.BARRIER, false); + public static CustomSlab obsidian_slab_double = new CustomSlab(Material.BARRIER, true); + public static CustomSlab void_bricks_slab = new CustomSlab(Material.ROCK, false); + public static CustomSlab void_bricks_slab_double = new CustomSlab(Material.ROCK, true); + + public static CustomSlab void_slab = new CustomSlab(Material.ROCK, false); + public static CustomSlab void_slab_double = new CustomSlab(Material.ROCK, true); + public static void initAndRegister() { - regSlab(bedrock_slab= new BedrockSlab("bedrock_slab"),bedrock_slab_double=new BedrockSlabDouble()); - regSlab(end_slab=new EndSlab("end_slab"), end_slab_double=new EndSlabDouble()); - regSlab(cactus_slab=new CactusSlab("cactus_slab"),cactus_slab_double=new CactusSlabDouble()); - regSlab(glowing_obsidian_slab=new GlowingObsidianSlab("glowing_obsidian_slab"),glowing_obsidian_slab_double=new GlowingObsidianSlabDouble()); - regSlab(obsidian_slab=new ObsidianSlab("obsidian_slab"),obsidian_slab_double=new ObsidianSlabDouble()); - regSlab(void_slab=new VoidSlab("void_slab"),void_slab_double=new VoidSlabDouble()); - regSlab(void_bricks_slab=new VoidBrickSlab("void_bricks_slab"),void_bricks_slab_double=new VoidBrickSlabDouble()); + bedrock_slab.setUnlocalizedName("bedrock_slab").setRegistryName("bedrock_slab").setHardness(-1F).setResistance(6000000F).setBlockUnbreakable(); + bedrock_slab_double.setRegistryName("double_bedrock_slab").setHardness(-1F).setResistance(6000000F).setBlockUnbreakable(); + bedrock_slab.setItem(bedrock_slab); + bedrock_slab_double.setItem(bedrock_slab); + + cactus_slab.setUnlocalizedName("cactus_slab").setRegistryName("cactus_slab").setHardness(2.5F).setResistance(5F); + cactus_slab_double.setRegistryName("double_cactus_slab").setHardness(2.5F).setResistance(5F); + cactus_slab.setItem(cactus_slab); + cactus_slab_double.setItem(cactus_slab); + + end_slab.setUnlocalizedName("end_slab").setRegistryName("end_slab").setHardness(7.5F).setResistance(15F); + end_slab_double.setRegistryName("double_end_slab").setHardness(7.5F).setResistance(15F); + end_slab.setItem(end_slab); + end_slab_double.setItem(end_slab); + + glowing_obsidian_slab.setUnlocalizedName("glowing_obsidian_slab").setRegistryName("glowing_obsidian_slab").setHardness(51F).setResistance(2000F).setLightLevel(.46666667F).setHarvestLevel("pickaxe", 3); + glowing_obsidian_slab_double.setRegistryName("glowing_obsidian_slab_double").setHardness(51F).setResistance(2000F).setLightLevel(.46666667F).setHarvestLevel("pickaxe", 3); + glowing_obsidian_slab.setItem(glowing_obsidian_slab); + glowing_obsidian_slab_double.setItem(glowing_obsidian_slab); + + obsidian_slab.setUnlocalizedName("obsidian_slab").setRegistryName("obsidian_slab").setHardness(51F).setResistance(2000F).setHarvestLevel("pickaxe", 3); + obsidian_slab_double.setRegistryName("double_obsidian_slab").setHardness(51F).setResistance(2000F).setHarvestLevel("pickaxe", 3); + obsidian_slab_double.setItem(obsidian_slab); + obsidian_slab.setItem(obsidian_slab); + + void_slab.setUnlocalizedName("void_slab").setRegistryName("void_slab").setHardness(5F).setResistance(10F); + void_slab_double.setRegistryName("double_void_slab").setHardness(5F).setResistance(10F); + void_slab.setItem(void_slab); + void_slab_double.setItem(void_slab); + + void_bricks_slab.setUnlocalizedName("void_bricks_slab").setRegistryName("void_bricks_slab").setHardness(5F).setResistance(10F); + void_bricks_slab_double.setRegistryName("double_void_bricks_slab").setHardness(5F).setResistance(10F); + void_bricks_slab.setItem(void_bricks_slab); + void_bricks_slab_double.setItem(void_bricks_slab); + + regSlab(bedrock_slab,bedrock_slab_double); + regSlab(end_slab,end_slab_double); + regSlab(cactus_slab,cactus_slab_double); + regSlab(glowing_obsidian_slab,glowing_obsidian_slab_double); + regSlab(obsidian_slab,obsidian_slab_double); + regSlab(void_slab,void_slab_double); + regSlab(void_bricks_slab,void_bricks_slab_double); } public static void regRenders() { - Utils.regRender(end_slab); + Utils.regRender(bedrock_slab); Utils.regRender(cactus_slab); + Utils.regRender(end_slab); Utils.regRender(glowing_obsidian_slab); - Utils.regRender(bedrock_slab); Utils.regRender(obsidian_slab); Utils.regRender(void_slab); Utils.regRender(void_bricks_slab); @@ -66,11 +88,10 @@ public static void regRenders() { /** *Registers a slab with its double and item */ - public static void regSlab(BlockSlab slab,BlockSlab doubleSlab) { + public static void regSlab(CustomSlab slab,CustomSlab doubleSlab) { ForgeRegistries.BLOCKS.register(doubleSlab); ForgeRegistries.BLOCKS.register(slab); ItemBlock item = new ItemSlab(slab, slab, doubleSlab); - item.setRegistryName(slab.getRegistryName()); - ForgeRegistries.ITEMS.register(item); + ForgeRegistries.ITEMS.register(item.setRegistryName(slab.getRegistryName())); } } diff --git a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Stairs.java b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Stairs.java index d9a2c5e..f78324a 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Stairs.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Stairs.java @@ -1,35 +1,33 @@ package com.NetherNoah.ParadiseMod.init.ModBlocks; import com.NetherNoah.ParadiseMod.Utils; -import com.NetherNoah.ParadiseMod.blocks.stairs.BedrockStairs; -import com.NetherNoah.ParadiseMod.blocks.stairs.CactusStairs; -import com.NetherNoah.ParadiseMod.blocks.stairs.EndStairs; -import com.NetherNoah.ParadiseMod.blocks.stairs.GlowingObsidianStairs; -import com.NetherNoah.ParadiseMod.blocks.stairs.ObsidianStairs; -import com.NetherNoah.ParadiseMod.blocks.stairs.VoidBrickStairs; -import com.NetherNoah.ParadiseMod.blocks.stairs.VoidStairs; +import com.NetherNoah.ParadiseMod.blocks.base.CustomStairs; -import net.minecraft.block.BlockStairs; +import net.minecraft.init.Blocks; public class Stairs { //stairs - public static BlockStairs BedrockStairs; - public static BlockStairs EndStairs; - public static BlockStairs ObsidianStairs; - public static BlockStairs GlowingObsidianStairs; - public static BlockStairs CactusStairs; - public static BlockStairs VoidStairs; - public static BlockStairs VoidBrickStairs; + public static CustomStairs BedrockStairs = new CustomStairs(Blocks.BARRIER); + public static CustomStairs CactusStairs = new CustomStairs(Blocks.PLANKS); + public static CustomStairs EndStairs = new CustomStairs(Blocks.END_STONE); + public static CustomStairs GlowingObsidianStairs = new CustomStairs(Blocks.BARRIER); + public static CustomStairs ObsidianStairs = new CustomStairs(Blocks.BARRIER); + public static CustomStairs VoidStairs = new CustomStairs(Blocks.STONE); + public static CustomStairs VoidBrickStairs = new CustomStairs(Blocks.STONE); public static void initAndRegister() { //stairs - Utils.regBlock(CactusStairs=new CactusStairs()); - Utils.regBlock(EndStairs=new EndStairs()); - Utils.regBlock(BedrockStairs=new BedrockStairs()); - Utils.regBlock(ObsidianStairs=new ObsidianStairs()); - Utils.regBlock(GlowingObsidianStairs=new GlowingObsidianStairs()); - Utils.regBlock(VoidStairs=new VoidStairs()); - Utils.regBlock(VoidBrickStairs=new VoidBrickStairs()); + EndStairs.setHarvestLevel("pickaxe", 0); + GlowingObsidianStairs.setHarvestLevel("pickaxe", 3); + ObsidianStairs.setHarvestLevel("pickaxe", 3); + + Utils.regBlock(BedrockStairs.setUnlocalizedName("BedrockStairs").setRegistryName("bedrock_stairs").setHardness(-1F).setResistance(6000000F)); + Utils.regBlock(CactusStairs.setUnlocalizedName("CactusStairs").setRegistryName("cactus_stairs").setHardness(2F).setResistance(5F)); + Utils.regBlock(EndStairs.setUnlocalizedName("EndStairs").setRegistryName("end_stairs").setHardness(5F).setResistance(15F)); + Utils.regBlock(GlowingObsidianStairs.setUnlocalizedName("GlowingObsidianStairs").setRegistryName("glowing_obsidian_stairs").setHardness(51F).setResistance(2000F)); + Utils.regBlock(ObsidianStairs.setUnlocalizedName("ObsidianStairs").setRegistryName("obsidian_stairs").setHardness(51F).setResistance(2000F)); + Utils.regBlock(VoidStairs.setUnlocalizedName("VoidStairs").setRegistryName("void_stairs").setHardness(5F).setResistance(10F)); + Utils.regBlock(VoidBrickStairs.setUnlocalizedName("VoidBrickStairs").setRegistryName("void_brick_stairs").setHardness(5F).setResistance(10F)); } public static void regRenders() { Utils.regRender(VoidStairs); diff --git a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Tables.java b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Tables.java index 11f3335..ef34e7b 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Tables.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Tables.java @@ -1,40 +1,32 @@ package com.NetherNoah.ParadiseMod.init.ModBlocks; import com.NetherNoah.ParadiseMod.Utils; -import com.NetherNoah.ParadiseMod.CustomBlockCode.CustomWorkBench; -import com.NetherNoah.ParadiseMod.blocks.workbenches.CustomWorkbenchAcacia; -import com.NetherNoah.ParadiseMod.blocks.workbenches.CustomWorkbenchBirch; -import com.NetherNoah.ParadiseMod.blocks.workbenches.CustomWorkbenchCactus; -import com.NetherNoah.ParadiseMod.blocks.workbenches.CustomWorkbenchDarkOak; -import com.NetherNoah.ParadiseMod.blocks.workbenches.CustomWorkbenchJungle; -import com.NetherNoah.ParadiseMod.blocks.workbenches.CustomWorkbenchSpruce; +import com.NetherNoah.ParadiseMod.blocks.base.CustomWorkBench; public class Tables { //crafting tables - public static CustomWorkBench CustomWorkbenchCactus; - public static CustomWorkBench CustomWorkbenchAcacia; - public static CustomWorkBench CustomWorkbenchBirch; - public static CustomWorkBench CustomWorkbenchDarkOak; - public static CustomWorkBench CustomWorkbenchJungle; - public static CustomWorkBench CustomWorkbenchSpruce; + public static CustomWorkBench AcaciaWorkbench = new CustomWorkBench(); + public static CustomWorkBench BirchWorkbench = new CustomWorkBench(); + public static CustomWorkBench CactusWorkbench = new CustomWorkBench(); + public static CustomWorkBench DarkOakWorkbench = new CustomWorkBench(); + public static CustomWorkBench JungleWorkbench = new CustomWorkBench(); + public static CustomWorkBench SpruceWorkbench = new CustomWorkBench(); public static void initAndRegister() { - //crafting tables - Utils.regBlock(CustomWorkbenchCactus=new CustomWorkbenchCactus()); - Utils.regBlock(CustomWorkbenchAcacia = new CustomWorkbenchAcacia()); - Utils.regBlock(CustomWorkbenchBirch = new CustomWorkbenchBirch()); - Utils.regBlock(CustomWorkbenchDarkOak = new CustomWorkbenchDarkOak()); - Utils.regBlock(CustomWorkbenchJungle = new CustomWorkbenchJungle()); - Utils.regBlock(CustomWorkbenchSpruce = new CustomWorkbenchSpruce()); + Utils.regBlock(AcaciaWorkbench.setUnlocalizedName("CustomWorkbenchAcacia").setRegistryName("acacia_crafting_table")); + Utils.regBlock(BirchWorkbench.setUnlocalizedName("CustomWorkbenchBirch").setRegistryName("birch_crafting_table")); + Utils.regBlock(CactusWorkbench.setUnlocalizedName("CustomWorkbenchCactus").setRegistryName("cactus_crafting_table")); + Utils.regBlock(DarkOakWorkbench.setUnlocalizedName("CustomWorkbenchDarkOak").setRegistryName("dark_oak_crafting_table")); + Utils.regBlock(JungleWorkbench.setUnlocalizedName("CustomWorkbenchJungle").setRegistryName("jungle_crafting_table")); + Utils.regBlock(SpruceWorkbench.setUnlocalizedName("CustomWorkbenchSpruce").setRegistryName("spruce_crafting_table")); } public static void regRenders() { - Utils.regRender(CustomWorkbenchCactus); - Utils.regRender(CustomWorkbenchAcacia); - Utils.regRender(CustomWorkbenchBirch); - Utils.regRender(CustomWorkbenchDarkOak); - Utils.regRender(CustomWorkbenchJungle); - Utils.regRender(CustomWorkbenchSpruce); - Utils.regRender(CustomWorkbenchAcacia); + Utils.regRender(CactusWorkbench); + Utils.regRender(AcaciaWorkbench); + Utils.regRender(BirchWorkbench); + Utils.regRender(DarkOakWorkbench); + Utils.regRender(JungleWorkbench); + Utils.regRender(SpruceWorkbench); } } diff --git a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Trapdoors.java b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Trapdoors.java index ff9157c..f471f98 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Trapdoors.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Trapdoors.java @@ -1,93 +1,93 @@ package com.NetherNoah.ParadiseMod.init.ModBlocks; import com.NetherNoah.ParadiseMod.Utils; -import com.NetherNoah.ParadiseMod.CustomBlockCode.RSTrapdoor; -import com.NetherNoah.ParadiseMod.blocks.trapdoors.AndesiteTrapdoor; -import com.NetherNoah.ParadiseMod.blocks.trapdoors.BedrockTrapdoor; -import com.NetherNoah.ParadiseMod.blocks.trapdoors.CactusTrapdoor; -import com.NetherNoah.ParadiseMod.blocks.trapdoors.CobblestoneTrapdoor; -import com.NetherNoah.ParadiseMod.blocks.trapdoors.DiamondTrapdoor; -import com.NetherNoah.ParadiseMod.blocks.trapdoors.DioriteTrapdoor; -import com.NetherNoah.ParadiseMod.blocks.trapdoors.EmeraldTrapdoor; -import com.NetherNoah.ParadiseMod.blocks.trapdoors.EndTrapdoor; -import com.NetherNoah.ParadiseMod.blocks.trapdoors.GlassTrapdoor; -import com.NetherNoah.ParadiseMod.blocks.trapdoors.GlowingObsidianTrapdoor; -import com.NetherNoah.ParadiseMod.blocks.trapdoors.GoldTrapdoor; -import com.NetherNoah.ParadiseMod.blocks.trapdoors.GraniteTrapdoor; -import com.NetherNoah.ParadiseMod.blocks.trapdoors.MossStoneTrapdoor; -import com.NetherNoah.ParadiseMod.blocks.trapdoors.ObsidianTrapdoor; -import com.NetherNoah.ParadiseMod.blocks.trapdoors.RedstoneTrapdoor; -import com.NetherNoah.ParadiseMod.blocks.trapdoors.RubyTrapdoor; -import com.NetherNoah.ParadiseMod.blocks.trapdoors.RustyTrapdoor; -import com.NetherNoah.ParadiseMod.blocks.trapdoors.SilverTrapdoor; -import com.NetherNoah.ParadiseMod.blocks.trapdoors.StoneTrapdoor; +import com.NetherNoah.ParadiseMod.blocks.RedstoneTrapdoor; +import com.NetherNoah.ParadiseMod.blocks.base.CustomTrapDoor; -import net.minecraft.block.BlockTrapDoor; +import net.minecraft.block.Block; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; public class Trapdoors { //trapdoors - public static BlockTrapDoor BlockCactusTrapDoor; - public static BlockTrapDoor BlockEndTrapDoor; - public static BlockTrapDoor BlockSilverTrapDoor; - public static BlockTrapDoor BlockGlassTrapDoor; - public static BlockTrapDoor BlockGoldTrapdoor; - public static BlockTrapDoor BlockDiamondTrapdoor; - public static BlockTrapDoor BlockEmeraldTrapdoor; - public static BlockTrapDoor BlockAndesiteTrapDoor; - public static BlockTrapDoor BlockDioriteTrapdoor; - public static BlockTrapDoor BlockGraniteTrapdoor; - public static BlockTrapDoor BlockStoneTrapdoor; - public static BlockTrapDoor BlockCobblestoneTrapdoor; - public static BlockTrapDoor BlockMossStoneTrapdoor; - public static BlockTrapDoor BlockGlowingObsidianTrapdoor; - public static BlockTrapDoor BlockObsidianTrapdoor; - public static BlockTrapDoor BlockBedrockTrapdoor; - public static BlockTrapDoor BlockRubyTrapdoor; - public static RSTrapdoor BlockRedstoneTrapdoor; - public static BlockTrapDoor RustyTrapdoor; + public static CustomTrapDoor AndesiteTrapDoor = new CustomTrapDoor(Material.IRON, SoundType.STONE, 0); + public static CustomTrapDoor BedrockTrapdoor = new CustomTrapDoor(Material.IRON, SoundType.STONE, 0); + public static CustomTrapDoor CactusTrapDoor = new CustomTrapDoor(Material.WOOD, SoundType.WOOD, 1); + public static CustomTrapDoor CobblestoneTrapdoor = new CustomTrapDoor(Material.IRON, SoundType.STONE, 0); + public static CustomTrapDoor DiamondTrapdoor = new CustomTrapDoor(Material.IRON, SoundType.METAL, 0); + public static CustomTrapDoor DioriteTrapdoor = new CustomTrapDoor(Material.IRON, SoundType.STONE, 0); + public static CustomTrapDoor EmeraldTrapdoor = new CustomTrapDoor(Material.WOOD, SoundType.METAL, 0); + public static CustomTrapDoor EndTrapDoor = new CustomTrapDoor(Material.IRON, SoundType.STONE, 0); + public static CustomTrapDoor GlassTrapDoor = new CustomTrapDoor(Material.WOOD, SoundType.GLASS, 1); + public static CustomTrapDoor GlowingObsidianTrapdoor = new CustomTrapDoor(Material.IRON, SoundType.STONE, 0); + public static CustomTrapDoor GoldTrapdoor = new CustomTrapDoor(Material.IRON, SoundType.METAL, 0); + public static CustomTrapDoor GraniteTrapdoor = new CustomTrapDoor(Material.IRON, SoundType.STONE, 0); + public static CustomTrapDoor MossStoneTrapdoor = new CustomTrapDoor(Material.IRON, SoundType.STONE, 0); + public static CustomTrapDoor ObsidianTrapdoor = new CustomTrapDoor(Material.IRON, SoundType.STONE, 0); + public static Block RedstoneTrapdoor; + public static CustomTrapDoor RubyTrapdoor = new CustomTrapDoor(Material.WOOD, SoundType.METAL, 0); + public static CustomTrapDoor RustyTrapdoor = new CustomTrapDoor(Material.IRON, SoundType.METAL, 0); + public static CustomTrapDoor SilverTrapDoor = new CustomTrapDoor(Material.IRON, SoundType.METAL, 0); + public static CustomTrapDoor StoneTrapdoor = new CustomTrapDoor(Material.IRON, SoundType.STONE, 0); public static void initAndRegister() { - //trapdoors - Utils.regBlock(BlockCactusTrapDoor=new CactusTrapdoor()); - Utils.regBlock(BlockGlowingObsidianTrapdoor=new GlowingObsidianTrapdoor()); - Utils.regBlock(BlockEndTrapDoor=new EndTrapdoor()); - Utils.regBlock(BlockSilverTrapDoor = new SilverTrapdoor()); - Utils.regBlock(BlockGlassTrapDoor = new GlassTrapdoor()); - Utils.regBlock(BlockGoldTrapdoor = new GoldTrapdoor()); - Utils.regBlock(BlockDiamondTrapdoor = new DiamondTrapdoor()); - Utils.regBlock(BlockEmeraldTrapdoor = new EmeraldTrapdoor()); - Utils.regBlock(BlockAndesiteTrapDoor = new AndesiteTrapdoor()); - Utils.regBlock(BlockDioriteTrapdoor = new DioriteTrapdoor()); - Utils.regBlock(BlockGraniteTrapdoor = new GraniteTrapdoor()); - Utils.regBlock(BlockStoneTrapdoor = new StoneTrapdoor()); - Utils.regBlock(BlockCobblestoneTrapdoor = new CobblestoneTrapdoor()); - Utils.regBlock(BlockMossStoneTrapdoor = new MossStoneTrapdoor()); - Utils.regBlock(BlockObsidianTrapdoor = new ObsidianTrapdoor()); - Utils.regBlock(BlockBedrockTrapdoor = new BedrockTrapdoor()); - Utils.regBlock(BlockRubyTrapdoor = new RubyTrapdoor()); - Utils.regBlock(BlockRedstoneTrapdoor = new RedstoneTrapdoor()); - Utils.regBlock(RustyTrapdoor=new RustyTrapdoor()); + AndesiteTrapDoor.setHarvestLevel("pickaxe", 0); + CobblestoneTrapdoor.setHarvestLevel("pickaxe", 0); + DiamondTrapdoor.setHarvestLevel("pickaxe", 2); + DioriteTrapdoor.setHarvestLevel("pickaxe", 0); + EmeraldTrapdoor.setHarvestLevel("pickaxe", 2); + EndTrapDoor.setHarvestLevel("pickaxe", 0); + GlowingObsidianTrapdoor.setHarvestLevel("pickaxe", 3); + GoldTrapdoor.setHarvestLevel("pickaxe", 2); + GraniteTrapdoor.setHarvestLevel("pickaxe", 0); + MossStoneTrapdoor.setHarvestLevel("pickaxe", 0); + ObsidianTrapdoor.setHarvestLevel("pickaxe", 3); + RubyTrapdoor.setHarvestLevel("pickaxe", 2); + RustyTrapdoor.setHarvestLevel("pickaxe",1); + SilverTrapDoor.setHarvestLevel("pickaxe", 2); + StoneTrapdoor.setHarvestLevel("pickaxe", 0); + + Utils.regBlock(AndesiteTrapDoor.setUnlocalizedName("AndesiteTrapdoor").setRegistryName("andesite_trapdoor").setHardness(5F).setResistance(10F)); + Utils.regBlock(BedrockTrapdoor.setUnlocalizedName("BedrockTrapdoor").setRegistryName("bedrock_trapdoor").setHardness(-1F).setResistance(6000000F).setBlockUnbreakable()); + Utils.regBlock(CactusTrapDoor.setUnlocalizedName("CactusTrapdoor").setRegistryName("cactus_trapdoor").setHardness(2F).setResistance(5F)); + Utils.regBlock(CobblestoneTrapdoor.setUnlocalizedName("CobblestoneTrapdoor").setRegistryName("cobblestone_trapdoor").setHardness(5F).setResistance(10F)); + Utils.regBlock(DiamondTrapdoor.setUnlocalizedName("DiamondTrapdoor").setRegistryName("diamond_trapdoor").setHardness(5F).setResistance(10F)); + Utils.regBlock(DioriteTrapdoor.setUnlocalizedName("DioriteTrapdoor").setRegistryName("diorite_trapdoor").setHardness(5F).setResistance(10F)); + Utils.regBlock(EmeraldTrapdoor.setUnlocalizedName("EmeraldTrapdoor").setRegistryName("emerald_trapdoor").setHardness(5F).setResistance(10F)); + Utils.regBlock(EndTrapDoor.setUnlocalizedName("EndTrapdoor").setRegistryName("end_trapdoor").setHardness(5F).setResistance(15F)); + Utils.regBlock(GlassTrapDoor.setUnlocalizedName("GlassTrapdoor").setRegistryName("glass_trapdoor").setHardness(.5F).setResistance(1F)); + Utils.regBlock(GlowingObsidianTrapdoor.setUnlocalizedName("GlowingObsidianTrapdoor").setRegistryName("glowing_obsidian_trapdoor").setHardness(51F).setResistance(2000F).setLightLevel(.46666667F)); + Utils.regBlock(GoldTrapdoor.setUnlocalizedName("GoldTrapdoor").setRegistryName("gold_trapdoor").setHardness(5F).setResistance(10F)); + Utils.regBlock(GraniteTrapdoor.setUnlocalizedName("GraniteTrapdoor").setRegistryName("granite_trapdoor").setHardness(5F).setResistance(10F)); + Utils.regBlock(MossStoneTrapdoor.setUnlocalizedName("MossStoneTrapdoor").setRegistryName("moss_stone_trapdoor").setHardness(5F).setResistance(10F)); + Utils.regBlock(ObsidianTrapdoor.setUnlocalizedName("ObsidianTrapdoor").setRegistryName("obsidian_trapdoor").setHardness(51F).setResistance(2000F)); + Utils.regBlock(RedstoneTrapdoor = new RedstoneTrapdoor()); + Utils.regBlock(RubyTrapdoor.setUnlocalizedName("RubyTrapdoor").setRegistryName("ruby_trapdoor").setHardness(5F).setResistance(10F)); + Utils.regBlock(RustyTrapdoor.setUnlocalizedName("RustyTrapdoor").setRegistryName("rusty_trapdoor").setHardness(5F).setResistance(10F)); + Utils.regBlock(SilverTrapDoor.setUnlocalizedName("SilverTrapdoor").setRegistryName("silver_trapdoor").setHardness(5F).setResistance(10F)); + Utils.regBlock(StoneTrapdoor.setUnlocalizedName("StoneTrapdoor").setRegistryName("stone_trapdoor").setHardness(5F).setResistance(10F)); } + public static void regRenders() { Utils.regRender(RustyTrapdoor); - Utils.regRender(BlockCactusTrapDoor); - Utils.regRender(BlockGlowingObsidianTrapdoor); - Utils.regRender(BlockEndTrapDoor); - Utils.regRender(BlockSilverTrapDoor); - Utils.regRender(BlockGlassTrapDoor); - Utils.regRender(BlockGoldTrapdoor); - Utils.regRender(BlockDiamondTrapdoor); - Utils.regRender(BlockEmeraldTrapdoor); - Utils.regRender(BlockAndesiteTrapDoor); - Utils.regRender(BlockDioriteTrapdoor); - Utils.regRender(BlockGraniteTrapdoor); - Utils.regRender(BlockStoneTrapdoor); - Utils.regRender(BlockCobblestoneTrapdoor); - Utils.regRender(BlockMossStoneTrapdoor); - Utils.regRender(BlockObsidianTrapdoor); - Utils.regRender(BlockBedrockTrapdoor); - Utils.regRender(BlockRubyTrapdoor); - Utils.regRender(BlockRedstoneTrapdoor); + Utils.regRender(CactusTrapDoor); + Utils.regRender(GlowingObsidianTrapdoor); + Utils.regRender(EndTrapDoor); + Utils.regRender(SilverTrapDoor); + Utils.regRender(GlassTrapDoor); + Utils.regRender(GoldTrapdoor); + Utils.regRender(DiamondTrapdoor); + Utils.regRender(EmeraldTrapdoor); + Utils.regRender(AndesiteTrapDoor); + Utils.regRender(DioriteTrapdoor); + Utils.regRender(GraniteTrapdoor); + Utils.regRender(StoneTrapdoor); + Utils.regRender(CobblestoneTrapdoor); + Utils.regRender(MossStoneTrapdoor); + Utils.regRender(ObsidianTrapdoor); + Utils.regRender(BedrockTrapdoor); + Utils.regRender(RubyTrapdoor); + Utils.regRender(RedstoneTrapdoor); } -} +} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Walls.java b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Walls.java index d3774ca..4854c14 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Walls.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/init/ModBlocks/Walls.java @@ -1,29 +1,27 @@ package com.NetherNoah.ParadiseMod.init.ModBlocks; import com.NetherNoah.ParadiseMod.Utils; -import com.NetherNoah.ParadiseMod.CustomBlockCode.CustomWall; -import com.NetherNoah.ParadiseMod.blocks.fences.BedrockWall; -import com.NetherNoah.ParadiseMod.blocks.fences.EndWall; -import com.NetherNoah.ParadiseMod.blocks.fences.GlowingObsidianWall; -import com.NetherNoah.ParadiseMod.blocks.fences.ObsidianWall; -import com.NetherNoah.ParadiseMod.blocks.fences.VoidWall; +import com.NetherNoah.ParadiseMod.blocks.base.CustomWall; + +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; public class Walls { //walls - public static CustomWall BedrockWall; - public static CustomWall GlowingObsidianWall; - public static CustomWall ObsidianWall; - public static CustomWall EndWall; - public static CustomWall VoidWall; + public static CustomWall BedrockWall = new CustomWall(Material.BARRIER); + public static CustomWall GlowingObsidianWall = new CustomWall(Material.ROCK); + public static CustomWall ObsidianWall = new CustomWall(Material.ROCK); + public static CustomWall EndWall = new CustomWall(Material.ROCK); + public static CustomWall VoidWall = new CustomWall(Material.ROCK); public static void initAndRegister() { //walls - Utils.regBlock(VoidWall=new VoidWall()); - Utils.regBlock(GlowingObsidianWall=new GlowingObsidianWall()); - Utils.regBlock(BedrockWall = new BedrockWall()); - Utils.regBlock(ObsidianWall = new ObsidianWall()); - Utils.regBlock(EndWall=new EndWall()); + Utils.regBlock(BedrockWall.setUnlocalizedName("BedrockWall").setRegistryName("bedrock_wall").setHardness(-1F).setResistance(6000000F).setBlockUnbreakable()); + Utils.regBlock(EndWall.setRegistryName("end_wall").setUnlocalizedName("EndWall").setHardness(5F).setResistance(15F)); + Utils.regBlock(GlowingObsidianWall.setRegistryName("glowing_obsidian_wall").setUnlocalizedName("GlowingObsidianWall").setCreativeTab(CreativeTabs.DECORATIONS).setHardness(51F).setResistance(2000F).setLightLevel(.46666667F)); + Utils.regBlock(ObsidianWall.setRegistryName("obsidian_wall").setUnlocalizedName("ObsidianWall").setHardness(51F).setResistance(2000F)); + Utils.regBlock(VoidWall.setUnlocalizedName("VoidWall").setRegistryName("void_wall").setHardness(5F).setResistance(10F)); } public static void regRenders() { Utils.regRender(VoidWall); diff --git a/src/main/java/com/NetherNoah/ParadiseMod/init/ModItems/Armor.java b/src/main/java/com/NetherNoah/ParadiseMod/init/ModItems/Armor.java index cdf8dad..ff7ff22 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/init/ModItems/Armor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/init/ModItems/Armor.java @@ -19,31 +19,37 @@ public class Armor { public static ItemArmor santaJacket; public static ItemArmor santaPants; public static ItemArmor santaBoots; + //silver public static ItemArmor silverHelmet; public static ItemArmor silverChestplate; public static ItemArmor silverLeggings; public static ItemArmor silverBoots; + //rusty iron public static ItemArmor rustyHelmet; public static ItemArmor rustyChestplate; public static ItemArmor rustyLeggings; public static ItemArmor rustyBoots; + // emerald public static ItemArmor emeraldHelmet; public static ItemArmor emeraldChestplate; public static ItemArmor emeraldLeggings; public static ItemArmor emeraldBoots; + // ruby public static ItemArmor rubyHelmet; public static ItemArmor rubyChestplate; public static ItemArmor rubyLeggings; public static ItemArmor rubyBoots; + // redstone public static ItemArmor redstoneHelmet; public static ItemArmor redstoneChestplate; public static ItemArmor redstoneLeggings; public static ItemArmor redstoneBoots; + // obsidian public static ItemArmor obsidianHelmet; public static ItemArmor obsidianChestplate; diff --git a/src/main/java/com/NetherNoah/ParadiseMod/init/ModItems/DoorItems.java b/src/main/java/com/NetherNoah/ParadiseMod/init/ModItems/DoorItems.java index e7d6aa7..60e866d 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/init/ModItems/DoorItems.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/init/ModItems/DoorItems.java @@ -20,71 +20,73 @@ import com.NetherNoah.ParadiseMod.items.doors.ItemRustyDoor; import com.NetherNoah.ParadiseMod.items.doors.ItemSilverDoor; import com.NetherNoah.ParadiseMod.items.doors.ItemStoneDoor; + +import net.minecraft.item.Item; import net.minecraft.item.ItemDoor; public class DoorItems { // doors - public static ItemDoor ItemCactusDoor; - public static ItemDoor ItemEndDoor; - public static ItemDoor ItemSilverDoor; - public static ItemDoor ItemGlassDoor; - public static ItemDoor ItemGoldDoor; - public static ItemDoor ItemDiamondDoor; - public static ItemDoor ItemEmeraldDoor; - public static ItemDoor ItemAndesiteDoor; - public static ItemDoor ItemDioriteDoor; - public static ItemDoor ItemGraniteDoor; - public static ItemDoor ItemStoneDoor; - public static ItemDoor ItemCobblestoneDoor; - public static ItemDoor ItemMossStoneDoor; - public static ItemDoor ItemGlowingObsidianDoor; - public static ItemDoor ItemObsidianDoor; - public static ItemDoor ItemBedrockDoor; - public static ItemDoor ItemRubyDoor; - public static ItemDoor ItemRedstoneDoor; - public static ItemDoor ItemRustyDoor; + public static ItemDoor AndesiteDoor; + public static ItemDoor BedrockDoor; + public static ItemDoor CactusDoor; + public static ItemDoor CobblestoneDoor; + public static ItemDoor DiamondDoor; + public static ItemDoor DioriteDoor; + public static ItemDoor EmeraldDoor; + public static ItemDoor EndDoor; + public static ItemDoor GlassDoor; + public static ItemDoor GlowingObsidianDoor; + public static ItemDoor GoldDoor; + public static ItemDoor GraniteDoor; + public static ItemDoor MossStoneDoor; + public static ItemDoor ObsidianDoor; + public static Item RedstoneDoor; + public static ItemDoor RubyDoor; + public static ItemDoor RustyDoor; + public static ItemDoor SilverDoor; + public static ItemDoor StoneDoor; public static void initAndRegister() { - Utils.regItem(ItemRustyDoor=new ItemRustyDoor()); - Utils.regItem(ItemCactusDoor=new ItemCactusDoor()); - Utils.regItem(ItemGlowingObsidianDoor=new ItemGlowingObsidianDoor()); - Utils.regItem(ItemEndDoor=new ItemEndDoor()); - Utils.regItem(ItemSilverDoor=new ItemSilverDoor()); - Utils.regItem(ItemGlassDoor = new ItemGlassDoor()); - Utils.regItem(ItemGoldDoor = new ItemGoldDoor()); - Utils.regItem(ItemDiamondDoor = new ItemDiamondDoor()); - Utils.regItem(ItemEmeraldDoor = new ItemEmeraldDoor()); - Utils.regItem(ItemAndesiteDoor = new ItemAndesiteDoor()); - Utils.regItem(ItemDioriteDoor = new ItemDioriteDoor()); - Utils.regItem(ItemGraniteDoor = new ItemGraniteDoor()); - Utils.regItem(ItemStoneDoor = new ItemStoneDoor()); - Utils.regItem(ItemCobblestoneDoor = new ItemCobblestoneDoor()); - Utils.regItem(ItemMossStoneDoor = new ItemMossStoneDoor()); - Utils.regItem(ItemObsidianDoor = new ItemObsidianDoor()); - Utils.regItem(ItemBedrockDoor = new ItemBedrockDoor()); - Utils.regItem(ItemRubyDoor = new ItemRubyDoor()); - Utils.regItem(ItemRedstoneDoor = new ItemRedstoneDoor()); + Utils.regItem(AndesiteDoor = new ItemAndesiteDoor()); + Utils.regItem(BedrockDoor = new ItemBedrockDoor()); + Utils.regItem(CactusDoor = new ItemCactusDoor()); + Utils.regItem(CobblestoneDoor = new ItemCobblestoneDoor()); + Utils.regItem(DiamondDoor = new ItemDiamondDoor()); + Utils.regItem(DioriteDoor = new ItemDioriteDoor()); + Utils.regItem(EmeraldDoor = new ItemEmeraldDoor()); + Utils.regItem(EndDoor = new ItemEndDoor()); + Utils.regItem(GlassDoor = new ItemGlassDoor()); + Utils.regItem(GlowingObsidianDoor = new ItemGlowingObsidianDoor()); + Utils.regItem(GoldDoor = new ItemGoldDoor()); + Utils.regItem(GraniteDoor = new ItemGraniteDoor()); + Utils.regItem(MossStoneDoor = new ItemMossStoneDoor()); + Utils.regItem(ObsidianDoor = new ItemObsidianDoor()); + Utils.regItem(RedstoneDoor = new ItemRedstoneDoor()); + Utils.regItem(RubyDoor = new ItemRubyDoor()); + Utils.regItem(RustyDoor = new ItemRustyDoor()); + Utils.regItem(SilverDoor = new ItemSilverDoor()); + Utils.regItem(StoneDoor = new ItemStoneDoor()); } public static void regRenders() { - Utils.regRender(ItemRustyDoor); - Utils.regRender(ItemGlowingObsidianDoor); - Utils.regRender(ItemEndDoor); - Utils.regRender(ItemCactusDoor); - Utils.regRender(ItemSilverDoor); - Utils.regRender(ItemGlassDoor); - Utils.regRender(ItemGoldDoor); - Utils.regRender(ItemDiamondDoor); - Utils.regRender(ItemEmeraldDoor); - Utils.regRender(ItemAndesiteDoor); - Utils.regRender(ItemDioriteDoor); - Utils.regRender(ItemGraniteDoor); - Utils.regRender(ItemStoneDoor); - Utils.regRender(ItemCobblestoneDoor); - Utils.regRender(ItemMossStoneDoor); - Utils.regRender(ItemObsidianDoor); - Utils.regRender(ItemBedrockDoor); - Utils.regRender(ItemRubyDoor); - Utils.regRender(ItemRedstoneDoor); + Utils.regRender(RustyDoor); + Utils.regRender(GlowingObsidianDoor); + Utils.regRender(EndDoor); + Utils.regRender(CactusDoor); + Utils.regRender(SilverDoor); + Utils.regRender(GlassDoor); + Utils.regRender(GoldDoor); + Utils.regRender(DiamondDoor); + Utils.regRender(EmeraldDoor); + Utils.regRender(AndesiteDoor); + Utils.regRender(DioriteDoor); + Utils.regRender(GraniteDoor); + Utils.regRender(StoneDoor); + Utils.regRender(CobblestoneDoor); + Utils.regRender(MossStoneDoor); + Utils.regRender(ObsidianDoor); + Utils.regRender(BedrockDoor); + Utils.regRender(RubyDoor); + Utils.regRender(RedstoneDoor); } } diff --git a/src/main/java/com/NetherNoah/ParadiseMod/init/ModItems/MiscItems.java b/src/main/java/com/NetherNoah/ParadiseMod/init/ModItems/MiscItems.java index 8fbd458..87dd48a 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/init/ModItems/MiscItems.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/init/ModItems/MiscItems.java @@ -1,65 +1,53 @@ package com.NetherNoah.ParadiseMod.init.ModItems; import com.NetherNoah.ParadiseMod.Utils; -import com.NetherNoah.ParadiseMod.items.CactusStick; -import com.NetherNoah.ParadiseMod.items.CookedEgg; -import com.NetherNoah.ParadiseMod.items.DyeBlack; -import com.NetherNoah.ParadiseMod.items.DyeBlue; -import com.NetherNoah.ParadiseMod.items.DyeBrown; -import com.NetherNoah.ParadiseMod.items.ItemRuby; -import com.NetherNoah.ParadiseMod.items.RustyIngot; -import com.NetherNoah.ParadiseMod.items.RustyNugget; -import com.NetherNoah.ParadiseMod.items.Salt; -import com.NetherNoah.ParadiseMod.items.SilverIngot; -import com.NetherNoah.ParadiseMod.items.SilverNugget; -import com.NetherNoah.ParadiseMod.items.VoidPearl; +import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; -import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemEnderPearl; import net.minecraft.item.ItemFood; public class MiscItems { - public static Item DyeBlue; - public static Item DyeBlack; - public static Item DyeBrown; - public static Item salt; - public static Item CactusStick; - public static ItemBlock ObsidianWall; - public static Item SilverNugget; - public static Item Ruby; - public static Item SilverIngot; - public static Item RustyIngot; - public static Item RustyNugget; - public static Item VoidPearl; - public static ItemFood CookedEgg; + public static Item BlackDye = new Item(); + public static Item BlueDye = new Item(); + public static Item BrownDye = new Item(); + public static Item CactusStick = new Item(); + public static ItemFood CookedEgg = new ItemFood(12, true); + public static Item Ruby = new Item(); + public static Item RustyIngot = new Item(); + public static Item RustyNugget = new Item(); + public static Item salt = new Item(); + public static Item SilverIngot = new Item(); + public static Item SilverNugget = new Item(); + public static Item VoidPearl=new ItemEnderPearl(); public static void initAndRegister() { - Utils.regItem(CookedEgg=new CookedEgg()); - Utils.regItem(VoidPearl=new VoidPearl()); - Utils.regItem(DyeBrown=new DyeBrown()); - Utils.regItem(DyeBlack=new DyeBlack()); - Utils.regItem(DyeBlue=new DyeBlue()); - Utils.regItem(RustyNugget=new RustyNugget()); - Utils.regItem(RustyIngot=new RustyIngot()); - Utils.regItem(salt=new Salt()); - Utils.regItem(CactusStick=new CactusStick()); - Utils.regItem(SilverNugget=new SilverNugget()); - Utils.regItem(Ruby = new ItemRuby()); - Utils.regItem(SilverIngot=new SilverIngot()); + Utils.regItem(BlackDye.setUnlocalizedName("DyeBlack").setRegistryName("black_dye").setCreativeTab(CreativeTabs.MISC)); + Utils.regItem(BlueDye.setUnlocalizedName("DyeBlue").setRegistryName("blue_dye").setCreativeTab(CreativeTabs.MISC)); + Utils.regItem(BrownDye.setUnlocalizedName("DyeBrown").setRegistryName("brown_dye").setCreativeTab(CreativeTabs.MISC)); + Utils.regItem(CactusStick.setUnlocalizedName("CactusStick").setRegistryName("cactus_stick").setCreativeTab(CreativeTabs.MISC)); + Utils.regItem(CookedEgg.setUnlocalizedName("EggCooked").setRegistryName("cooked_egg")); + Utils.regItem(Ruby.setUnlocalizedName("Ruby").setRegistryName("ruby").setCreativeTab(CreativeTabs.MISC)); + Utils.regItem(RustyIngot.setUnlocalizedName("RustyIngot").setRegistryName("rusty_ingot").setCreativeTab(CreativeTabs.MISC)); + Utils.regItem(RustyNugget.setUnlocalizedName("RustyNugget").setRegistryName("rusty_nugget").setCreativeTab(CreativeTabs.MISC)); + Utils.regItem(salt.setUnlocalizedName("salt").setRegistryName("salt").setCreativeTab(CreativeTabs.MISC)); + Utils.regItem(SilverIngot.setUnlocalizedName("SilverIngot").setRegistryName("silver_ingot").setCreativeTab(CreativeTabs.MISC)); + Utils.regItem(SilverNugget.setUnlocalizedName("SilverNugget").setRegistryName("silver_nugget").setCreativeTab(CreativeTabs.MISC)); + Utils.regItem(VoidPearl.setUnlocalizedName("VoidPearl").setRegistryName("void_pearl").setCreativeTab(CreativeTabs.MISC)); } public static void regRenders() { - Utils.regRender(CookedEgg); - Utils.regRender(VoidPearl); - Utils.regRender(DyeBrown); - Utils.regRender(DyeBlack); - Utils.regRender(DyeBlue); - Utils.regRender(salt); - Utils.regRender(RustyIngot); + Utils.regRender(BlackDye); + Utils.regRender(BlueDye); + Utils.regRender(BrownDye); Utils.regRender(CactusStick); - Utils.regRender(SilverNugget); + Utils.regRender(CookedEgg); Utils.regRender(Ruby); + Utils.regRender(RustyIngot); Utils.regRender(RustyNugget); + Utils.regRender(salt); Utils.regRender(SilverIngot); + Utils.regRender(SilverNugget); + Utils.regRender(VoidPearl); } -} +} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/init/ModSmelting.java b/src/main/java/com/NetherNoah/ParadiseMod/init/ModSmelting.java index 9953d24..dcb59be 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/init/ModSmelting.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/init/ModSmelting.java @@ -49,16 +49,6 @@ public static void register() { GameRegistry.addSmelting(Tools.silverSpade, new ItemStack(MiscItems.SilverNugget),5F); GameRegistry.addSmelting(Tools.silverPickaxe, new ItemStack(MiscItems.SilverNugget),5F); GameRegistry.addSmelting(Tools.silverHoe, new ItemStack(MiscItems.SilverNugget),5F); - GameRegistry.addSmelting(Tools.silverSword, new ItemStack(MiscItems.SilverNugget),5F); - - //golden hopper can be smelted for a gold nugget just like other gold items in vanilla minecraft - GameRegistry.addSmelting(Misc.GoldHopper, new ItemStack(Items.GOLD_NUGGET), .01F); - - //same with golden doors, trapdoors, and fences - GameRegistry.addSmelting(DoorItems.ItemGoldDoor, new ItemStack(Items.GOLD_NUGGET), .01F); - GameRegistry.addSmelting(Trapdoors.BlockGoldTrapdoor, new ItemStack(Items.GOLD_NUGGET), .01F); - GameRegistry.addSmelting(Fences.BlockGoldFence, new ItemStack(Items.GOLD_NUGGET), .01F); - GameRegistry.addSmelting(Gates.BlockGoldFenceGate, new ItemStack(Items.GOLD_NUGGET), .01F); //soul glass GameRegistry.addSmelting(Blocks.SOUL_SAND, new ItemStack(Misc.soulGlass), .01F); diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/CactusStick.java b/src/main/java/com/NetherNoah/ParadiseMod/items/CactusStick.java deleted file mode 100644 index 0fb57d6..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/CactusStick.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.NetherNoah.ParadiseMod.items; - -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; - -public class CactusStick extends Item { - public CactusStick() { - setUnlocalizedName("CactusStick"); - setRegistryName("cactus_stick"); - setCreativeTab(CreativeTabs.MISC); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/CookedEgg.java b/src/main/java/com/NetherNoah/ParadiseMod/items/CookedEgg.java deleted file mode 100644 index 6f2d51a..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/CookedEgg.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.NetherNoah.ParadiseMod.items; - -import net.minecraft.item.ItemFood; - -public class CookedEgg extends ItemFood{ - - public CookedEgg() { - super(12, true); - setUnlocalizedName("EggCooked"); - setRegistryName("cooked_egg"); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/DyeBlack.java b/src/main/java/com/NetherNoah/ParadiseMod/items/DyeBlack.java deleted file mode 100644 index 243853a..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/DyeBlack.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.NetherNoah.ParadiseMod.items; - -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; - -public class DyeBlack extends Item { - public DyeBlack() { - setUnlocalizedName("DyeBlack"); - setRegistryName("black_dye"); - setCreativeTab(CreativeTabs.MISC); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/DyeBlue.java b/src/main/java/com/NetherNoah/ParadiseMod/items/DyeBlue.java deleted file mode 100644 index c27e359..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/DyeBlue.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.NetherNoah.ParadiseMod.items; - -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; - -public class DyeBlue extends Item { - public DyeBlue() { - setUnlocalizedName("DyeBlue"); - setRegistryName("blue_dye"); - setCreativeTab(CreativeTabs.MISC); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/DyeBrown.java b/src/main/java/com/NetherNoah/ParadiseMod/items/DyeBrown.java deleted file mode 100644 index e2999e0..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/DyeBrown.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.NetherNoah.ParadiseMod.items; - -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; - -public class DyeBrown extends Item { - public DyeBrown() { - setUnlocalizedName("DyeBrown"); - setRegistryName("brown_dye"); - setCreativeTab(CreativeTabs.MISC); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/ItemRuby.java b/src/main/java/com/NetherNoah/ParadiseMod/items/ItemRuby.java deleted file mode 100644 index 9b4f50c..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/ItemRuby.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.NetherNoah.ParadiseMod.items; - -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; - -public class ItemRuby extends Item { - public ItemRuby() { - setUnlocalizedName("Ruby"); - setRegistryName("ruby"); - setCreativeTab(CreativeTabs.MISC); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/RustyIngot.java b/src/main/java/com/NetherNoah/ParadiseMod/items/RustyIngot.java deleted file mode 100644 index 24ab779..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/RustyIngot.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.NetherNoah.ParadiseMod.items; - -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; - -public class RustyIngot extends Item { - public RustyIngot() { - setUnlocalizedName("RustyIngot"); - setRegistryName("rusty_ingot"); - setCreativeTab(CreativeTabs.MISC); - } -} diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/RustyNugget.java b/src/main/java/com/NetherNoah/ParadiseMod/items/RustyNugget.java deleted file mode 100644 index 4d021e8..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/RustyNugget.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.NetherNoah.ParadiseMod.items; - -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; - -public class RustyNugget extends Item { - public RustyNugget() { - setUnlocalizedName("RustyNugget"); - setRegistryName("rusty_nugget"); - setCreativeTab(CreativeTabs.MISC); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/Salt.java b/src/main/java/com/NetherNoah/ParadiseMod/items/Salt.java deleted file mode 100644 index 531f286..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/Salt.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.NetherNoah.ParadiseMod.items; - -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; - -public class Salt extends Item { - public Salt() { - setUnlocalizedName("salt"); - setRegistryName("salt"); - setCreativeTab(CreativeTabs.MISC); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/SilverIngot.java b/src/main/java/com/NetherNoah/ParadiseMod/items/SilverIngot.java deleted file mode 100644 index c89a434..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/SilverIngot.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.NetherNoah.ParadiseMod.items; - -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; - -public class SilverIngot extends Item { - public SilverIngot() { - setUnlocalizedName("SilverIngot"); - setRegistryName("silver_ingot"); - setCreativeTab(CreativeTabs.MISC); - } -} diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/SilverNugget.java b/src/main/java/com/NetherNoah/ParadiseMod/items/SilverNugget.java deleted file mode 100644 index b7c2c63..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/SilverNugget.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.NetherNoah.ParadiseMod.items; - -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; - -public class SilverNugget extends Item { - public SilverNugget() { - setUnlocalizedName("SilverNugget"); - setRegistryName("silver_nugget"); - setCreativeTab(CreativeTabs.MISC); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/VoidPearl.java b/src/main/java/com/NetherNoah/ParadiseMod/items/VoidPearl.java deleted file mode 100644 index 3a32537..0000000 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/VoidPearl.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.NetherNoah.ParadiseMod.items; - -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.ItemEnderPearl; - -public class VoidPearl extends ItemEnderPearl { - public VoidPearl() { - setUnlocalizedName("VoidPearl"); - setRegistryName("void_pearl"); - setCreativeTab(CreativeTabs.MISC); - } -} \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemAndesiteDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemAndesiteDoor.java index fde9469..51978d0 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemAndesiteDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemAndesiteDoor.java @@ -2,12 +2,13 @@ import com.NetherNoah.ParadiseMod.init.ModBlocks.Doors; +import net.minecraft.block.Block; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.ItemDoor; public class ItemAndesiteDoor extends ItemDoor { public ItemAndesiteDoor() { - super(Doors.BlockAndesiteDoor); + super(Doors.AndesiteDoor); setUnlocalizedName("ItemAndesiteDoor"); setRegistryName("andesite_door"); setCreativeTab(CreativeTabs.REDSTONE); diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemBedrockDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemBedrockDoor.java index 43fdc14..fbfd784 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemBedrockDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemBedrockDoor.java @@ -7,7 +7,7 @@ public class ItemBedrockDoor extends ItemDoor { public ItemBedrockDoor() { - super(Doors.BlockBedrockDoor); + super(Doors.BedrockDoor); setUnlocalizedName("ItemBedrockDoor"); setRegistryName("bedrock_door"); setCreativeTab(CreativeTabs.REDSTONE); diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemCactusDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemCactusDoor.java index 52feb4f..0b397eb 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemCactusDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemCactusDoor.java @@ -7,7 +7,7 @@ public class ItemCactusDoor extends ItemDoor { public ItemCactusDoor() { - super(Doors.BlockCactusDoor); + super(Doors.CactusDoor); setUnlocalizedName("ItemCactusDoor"); setRegistryName("cactus_door"); setCreativeTab(CreativeTabs.REDSTONE); diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemCobblestoneDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemCobblestoneDoor.java index 5a2412f..f846f78 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemCobblestoneDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemCobblestoneDoor.java @@ -7,7 +7,7 @@ public class ItemCobblestoneDoor extends ItemDoor { public ItemCobblestoneDoor() { - super(Doors.BlockCobblestoneDoor); + super(Doors.CobblestoneDoor); setUnlocalizedName("ItemCobblestoneDoor"); setRegistryName("cobblestone_door"); setCreativeTab(CreativeTabs.REDSTONE); diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemDiamondDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemDiamondDoor.java index 1320d64..49fec40 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemDiamondDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemDiamondDoor.java @@ -7,7 +7,7 @@ public class ItemDiamondDoor extends ItemDoor { public ItemDiamondDoor() { - super(Doors.BlockDiamondDoor); + super(Doors.DiamondDoor); setUnlocalizedName("ItemDiamondDoor"); setRegistryName("diamond_door"); setCreativeTab(CreativeTabs.REDSTONE); diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemDioriteDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemDioriteDoor.java index 1eb7417..247101a 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemDioriteDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemDioriteDoor.java @@ -7,7 +7,7 @@ public class ItemDioriteDoor extends ItemDoor { public ItemDioriteDoor() { - super(Doors.BlockDioriteDoor); + super(Doors.DioriteDoor); setUnlocalizedName("ItemDioriteDoor"); setRegistryName("diorite_door"); setCreativeTab(CreativeTabs.REDSTONE); diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemEmeraldDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemEmeraldDoor.java index f8f279e..afcd811 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemEmeraldDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemEmeraldDoor.java @@ -7,7 +7,7 @@ public class ItemEmeraldDoor extends ItemDoor { public ItemEmeraldDoor() { - super(Doors.BlockEmeraldDoor); + super(Doors.EmeraldDoor); setUnlocalizedName("ItemEmeraldDoor"); setRegistryName("emerald_door"); setCreativeTab(CreativeTabs.REDSTONE); diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemEndDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemEndDoor.java index d74ecd2..6c55ab3 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemEndDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemEndDoor.java @@ -7,7 +7,7 @@ public class ItemEndDoor extends ItemDoor { public ItemEndDoor() { - super(Doors.BlockEndDoor); + super(Doors.EndDoor); setUnlocalizedName("ItemEndDoor"); setRegistryName("end_door"); setCreativeTab(CreativeTabs.REDSTONE); diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemGlassDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemGlassDoor.java index c62f13c..8f952d4 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemGlassDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemGlassDoor.java @@ -7,7 +7,7 @@ public class ItemGlassDoor extends ItemDoor { public ItemGlassDoor() { - super(Doors.BlockGlassDoor); + super(Doors.GlassDoor); setUnlocalizedName("ItemGlassDoor"); setRegistryName("glass_door"); setCreativeTab(CreativeTabs.REDSTONE); diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemGlowingObsidianDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemGlowingObsidianDoor.java index 0f012e4..d2cfc7b 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemGlowingObsidianDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemGlowingObsidianDoor.java @@ -7,7 +7,7 @@ public class ItemGlowingObsidianDoor extends ItemDoor { public ItemGlowingObsidianDoor() { - super(Doors.BlockGlowingObsidianDoor); + super(Doors.GlowingObsidianDoor); setUnlocalizedName("ItemGlowingObsidianDoor"); setRegistryName("glowing_obsidian_door"); setCreativeTab(CreativeTabs.REDSTONE); diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemGoldDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemGoldDoor.java index 03494a2..be6da3e 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemGoldDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemGoldDoor.java @@ -7,7 +7,7 @@ public class ItemGoldDoor extends ItemDoor { public ItemGoldDoor() { - super(Doors.BlockGoldDoor); + super(Doors.GoldDoor); setUnlocalizedName("ItemGoldDoor"); setRegistryName("gold_door"); setCreativeTab(CreativeTabs.REDSTONE); diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemGraniteDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemGraniteDoor.java index 7400c8a..050898b 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemGraniteDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemGraniteDoor.java @@ -7,7 +7,7 @@ public class ItemGraniteDoor extends ItemDoor { public ItemGraniteDoor() { - super(Doors.BlockGraniteDoor); + super(Doors.GraniteDoor); setUnlocalizedName("ItemGraniteDoor"); setRegistryName("granite_door"); setCreativeTab(CreativeTabs.REDSTONE); diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemMossStoneDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemMossStoneDoor.java index 491faa9..233549a 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemMossStoneDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemMossStoneDoor.java @@ -7,7 +7,7 @@ public class ItemMossStoneDoor extends ItemDoor { public ItemMossStoneDoor() { - super(Doors.BlockMossStoneDoor); + super(Doors.MossStoneDoor); setUnlocalizedName("ItemMossStoneDoor"); setRegistryName("moss_stone_door"); setCreativeTab(CreativeTabs.REDSTONE); diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemObsidianDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemObsidianDoor.java index 8c8e97b..ca8cb83 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemObsidianDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemObsidianDoor.java @@ -7,7 +7,7 @@ public class ItemObsidianDoor extends ItemDoor { public ItemObsidianDoor() { - super(Doors.BlockObsidianDoor); + super(Doors.ObsidianDoor); setUnlocalizedName("ItemObsidianDoor"); setRegistryName("obsidian_door"); setCreativeTab(CreativeTabs.REDSTONE); diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemRedstoneDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemRedstoneDoor.java index 0f53c94..01e9496 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemRedstoneDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemRedstoneDoor.java @@ -2,14 +2,93 @@ import com.NetherNoah.ParadiseMod.init.ModBlocks.Doors; +import net.minecraft.block.Block; +import net.minecraft.block.BlockDoor; +import net.minecraft.block.SoundType; +import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.ItemDoor; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumActionResult; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumHand; +import net.minecraft.util.SoundCategory; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; -public class ItemRedstoneDoor extends ItemDoor { - public ItemRedstoneDoor() { - super(Doors.BlockRedstoneDoor); +public class ItemRedstoneDoor extends Item +{ + public ItemRedstoneDoor() + { + setCreativeTab(CreativeTabs.REDSTONE); setUnlocalizedName("ItemRedstoneDoor"); setRegistryName("redstone_door"); - setCreativeTab(CreativeTabs.REDSTONE); - } + } + + public EnumActionResult onItemUse(EntityPlayer player, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) + { + if (facing != EnumFacing.UP) + { + return EnumActionResult.FAIL; + } + else + { + Block block = worldIn.getBlockState(pos).getBlock(); + + if (!block.isReplaceable(worldIn, pos)) + { + pos = pos.offset(facing); + } + + ItemStack itemstack = player.getHeldItem(hand); + + if (player.canPlayerEdit(pos, facing, itemstack) && block.canPlaceBlockAt(worldIn, pos)) + { + EnumFacing enumfacing = EnumFacing.fromAngle((double)player.rotationYaw); + int i = enumfacing.getFrontOffsetX(); + int j = enumfacing.getFrontOffsetZ(); + boolean flag = i < 0 && hitZ < 0.5F || i > 0 && hitZ > 0.5F || j < 0 && hitX > 0.5F || j > 0 && hitX < 0.5F; + placeDoor(worldIn, pos, enumfacing, Doors.RedstoneDoor, flag); + SoundType soundtype = worldIn.getBlockState(pos).getBlock().getSoundType(worldIn.getBlockState(pos), worldIn, pos, player); + worldIn.playSound(player, pos, soundtype.getPlaceSound(), SoundCategory.BLOCKS, (soundtype.getVolume() + 1.0F) / 2.0F, soundtype.getPitch() * 0.8F); + itemstack.shrink(1); + return EnumActionResult.SUCCESS; + } + else + { + return EnumActionResult.FAIL; + } + } + } + + public static void placeDoor(World worldIn, BlockPos pos, EnumFacing facing, Block door, boolean isRightHinge) + { + BlockPos blockpos = pos.offset(facing.rotateY()); + BlockPos blockpos1 = pos.offset(facing.rotateYCCW()); + int i = (worldIn.getBlockState(blockpos1).isNormalCube() ? 1 : 0) + (worldIn.getBlockState(blockpos1.up()).isNormalCube() ? 1 : 0); + int j = (worldIn.getBlockState(blockpos).isNormalCube() ? 1 : 0) + (worldIn.getBlockState(blockpos.up()).isNormalCube() ? 1 : 0); + boolean flag = worldIn.getBlockState(blockpos1).getBlock() == door || worldIn.getBlockState(blockpos1.up()).getBlock() == door; + boolean flag1 = worldIn.getBlockState(blockpos).getBlock() == door || worldIn.getBlockState(blockpos.up()).getBlock() == door; + + if ((!flag || flag1) && j <= i) + { + if (flag1 && !flag || j < i) + { + isRightHinge = false; + } + } + else + { + isRightHinge = true; + } + + BlockPos blockpos2 = pos.up(); + boolean flag2 = worldIn.isBlockPowered(pos) || worldIn.isBlockPowered(blockpos2); + IBlockState iblockstate = door.getDefaultState().withProperty(BlockDoor.FACING, facing).withProperty(BlockDoor.HINGE, isRightHinge ? BlockDoor.EnumHingePosition.RIGHT : BlockDoor.EnumHingePosition.LEFT).withProperty(BlockDoor.OPEN, Boolean.valueOf(flag2)); + worldIn.setBlockState(pos, iblockstate.withProperty(BlockDoor.HALF, BlockDoor.EnumDoorHalf.LOWER), 2); + worldIn.setBlockState(blockpos2, iblockstate.withProperty(BlockDoor.HALF, BlockDoor.EnumDoorHalf.UPPER), 2); + worldIn.notifyNeighborsOfStateChange(pos, door, false); + worldIn.notifyNeighborsOfStateChange(blockpos2, door, false); + } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemRubyDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemRubyDoor.java index 3d54ce3..16a7c0b 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemRubyDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemRubyDoor.java @@ -7,7 +7,7 @@ public class ItemRubyDoor extends ItemDoor { public ItemRubyDoor() { - super(Doors.BlockRubyDoor); + super(Doors.RubyDoor); setUnlocalizedName("ItemRubyDoor"); setRegistryName("ruby_door"); setCreativeTab(CreativeTabs.REDSTONE); diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemSilverDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemSilverDoor.java index 08bce26..d6b6267 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemSilverDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemSilverDoor.java @@ -7,7 +7,7 @@ public class ItemSilverDoor extends ItemDoor { public ItemSilverDoor() { - super(Doors.BlockSilverDoor); + super(Doors.SilverDoor); setUnlocalizedName("ItemSilverDoor"); setRegistryName("silver_door"); setCreativeTab(CreativeTabs.REDSTONE); diff --git a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemStoneDoor.java b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemStoneDoor.java index b5b52e8..52fedd7 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemStoneDoor.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/items/doors/ItemStoneDoor.java @@ -7,7 +7,7 @@ public class ItemStoneDoor extends ItemDoor { public ItemStoneDoor() { - super(Doors.BlockStoneDoor); + super(Doors.StoneDoor); setUnlocalizedName("ItemStoneDoor"); setRegistryName("stone_door"); setCreativeTab(CreativeTabs.REDSTONE); diff --git a/src/main/java/com/NetherNoah/ParadiseMod/tileentity/furnace/TEMossyFurnace.java b/src/main/java/com/NetherNoah/ParadiseMod/tileentity/furnace/TEMossyFurnace.java index 41c69b7..4d5bb65 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/tileentity/furnace/TEMossyFurnace.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/tileentity/furnace/TEMossyFurnace.java @@ -2,7 +2,9 @@ package com.NetherNoah.ParadiseMod.tileentity.furnace; -import com.NetherNoah.ParadiseMod.CustomBlockCode.MossyFurnaceCode; +import javax.annotation.Nullable; + +import com.NetherNoah.ParadiseMod.init.ModBlocks.Misc; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -34,8 +36,12 @@ import net.minecraft.util.datafix.FixTypes; import net.minecraft.util.datafix.walkers.ItemStackDataLists; import net.minecraft.util.math.MathHelper; +import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; +import net.minecraftforge.items.CapabilityItemHandler; +import net.minecraftforge.items.IItemHandler; +import net.minecraftforge.items.wrapper.SidedInvWrapper; public class TEMossyFurnace extends TileEntityLockable implements ITickable, ISidedInventory { @@ -102,8 +108,8 @@ public void setInventorySlotContents(int index, ItemStack stack) ItemStack itemstack = furnaceItemStacks.get(index); boolean flag = !stack.isEmpty() && stack.isItemEqual(itemstack) && ItemStack.areItemStackTagsEqual(stack, itemstack); furnaceItemStacks.set(index, stack); - if (stack.getCount() > getInventoryStackLimit()) - stack.setCount(getInventoryStackLimit()); + if (stack.getCount() > 64) + stack.setCount(64); if (index == 0 && !flag) { totalCookTime = getCookTime(stack); @@ -127,9 +133,9 @@ public boolean hasCustomName() { return furnaceCustomName != null && !furnaceCustomName.isEmpty(); } - public void setCustomInventoryName(String p_145951_1_) + public void setCustomInventoryName(String name) { - furnaceCustomName = p_145951_1_; + furnaceCustomName = name; } public static void registerFixesFurnace(DataFixer fixer) { @@ -164,6 +170,7 @@ public NBTTagCompound writeToNBT(NBTTagCompound compound) /** * Returns the maximum stack size for a inventory slot. Seems to always be 64, possibly will be extended. */ + @Override public int getInventoryStackLimit() { @@ -234,7 +241,7 @@ else if (!isBurning() && cookTime > 0) if (flag != isBurning()) { flag1 = true; - MossyFurnaceCode.setState(isBurning(), world, pos); + Misc.MossyFurnace.setState(isBurning(), world, pos); } } if (flag1) @@ -423,13 +430,13 @@ public void clear() { furnaceItemStacks.clear(); } - net.minecraftforge.items.IItemHandler handlerTop = new net.minecraftforge.items.wrapper.SidedInvWrapper(this, net.minecraft.util.EnumFacing.UP); - net.minecraftforge.items.IItemHandler handlerBottom = new net.minecraftforge.items.wrapper.SidedInvWrapper(this, net.minecraft.util.EnumFacing.DOWN); - net.minecraftforge.items.IItemHandler handlerSide = new net.minecraftforge.items.wrapper.SidedInvWrapper(this, net.minecraft.util.EnumFacing.WEST); + IItemHandler handlerTop = new SidedInvWrapper(this, EnumFacing.UP); + IItemHandler handlerBottom = new SidedInvWrapper(this, EnumFacing.DOWN); + IItemHandler handlerSide = new SidedInvWrapper(this, EnumFacing.WEST); @Override - public T getCapability(net.minecraftforge.common.capabilities.Capability capability, @javax.annotation.Nullable net.minecraft.util.EnumFacing facing) + public T getCapability(Capability capability, @Nullable EnumFacing facing) { - if (facing != null && capability == net.minecraftforge.items.CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) + if (facing != null && capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) if (facing == EnumFacing.DOWN) return (T) handlerBottom; else if (facing == EnumFacing.UP) diff --git a/src/main/java/com/NetherNoah/ParadiseMod/tileentity/furnace/TEVoidFurnace.java b/src/main/java/com/NetherNoah/ParadiseMod/tileentity/furnace/TEVoidFurnace.java index acb1b02..353faa2 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/tileentity/furnace/TEVoidFurnace.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/tileentity/furnace/TEVoidFurnace.java @@ -1,8 +1,9 @@ -//this was derived from the vanilla code package com.NetherNoah.ParadiseMod.tileentity.furnace; -import com.NetherNoah.ParadiseMod.CustomBlockCode.VoidFurnaceCode; +import javax.annotation.Nullable; + +import com.NetherNoah.ParadiseMod.blocks.base.VoidFurnaceBase; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -34,8 +35,13 @@ import net.minecraft.util.datafix.FixTypes; import net.minecraft.util.datafix.walkers.ItemStackDataLists; import net.minecraft.util.math.MathHelper; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; +import net.minecraftforge.items.CapabilityItemHandler; +import net.minecraftforge.items.IItemHandler; +import net.minecraftforge.items.wrapper.SidedInvWrapper; public class TEVoidFurnace extends TileEntityLockable implements ITickable, ISidedInventory { @@ -235,7 +241,7 @@ else if (!isBurning() && cookTime > 0) if (flag != isBurning()) { flag1 = true; - VoidFurnaceCode.setState(isBurning(), world, pos); + VoidFurnaceBase.setState(isBurning(), world, pos); } } if (flag1) @@ -299,7 +305,7 @@ public static int getItemBurnTime(ItemStack stack) Item item = stack.getItem(); if (!item.getRegistryName().getResourceDomain().equals("minecraft")) { - int burnTime = net.minecraftforge.fml.common.registry.GameRegistry.getFuelValue(stack); + int burnTime = GameRegistry.getFuelValue(stack); if (burnTime != 0) return burnTime; } return item == Item.getItemFromBlock(Blocks.WOODEN_SLAB) ? 150 : (item == Item.getItemFromBlock(Blocks.WOOL) ? 100 : (item == Item.getItemFromBlock(Blocks.CARPET) ? 67 : (item == Item.getItemFromBlock(Blocks.LADDER) ? 300 : (item == Item.getItemFromBlock(Blocks.WOODEN_BUTTON) ? 100 : (Block.getBlockFromItem(item).getDefaultState().getMaterial() == Material.WOOD ? 300 : (item == Item.getItemFromBlock(Blocks.COAL_BLOCK) ? 16000 : (item instanceof ItemTool && "WOOD".equals(((ItemTool)item).getToolMaterialName()) ? 200 : (item instanceof ItemSword && "WOOD".equals(((ItemSword)item).getToolMaterialName()) ? 200 : (item instanceof ItemHoe && "WOOD".equals(((ItemHoe)item).getMaterialName()) ? 200 : (item == Items.STICK ? 100 : (item != Items.BOW && item != Items.FISHING_ROD ? (item == Items.SIGN ? 200 : (item == Items.COAL ? 1600 : (item == Items.LAVA_BUCKET ? 20000 : (item != Item.getItemFromBlock(Blocks.SAPLING) && item != Items.BOWL ? (item == Items.BLAZE_ROD ? 2400 : (item instanceof ItemDoor && item != Items.IRON_DOOR ? 200 : (item instanceof ItemBoat ? 400 : 0))) : 100)))) : 300))))))))))); @@ -424,13 +430,13 @@ public void clear() { furnaceItemStacks.clear(); } - net.minecraftforge.items.IItemHandler handlerTop = new net.minecraftforge.items.wrapper.SidedInvWrapper(this, net.minecraft.util.EnumFacing.UP); - net.minecraftforge.items.IItemHandler handlerBottom = new net.minecraftforge.items.wrapper.SidedInvWrapper(this, net.minecraft.util.EnumFacing.DOWN); - net.minecraftforge.items.IItemHandler handlerSide = new net.minecraftforge.items.wrapper.SidedInvWrapper(this, net.minecraft.util.EnumFacing.WEST); + IItemHandler handlerTop = new SidedInvWrapper(this, EnumFacing.UP); + IItemHandler handlerBottom = new SidedInvWrapper(this, EnumFacing.DOWN); + IItemHandler handlerSide = new SidedInvWrapper(this, EnumFacing.WEST); @Override - public T getCapability(net.minecraftforge.common.capabilities.Capability capability, @javax.annotation.Nullable net.minecraft.util.EnumFacing facing) + public T getCapability(Capability capability, @Nullable EnumFacing facing) { - if (facing != null && capability == net.minecraftforge.items.CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) + if (facing != null && capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) if (facing == EnumFacing.DOWN) return (T) handlerBottom; else if (facing == EnumFacing.UP) diff --git a/src/main/java/com/NetherNoah/ParadiseMod/tileentity/render/TileEntityCactusChestRender.java b/src/main/java/com/NetherNoah/ParadiseMod/tileentity/render/TileEntityCactusChestRender.java index fb2eb28..78055f8 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/tileentity/render/TileEntityCactusChestRender.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/tileentity/render/TileEntityCactusChestRender.java @@ -113,17 +113,20 @@ else if (te.getChestType() == BlockChest.Type.TRAP) GlStateManager.translate(0.5F, 0.5F, 0.5F); int j = 0; - if (i == 2) - j = 180; - - if (i == 3) - j = 0; - - if (i == 4) - j = 90; - - if (i == 5) - j = -90; + switch (i) { + case 2: + j = 180; + break; + case 4: + j = 90; + break; + case 5: + j = -90; + break; + case 3: + default: + j=0; + } if (i == 2 && te.adjacentChestXPos != null) GlStateManager.translate(1.0F, 0.0F, 0.0F); diff --git a/src/main/java/com/NetherNoah/ParadiseMod/tileentity/render/TileEntityCompressedCactusChestRender.java b/src/main/java/com/NetherNoah/ParadiseMod/tileentity/render/TileEntityCompressedCactusChestRender.java index bcd5928..c96d68a 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/tileentity/render/TileEntityCompressedCactusChestRender.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/tileentity/render/TileEntityCompressedCactusChestRender.java @@ -114,17 +114,20 @@ else if (te.getChestType() == BlockChest.Type.TRAP) GlStateManager.translate(0.5F, 0.5F, 0.5F); int j = 0; - if (i == 2) - j = 180; - - if (i == 3) - j = 0; - - if (i == 4) - j = 90; - - if (i == 5) - j = -90; + switch(i) { + case 2: + j=180; + break; + case 4: + j=90; + break; + case 5: + j=-90; + break; + case 3: + default: + j=0; + } if (i == 2 && te.adjacentChestXPos != null) GlStateManager.translate(1.0F, 0.0F, 0.0F); diff --git a/src/main/java/com/NetherNoah/ParadiseMod/world/dimension/DUChunkGenerator.java b/src/main/java/com/NetherNoah/ParadiseMod/world/dimension/DUChunkGenerator.java index b762f03..1a76220 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/world/dimension/DUChunkGenerator.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/world/dimension/DUChunkGenerator.java @@ -132,10 +132,10 @@ public class DUChunkGenerator implements IChunkGenerator { double[] noiseData4; double[] dr; - public DUChunkGenerator(World worldIn, boolean p_i45637_2_, long seed) { + public DUChunkGenerator(World worldIn) { world = worldIn; generateStructures = false; - rand = worldIn.rand;//new Random(seed); + rand = worldIn.rand; lperlinNoise1 = new NoiseGeneratorOctaves(rand, 16); lperlinNoise2 = new NoiseGeneratorOctaves(rand, 16); perlinNoise1 = new NoiseGeneratorOctaves(rand, 16); diff --git a/src/main/java/com/NetherNoah/ParadiseMod/world/dimension/DUWorldProvider.java b/src/main/java/com/NetherNoah/ParadiseMod/world/dimension/DUWorldProvider.java index 0f5bf42..1c8b9d9 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/world/dimension/DUWorldProvider.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/world/dimension/DUWorldProvider.java @@ -28,7 +28,7 @@ public Vec3d getFogColor(float par1, float par2) { @Override public IChunkGenerator createChunkGenerator() { - return new DUChunkGenerator(world, false, DimensionRegistry.DeepUnderground); + return new DUChunkGenerator(world); } @Override diff --git a/src/main/java/com/NetherNoah/ParadiseMod/world/dimension/DVChunkGenerator.java b/src/main/java/com/NetherNoah/ParadiseMod/world/dimension/DVChunkGenerator.java index 782b0be..9f9857d 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/world/dimension/DVChunkGenerator.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/world/dimension/DVChunkGenerator.java @@ -45,7 +45,6 @@ public class DVChunkGenerator implements IChunkGenerator public NoiseGeneratorOctaves noiseGen5; public NoiseGeneratorOctaves noiseGen6; private final World world; - private final boolean mapFeaturesEnabled; private NoiseGeneratorSimplex islandNoise; private double[] buffer; private Biome[] biomesForGeneration; @@ -70,25 +69,24 @@ public class DVChunkGenerator implements IChunkGenerator private final WorldGenerator silverGen = new WorldGenMinable(Ores.SilverOreVoid.getDefaultState(), 7,BlockMatcher.forBlock(Misc.VoidStone)); private final WorldGenerator RStoneGen = new WorldGenMinable(Misc.RegenerationStone.getDefaultState(), 7,BlockMatcher.forBlock(Misc.VoidStone)); - public DVChunkGenerator(World p_i47241_1_, boolean p_i47241_2_, long p_i47241_3_){ - this.world = p_i47241_1_; - this.mapFeaturesEnabled = p_i47241_2_; - this.rand = new Random(p_i47241_3_); - this.lperlinNoise1 = new NoiseGeneratorOctaves(this.rand, 16); - this.lperlinNoise2 = new NoiseGeneratorOctaves(this.rand, 16); - this.perlinNoise1 = new NoiseGeneratorOctaves(this.rand, 8); - this.noiseGen5 = new NoiseGeneratorOctaves(this.rand, 10); - this.noiseGen6 = new NoiseGeneratorOctaves(this.rand, 16); - this.islandNoise = new NoiseGeneratorSimplex(this.rand); + public DVChunkGenerator(World worldIn){ + world = worldIn; + rand = worldIn.rand; + lperlinNoise1 = new NoiseGeneratorOctaves(this.rand, 16); + lperlinNoise2 = new NoiseGeneratorOctaves(this.rand, 16); + perlinNoise1 = new NoiseGeneratorOctaves(this.rand, 8); + noiseGen5 = new NoiseGeneratorOctaves(this.rand, 10); + noiseGen6 = new NoiseGeneratorOctaves(this.rand, 16); + islandNoise = new NoiseGeneratorSimplex(this.rand); InitNoiseGensEvent.ContextEnd ctx = new InitNoiseGensEvent.ContextEnd(lperlinNoise1, lperlinNoise2, perlinNoise1, noiseGen5, noiseGen6, islandNoise); - ctx = TerrainGen.getModdedNoiseGenerators(p_i47241_1_, this.rand, ctx); - this.lperlinNoise1 = ctx.getLPerlin1(); - this.lperlinNoise2 = ctx.getLPerlin2(); - this.perlinNoise1 = ctx.getPerlin(); - this.noiseGen5 = ctx.getDepth(); - this.noiseGen6 = ctx.getScale(); - this.islandNoise = ctx.getIsland(); + ctx = TerrainGen.getModdedNoiseGenerators(worldIn, this.rand, ctx); + lperlinNoise1 = ctx.getLPerlin1(); + lperlinNoise2 = ctx.getLPerlin2(); + perlinNoise1 = ctx.getPerlin(); + noiseGen5 = ctx.getDepth(); + noiseGen6 = ctx.getScale(); + islandNoise = ctx.getIsland(); } public void setBlocksInChunk(int x, int z, ChunkPrimer primer){ @@ -102,14 +100,14 @@ public void setBlocksInChunk(int x, int z, ChunkPrimer primer){ for (int j1 = 0; j1 < 2; ++j1){ for (int k1 = 0; k1 < 32; ++k1){ double d0 = 0.25D; - double d1 = this.buffer[((i1 + 0) * 3 + j1 + 0) * 33 + k1 + 0]; - double d2 = this.buffer[((i1 + 0) * 3 + j1 + 1) * 33 + k1 + 0]; - double d3 = this.buffer[((i1 + 1) * 3 + j1 + 0) * 33 + k1 + 0]; - double d4 = this.buffer[((i1 + 1) * 3 + j1 + 1) * 33 + k1 + 0]; - double d5 = (this.buffer[((i1 + 0) * 3 + j1 + 0) * 33 + k1 + 1] - d1) * 0.25D; - double d6 = (this.buffer[((i1 + 0) * 3 + j1 + 1) * 33 + k1 + 1] - d2) * 0.25D; - double d7 = (this.buffer[((i1 + 1) * 3 + j1 + 0) * 33 + k1 + 1] - d3) * 0.25D; - double d8 = (this.buffer[((i1 + 1) * 3 + j1 + 1) * 33 + k1 + 1] - d4) * 0.25D; + double d1 = buffer[((i1 + 0) * 3 + j1 + 0) * 33 + k1 + 0]; + double d2 = buffer[((i1 + 0) * 3 + j1 + 1) * 33 + k1 + 0]; + double d3 = buffer[((i1 + 1) * 3 + j1 + 0) * 33 + k1 + 0]; + double d4 = buffer[((i1 + 1) * 3 + j1 + 1) * 33 + k1 + 0]; + double d5 = (buffer[((i1 + 0) * 3 + j1 + 0) * 33 + k1 + 1] - d1) * 0.25D; + double d6 = (buffer[((i1 + 0) * 3 + j1 + 1) * 33 + k1 + 1] - d2) * 0.25D; + double d7 = (buffer[((i1 + 1) * 3 + j1 + 0) * 33 + k1 + 1] - d3) * 0.25D; + double d8 = (buffer[((i1 + 1) * 3 + j1 + 1) * 33 + k1 + 1] - d4) * 0.25D; for (int l1 = 0; l1 < 4; ++l1){ double d9 = 0.125D; @@ -189,12 +187,12 @@ else if (l > 0) @Override public Chunk generateChunk(int x, int z) { - this.chunkX = x; this.chunkZ = z; - this.rand.setSeed(x * 341873128712L + z * 132897987541L); + chunkX = x; this.chunkZ = z; + rand.setSeed(x * 341873128712L + z * 132897987541L); ChunkPrimer chunkprimer = new ChunkPrimer(); - this.biomesForGeneration = this.world.getBiomeProvider().getBiomes(this.biomesForGeneration, x * 16, z * 16, 16, 16); - this.setBlocksInChunk(x, z, chunkprimer); - this.buildSurfaces(chunkprimer); + biomesForGeneration = this.world.getBiomeProvider().getBiomes(this.biomesForGeneration, x * 16, z * 16, 16, 16); + setBlocksInChunk(x, z, chunkprimer); + buildSurfaces(chunkprimer); Chunk chunk = new Chunk(this.world, chunkprimer, x, z); byte[] abyte = chunk.getBiomeArray(); diff --git a/src/main/java/com/NetherNoah/ParadiseMod/world/dimension/DVWorldProvider.java b/src/main/java/com/NetherNoah/ParadiseMod/world/dimension/DVWorldProvider.java index 9a0b370..9b89a07 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/world/dimension/DVWorldProvider.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/world/dimension/DVWorldProvider.java @@ -15,7 +15,7 @@ public class DVWorldProvider extends WorldProvider{ public void init() { biomeProvider=new BiomeProviderSingle(Biomes.VOID); hasSkyLight=false; - nether=true; + nether=false; } @Override @@ -31,7 +31,7 @@ public Vec3d getFogColor(float par1, float par2) { @Override public IChunkGenerator createChunkGenerator() { - return new DVChunkGenerator(world, false, DimensionRegistry.DeepVoid); + return new DVChunkGenerator(world); } @Override diff --git a/src/main/java/com/NetherNoah/ParadiseMod/world/mapgen/MapGenDUCaves.java b/src/main/java/com/NetherNoah/ParadiseMod/world/mapgen/MapGenDUCaves.java index 133347e..1eb95e5 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/world/mapgen/MapGenDUCaves.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/world/mapgen/MapGenDUCaves.java @@ -88,25 +88,18 @@ protected void addTunnel(long p_180702_1_, int p_180702_3_, int p_180702_4_, Chu int i3 = MathHelper.floor(p_180702_10_ - d2) - p_180702_4_ * 16 - 1; int i1 = MathHelper.floor(p_180702_10_ + d2) - p_180702_4_ * 16 + 1; - if (k2 < 0) - k2 = 0; - if (k > 16) - k = 16; - if (l2 < 1) - l2 = 1; - if (l > 248) - l = 248; - if (i3 < 0) - i3 = 0; - if (i1 > 16) - i1 = 16; + if (k2 < 0) k2 = 0; + if (k > 16) k = 16; + if (l2 < 1) l2 = 1; + if (l > 248) l = 248; + if (i3 < 0) i3 = 0; + if (i1 > 16) i1 = 16; for (int j1 = k2; j1 < k; ++j1){ for (int k1 = i3; k1 < i1; ++k1){ for (int l1 = l + 1; l1 >= l2 - 1; --l1){ if (l1 >= 0 && l1 < 256){ - if (l1 != l2 - 1 && j1 != k2 && j1 != k - 1 && k1 != i3 && k1 != i1 - 1) - l1 = l2; + if (l1 != l2 - 1 && j1 != k2 && j1 != k - 1 && k1 != i3 && k1 != i1 - 1) l1 = l2; } } } @@ -145,28 +138,17 @@ protected void addTunnel(long p_180702_1_, int p_180702_3_, int p_180702_4_, Chu } protected boolean canReplaceBlock(IBlockState block1, IBlockState block2){ - if (block1.getBlock() == Blocks.STONE) - return true; - else if (block1.getBlock() == Blocks.DIRT) - return true; - else if (block1.getBlock() == Blocks.GRASS) - return true; - else if (block1.getBlock() == Blocks.HARDENED_CLAY) - return true; - else if (block1.getBlock() == Blocks.STAINED_HARDENED_CLAY) - return true; - else if (block1.getBlock() == Blocks.SANDSTONE) - return true; - else if (block1.getBlock() == Blocks.RED_SANDSTONE) - return true; - else if (block1.getBlock() == Blocks.MYCELIUM) - return true; - else if (block1.getBlock() == Blocks.SNOW_LAYER) - return true; - else if (block1.getBlock()==Blocks.FLOWING_WATER||block1.getBlock()==Blocks.WATER) - return true; - else - return (block1.getBlock() == Blocks.SAND || block1.getBlock() == Blocks.GRAVEL) && block2.getMaterial() != Material.WATER; + if (block1.getBlock() == Blocks.STONE) return true; + else if (block1.getBlock() == Blocks.DIRT) return true; + else if (block1.getBlock() == Blocks.GRASS) return true; + else if (block1.getBlock() == Blocks.HARDENED_CLAY) return true; + else if (block1.getBlock() == Blocks.STAINED_HARDENED_CLAY) return true; + else if (block1.getBlock() == Blocks.SANDSTONE) return true; + else if (block1.getBlock() == Blocks.RED_SANDSTONE) return true; + else if (block1.getBlock() == Blocks.MYCELIUM) return true; + else if (block1.getBlock() == Blocks.SNOW_LAYER) return true; + else if (block1.getBlock()==Blocks.FLOWING_WATER||block1.getBlock()==Blocks.WATER) return true; + else return (block1.getBlock() == Blocks.SAND || block1.getBlock() == Blocks.GRAVEL) && block2.getMaterial() != Material.WATER; } protected void recursiveGenerate(World worldIn, int chunkX, int chunkZ, int originalX, int originalZ, ChunkPrimer chunkPrimerIn){ diff --git a/src/main/java/com/NetherNoah/ParadiseMod/world/mapgen/MapGenDURavines.java b/src/main/java/com/NetherNoah/ParadiseMod/world/mapgen/MapGenDURavines.java index cc9214d..82160a3 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/world/mapgen/MapGenDURavines.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/world/mapgen/MapGenDURavines.java @@ -12,8 +12,7 @@ import net.minecraft.world.chunk.ChunkPrimer; import net.minecraft.world.gen.MapGenBase; -public class MapGenDURavines extends MapGenBase -{ +public class MapGenDURavines extends MapGenBase { protected static final IBlockState AIR = Blocks.AIR.getDefaultState(); protected static final IBlockState WATER = Blocks.WATER.getDefaultState(); private final float[] rs = new float[1024]; @@ -43,7 +42,7 @@ protected void addTunnel(long p_180707_1_, int p_180707_3_, int p_180707_4_, Chu if (j == 0 || random.nextInt(3) == 0) f2 = 1.0F + random.nextFloat() * random.nextFloat(); - this.rs[j] = f2 * f2; + rs[j] = f2 * f2; } for (; p_180707_15_ < p_180707_16_; ++p_180707_15_){ @@ -81,18 +80,12 @@ protected void addTunnel(long p_180707_1_, int p_180707_3_, int p_180707_4_, Chu int i3 = MathHelper.floor(p_180707_10_ - d9) - p_180707_4_ * 16 - 1; int i1 = MathHelper.floor(p_180707_10_ + d9) - p_180707_4_ * 16 + 1; - if (k2 < 0) - k2 = 0; - if (k > 16) - k = 16; - if (l2 < 1) - l2 = 1; - if (l > 248) - l = 248; - if (i3 < 0) - i3 = 0; - if (i1 > 16) - i1 = 16; + if (k2 < 0) k2 = 0; + if (k > 16) k = 16; + if (l2 < 1) l2 = 1; + if (l > 248) l = 248; + if (i3 < 0) i3 = 0; + if (i1 > 16) i1 = 16; for (int j1 = k2; j1 < k; ++j1){ for (int k1 = i3; k1 < i1; ++k1){ @@ -123,8 +116,7 @@ protected void addTunnel(long p_180707_1_, int p_180707_3_, int p_180707_4_, Chu } } - if (flag1) - break; + if (flag1) break; } } } @@ -158,6 +150,7 @@ protected void digBlock(ChunkPrimer data, int x, int y, int z, int chunkX, int c IBlockState filler = Blocks.DIRT.getDefaultState(); if (state.getBlock() == Blocks.STONE || state.getBlock() == top.getBlock() || state.getBlock() == filler.getBlock()){ + //water generates below level 31 if (y<=31) { data.setBlockState(x, y, z, WATER); diff --git a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/caveGen/CaveGenDesert.java b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/caveGen/CaveGenDesert.java index 7e4a937..c3ab48d 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/caveGen/CaveGenDesert.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/caveGen/CaveGenDesert.java @@ -30,6 +30,7 @@ public void generate(Random rand, int chunkX, int chunkZ, World world, IChunkGen // generate cave features if (ModConfig.worldgen.caves.betterCaves == false) return; + if(ModConfig.worldgen.caves.types.Dry == false) return; diff --git a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/caveGen/CaveGenHumid.java b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/caveGen/CaveGenHumid.java index ad19eeb..19290f2 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/caveGen/CaveGenHumid.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/caveGen/CaveGenHumid.java @@ -28,6 +28,7 @@ public class CaveGenHumid implements IWorldGenerator{ @Override public void generate(Random rand, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator,IChunkProvider chunkProvider) { Chunk theChunk=world.getChunkFromChunkCoords(chunkX, chunkZ); + // don't generate if the config says not to // generate cave features if (ModConfig.worldgen.caves.betterCaves == false) diff --git a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/caveGen/CaveGenIcy.java b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/caveGen/CaveGenIcy.java index f6b7c18..b94446f 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/caveGen/CaveGenIcy.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/caveGen/CaveGenIcy.java @@ -26,6 +26,7 @@ public class CaveGenIcy implements IWorldGenerator{ @Override public void generate(Random rand, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator,IChunkProvider chunkProvider) { Chunk theChunk=world.getChunkFromChunkCoords(chunkX, chunkZ); + // don't generate if the config says not to // generate cave features if (ModConfig.worldgen.caves.betterCaves == false) diff --git a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/caveGen/CaveGenMesa.java b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/caveGen/CaveGenMesa.java index 1ca5e02..1839bf3 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/caveGen/CaveGenMesa.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/caveGen/CaveGenMesa.java @@ -36,6 +36,7 @@ public class CaveGenMesa implements IWorldGenerator { public void generate(Random rand, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider) { Chunk theChunk = world.getChunkFromChunkCoords(chunkX, chunkZ); + // don't generate if the config says not to // generate cave features if (ModConfig.worldgen.caves.betterCaves == false) diff --git a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Buoy.java b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Buoy.java index 88c184f..5ba0564 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Buoy.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Buoy.java @@ -34,7 +34,7 @@ public void generate(Random rand, int chunkX, int chunkZ, World world, IChunkGen int blockZ = chunkZ * 16; int y = getGroundFromAbove(world, blockX, blockZ); if (y>60||world.provider.getDimension()==DimensionRegistry.DeepUnderground) { - BlockPos pos = new BlockPos(blockX, y, blockZ); + BlockPos pos = new BlockPos(blockX, y, blockZ); generate(world, rand, pos); } } diff --git a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Dungeons/BrickPyramid.java b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Dungeons/BrickPyramid.java index a60c2ec..51680b2 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Dungeons/BrickPyramid.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Dungeons/BrickPyramid.java @@ -3,6 +3,7 @@ import java.util.Random; import com.NetherNoah.ParadiseMod.Reference; +import com.NetherNoah.ParadiseMod.Utils; import com.NetherNoah.ParadiseMod.config.ModConfig; import net.minecraft.block.Block; @@ -31,13 +32,31 @@ public void generate(Random rand, int chunkX, int chunkZ, World world, IChunkGen IChunkProvider chunkProvider) { int blockX = chunkX * 16; int blockZ = chunkZ * 16; - if (world.provider.getDimension() == 0) { - int y = getGroundFromAbove(world, blockX, blockZ); + if (world.provider.getDimension() == 0 && rand.nextInt(ModConfig.worldgen.structures.BrickPyramidsChance) == 0) { + int y = getLowestBlock(world, blockX, blockZ); BlockPos pos = new BlockPos(blockX, y, blockZ); generate(world, rand, pos); } } + //get the lowest block in the area + public static int getLowestBlock(World world, int blockX,int blockZ) { + int[] heights = new int[220]; + int index = 0; + for (int i=0;i<=54;i++) { + heights[index]=getGroundFromAbove(world, blockX, blockZ); + index++; + heights[index]=getGroundFromAbove(world, blockX+i+1, blockZ); + index++; + heights[index]=getGroundFromAbove(world, blockX+i+1, blockZ+i+1); + index++; + heights[index]=getGroundFromAbove(world, blockX+i+1, blockZ+i+1); + index++; + } + + return Utils.getMinValue(heights); + } + public static int getGroundFromAbove(World world, int x, int z) { int y = 255; @@ -45,12 +64,11 @@ public static int getGroundFromAbove(World world, int x, int z) while(!foundGround && y-- >= 31) { Block blockAt = world.getBlockState(new BlockPos(x,y,z)).getBlock(); - foundGround = blockAt == Blocks.GRAVEL||blockAt == Blocks.GRASS||blockAt == Blocks.SAND||blockAt == Blocks.DIRT||blockAt == Blocks.STONE; + foundGround = blockAt == Blocks.GRAVEL||blockAt == Blocks.GRASS||blockAt == Blocks.SAND||blockAt == Blocks.DIRT; } return y; } - @Override public boolean generate(World world, Random rand, BlockPos position) { WorldServer worldserver = (WorldServer) world; MinecraftServer minecraftserver = world.getMinecraftServer(); @@ -62,22 +80,33 @@ public boolean generate(World world, Random rand, BlockPos position) { if(ModConfig.worldgen.structures.BrickPyramids==false) return false; Biome biome = world.getBiomeForCoordsBody(position); - if(rand.nextInt(ModConfig.worldgen.structures.BrickPyramidsChance) == 0){ - IBlockState iblockstate = world.getBlockState(position); - world.notifyBlockUpdate(position, iblockstate, iblockstate, 3); - PlacementSettings placementsettings = (new PlacementSettings()).setMirror(Mirror.NONE) - .setRotation(Rotation.NONE).setIgnoreEntities(false).setChunk((ChunkPos) null) - .setReplacedBlock((Block) null).setIgnoreStructureBlock(false); - part1.getDataBlocks(position, placementsettings); - part1.addBlocksToWorld(world, position.add(0, -2, 0), placementsettings); - part2.getDataBlocks(position, placementsettings); - part2.addBlocksToWorld(world, position.add(26, -2, 0), placementsettings); - part3.getDataBlocks(position, placementsettings); - part3.addBlocksToWorld(world, position.add(0, -2, 27), placementsettings); - part4.getDataBlocks(position, placementsettings); - part4.addBlocksToWorld(world, position.add(26, -2, 27), placementsettings); - return true; + IBlockState iblockstate = world.getBlockState(position); + world.notifyBlockUpdate(position, iblockstate, iblockstate, 3); + PlacementSettings placementsettings = (new PlacementSettings()).setMirror(Mirror.NONE) + .setRotation(Rotation.NONE).setIgnoreEntities(false).setChunk((ChunkPos) null) + .setReplacedBlock((Block) null).setIgnoreStructureBlock(false); + part1.getDataBlocks(position, placementsettings); + part1.addBlocksToWorld(world, position.add(0, 0, 0), placementsettings); + part2.getDataBlocks(position, placementsettings); + part2.addBlocksToWorld(world, position.add(26, 0, 0), placementsettings); + part3.getDataBlocks(position, placementsettings); + part3.addBlocksToWorld(world, position.add(0, 0, 27), placementsettings); + part4.getDataBlocks(position, placementsettings); + part4.addBlocksToWorld(world, position.add(26, 0, 27), placementsettings); + + //remove foliage from the area + int x=position.getX(); + int y=position.getY(); + int z=position.getZ(); + for (int i=0;i<=53;i++) { + for (int j=0;j<=53;j++) { + for (int k=0;k<=53;k++) { + if (world.getBlockState(new BlockPos(x+i,y+j,z+k)).getBlock()==Blocks.LEAVES||world.getBlockState(new BlockPos(x+i,y+j,z+k)).getBlock()==Blocks.LEAVES2||world.getBlockState(new BlockPos(x+i,y+j,z+k)).getBlock()==Blocks.LOG||world.getBlockState(new BlockPos(x+i,y+j,z+k)).getBlock()==Blocks.LOG2||world.getBlockState(new BlockPos(x+i,y+j,z+k)).getBlock()==Blocks.BROWN_MUSHROOM_BLOCK||world.getBlockState(new BlockPos(x+i,y+j,z+k)).getBlock()==Blocks.RED_MUSHROOM_BLOCK) { + world.setBlockState(new BlockPos(x+i,y+j,z+k), Blocks.AIR.getDefaultState()); + } + } + } } - return false; + return true; } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Dungeons/Minerbase.java b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Dungeons/Minerbase.java index 3ff4e31..a7dc27d 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Dungeons/Minerbase.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Dungeons/Minerbase.java @@ -32,7 +32,7 @@ public void generate(Random rand, int chunkX, int chunkZ, World world, IChunkGen IChunkProvider chunkProvider) { int blockX = chunkX * 16; int blockZ = chunkZ * 16; - if (world.provider.getDimension() == 0||world.provider.getDimension() != DimensionRegistry.DeepUnderground) { + if (world.provider.getDimension() != DimensionRegistry.DeepVoid && world.provider.getDimension() != -1 && world.provider.getDimension() != 1) { BlockPos pos = new BlockPos(blockX, 30, blockZ); generate(world, rand, pos); } diff --git a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Dungeons/MiniStronghold.java b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Dungeons/MiniStronghold.java index e934862..aee63f8 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Dungeons/MiniStronghold.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Dungeons/MiniStronghold.java @@ -4,6 +4,7 @@ import com.NetherNoah.ParadiseMod.Reference; import com.NetherNoah.ParadiseMod.config.ModConfig; +import com.NetherNoah.ParadiseMod.world.dimension.DimensionRegistry; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; @@ -31,7 +32,7 @@ public void generate(Random rand, int chunkX, int chunkZ, World world, IChunkGen IChunkProvider chunkProvider) { int blockX = chunkX * 16; int blockZ = chunkZ * 16; - if (world.provider.getDimension() != 1 && world.provider.getDimension() != -3 && world.provider.getDimension() != -1) { + if (world.provider.getDimension() != DimensionRegistry.DeepVoid && world.provider.getDimension() != -1 && world.provider.getDimension() != 1) { BlockPos pos = new BlockPos(blockX, 16, blockZ); generate(world, rand, pos); } diff --git a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Dungeons/VoidDungeon.java b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Dungeons/VoidDungeon.java index 61581e5..c0a3c73 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Dungeons/VoidDungeon.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Dungeons/VoidDungeon.java @@ -31,21 +31,10 @@ public void generate(Random rand, int chunkX, int chunkZ, World world, IChunkGen IChunkProvider chunkProvider) { int blockX = chunkX * 16; int blockZ = chunkZ * 16; - //generateOverworld(world, rand, blockX + 8, blockZ + 8); int y = getGroundFromAbove(world, blockX, blockZ); BlockPos pos = new BlockPos(blockX, y, blockZ); - //WorldGenerator structure = new VoidDungeonGen(); generate(world, rand, pos); } - /*/ - private void generateOverworld(World world, Random rand, int blockX, int blockZ) - { - int y = getGroundFromAbove(world, blockX, blockZ); - BlockPos pos = new BlockPos(blockX, y, blockZ); - WorldGenerator structure = new VoidDungeonGen(); - structure.generate(world, rand, pos); - } - /*/ @Override public boolean generate(World world, Random rand, BlockPos position) { Biome biome = world.getBiomeForCoordsBody(position); diff --git a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Dungeons/VoidDungeonLarge.java b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Dungeons/VoidDungeonLarge.java index 2a18793..00c6028 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Dungeons/VoidDungeonLarge.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Dungeons/VoidDungeonLarge.java @@ -3,11 +3,15 @@ import java.util.Random; import com.NetherNoah.ParadiseMod.Reference; +import com.NetherNoah.ParadiseMod.Utils; import com.NetherNoah.ParadiseMod.config.ModConfig; import com.NetherNoah.ParadiseMod.init.ModBlocks.Misc; +import com.NetherNoah.ParadiseMod.world.dimension.DimensionRegistry; +import java.util.Collections; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; +import net.minecraft.init.Blocks; import net.minecraft.server.MinecraftServer; import net.minecraft.util.Mirror; import net.minecraft.util.ResourceLocation; @@ -16,7 +20,6 @@ import net.minecraft.util.math.ChunkPos; import net.minecraft.world.World; import net.minecraft.world.WorldServer; -import net.minecraft.world.biome.Biome; import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.gen.IChunkGenerator; import net.minecraft.world.gen.feature.WorldGenerator; @@ -31,23 +34,12 @@ public void generate(Random rand, int chunkX, int chunkZ, World world, IChunkGen IChunkProvider chunkProvider) { int blockX = chunkX * 16; int blockZ = chunkZ * 16; - if (world.provider.getDimension() == -3) { - //generateOverworld(world, rand, blockX + 8, blockZ + 8); - int y = getGroundFromAbove(world, blockX, blockZ); + if (world.provider.getDimension() == DimensionRegistry.DeepVoid && rand.nextInt(ModConfig.worldgen.structures.VoidDungeonLargeChance) == 0) { + int y = getHighestBlock(world, blockX, blockZ); BlockPos pos = new BlockPos(blockX, y, blockZ); - //WorldGenerator structure = new VoidDungeonLargeGen(); generate(world, rand, pos); } } - /*/ - private void generateOverworld(World world, Random rand, int blockX, int blockZ) - { - int y = getGroundFromAbove(world, blockX, blockZ); - BlockPos pos = new BlockPos(blockX, y, blockZ); - WorldGenerator structure = new VoidDungeonLargeGen(); - structure.generate(world, rand, pos); - } - /*/ @Override public boolean generate(World world, Random rand, BlockPos position) { @@ -62,46 +54,56 @@ public boolean generate(World world, Random rand, BlockPos position) { return false; if(part1 == null) return false; - Biome biome = world.getBiomeForCoordsBody(position); - if(canSpawnHere(part1, worldserver, position)) { - if(rand.nextInt(ModConfig.worldgen.structures.VoidDungeonLargeChance) == 0){ - IBlockState iblockstate = world.getBlockState(position); - world.notifyBlockUpdate(position, iblockstate, iblockstate, 3); - PlacementSettings placementsettings = (new PlacementSettings()).setMirror(Mirror.NONE) - .setRotation(Rotation.NONE).setIgnoreEntities(false).setChunk((ChunkPos) null) - .setReplacedBlock((Block) null).setIgnoreStructureBlock(false); - part1.getDataBlocks(position, placementsettings); - part1.addBlocksToWorld(world, position.add(0, -11, 0), placementsettings); - part2.getDataBlocks(position, placementsettings); - part2.addBlocksToWorld(world, position.add(0, -11, 32), placementsettings); - part3.getDataBlocks(position, placementsettings); - part3.addBlocksToWorld(world, position.add(32, -11, 0), placementsettings); - part4.getDataBlocks(position, placementsettings); - part4.addBlocksToWorld(world, position.add(32, -11, 32), placementsettings); - return true; - } + if(isAreaValid(worldserver, position)) { + IBlockState iblockstate = world.getBlockState(position); + world.notifyBlockUpdate(position, iblockstate, iblockstate, 3); + PlacementSettings placementsettings = (new PlacementSettings()).setMirror(Mirror.NONE) + .setRotation(Rotation.NONE).setIgnoreEntities(false).setChunk((ChunkPos) null) + .setReplacedBlock((Block) null).setIgnoreStructureBlock(false); + part1.getDataBlocks(position, placementsettings); + part1.addBlocksToWorld(world, position.add(0, -10, 0), placementsettings); + part2.getDataBlocks(position, placementsettings); + part2.addBlocksToWorld(world, position.add(0, -10, 32), placementsettings); + part3.getDataBlocks(position, placementsettings); + part3.addBlocksToWorld(world, position.add(32, -10, 0), placementsettings); + part4.getDataBlocks(position, placementsettings); + part4.addBlocksToWorld(world, position.add(32, -10, 32), placementsettings); + return true; } return false; } - - public static boolean canSpawnHere(Template template, World world, BlockPos posAboveGround) - { - int zwidth = template.getSize().getZ(); - int xwidth = template.getSize().getX(); - boolean corner1 = isCornerValid(world, posAboveGround); - boolean corner2 = isCornerValid(world, posAboveGround.add(xwidth, 0, zwidth)); - return posAboveGround.getY() > 31 && corner1 && corner2; + //get the highest block in the area + public static int getHighestBlock(World world, int blockX,int blockZ) { + int[] heights = new int[264]; + int index = 0; + for (int i=0;i<=65;i++) { + heights[index]=getGroundFromAbove(world, blockX, blockZ); + index++; + heights[index]=getGroundFromAbove(world, blockX+i+1, blockZ); + index++; + heights[index]=getGroundFromAbove(world, blockX+i+1, blockZ+i+1); + index++; + heights[index]=getGroundFromAbove(world, blockX+i+1, blockZ+i+1); + index++; + } + + return Utils.getMaxValue(heights); } - public static boolean isCornerValid(World world, BlockPos pos) + //check to see if the area is valid for spawning the structure + public static boolean isAreaValid(World world, BlockPos postion) { - int variation = 3; - int highestBlock = getGroundFromAbove(world, pos.getX(), pos.getZ()); - if (highestBlock > pos.getY() - variation && highestBlock < pos.getY() + variation) - return true; - return false; + int x = postion.getX(); + int y = postion.getY(); + int z = postion.getZ(); + return postion.getY() > 31 + && world.getBlockState(new BlockPos(x,y-11,z)).getBlock()==Misc.VoidStone + && world.getBlockState(new BlockPos(x+64,y-11,z)).getBlock()==Misc.VoidStone + && world.getBlockState(new BlockPos(x,y-11,z+64)).getBlock()==Misc.VoidStone + && world.getBlockState(new BlockPos(x+64,y-11,z+64)).getBlock()==Misc.VoidStone; + } - + public static int getGroundFromAbove(World world, int x, int z) { int y = 120; @@ -110,7 +112,7 @@ public static int getGroundFromAbove(World world, int x, int z) { Block blockAt = world.getBlockState(new BlockPos(x,y,z)).getBlock(); Block blockAbove = world.getBlockState(new BlockPos(x,y+1,z)).getBlock(); - foundGround = blockAt == Misc.VoidStone; + foundGround = (blockAt == Misc.VoidStone && blockAbove == Blocks.AIR); } return y; } diff --git a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Dungeons/VoidTower.java b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Dungeons/VoidTower.java index 2da3634..3c53fa3 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Dungeons/VoidTower.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Dungeons/VoidTower.java @@ -71,13 +71,22 @@ public boolean generate(World world, Random rand, BlockPos position) { .setReplacedBlock((Block) null).setIgnoreStructureBlock(false); bottom.getDataBlocks(position, placementsettings); bottom.addBlocksToWorld(world, position.add(0, 0, 0), placementsettings); - for (int i=1;i1) { + for (int i=1;i0) { + world.setBlockState(new BlockPos(x,y,z), Utils.getRandomBrick()); + blockToReplace = world.getBlockState(new BlockPos(x,y-1,z)).getBlock(); + y--; + } + y=position.getY(); + + //(7,0) + blockToReplace = world.getBlockState(new BlockPos(x+6,y-1,z)).getBlock(); + while ((blockToReplace==Blocks.WATER + ||blockToReplace==Blocks.COBBLESTONE + ||blockToReplace==Blocks.FLOWING_WATER + ||blockToReplace instanceof BlockAir + ||blockToReplace instanceof BlockBush + ||blockToReplace instanceof BlockSnow + ||blockToReplace instanceof BlockFluidClassic + ||blockToReplace instanceof BlockLeaves) + &&y>0) { + world.setBlockState(new BlockPos(x+6,y,z), Utils.getRandomBrick()); + blockToReplace = world.getBlockState(new BlockPos(x+6,y-1,z)).getBlock(); + y--; + } + y=position.getY(); + + //(0,17) + blockToReplace = world.getBlockState(new BlockPos(x,y-1,z+16)).getBlock(); + while ((blockToReplace==Blocks.WATER + ||blockToReplace==Blocks.COBBLESTONE + ||blockToReplace==Blocks.FLOWING_WATER + ||blockToReplace instanceof BlockAir + ||blockToReplace instanceof BlockBush + ||blockToReplace instanceof BlockSnow + ||blockToReplace instanceof BlockFluidClassic + ||blockToReplace instanceof BlockLeaves) + &&y>0) { + world.setBlockState(new BlockPos(x,y,z+16), Utils.getRandomBrick()); + blockToReplace = world.getBlockState(new BlockPos(x,y-1,z+16)).getBlock(); + y--; + } + y=position.getY(); + + //(7,17) + blockToReplace = world.getBlockState(new BlockPos(x+6,y-1,z+16)).getBlock(); + while ((blockToReplace==Blocks.WATER + ||blockToReplace==Blocks.COBBLESTONE + ||blockToReplace==Blocks.FLOWING_WATER + ||blockToReplace instanceof BlockAir + ||blockToReplace instanceof BlockBush + ||blockToReplace instanceof BlockSnow + ||blockToReplace instanceof BlockFluidClassic + ||blockToReplace instanceof BlockLeaves) + &&y>0) { + world.setBlockState(new BlockPos(x+6,y,z+16), Utils.getRandomBrick()); + blockToReplace = world.getBlockState(new BlockPos(x+6,y-1,z+16)).getBlock(); + y--; + } return true; } return false; @@ -79,7 +164,6 @@ public boolean generate(World world, Random rand, BlockPos position, Boolean isU @Override public boolean generate(World worldIn, Random rand, BlockPos position) { - // TODO Auto-generated method stub return false; } diff --git a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Home.java b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Home.java index fd7012e..8308826 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Home.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Home.java @@ -4,8 +4,16 @@ import com.NetherNoah.ParadiseMod.Reference; import com.NetherNoah.ParadiseMod.config.ModConfig; +import com.NetherNoah.ParadiseMod.init.ModBlocks.Misc; import net.minecraft.block.Block; +import net.minecraft.block.BlockAir; +import net.minecraft.block.BlockBush; +import net.minecraft.block.BlockLeaves; +import net.minecraft.block.BlockNewLog; +import net.minecraft.block.BlockOldLog; +import net.minecraft.block.BlockPlanks; +import net.minecraft.block.BlockSnow; import net.minecraft.block.state.IBlockState; import net.minecraft.init.Biomes; import net.minecraft.init.Blocks; @@ -24,6 +32,7 @@ import net.minecraft.world.gen.structure.template.PlacementSettings; import net.minecraft.world.gen.structure.template.Template; import net.minecraft.world.gen.structure.template.TemplateManager; +import net.minecraftforge.fluids.BlockFluidClassic; import net.minecraftforge.fml.common.IWorldGenerator; public class Home extends WorldGenerator implements IWorldGenerator{ @@ -33,11 +42,6 @@ public void generate(Random rand, int chunkX, int chunkZ, World world, IChunkGen IChunkProvider chunkProvider) { int blockX = chunkX * 16; int blockZ = chunkZ * 16; - generateOverworld(world, rand, blockX + 8, blockZ + 8); - } - - private void generateOverworld(World world, Random rand, int blockX, int blockZ) - { int y = getGroundFromAbove(world, blockX, blockZ); BlockPos pos = new BlockPos(blockX, y, blockZ); generate(world, rand, pos); @@ -45,33 +49,20 @@ private void generateOverworld(World world, Random rand, int blockX, int blockZ) public static int getGroundFromAbove(World world, int x, int z) { - int y = 75; + int y = 255; boolean foundGround = false; while(!foundGround && y-- >= 31) { Block blockAt = world.getBlockState(new BlockPos(x,y,z)).getBlock(); Block blockAbove = world.getBlockState(new BlockPos(x,y+1,z)).getBlock(); - foundGround = (blockAt == Blocks.GRASS|| blockAt == Blocks.DIRT || blockAt == Blocks.SAND || blockAt == Blocks.SNOW ||blockAt == Blocks.MYCELIUM||blockAt==Blocks.STONE)&&blockAbove==Blocks.AIR; + foundGround = (blockAt == Blocks.GRASS|| blockAt == Blocks.DIRT || blockAt == Blocks.SAND || blockAt == Blocks.SNOW ||blockAt == Blocks.MYCELIUM||blockAt==Blocks.STONE||blockAt==Blocks.WATER)&&(blockAbove==Blocks.AIR||blockAbove==Blocks.SNOW_LAYER); } return y; } public static boolean canSpawnHere(Template template, World world, BlockPos posAboveGround) { - int zwidth = template.getSize().getZ(); - int xwidth = template.getSize().getX(); - boolean corner1 = isCornerValid(world, posAboveGround); - boolean corner2 = isCornerValid(world, posAboveGround.add(xwidth, 0, zwidth)); - return posAboveGround.getY() > 31 && corner1 && corner2; - } - - public static boolean isCornerValid(World world, BlockPos pos) - { - int variation = 3; - int highestBlock = getGroundFromAbove(world, pos.getX(), pos.getZ()); - if (highestBlock > pos.getY() - variation && highestBlock < pos.getY() + variation) - return true; - return false; + return posAboveGround.getY() > 31; } @Override @@ -82,25 +73,43 @@ public boolean generate(World world, Random rand, BlockPos position) { MinecraftServer minecraftserver = world.getMinecraftServer(); TemplateManager templatemanager = worldserver.getStructureTemplateManager(); Template template = templatemanager.getTemplate(minecraftserver, new ResourceLocation(Reference.MOD_ID+":homes/starter_house")); + IBlockState supportType = Blocks.LOG.getDefaultState().withProperty(BlockOldLog.VARIANT, BlockPlanks.EnumType.OAK); //savanna home - if(biome == Biomes.SAVANNA||biome == Biomes.SAVANNA_PLATEAU||biome == Biomes.MUTATED_SAVANNA||biome == Biomes.MUTATED_SAVANNA_ROCK) + if(biome == Biomes.SAVANNA||biome == Biomes.SAVANNA_PLATEAU||biome == Biomes.MUTATED_SAVANNA||biome == Biomes.MUTATED_SAVANNA_ROCK) { + supportType = Blocks.LOG2.getDefaultState().withProperty(BlockNewLog.VARIANT, BlockPlanks.EnumType.ACACIA); template = templatemanager.getTemplate(minecraftserver, new ResourceLocation(Reference.MOD_ID+":homes/starter_house_acacia")); + } + //birch forest home - if(biome == Biomes.BIRCH_FOREST_HILLS|| biome == Biomes.BIRCH_FOREST_HILLS) + if(biome == Biomes.BIRCH_FOREST_HILLS|| biome == Biomes.BIRCH_FOREST_HILLS) { + supportType = Blocks.LOG.getDefaultState().withProperty(BlockOldLog.VARIANT, BlockPlanks.EnumType.BIRCH); template = templatemanager.getTemplate(minecraftserver, new ResourceLocation(Reference.MOD_ID+":homes/starter_house_birch")); + } + //roofed forest home - if(biome == Biomes.ROOFED_FOREST) + if(biome == Biomes.ROOFED_FOREST) { template = templatemanager.getTemplate(minecraftserver, new ResourceLocation(Reference.MOD_ID+":homes/starter_house_dark_oak")); + supportType = Blocks.LOG2.getDefaultState().withProperty(BlockNewLog.VARIANT, BlockPlanks.EnumType.DARK_OAK); + } + //desert home - if(biome == Biomes.DESERT||biome == Biomes.DESERT_HILLS||biome == Biomes.MUTATED_DESERT) + if(biome == Biomes.DESERT||biome == Biomes.DESERT_HILLS||biome == Biomes.MUTATED_DESERT) { template = templatemanager.getTemplate(minecraftserver, new ResourceLocation(Reference.MOD_ID+":homes/starter_house_desert")); + supportType = Misc.CompressedCactus.getDefaultState(); + } + //jungle home - if(biome == Biomes.JUNGLE||biome == Biomes.JUNGLE_EDGE||biome == Biomes.JUNGLE_HILLS||biome == Biomes.MUTATED_JUNGLE||biome == Biomes.MUTATED_JUNGLE_EDGE) + if(biome == Biomes.JUNGLE||biome == Biomes.JUNGLE_EDGE||biome == Biomes.JUNGLE_HILLS||biome == Biomes.MUTATED_JUNGLE||biome == Biomes.MUTATED_JUNGLE_EDGE) { template = templatemanager.getTemplate(minecraftserver, new ResourceLocation(Reference.MOD_ID+":homes/starter_house_jungle")); + supportType = Blocks.LOG.getDefaultState().withProperty(BlockOldLog.VARIANT, BlockPlanks.EnumType.JUNGLE); + } + //spruce home - if(biome == Biomes.TAIGA||biome == Biomes.TAIGA_HILLS||biome == Biomes.COLD_TAIGA||biome == Biomes.COLD_TAIGA_HILLS||biome == Biomes.MUTATED_REDWOOD_TAIGA||biome == Biomes.MUTATED_REDWOOD_TAIGA_HILLS||biome == Biomes.MUTATED_TAIGA||biome == Biomes.MUTATED_TAIGA_COLD||biome == Biomes.REDWOOD_TAIGA||biome == Biomes.REDWOOD_TAIGA_HILLS||biome==Biomes.EXTREME_HILLS_WITH_TREES||biome==Biomes.MUTATED_EXTREME_HILLS_WITH_TREES) + if(biome == Biomes.TAIGA||biome == Biomes.TAIGA_HILLS||biome == Biomes.COLD_TAIGA||biome == Biomes.COLD_TAIGA_HILLS||biome == Biomes.MUTATED_REDWOOD_TAIGA||biome == Biomes.MUTATED_REDWOOD_TAIGA_HILLS||biome == Biomes.MUTATED_TAIGA||biome == Biomes.MUTATED_TAIGA_COLD||biome == Biomes.REDWOOD_TAIGA||biome == Biomes.REDWOOD_TAIGA_HILLS||biome==Biomes.EXTREME_HILLS_WITH_TREES||biome==Biomes.MUTATED_EXTREME_HILLS_WITH_TREES) { template = templatemanager.getTemplate(minecraftserver, new ResourceLocation(Reference.MOD_ID+":homes/starter_house_spruce")); + supportType = Blocks.LOG.getDefaultState().withProperty(BlockOldLog.VARIANT, BlockPlanks.EnumType.SPRUCE); + } if(ModConfig.worldgen.structures.Homes==false) return false; @@ -112,7 +121,83 @@ public boolean generate(World world, Random rand, BlockPos position) { .setRotation(Rotation.NONE).setIgnoreEntities(false).setChunk((ChunkPos) null) .setReplacedBlock((Block) null).setIgnoreStructureBlock(false); template.getDataBlocks(position, placementsettings); - template.addBlocksToWorld(world, position.add(0, 0, 0), placementsettings); + template.addBlocksToWorld(world, position.add(0, 0, 0), placementsettings); + + //generate supports if needed + int x=position.getX(); + int y=position.getY(); + int z=position.getZ(); + Block blockToReplace = world.getBlockState(new BlockPos(x,y-2,z+1)).getBlock(); + world.setBlockState(new BlockPos(x,y-1,z+1), supportType); + world.setBlockState(new BlockPos(x+5,y-1,z+1), supportType); + world.setBlockState(new BlockPos(x,y-1,z+7), supportType); + world.setBlockState(new BlockPos(x+5,y-1,z+7), supportType); + + //(0,0) + while ((blockToReplace==Blocks.WATER + ||blockToReplace==Blocks.COBBLESTONE + ||blockToReplace==Blocks.FLOWING_WATER + ||blockToReplace instanceof BlockAir + ||blockToReplace instanceof BlockBush + ||blockToReplace instanceof BlockSnow + ||blockToReplace instanceof BlockFluidClassic + ||blockToReplace instanceof BlockLeaves) + &&y>0) { + world.setBlockState(new BlockPos(x,y-1,z+1), supportType); + blockToReplace = world.getBlockState(new BlockPos(x,y-2,z)).getBlock(); + y--; + } + y=position.getY(); + + //(6,0) + blockToReplace = world.getBlockState(new BlockPos(x+5,y-2,z+1)).getBlock(); + while ((blockToReplace==Blocks.WATER + ||blockToReplace==Blocks.COBBLESTONE + ||blockToReplace==Blocks.FLOWING_WATER + ||blockToReplace instanceof BlockAir + ||blockToReplace instanceof BlockBush + ||blockToReplace instanceof BlockSnow + ||blockToReplace instanceof BlockFluidClassic + ||blockToReplace instanceof BlockLeaves) + &&y>0) { + world.setBlockState(new BlockPos(x+5,y-1,z+1), supportType); + blockToReplace = world.getBlockState(new BlockPos(x+5,y-2,z+1)).getBlock(); + y--; + } + y=position.getY(); + + //(0,7) + blockToReplace = world.getBlockState(new BlockPos(x,y-2,z+7)).getBlock(); + while ((blockToReplace==Blocks.WATER + ||blockToReplace==Blocks.COBBLESTONE + ||blockToReplace==Blocks.FLOWING_WATER + ||blockToReplace instanceof BlockAir + ||blockToReplace instanceof BlockBush + ||blockToReplace instanceof BlockSnow + ||blockToReplace instanceof BlockFluidClassic + ||blockToReplace instanceof BlockLeaves) + &&y>0) { + world.setBlockState(new BlockPos(x,y-1,z+7), supportType); + blockToReplace = world.getBlockState(new BlockPos(x,y-2,z+7)).getBlock(); + y--; + } + y=position.getY(); + + //(6,7) + blockToReplace = world.getBlockState(new BlockPos(x+5,y-2,z+7)).getBlock(); + while ((blockToReplace==Blocks.WATER + ||blockToReplace==Blocks.COBBLESTONE + ||blockToReplace==Blocks.FLOWING_WATER + ||blockToReplace instanceof BlockAir + ||blockToReplace instanceof BlockBush + ||blockToReplace instanceof BlockSnow + ||blockToReplace instanceof BlockFluidClassic + ||blockToReplace instanceof BlockLeaves) + &&y>0) { + world.setBlockState(new BlockPos(x+5,y-1,z+7), supportType); + blockToReplace = world.getBlockState(new BlockPos(x+5,y-2,z+7)).getBlock(); + y--; + } return true; } } diff --git a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Ocean.java b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Ocean.java index 208dd8b..148901a 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Ocean.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Ocean.java @@ -3,6 +3,7 @@ import java.util.Random; import com.NetherNoah.ParadiseMod.Reference; +import com.NetherNoah.ParadiseMod.Utils; import com.NetherNoah.ParadiseMod.config.ModConfig; import net.minecraft.block.Block; @@ -33,9 +34,12 @@ public void generate(Random rand, int chunkX, int chunkZ, World world, IChunkGen int blockX = chunkX * 16; int blockZ = chunkZ * 16; if (world.provider.getDimension() == 0) { + int structureType=rand.nextInt(2); int y = getGroundFromAbove(world, blockX, blockZ); + if (structureType==0) + y=getLowestBlock(world, blockX, blockZ); BlockPos pos = new BlockPos(blockX, y, blockZ); - generate(world, rand, pos); + generate(world, rand, pos,structureType); } } @@ -43,23 +47,40 @@ public static int getGroundFromAbove(World world, int x, int z) { int y = 255; boolean foundGround = false; - while(!foundGround && y-- >= 31) + while(!foundGround && y-- >= 20) { Block blockAt = world.getBlockState(new BlockPos(x,y,z)).getBlock(); - foundGround = blockAt == Blocks.GRAVEL; + foundGround = blockAt == Blocks.GRAVEL||blockAt == Blocks.DIRT||blockAt == Blocks.CLAY; } return y; } - @Override - public boolean generate(World world, Random rand, BlockPos position) { + //get the lowest block in the area + public static int getLowestBlock(World world, int blockX,int blockZ) { + int[] heights = new int[136]; + int index = 0; + for (int i=0;i<=33;i++) { + heights[index]=getGroundFromAbove(world, blockX, blockZ); + index++; + heights[index]=getGroundFromAbove(world, blockX+i+1, blockZ); + index++; + heights[index]=getGroundFromAbove(world, blockX+i+1, blockZ+i+1); + index++; + heights[index]=getGroundFromAbove(world, blockX+i+1, blockZ+i+1); + index++; + } + + return Utils.getMinValue(heights); + } + + public boolean generate(World world, Random rand, BlockPos position, int structureType) { WorldServer worldserver = (WorldServer) world; MinecraftServer minecraftserver = world.getMinecraftServer(); TemplateManager templatemanager = worldserver.getStructureTemplateManager(); Template template = null; int rarity=ModConfig.worldgen.structures.ShipwreckChance; - switch(rand.nextInt(2)) { + switch(structureType) { case 0: if (ModConfig.worldgen.structures.OceanVillage==true) { rarity=ModConfig.worldgen.structures.OceanVillageChance; @@ -99,4 +120,9 @@ public static boolean canSpawnHere(Template template, World world, BlockPos posA int xwidth = template.getSize().getX(); return posAboveGround.getY() > 31; } + + @Override + public boolean generate(World worldIn, Random rand, BlockPos position) { + return false; + } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Runway.java b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Runway.java index 5413f54..3d1d1e2 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Runway.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/Runway.java @@ -3,9 +3,15 @@ import java.util.Random; import com.NetherNoah.ParadiseMod.Reference; +import com.NetherNoah.ParadiseMod.Utils; import com.NetherNoah.ParadiseMod.config.ModConfig; +import com.NetherNoah.ParadiseMod.init.ModBlocks.Misc; import net.minecraft.block.Block; +import net.minecraft.block.BlockAir; +import net.minecraft.block.BlockBush; +import net.minecraft.block.BlockLeaves; +import net.minecraft.block.BlockSnow; import net.minecraft.block.state.IBlockState; import net.minecraft.init.Blocks; import net.minecraft.server.MinecraftServer; @@ -23,6 +29,7 @@ import net.minecraft.world.gen.structure.template.PlacementSettings; import net.minecraft.world.gen.structure.template.Template; import net.minecraft.world.gen.structure.template.TemplateManager; +import net.minecraftforge.fluids.BlockFluidClassic; import net.minecraftforge.fml.common.IWorldGenerator; public class Runway extends WorldGenerator implements IWorldGenerator{ @@ -31,8 +38,8 @@ public void generate(Random rand, int chunkX, int chunkZ, World world, IChunkGen IChunkProvider chunkProvider) { int blockX = chunkX * 16; int blockZ = chunkZ * 16; - if (world.provider.getDimension() == 0){ - int y = getGroundFromAbove(world, blockX, blockZ); + if (world.provider.getDimension() == 0 && rand.nextInt(ModConfig.worldgen.structures.RunwayChance) == 0){ + int y = getHighestBlock(world, blockX, blockZ); BlockPos pos = new BlockPos(blockX, y, blockZ); generate(world, rand, pos); } @@ -45,10 +52,23 @@ public static int getGroundFromAbove(World world, int x, int z) while(!foundGround && y-- >= 31) { Block blockAt = world.getBlockState(new BlockPos(x,y,z)).getBlock(); - foundGround = blockAt == Blocks.GRASS|| blockAt == Blocks.DIRT || blockAt == Blocks.SAND || blockAt == Blocks.SNOW ||blockAt == Blocks.MYCELIUM||blockAt==Blocks.STONE||blockAt==Blocks.WATER; + foundGround = blockAt == Blocks.GRASS||blockAt == Blocks.SAND||blockAt == Blocks.SNOW||blockAt == Blocks.MYCELIUM||blockAt==Blocks.WATER; } return y; } + + public static Block getGroundBlock(World world, int x, int z) + { + int y = 255; + boolean foundGround = false; + Block blockAt = world.getBlockState(new BlockPos(x,y,z)).getBlock(); + while(!foundGround && y-- >= 31) + { + blockAt = world.getBlockState(new BlockPos(x,y,z)).getBlock(); + foundGround = blockAt == Blocks.GRASS||blockAt == Blocks.SAND||blockAt == Blocks.SNOW||blockAt == Blocks.MYCELIUM||blockAt==Blocks.WATER; + } + return blockAt; + } @Override public boolean generate(World world, Random rand, BlockPos position) { @@ -58,26 +78,167 @@ public boolean generate(World world, Random rand, BlockPos position) { Template template = templatemanager.getTemplate(minecraftserver, new ResourceLocation(Reference.MOD_ID+":runway")); if(template == null||ModConfig.worldgen.structures.Runway==false) return false; - Biome biome = world.getBiomeForCoordsBody(position); - if(canSpawnHere(template, worldserver, position)) { - if(rand.nextInt(ModConfig.worldgen.structures.RunwayChance) == 0){ - IBlockState iblockstate = world.getBlockState(position); - world.notifyBlockUpdate(position, iblockstate, iblockstate, 3); - PlacementSettings placementsettings = (new PlacementSettings()).setMirror(Mirror.NONE) - .setRotation(Rotation.NONE).setIgnoreEntities(false).setChunk((ChunkPos) null) - .setReplacedBlock((Block) null).setIgnoreStructureBlock(false); - template.getDataBlocks(position, placementsettings); - template.addBlocksToWorld(world, position.add(0, -4, 0), placementsettings); - return true; + + if(isAreaValid(world, position)) { + IBlockState iblockstate = world.getBlockState(position); + world.notifyBlockUpdate(position, iblockstate, iblockstate, 3); + PlacementSettings placementsettings = (new PlacementSettings()).setMirror(Mirror.NONE) + .setRotation(Rotation.NONE).setIgnoreEntities(false).setChunk((ChunkPos) null) + .setReplacedBlock((Block) null).setIgnoreStructureBlock(false); + template.getDataBlocks(position, placementsettings); + template.addBlocksToWorld(world, position.add(0, -4, 0), placementsettings); + + //generate supports if needed + int x=position.getX(); + int y=position.getY(); + int z=position.getZ(); + Block blockToReplace = world.getBlockState(new BlockPos(x,y-1,z+31)).getBlock(); + + //(0,32) + world.setBlockState(new BlockPos(x,y,z+31), Blocks.COBBLESTONE.getDefaultState()); + while ((blockToReplace==Blocks.WATER + ||blockToReplace==Blocks.COBBLESTONE + ||blockToReplace==Blocks.FLOWING_WATER + ||blockToReplace instanceof BlockAir + ||blockToReplace instanceof BlockBush + ||blockToReplace instanceof BlockSnow + ||blockToReplace instanceof BlockFluidClassic + ||blockToReplace instanceof BlockLeaves) + &&y>0) { + world.setBlockState(new BlockPos(x,y,z+31), Blocks.COBBLESTONE.getDefaultState()); + blockToReplace = world.getBlockState(new BlockPos(x,y-1,z+31)).getBlock(); + y--; + } + y=position.getY(); + + //(0,27) + blockToReplace = world.getBlockState(new BlockPos(x,y-1,z+26)).getBlock(); + world.setBlockState(new BlockPos(x,y,z+26), Blocks.COBBLESTONE.getDefaultState()); + while ((blockToReplace==Blocks.WATER + ||blockToReplace==Blocks.COBBLESTONE + ||blockToReplace==Blocks.FLOWING_WATER + ||blockToReplace instanceof BlockAir + ||blockToReplace instanceof BlockBush + ||blockToReplace instanceof BlockSnow + ||blockToReplace instanceof BlockFluidClassic + ||blockToReplace instanceof BlockLeaves) + &&y>0) { + world.setBlockState(new BlockPos(x,y,z+26), Blocks.COBBLESTONE.getDefaultState()); + blockToReplace = world.getBlockState(new BlockPos(x,y-1,z+26)).getBlock(); + y--; + } + y=position.getY(); + + //(14,0) + blockToReplace = world.getBlockState(new BlockPos(x+13,y-1,z)).getBlock(); + world.setBlockState(new BlockPos(x+13,y,z), Blocks.COBBLESTONE.getDefaultState()); + while ((blockToReplace==Blocks.WATER + ||blockToReplace==Blocks.COBBLESTONE + ||blockToReplace==Blocks.FLOWING_WATER + ||blockToReplace instanceof BlockAir + ||blockToReplace instanceof BlockBush + ||blockToReplace instanceof BlockSnow + ||blockToReplace instanceof BlockFluidClassic + ||blockToReplace instanceof BlockLeaves) + &&y>0) { + world.setBlockState(new BlockPos(x+13,y,z), Blocks.COBBLESTONE.getDefaultState()); + blockToReplace = world.getBlockState(new BlockPos(x+13,y-1,z)).getBlock(); + y--; + } + y=position.getY(); + + //(6,0) + blockToReplace = world.getBlockState(new BlockPos(x+5,y-1,z)).getBlock(); + world.setBlockState(new BlockPos(x+5,y,z), Blocks.COBBLESTONE.getDefaultState()); + while ((blockToReplace==Blocks.WATER + ||blockToReplace==Blocks.COBBLESTONE + ||blockToReplace==Blocks.FLOWING_WATER + ||blockToReplace instanceof BlockAir + ||blockToReplace instanceof BlockBush + ||blockToReplace instanceof BlockSnow + ||blockToReplace instanceof BlockFluidClassic + ||blockToReplace instanceof BlockLeaves) + &&y>0) { + world.setBlockState(new BlockPos(x+5,y,z), Blocks.COBBLESTONE.getDefaultState()); + blockToReplace = world.getBlockState(new BlockPos(x+5,y-1,z)).getBlock(); + y--; + } + y=position.getY(); + + //(14,32) + blockToReplace = world.getBlockState(new BlockPos(x+13,y-1,z+31)).getBlock(); + world.setBlockState(new BlockPos(x+13,y,z+31), Blocks.COBBLESTONE.getDefaultState()); + while ((blockToReplace==Blocks.WATER + ||blockToReplace==Blocks.COBBLESTONE + ||blockToReplace==Blocks.FLOWING_WATER + ||blockToReplace instanceof BlockAir + ||blockToReplace instanceof BlockBush + ||blockToReplace instanceof BlockSnow + ||blockToReplace instanceof BlockFluidClassic + ||blockToReplace instanceof BlockLeaves) + &&y>0) { + world.setBlockState(new BlockPos(x+13,y,z+31), Blocks.COBBLESTONE.getDefaultState()); + blockToReplace = world.getBlockState(new BlockPos(x+13,y-1,z+31)).getBlock(); + y--; } + return true; + } return false; } - public static boolean canSpawnHere(Template template, World world, BlockPos posAboveGround) + //check to see if the area is valid for spawning the structure + public static boolean isAreaValid(World world, BlockPos postion) { - int zwidth = template.getSize().getZ(); - int xwidth = template.getSize().getX(); - return posAboveGround.getY() > 10; + int x = postion.getX(); + int y = postion.getY(); + int z = postion.getZ(); + return postion.getY() > 31 + && ((getGroundBlock(world, x,z)==Blocks.GRASS + && getGroundBlock(world,x+14,z)==Blocks.GRASS + && getGroundBlock(world,x,z+32)==Blocks.GRASS + && getGroundBlock(world,x+14,z+32)==Blocks.GRASS) + + || (getGroundBlock(world,x,z)==Blocks.SAND + && getGroundBlock(world,x+14,z)==Blocks.SAND + && getGroundBlock(world,x,z+32)==Blocks.GRASS + && getGroundBlock(world,x+14,z+32)==Blocks.GRASS) + + || (getGroundBlock(world,x,z)==Blocks.SNOW + && getGroundBlock(world,x+14,z)==Blocks.SNOW + && getGroundBlock(world,x,z+32)==Blocks.SNOW + && getGroundBlock(world,x+14,z+32)==Blocks.SNOW) + + || (getGroundBlock(world,x,z)==Blocks.MYCELIUM + && getGroundBlock(world,x+14,z)==Blocks.MYCELIUM + && getGroundBlock(world,x,z+32)==Blocks.MYCELIUM + && getGroundBlock(world,x+14,z+32)==Blocks.MYCELIUM) + + || (getGroundBlock(world,x,z)==Blocks.WATER + && getGroundBlock(world,x+14,z)==Blocks.WATER + && getGroundBlock(world,x,z+32)==Blocks.WATER + && getGroundBlock(world,x+14,z+32)==Blocks.WATER)); + + } + + //get the highest block in the area + public static int getHighestBlock(World world, int blockX,int blockZ) { + int[] heights = new int[92]; + int index = 0; + for (int i=0;i<=13;i++) { + heights[index]=getGroundFromAbove(world, blockX, blockZ); + index++; + heights[index]=getGroundFromAbove(world, blockX+i+1, blockZ+32); + index++; + } + + for (int i=0;i<=31;i++) { + heights[index]=getGroundFromAbove(world, blockX, blockZ+i+1); + index++; + heights[index]=getGroundFromAbove(world, blockX+14, blockZ+i+1); + index++; + } + + return Utils.getMaxValue(heights); } } \ No newline at end of file diff --git a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/TreasureChest.java b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/TreasureChest.java index 2e40135..5120e91 100644 --- a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/TreasureChest.java +++ b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/TreasureChest.java @@ -33,7 +33,8 @@ public void generate(Random rand, int chunkX, int chunkZ, World world, IChunkGen int blockZ = chunkZ * 16; int y = getGroundFromAbove(world, blockX, blockZ); BlockPos pos = new BlockPos(blockX, y, blockZ); - generate(world, rand, pos); + if (y>31) + generate(world, rand, pos); } public static int getGroundFromAbove(World world, int x, int z) diff --git a/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/blackCross.java b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/blackCross.java new file mode 100644 index 0000000..52cd2c2 --- /dev/null +++ b/src/main/java/com/NetherNoah/ParadiseMod/world/worldgen/structures/blackCross.java @@ -0,0 +1,167 @@ +package com.NetherNoah.ParadiseMod.world.worldgen.structures; + +import java.util.Random; + +import com.NetherNoah.ParadiseMod.Reference; +import com.NetherNoah.ParadiseMod.Utils; +import com.NetherNoah.ParadiseMod.config.ModConfig; +import com.NetherNoah.ParadiseMod.init.ModBlocks.Misc; +import com.NetherNoah.ParadiseMod.world.dimension.DimensionRegistry; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockAir; +import net.minecraft.block.BlockBush; +import net.minecraft.block.BlockLeaves; +import net.minecraft.block.BlockSnow; +import net.minecraft.block.BlockStoneBrick; +import net.minecraft.block.BlockStoneBrick.EnumType; +import net.minecraft.block.state.IBlockState; +import net.minecraft.init.Blocks; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.Mirror; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Rotation; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.ChunkPos; +import net.minecraft.world.World; +import net.minecraft.world.WorldServer; +import net.minecraft.world.biome.Biome; +import net.minecraft.world.chunk.IChunkProvider; +import net.minecraft.world.gen.IChunkGenerator; +import net.minecraft.world.gen.feature.WorldGenerator; +import net.minecraft.world.gen.structure.template.PlacementSettings; +import net.minecraft.world.gen.structure.template.Template; +import net.minecraft.world.gen.structure.template.TemplateManager; +import net.minecraftforge.fluids.BlockFluidClassic; +import net.minecraftforge.fml.common.IWorldGenerator; + +//I'm NOT an apostolic christian, Genesis, nor do I want to be one! +//And yes, I'll continue listening to my "ungodly" death metal music! + +public class blackCross extends WorldGenerator implements IWorldGenerator{ + + @Override + public void generate(Random rand, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, + IChunkProvider chunkProvider) { + int blockX = chunkX * 16; + int blockZ = chunkZ * 16; + int y = getGroundFromAbove(world, blockX, blockZ); + boolean isVoid= world.provider.getDimension() == DimensionRegistry.DeepVoid; + BlockPos pos = new BlockPos(blockX, y, blockZ); + generate(world, rand, pos,isVoid); + } + + public static int getGroundFromAbove(World world, int x, int z) + { + int y = 255; + boolean foundGround = false; + while(!foundGround && y-- >= 50) + { + Block blockAt = world.getBlockState(new BlockPos(x,y,z)).getBlock(); + foundGround = blockAt == Blocks.SAND||blockAt == Blocks.GRASS||blockAt == Blocks.DIRT||blockAt == Blocks.STONE||blockAt == Blocks.WATER||blockAt==Misc.VoidStone; + } + return y; + } + + public boolean generate(World world, Random rand, BlockPos position, Boolean isVoid) { + WorldServer worldserver = (WorldServer) world; + MinecraftServer minecraftserver = world.getMinecraftServer(); + TemplateManager templatemanager = worldserver.getStructureTemplateManager(); + Template template = templatemanager.getTemplate(minecraftserver, new ResourceLocation(Reference.MOD_ID+":black_cross")); + if (isVoid==true) { + template = templatemanager.getTemplate(minecraftserver, new ResourceLocation(Reference.MOD_ID+":black_cross_void")); + } + if(ModConfig.worldgen.structures.blackCross==false) + return false; + Biome biome = world.getBiomeForCoordsBody(position); + if(rand.nextInt(777) == 0){ + IBlockState iblockstate = world.getBlockState(position); + world.notifyBlockUpdate(position, iblockstate, iblockstate, 3); + PlacementSettings placementsettings = (new PlacementSettings()).setMirror(Mirror.NONE) + .setRotation(Rotation.NONE).setIgnoreEntities(false).setChunk((ChunkPos) null) + .setReplacedBlock((Block) null).setIgnoreStructureBlock(false); + template.getDataBlocks(position, placementsettings); + template.addBlocksToWorld(world, position.add(0, 0, 0), placementsettings); + + //generate supports if needed + int x=position.getX(); + int y=position.getY(); + int z=position.getZ(); + Block blockToReplace = world.getBlockState(new BlockPos(x,y-1,z)).getBlock(); + + //(0,0) + while ((blockToReplace==Blocks.WATER + ||blockToReplace==Blocks.COBBLESTONE + ||blockToReplace==Blocks.FLOWING_WATER + ||blockToReplace instanceof BlockAir + ||blockToReplace instanceof BlockBush + ||blockToReplace instanceof BlockSnow + ||blockToReplace instanceof BlockFluidClassic + ||blockToReplace instanceof BlockLeaves) + &&y>0) { + world.setBlockState(new BlockPos(x,y,z), Utils.getRandomBrick()); + blockToReplace = world.getBlockState(new BlockPos(x,y-1,z)).getBlock(); + y--; + } + y=position.getY(); + + //(7,0) + blockToReplace = world.getBlockState(new BlockPos(x+6,y-1,z)).getBlock(); + while ((blockToReplace==Blocks.WATER + ||blockToReplace==Blocks.COBBLESTONE + ||blockToReplace==Blocks.FLOWING_WATER + ||blockToReplace instanceof BlockAir + ||blockToReplace instanceof BlockBush + ||blockToReplace instanceof BlockSnow + ||blockToReplace instanceof BlockFluidClassic + ||blockToReplace instanceof BlockLeaves) + &&y>0) { + world.setBlockState(new BlockPos(x+6,y,z), Utils.getRandomBrick()); + blockToReplace = world.getBlockState(new BlockPos(x+6,y-1,z)).getBlock(); + y--; + } + y=position.getY(); + + //(0,13) + blockToReplace = world.getBlockState(new BlockPos(x,y-1,z+12)).getBlock(); + while ((blockToReplace==Blocks.WATER + ||blockToReplace==Blocks.COBBLESTONE + ||blockToReplace==Blocks.FLOWING_WATER + ||blockToReplace instanceof BlockAir + ||blockToReplace instanceof BlockBush + ||blockToReplace instanceof BlockSnow + ||blockToReplace instanceof BlockFluidClassic + ||blockToReplace instanceof BlockLeaves) + &&y>0) { + world.setBlockState(new BlockPos(x,y,z+12), Utils.getRandomBrick()); + blockToReplace = world.getBlockState(new BlockPos(x,y-1,z+12)).getBlock(); + y--; + } + y=position.getY(); + + //(7,13) + blockToReplace = world.getBlockState(new BlockPos(x+6,y-1,z+12)).getBlock(); + while ((blockToReplace==Blocks.WATER + ||blockToReplace==Blocks.COBBLESTONE + ||blockToReplace==Blocks.FLOWING_WATER + ||blockToReplace instanceof BlockAir + ||blockToReplace instanceof BlockBush + ||blockToReplace instanceof BlockSnow + ||blockToReplace instanceof BlockFluidClassic + ||blockToReplace instanceof BlockLeaves) + &&y>0) { + world.setBlockState(new BlockPos(x+6,y,z+12), Utils.getRandomBrick()); + blockToReplace = world.getBlockState(new BlockPos(x+6,y-1,z+12)).getBlock(); + y--; + } + return true; + } + return false; + } + + @Override + public boolean generate(World worldIn, Random rand, BlockPos position) { + return false; + } + +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/block/acacia_door_bottom.json b/src/main/resources/assets/minecraft/models/block/acacia_door_bottom.json index 29fc3f9..72a80ac 100644 --- a/src/main/resources/assets/minecraft/models/block/acacia_door_bottom.json +++ b/src/main/resources/assets/minecraft/models/block/acacia_door_bottom.json @@ -1,141 +1,70 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", "parent": "block/door_bottom", - "textures": {"bottom": "blocks/door_acacia_lower"}, + "textures": { + "bottom": "blocks/door_acacia_lower" + }, "elements": [ { - "name": "cube", "from": [0, 0, 13], "to": [3, 16, 16], "faces": { - "north": { - "uv": [13, 0, 16, 16], - "texture": "#bottom" - }, - "east": { - "uv": [16, 0, 13, 16], - "texture": "#bottom" - }, - "south": { - "uv": [15, 0, 16, 16], - "texture": "#bottom" - }, - "west": { - "uv": [13, 0, 16, 16], - "texture": "#bottom" - }, - "down": { - "uv": [0, 15, 3, 16], - "texture": "#bottom", - "rotation": 90 - } - }, - "_loading": false + "north": {"uv": [13, 0, 16, 16], "texture": "#bottom"}, + "east": {"uv": [16, 0, 13, 16], "texture": "#bottom"}, + "south": {"uv": [13, 0, 16, 16], "texture": "#bottom"}, + "west": {"uv": [13, 0, 16, 16], "texture": "#bottom"}, + "down": {"uv": [0, 15, 3, 16], "rotation": 90, "texture": "#bottom"} + } }, { - "name": "cube", "from": [0, 0, 0], "to": [3, 16, 3], "faces": { - "north": { - "uv": [0, 0, 1, 16], - "texture": "#bottom" - }, + "north": {"uv": [3, 0, 0, 16], "texture": "#bottom", "tintindex": 0}, "east": {"uv": [3, 0, 0, 16], "texture": "#bottom"}, - "south": { - "uv": [13, 0, 16, 16], - "texture": "#bottom" - }, + "south": {"uv": [13, 0, 16, 16], "texture": "#bottom"}, "west": {"uv": [0, 0, 3, 16], "texture": "#bottom"}, - "down": { - "uv": [13, 15, 16, 16], - "texture": "#bottom", - "rotation": 90 - } - }, - "_loading": false + "down": {"uv": [13, 15, 16, 16], "rotation": 90, "texture": "#bottom"} + } }, { - "name": "cube", "from": [0, 0, 3], "to": [3, 3, 13], "faces": { - "east": { - "uv": [13, 13, 3, 16], - "texture": "#bottom" - }, - "west": { - "uv": [3, 13, 13, 16], - "texture": "#bottom" - }, - "up": { - "uv": [3, 13, 13, 16], - "texture": "#bottom", - "rotation": 270 - }, - "down": { - "uv": [3, 15, 13, 16], - "texture": "#bottom", - "rotation": 90 - } + "east": {"uv": [13, 13, 3, 16], "texture": "#bottom"}, + "west": {"uv": [3, 13, 13, 16], "texture": "#bottom"}, + "up": {"uv": [3, 13, 13, 16], "rotation": 270, "texture": "#bottom"}, + "down": {"uv": [3, 15, 13, 16], "rotation": 90, "texture": "#bottom"} } }, { - "name": "cube", "from": [0, 15, 3], "to": [3, 16, 13], "faces": { "east": {"uv": [3, 0, 13, 1], "texture": "#bottom"}, "west": {"uv": [3, 0, 13, 1], "texture": "#bottom"}, - "down": { - "uv": [3, 13, 13, 16], - "texture": "#bottom", - "rotation": 90 - } + "down": {"uv": [3, 13, 13, 16], "rotation": 90, "texture": "#bottom"} } }, { - "name": "cube", "from": [0, 3, 9], "to": [3, 15, 11], "faces": { - "north": { - "uv": [13, 1, 16, 13], - "texture": "#bottom" - }, - "east": { - "uv": [9, 1, 11, 13], - "texture": "#bottom", - "rotation": 180 - }, - "south": { - "uv": [13, 1, 16, 13], - "texture": "#bottom" - }, + "north": {"uv": [13, 1, 16, 13], "texture": "#bottom"}, + "east": {"uv": [9, 1, 11, 13], "rotation": 180, "texture": "#bottom"}, + "south": {"uv": [13, 1, 16, 13], "texture": "#bottom"}, "west": {"uv": [9, 1, 11, 13], "texture": "#bottom"} } }, { - "name": "cube", "from": [0, 3, 5], "to": [3, 15, 7], "faces": { - "north": { - "uv": [13, 1, 16, 13], - "texture": "#bottom" - }, - "east": { - "uv": [9, 1, 11, 13], - "texture": "#bottom", - "rotation": 180 - }, - "south": { - "uv": [13, 1, 16, 13], - "texture": "#bottom" - }, + "north": {"uv": [13, 1, 16, 13], "texture": "#bottom"}, + "east": {"uv": [9, 1, 11, 13], "rotation": 180, "texture": "#bottom"}, + "south": {"uv": [13, 1, 16, 13], "texture": "#bottom"}, "west": {"uv": [5, 1, 7, 13], "texture": "#bottom"} } } - ], - "groups": [0, 1, 2, 3, 4, 5] + ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/block/acacia_door_bottom_rh.json b/src/main/resources/assets/minecraft/models/block/acacia_door_bottom_rh.json index 1a80a3b..ee6356d 100644 --- a/src/main/resources/assets/minecraft/models/block/acacia_door_bottom_rh.json +++ b/src/main/resources/assets/minecraft/models/block/acacia_door_bottom_rh.json @@ -1,139 +1,70 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", "parent": "block/door_bottom", - "textures": {"bottom": "blocks/door_acacia_lower"}, + "textures": { + "bottom": "blocks/door_acacia_lower" + }, "elements": [ { - "name": "cube", "from": [0, 0, 0], "to": [3, 16, 3], "faces": { - "north": { - "uv": [16, 0, 13, 16], - "texture": "#bottom" - }, - "east": { - "uv": [13, 0, 16, 16], - "texture": "#bottom" - }, - "south": { - "uv": [16, 0, 13, 16], - "texture": "#bottom" - }, - "west": { - "uv": [16, 0, 13, 16], - "texture": "#bottom" - }, - "down": { - "uv": [0, 16, 3, 13], - "texture": "#bottom", - "rotation": 90 - } + "north": {"uv": [13, 0, 16, 16], "texture": "#bottom"}, + "east": {"uv": [13, 0, 16, 16], "texture": "#bottom"}, + "south": {"uv": [16, 0, 13, 16], "texture": "#bottom"}, + "west": {"uv": [16, 0, 13, 16], "texture": "#bottom"}, + "down": {"uv": [0, 16, 3, 13], "rotation": 90, "texture": "#bottom"} } }, { - "name": "cube", "from": [0, 0, 13], "to": [3, 16, 16], "faces": { - "north": { - "uv": [16, 0, 13, 16], - "texture": "#bottom" - }, + "north": {"uv": [16, 0, 13, 16], "texture": "#bottom"}, "east": {"uv": [0, 0, 3, 16], "texture": "#bottom"}, - "south": { - "uv": [3, 0, 0, 16], - "texture": "#bottom" - }, + "south": {"uv": [0, 0, 3, 16], "texture": "#bottom"}, "west": {"uv": [3, 0, 0, 16], "texture": "#bottom"}, - "down": { - "uv": [13, 16, 16, 13], - "texture": "#bottom", - "rotation": 90 - } + "down": {"uv": [13, 16, 16, 13], "rotation": 90, "texture": "#bottom"} } }, { - "name": "cube", "from": [0, 0, 3], "to": [3, 3, 13], "faces": { - "east": { - "uv": [3, 13, 13, 16], - "texture": "#bottom" - }, - "west": { - "uv": [13, 13, 3, 16], - "texture": "#bottom" - }, - "up": { - "uv": [3, 16, 13, 13], - "texture": "#bottom", - "rotation": 270 - }, - "down": { - "uv": [3, 16, 13, 13], - "texture": "#bottom", - "rotation": 90 - } + "east": {"uv": [3, 13, 13, 16], "texture": "#bottom"}, + "west": {"uv": [13, 13, 3, 16], "texture": "#bottom"}, + "up": {"uv": [3, 16, 13, 13], "rotation": 270, "texture": "#bottom"}, + "down": {"uv": [3, 16, 13, 13], "rotation": 90, "texture": "#bottom"} } }, { - "name": "cube", "from": [0, 15, 3], "to": [3, 16, 13], "faces": { "east": {"uv": [13, 0, 3, 1], "texture": "#bottom"}, "west": {"uv": [13, 0, 3, 1], "texture": "#bottom"}, - "down": { - "uv": [3, 16, 13, 13], - "texture": "#bottom", - "rotation": 90 - } + "down": {"uv": [3, 16, 13, 13], "rotation": 90, "texture": "#bottom"} } }, { - "name": "cube", "from": [0, 3, 5], "to": [3, 15, 7], "faces": { - "north": { - "uv": [16, 1, 13, 13], - "texture": "#bottom" - }, - "east": { - "uv": [11, 1, 9, 13], - "texture": "#bottom", - "rotation": 180 - }, - "south": { - "uv": [16, 1, 13, 13], - "texture": "#bottom" - }, + "north": {"uv": [16, 1, 13, 13], "texture": "#bottom"}, + "east": {"uv": [11, 1, 9, 13], "rotation": 180, "texture": "#bottom"}, + "south": {"uv": [16, 1, 13, 13], "texture": "#bottom"}, "west": {"uv": [11, 1, 9, 13], "texture": "#bottom"} } }, { - "name": "cube", "from": [0, 3, 9], "to": [3, 15, 11], "faces": { - "north": { - "uv": [16, 1, 13, 13], - "texture": "#bottom" - }, - "east": { - "uv": [11, 1, 9, 13], - "texture": "#bottom", - "rotation": 180 - }, - "south": { - "uv": [16, 1, 13, 13], - "texture": "#bottom" - }, + "north": {"uv": [16, 1, 13, 13], "texture": "#bottom"}, + "east": {"uv": [11, 1, 9, 13], "rotation": 180, "texture": "#bottom"}, + "south": {"uv": [16, 1, 13, 13], "texture": "#bottom"}, "west": {"uv": [7, 1, 5, 13], "texture": "#bottom"} } } - ], - "groups": [0, 1, 2, 3, 4, 5] + ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/block/acacia_door_top.json b/src/main/resources/assets/minecraft/models/block/acacia_door_top.json index f7ce261..8e8d302 100644 --- a/src/main/resources/assets/minecraft/models/block/acacia_door_top.json +++ b/src/main/resources/assets/minecraft/models/block/acacia_door_top.json @@ -1,26 +1,22 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", "parent": "block/door_top", - "textures": {"top": "blocks/door_acacia_upper"}, + "textures": { + "top": "blocks/door_acacia_upper" + }, "elements": [ { - "name": "cube", "from": [0, 0, 13], "to": [3, 16, 16], "faces": { "north": {"uv": [16, 0, 13, 16], "texture": "#top"}, "east": {"uv": [16, 0, 13, 16], "texture": "#top"}, - "south": {"uv": [16, 0, 13, 16], "texture": "#top"}, + "south": {"uv": [13, 0, 16, 16], "texture": "#top"}, "west": {"uv": [13, 0, 16, 16], "texture": "#top"}, - "up": { - "uv": [16, 3, 13, 0], - "texture": "#top", - "rotation": 270 - } + "up": {"uv": [16, 3, 13, 0], "rotation": 270, "texture": "#top"} } }, { - "name": "cube", "from": [0, 0, 0], "to": [3, 16, 3], "faces": { @@ -28,48 +24,29 @@ "east": {"uv": [3, 0, 0, 16], "texture": "#top"}, "south": {"uv": [16, 0, 13, 16], "texture": "#top"}, "west": {"uv": [0, 0, 3, 16], "texture": "#top"}, - "up": { - "uv": [0, 3, 3, 0], - "texture": "#top", - "rotation": 180 - } + "up": {"uv": [0, 3, 3, 0], "rotation": 180, "texture": "#top"} } }, { - "name": "cube", "from": [0, 0, 3], "to": [3, 1, 13], "faces": { "east": {"uv": [13, 15, 3, 16], "texture": "#top"}, "west": {"uv": [3, 15, 13, 16], "texture": "#top"}, - "up": { - "uv": [3, 3, 13, 0], - "texture": "#top", - "rotation": 270 - } + "up": {"uv": [3, 3, 13, 0], "rotation": 270, "texture": "#top"} } }, { - "name": "cube", "from": [0, 13, 3], "to": [3, 16, 13], "faces": { "east": {"uv": [13, 0, 3, 3], "texture": "#top"}, "west": {"uv": [3, 0, 13, 3], "texture": "#top"}, - "up": { - "uv": [3, 3, 13, 0], - "texture": "#top", - "rotation": 270 - }, - "down": { - "uv": [3, 3, 13, 0], - "texture": "#top", - "rotation": 90 - } + "up": {"uv": [3, 3, 13, 0], "rotation": 270, "texture": "#top"}, + "down": {"uv": [3, 3, 13, 0], "rotation": 90, "texture": "#top"} } }, { - "name": "cube", "from": [0, 1, 5], "to": [3, 13, 7], "faces": { @@ -80,7 +57,6 @@ } }, { - "name": "cube", "from": [0, 1, 9], "to": [3, 13, 11], "faces": { @@ -90,6 +66,5 @@ "west": {"uv": [5, 3, 7, 15], "texture": "#top"} } } - ], - "groups": [0, 1, 2, 3, 4, 5] + ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/block/acacia_door_top_rh.json b/src/main/resources/assets/minecraft/models/block/acacia_door_top_rh.json index 1d11403..0fee82a 100644 --- a/src/main/resources/assets/minecraft/models/block/acacia_door_top_rh.json +++ b/src/main/resources/assets/minecraft/models/block/acacia_door_top_rh.json @@ -1,10 +1,11 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", "parent": "block/door_top", - "textures": {"top": "blocks/door_acacia_upper"}, + "textures": { + "top": "blocks/door_acacia_upper" + }, "elements": [ { - "name": "cube", "from": [0, 0, 0], "to": [3, 16, 3], "faces": { @@ -16,7 +17,6 @@ } }, { - "name": "cube", "from": [0, 0, 13], "to": [3, 16, 16], "faces": { @@ -24,48 +24,29 @@ "east": {"uv": [0, 0, 3, 16], "texture": "#top"}, "south": {"uv": [0, 0, 3, 16], "texture": "#top"}, "west": {"uv": [3, 0, 0, 16], "texture": "#top"}, - "up": { - "uv": [16, 0, 13, 3], - "texture": "#top", - "rotation": 270 - } + "up": {"uv": [16, 0, 13, 3], "rotation": 270, "texture": "#top"} } }, { - "name": "cube", "from": [0, 0, 3], "to": [3, 1, 13], "faces": { "east": {"uv": [3, 15, 13, 16], "texture": "#top"}, "west": {"uv": [13, 15, 3, 16], "texture": "#top"}, - "up": { - "uv": [3, 0, 13, 3], - "texture": "#top", - "rotation": 270 - } + "up": {"uv": [3, 0, 13, 3], "rotation": 270, "texture": "#top"} } }, { - "name": "cube", "from": [0, 13, 3], "to": [3, 16, 13], "faces": { "east": {"uv": [3, 0, 13, 3], "texture": "#top"}, "west": {"uv": [13, 0, 3, 3], "texture": "#top"}, - "up": { - "uv": [3, 0, 13, 3], - "texture": "#top", - "rotation": 270 - }, - "down": { - "uv": [3, 0, 13, 3], - "texture": "#top", - "rotation": 90 - } + "up": {"uv": [3, 0, 13, 3], "rotation": 270, "texture": "#top"}, + "down": {"uv": [3, 0, 13, 3], "rotation": 90, "texture": "#top"} } }, { - "name": "cube", "from": [0, 1, 9], "to": [3, 13, 11], "faces": { @@ -76,7 +57,6 @@ } }, { - "name": "cube", "from": [0, 1, 5], "to": [3, 13, 7], "faces": { @@ -86,6 +66,5 @@ "west": {"uv": [7, 3, 5, 15], "texture": "#top"} } } - ], - "groups": [0, 1, 2, 3, 4, 5] + ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/block/activator_rail_active_flat.json b/src/main/resources/assets/minecraft/models/block/activator_rail_active_flat.json index a2b6745..225e8fc 100644 --- a/src/main/resources/assets/minecraft/models/block/activator_rail_active_flat.json +++ b/src/main/resources/assets/minecraft/models/block/activator_rail_active_flat.json @@ -1,18 +1,15 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", "parent": "block/rail_flat", - "textures": {"1": "blocks/rail_activator_powered"}, + "textures": { + "1": "blocks/rail_activator_powered" + }, "elements": [ { - "name": "cube", "from": [2, 1, 0], "to": [4, 2, 16], "faces": { - "north": { - "uv": [2, 0, 4, 1], - "texture": "#1", - "rotation": 180 - }, + "north": {"uv": [2, 0, 4, 1], "rotation": 180, "texture": "#1"}, "east": {"uv": [3, 0, 4, 16], "texture": "#1"}, "south": {"uv": [2, 0, 4, 1], "texture": "#1"}, "west": {"uv": [2, 0, 3, 16], "texture": "#1"}, @@ -21,7 +18,6 @@ } }, { - "name": "cube", "from": [12, 1, 0], "to": [14, 2, 16], "faces": { @@ -34,7 +30,6 @@ } }, { - "name": "cube", "from": [4, 0, 9], "to": [12, 1, 11], "faces": { @@ -47,7 +42,6 @@ } }, { - "name": "cube", "from": [12, 0, 9], "to": [14, 1, 11], "faces": { @@ -56,36 +50,22 @@ "south": {"uv": [7, 1, 9, 2], "texture": "#1"}, "west": {"uv": [0, 0, 2, 1], "texture": "#1"}, "up": {"uv": [0, 0, 2, 2], "texture": "#1"}, - "down": { - "uv": [7, 1, 9, 3], - "texture": "#1", - "rotation": 180 - } + "down": {"uv": [7, 1, 9, 3], "rotation": 180, "texture": "#1"} } }, { - "name": "cube", "from": [14, 0, 9], "to": [15, 1, 11], "faces": { "north": {"uv": [1, 1, 2, 2], "texture": "#1"}, - "east": { - "uv": [1, 1, 2, 3], - "texture": "#1", - "rotation": 90 - }, + "east": {"uv": [1, 1, 2, 3], "rotation": 90, "texture": "#1"}, "south": {"uv": [1, 2, 2, 3], "texture": "#1"}, "west": {"uv": [0, 0, 2, 1], "texture": "#1"}, "up": {"uv": [1, 1, 2, 3], "texture": "#1"}, - "down": { - "uv": [1, 1, 2, 3], - "texture": "#1", - "rotation": 180 - } + "down": {"uv": [1, 1, 2, 3], "rotation": 180, "texture": "#1"} } }, { - "name": "cube", "from": [7, 0, 3], "to": [9, 1, 5], "faces": { @@ -98,7 +78,6 @@ } }, { - "name": "cube", "from": [7, 0, 11], "to": [9, 1, 13], "faces": { @@ -107,15 +86,10 @@ "south": {"uv": [0, 0, 2, 1], "texture": "#1"}, "west": {"uv": [7, 11, 9, 12], "texture": "#1"}, "up": {"uv": [7, 11, 9, 13], "texture": "#1"}, - "down": { - "uv": [7, 11, 9, 13], - "texture": "#1", - "rotation": 270 - } + "down": {"uv": [7, 11, 9, 13], "rotation": 270, "texture": "#1"} } }, { - "name": "cube", "from": [7, 0, 7], "to": [9, 1, 9], "faces": { @@ -124,15 +98,10 @@ "south": {"uv": [0, 0, 2, 1], "texture": "#1"}, "west": {"uv": [7, 7, 9, 8], "texture": "#1"}, "up": {"uv": [7, 7, 9, 9], "texture": "#1"}, - "down": { - "uv": [7, 7, 9, 9], - "texture": "#1", - "rotation": 90 - } + "down": {"uv": [7, 7, 9, 9], "rotation": 90, "texture": "#1"} } }, { - "name": "cube", "from": [4, 0, 1], "to": [12, 1, 3], "faces": { @@ -145,7 +114,6 @@ } }, { - "name": "cube", "from": [4, 0, 1], "to": [12, 1, 3], "faces": { @@ -158,7 +126,6 @@ } }, { - "name": "cube", "from": [4, 0, 5], "to": [12, 1, 7], "faces": { @@ -171,7 +138,6 @@ } }, { - "name": "cube", "from": [4, 0, 13], "to": [12, 1, 15], "faces": { @@ -184,238 +150,138 @@ } }, { - "name": "cube", "from": [14, 0, 13], "to": [15, 1, 15], "faces": { "north": {"uv": [1, 1, 2, 2], "texture": "#1"}, - "east": { - "uv": [1, 1, 2, 3], - "texture": "#1", - "rotation": 90 - }, + "east": {"uv": [1, 1, 2, 3], "rotation": 90, "texture": "#1"}, "south": {"uv": [1, 2, 2, 3], "texture": "#1"}, "west": {"uv": [0, 0, 2, 1], "texture": "#1"}, "up": {"uv": [1, 1, 2, 3], "texture": "#1"}, - "down": { - "uv": [1, 1, 2, 3], - "texture": "#1", - "rotation": 180 - } + "down": {"uv": [1, 1, 2, 3], "rotation": 180, "texture": "#1"} } }, { - "name": "cube", "from": [14, 0, 1], "to": [15, 1, 3], "faces": { "north": {"uv": [1, 1, 2, 2], "texture": "#1"}, - "east": { - "uv": [1, 1, 2, 3], - "texture": "#1", - "rotation": 90 - }, + "east": {"uv": [1, 1, 2, 3], "rotation": 90, "texture": "#1"}, "south": {"uv": [1, 2, 2, 3], "texture": "#1"}, "west": {"uv": [0, 0, 2, 1], "texture": "#1"}, "up": {"uv": [1, 1, 2, 3], "texture": "#1"}, - "down": { - "uv": [1, 1, 2, 3], - "texture": "#1", - "rotation": 180 - } + "down": {"uv": [1, 1, 2, 3], "rotation": 180, "texture": "#1"} } }, { - "name": "cube", "from": [14, 0, 5], "to": [15, 1, 7], "faces": { "north": {"uv": [1, 1, 2, 2], "texture": "#1"}, - "east": { - "uv": [1, 1, 2, 3], - "texture": "#1", - "rotation": 90 - }, + "east": {"uv": [1, 1, 2, 3], "rotation": 90, "texture": "#1"}, "south": {"uv": [1, 2, 2, 3], "texture": "#1"}, "west": {"uv": [0, 0, 2, 1], "texture": "#1"}, "up": {"uv": [1, 1, 2, 3], "texture": "#1"}, - "down": { - "uv": [1, 1, 2, 3], - "texture": "#1", - "rotation": 180 - } + "down": {"uv": [1, 1, 2, 3], "rotation": 180, "texture": "#1"} } }, { - "name": "cube", "from": [14, 0, 13], "to": [15, 1, 15], "faces": { "north": {"uv": [1, 1, 2, 2], "texture": "#1"}, - "east": { - "uv": [1, 1, 2, 3], - "texture": "#1", - "rotation": 90 - }, + "east": {"uv": [1, 1, 2, 3], "rotation": 90, "texture": "#1"}, "south": {"uv": [1, 2, 2, 3], "texture": "#1"}, "west": {"uv": [0, 0, 2, 1], "texture": "#1"}, "up": {"uv": [1, 1, 2, 3], "texture": "#1"}, - "down": { - "uv": [1, 1, 2, 3], - "texture": "#1", - "rotation": 180 - } + "down": {"uv": [1, 1, 2, 3], "rotation": 180, "texture": "#1"} } }, { - "name": "cube", "from": [14, 0, 9], "to": [15, 1, 11], "faces": { "north": {"uv": [1, 1, 2, 2], "texture": "#1"}, - "east": { - "uv": [1, 1, 2, 3], - "texture": "#1", - "rotation": 90 - }, + "east": {"uv": [1, 1, 2, 3], "rotation": 90, "texture": "#1"}, "south": {"uv": [1, 2, 2, 3], "texture": "#1"}, "west": {"uv": [0, 0, 2, 1], "texture": "#1"}, "up": {"uv": [1, 1, 2, 3], "texture": "#1"}, - "down": { - "uv": [1, 1, 2, 3], - "texture": "#1", - "rotation": 180 - } + "down": {"uv": [1, 1, 2, 3], "rotation": 180, "texture": "#1"} } }, { - "name": "cube", "from": [14, 0, 5], "to": [15, 1, 7], "faces": { "north": {"uv": [1, 1, 2, 2], "texture": "#1"}, - "east": { - "uv": [1, 1, 2, 3], - "texture": "#1", - "rotation": 90 - }, + "east": {"uv": [1, 1, 2, 3], "rotation": 90, "texture": "#1"}, "south": {"uv": [1, 2, 2, 3], "texture": "#1"}, "west": {"uv": [0, 0, 2, 1], "texture": "#1"}, "up": {"uv": [1, 1, 2, 3], "texture": "#1"}, - "down": { - "uv": [1, 1, 2, 3], - "texture": "#1", - "rotation": 180 - } + "down": {"uv": [1, 1, 2, 3], "rotation": 180, "texture": "#1"} } }, { - "name": "cube", "from": [14, 0, 1], "to": [15, 1, 3], "faces": { "north": {"uv": [1, 1, 2, 2], "texture": "#1"}, - "east": { - "uv": [1, 1, 2, 3], - "texture": "#1", - "rotation": 90 - }, + "east": {"uv": [1, 1, 2, 3], "rotation": 90, "texture": "#1"}, "south": {"uv": [1, 2, 2, 3], "texture": "#1"}, "west": {"uv": [0, 0, 2, 1], "texture": "#1"}, "up": {"uv": [1, 1, 2, 3], "texture": "#1"}, - "down": { - "uv": [1, 1, 2, 3], - "texture": "#1", - "rotation": 180 - } + "down": {"uv": [1, 1, 2, 3], "rotation": 180, "texture": "#1"} } }, { - "name": "cube", "from": [1, 0, 13], "to": [2, 1, 15], "faces": { "north": {"uv": [2, 1, 1, 2], "texture": "#1"}, "east": {"uv": [2, 0, 0, 1], "texture": "#1"}, "south": {"uv": [2, 2, 1, 3], "texture": "#1"}, - "west": { - "uv": [2, 1, 1, 3], - "texture": "#1", - "rotation": 90 - }, + "west": {"uv": [2, 1, 1, 3], "rotation": 90, "texture": "#1"}, "up": {"uv": [2, 1, 1, 3], "texture": "#1"}, - "down": { - "uv": [2, 1, 1, 3], - "texture": "#1", - "rotation": 180 - } + "down": {"uv": [2, 1, 1, 3], "rotation": 180, "texture": "#1"} } }, { - "name": "cube", "from": [1, 0, 9], "to": [2, 1, 11], "faces": { "north": {"uv": [2, 1, 1, 2], "texture": "#1"}, "east": {"uv": [2, 0, 0, 1], "texture": "#1"}, "south": {"uv": [2, 2, 1, 3], "texture": "#1"}, - "west": { - "uv": [2, 1, 1, 3], - "texture": "#1", - "rotation": 90 - }, + "west": {"uv": [2, 1, 1, 3], "rotation": 90, "texture": "#1"}, "up": {"uv": [2, 1, 1, 3], "texture": "#1"}, - "down": { - "uv": [2, 1, 1, 3], - "texture": "#1", - "rotation": 180 - } + "down": {"uv": [2, 1, 1, 3], "rotation": 180, "texture": "#1"} } }, { - "name": "cube", "from": [1, 0, 5], "to": [2, 1, 7], "faces": { "north": {"uv": [2, 1, 1, 2], "texture": "#1"}, "east": {"uv": [2, 0, 0, 1], "texture": "#1"}, "south": {"uv": [2, 2, 1, 3], "texture": "#1"}, - "west": { - "uv": [2, 1, 1, 3], - "texture": "#1", - "rotation": 90 - }, + "west": {"uv": [2, 1, 1, 3], "rotation": 90, "texture": "#1"}, "up": {"uv": [2, 1, 1, 3], "texture": "#1"}, - "down": { - "uv": [2, 1, 1, 3], - "texture": "#1", - "rotation": 180 - } + "down": {"uv": [2, 1, 1, 3], "rotation": 180, "texture": "#1"} } }, { - "name": "cube", "from": [1, 0, 1], "to": [2, 1, 3], "faces": { "north": {"uv": [2, 1, 1, 2], "texture": "#1"}, "east": {"uv": [2, 0, 0, 1], "texture": "#1"}, "south": {"uv": [2, 2, 1, 3], "texture": "#1"}, - "west": { - "uv": [2, 1, 1, 3], - "texture": "#1", - "rotation": 90 - }, + "west": {"uv": [2, 1, 1, 3], "rotation": 90, "texture": "#1"}, "up": {"uv": [2, 1, 1, 3], "texture": "#1"}, - "down": { - "uv": [2, 1, 1, 3], - "texture": "#1", - "rotation": 180 - } + "down": {"uv": [2, 1, 1, 3], "rotation": 180, "texture": "#1"} } }, { - "name": "cube", "from": [12, 0, 13], "to": [14, 1, 15], "faces": { @@ -424,15 +290,10 @@ "south": {"uv": [7, 1, 9, 2], "texture": "#1"}, "west": {"uv": [0, 0, 2, 1], "texture": "#1"}, "up": {"uv": [0, 0, 2, 2], "texture": "#1"}, - "down": { - "uv": [7, 1, 9, 3], - "texture": "#1", - "rotation": 180 - } + "down": {"uv": [7, 1, 9, 3], "rotation": 180, "texture": "#1"} } }, { - "name": "cube", "from": [12, 0, 1], "to": [14, 1, 3], "faces": { @@ -441,15 +302,10 @@ "south": {"uv": [7, 1, 9, 2], "texture": "#1"}, "west": {"uv": [0, 0, 2, 1], "texture": "#1"}, "up": {"uv": [0, 0, 2, 2], "texture": "#1"}, - "down": { - "uv": [7, 1, 9, 3], - "texture": "#1", - "rotation": 180 - } + "down": {"uv": [7, 1, 9, 3], "rotation": 180, "texture": "#1"} } }, { - "name": "cube", "from": [12, 0, 5], "to": [14, 1, 7], "faces": { @@ -458,15 +314,10 @@ "south": {"uv": [7, 1, 9, 2], "texture": "#1"}, "west": {"uv": [0, 0, 2, 1], "texture": "#1"}, "up": {"uv": [0, 0, 2, 2], "texture": "#1"}, - "down": { - "uv": [7, 1, 9, 3], - "texture": "#1", - "rotation": 180 - } + "down": {"uv": [7, 1, 9, 3], "rotation": 180, "texture": "#1"} } }, { - "name": "cube", "from": [2, 0, 1], "to": [4, 1, 3], "faces": { @@ -475,15 +326,10 @@ "south": {"uv": [9, 1, 7, 2], "texture": "#1"}, "west": {"uv": [2, 0, 0, 1], "texture": "#1"}, "up": {"uv": [2, 0, 0, 2], "texture": "#1"}, - "down": { - "uv": [9, 1, 7, 3], - "texture": "#1", - "rotation": 180 - } + "down": {"uv": [9, 1, 7, 3], "rotation": 180, "texture": "#1"} } }, { - "name": "cube", "from": [2, 0, 5], "to": [4, 1, 7], "faces": { @@ -492,15 +338,10 @@ "south": {"uv": [9, 1, 7, 2], "texture": "#1"}, "west": {"uv": [2, 0, 0, 1], "texture": "#1"}, "up": {"uv": [2, 0, 0, 2], "texture": "#1"}, - "down": { - "uv": [9, 1, 7, 3], - "texture": "#1", - "rotation": 180 - } + "down": {"uv": [9, 1, 7, 3], "rotation": 180, "texture": "#1"} } }, { - "name": "cube", "from": [2, 0, 9], "to": [4, 1, 11], "faces": { @@ -509,15 +350,10 @@ "south": {"uv": [9, 1, 7, 2], "texture": "#1"}, "west": {"uv": [2, 0, 0, 1], "texture": "#1"}, "up": {"uv": [2, 0, 0, 2], "texture": "#1"}, - "down": { - "uv": [9, 1, 7, 3], - "texture": "#1", - "rotation": 180 - } + "down": {"uv": [9, 1, 7, 3], "rotation": 180, "texture": "#1"} } }, { - "name": "cube", "from": [2, 0, 13], "to": [4, 1, 15], "faces": { @@ -526,44 +362,8 @@ "south": {"uv": [9, 1, 7, 2], "texture": "#1"}, "west": {"uv": [2, 0, 0, 1], "texture": "#1"}, "up": {"uv": [2, 0, 0, 2], "texture": "#1"}, - "down": { - "uv": [9, 1, 7, 3], - "texture": "#1", - "rotation": 180 - } + "down": {"uv": [9, 1, 7, 3], "rotation": 180, "texture": "#1"} } } - ], - "groups": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29 ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/block/dispenser.json b/src/main/resources/assets/minecraft/models/block/dispenser.json index 1e613a2..04b57d7 100644 --- a/src/main/resources/assets/minecraft/models/block/dispenser.json +++ b/src/main/resources/assets/minecraft/models/block/dispenser.json @@ -1,5 +1,5 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", "parent": "block/orientable", "textures": { "top": "blocks/furnace_top", @@ -8,14 +8,10 @@ }, "elements": [ { - "name": "cube", "from": [0, 0, 0], "to": [16, 4, 8], "faces": { - "north": { - "uv": [0, 12, 16, 16], - "texture": "#front" - }, + "north": {"uv": [0, 12, 16, 16], "texture": "#front"}, "east": {"uv": [8, 12, 16, 16], "texture": "#side"}, "west": {"uv": [0, 12, 8, 16], "texture": "#side"}, "up": {"uv": [0, 11, 16, 12], "texture": "#front"}, @@ -23,35 +19,26 @@ } }, { - "name": "cube", "from": [9, 4, 0], "to": [16, 5, 8], "faces": { - "north": { - "uv": [0, 11, 7, 12], - "texture": "#front" - }, + "north": {"uv": [0, 11, 7, 12], "texture": "#front"}, "east": {"uv": [8, 12, 16, 13], "texture": "#side"}, "west": {"uv": [7, 9, 9, 10], "texture": "#front"}, "up": {"uv": [7, 9, 9, 11], "texture": "#front"} } }, { - "name": "cube", "from": [0, 4, 0], "to": [7, 5, 8], "faces": { - "north": { - "uv": [9, 11, 16, 12], - "texture": "#front" - }, + "north": {"uv": [9, 11, 16, 12], "texture": "#front"}, "east": {"uv": [7, 9, 9, 10], "texture": "#front"}, "west": {"uv": [0, 12, 8, 13], "texture": "#side"}, "up": {"uv": [7, 9, 9, 11], "texture": "#front"} } }, { - "name": "cube", "from": [10, 5, 0], "to": [16, 7, 8], "faces": { @@ -61,20 +48,15 @@ } }, { - "name": "cube", "from": [0, 5, 0], "to": [6, 7, 8], "faces": { - "north": { - "uv": [10, 9, 16, 11], - "texture": "#front" - }, + "north": {"uv": [10, 9, 16, 11], "texture": "#front"}, "east": {"uv": [9, 9, 10, 11], "texture": "#front"}, "west": {"uv": [0, 9, 8, 11], "texture": "#side"} } }, { - "name": "cube", "from": [9, 7, 0], "to": [16, 16, 8], "faces": { @@ -86,7 +68,6 @@ } }, { - "name": "cube", "from": [0, 7, 0], "to": [7, 16, 8], "faces": { @@ -98,7 +79,6 @@ } }, { - "name": "cube", "from": [7, 8, 0], "to": [9, 16, 8], "faces": { @@ -108,14 +88,10 @@ } }, { - "name": "cube", "from": [0, 0, 8], "to": [16, 16, 16], "faces": { - "north": { - "uv": [0, 0, 16, 16], - "texture": "#front" - }, + "north": {"uv": [0, 0, 16, 16], "texture": "#front"}, "east": {"uv": [0, 0, 8, 16], "texture": "#side"}, "south": {"uv": [0, 0, 16, 16], "texture": "#side"}, "west": {"uv": [8, 0, 16, 16], "texture": "#side"}, diff --git a/src/main/resources/assets/minecraft/models/block/dispenser_vertical.json b/src/main/resources/assets/minecraft/models/block/dispenser_vertical.json index e268b37..f9053dd 100644 --- a/src/main/resources/assets/minecraft/models/block/dispenser_vertical.json +++ b/src/main/resources/assets/minecraft/models/block/dispenser_vertical.json @@ -1,5 +1,5 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", "parent": "block/orientable_vertical", "textures": { "front": "blocks/dispenser_front_vertical", @@ -7,7 +7,6 @@ }, "elements": [ { - "name": "cube", "from": [0, 0, 0], "to": [16, 10, 16], "faces": { @@ -20,7 +19,6 @@ } }, { - "name": "cube", "from": [0, 10, 10], "to": [7, 16, 16], "faces": { @@ -32,7 +30,6 @@ } }, { - "name": "cube", "from": [9, 10, 10], "to": [16, 16, 16], "faces": { @@ -44,7 +41,6 @@ } }, { - "name": "cube", "from": [9, 10, 0], "to": [16, 16, 6], "faces": { @@ -56,7 +52,6 @@ } }, { - "name": "cube", "from": [0, 10, 0], "to": [7, 16, 6], "faces": { @@ -68,7 +63,6 @@ } }, { - "name": "cube", "from": [0, 10, 7], "to": [5, 16, 9], "faces": { @@ -78,7 +72,6 @@ } }, { - "name": "cube", "from": [11, 10, 7], "to": [16, 16, 9], "faces": { @@ -88,21 +81,15 @@ } }, { - "name": "cube", "from": [7, 10, 11], "to": [9, 16, 16], "faces": { - "north": { - "uv": [7, 5, 9, 9], - "texture": "#front", - "rotation": 180 - }, + "north": {"uv": [7, 5, 9, 9], "rotation": 180, "texture": "#front"}, "south": {"uv": [7, 0, 9, 6], "texture": "#side"}, "up": {"uv": [7, 11, 9, 16], "texture": "#front"} } }, { - "name": "cube", "from": [7, 10, 0], "to": [9, 16, 5], "faces": { @@ -112,7 +99,6 @@ } }, { - "name": "cube", "from": [10, 10, 9], "to": [16, 16, 10], "faces": { @@ -123,7 +109,6 @@ } }, { - "name": "cube", "from": [10, 10, 6], "to": [16, 16, 7], "faces": { @@ -134,7 +119,6 @@ } }, { - "name": "cube", "from": [0, 10, 6], "to": [6, 16, 7], "faces": { @@ -145,7 +129,6 @@ } }, { - "name": "cube", "from": [0, 10, 9], "to": [6, 16, 10], "faces": { diff --git a/src/main/resources/assets/minecraft/models/block/iron_bars_side_alt.json b/src/main/resources/assets/minecraft/models/block/iron_bars_side_alt.json index 4722e46..8b4a1bc 100644 --- a/src/main/resources/assets/minecraft/models/block/iron_bars_side_alt.json +++ b/src/main/resources/assets/minecraft/models/block/iron_bars_side_alt.json @@ -1,10 +1,11 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", "ambientocclusion": false, - "textures": {"bars": "blocks/iron_bars"}, + "textures": { + "bars": "blocks/iron_bars" + }, "elements": [ { - "name": "cube", "from": [8, 2, 9], "to": [9, 4, 12], "faces": { @@ -14,7 +15,6 @@ } }, { - "name": "cube", "from": [8, 1, 12], "to": [9, 15, 14], "faces": { @@ -24,67 +24,39 @@ } }, { - "name": "cube", "from": [8, 7, 14], "to": [9, 9, 16], "faces": { "east": {"uv": [14, 7, 16, 9], "texture": "#bars"}, - "up": { - "uv": [14, 7, 16, 8], - "texture": "#bars", - "rotation": 90 - }, - "down": { - "uv": [14, 8, 16, 9], - "texture": "#bars", - "rotation": 90 - } + "up": {"uv": [14, 7, 16, 8], "rotation": 90, "texture": "#bars"}, + "down": {"uv": [14, 8, 16, 9], "rotation": 90, "texture": "#bars"} } }, { - "name": "cube", "from": [7, 15, 8], "to": [9, 16, 16], "faces": { "north": {"uv": [7, 15, 9, 16], "texture": "#bars"}, - "east": { - "uv": [8, 8, 9, 16], - "texture": "#bars", - "rotation": 90 - }, + "east": {"uv": [8, 8, 9, 16], "rotation": 90, "texture": "#bars"}, "south": {"uv": [7, 8, 9, 9], "texture": "#bars"}, - "west": { - "uv": [7, 8, 8, 16], - "texture": "#bars", - "rotation": 90 - }, + "west": {"uv": [7, 8, 8, 16], "rotation": 90, "texture": "#bars"}, "up": {"uv": [7, 8, 9, 16], "texture": "#bars"}, "down": {"uv": [7, 8, 9, 16], "texture": "#bars"} } }, { - "name": "cube", "from": [7, 0, 8], "to": [9, 1, 16], "faces": { "north": {"uv": [7, 15, 9, 16], "texture": "#bars"}, - "east": { - "uv": [8, 0, 9, 8], - "texture": "#bars", - "rotation": 90 - }, + "east": {"uv": [8, 0, 9, 8], "rotation": 90, "texture": "#bars"}, "south": {"uv": [7, 8, 9, 9], "texture": "#bars"}, - "west": { - "uv": [7, 0, 8, 8], - "texture": "#bars", - "rotation": 90 - }, + "west": {"uv": [7, 0, 8, 8], "rotation": 90, "texture": "#bars"}, "up": {"uv": [7, 8, 9, 16], "texture": "#bars"}, "down": {"uv": [7, 6, 9, 16], "texture": "#bars"} } }, { - "name": "cube", "from": [7, 2, 9], "to": [8, 4, 12], "faces": { @@ -94,7 +66,6 @@ } }, { - "name": "cube", "from": [7, 1, 12], "to": [8, 15, 14], "faces": { @@ -104,25 +75,15 @@ } }, { - "name": "cube", "from": [7, 7, 14], "to": [8, 9, 16], "faces": { "west": {"uv": [14, 7, 16, 9], "texture": "#bars"}, - "up": { - "uv": [14, 8, 16, 9], - "texture": "#bars", - "rotation": 90 - }, - "down": { - "uv": [14, 8, 16, 9], - "texture": "#bars", - "rotation": 90 - } + "up": {"uv": [14, 8, 16, 9], "rotation": 90, "texture": "#bars"}, + "down": {"uv": [14, 8, 16, 9], "rotation": 90, "texture": "#bars"} } }, { - "name": "cube", "from": [7, 1, 8], "to": [9, 15, 9], "faces": { diff --git a/src/main/resources/assets/minecraft/models/block/iron_door_top.json b/src/main/resources/assets/minecraft/models/block/iron_door_top.json index 94306de..b41270a 100644 --- a/src/main/resources/assets/minecraft/models/block/iron_door_top.json +++ b/src/main/resources/assets/minecraft/models/block/iron_door_top.json @@ -1,14 +1,15 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", "parent": "block/door_top", - "textures": {"top": "blocks/door_iron_upper"}, + "textures": { + "top": "blocks/door_iron_upper" + }, "elements": [ { - "name": "cube", "from": [0, 0, 0], "to": [3, 16, 3], "faces": { - "north": {"uv": [0, 0, 3, 16], "texture": "#top"}, + "north": {"uv": [3, 0, 0, 16], "texture": "#top"}, "east": {"uv": [3, 0, 0, 16], "texture": "#top"}, "south": {"uv": [13, 0, 14, 16], "texture": "#top"}, "west": {"uv": [0, 0, 3, 16], "texture": "#top"}, @@ -16,71 +17,46 @@ } }, { - "name": "cube", "from": [0, 0, 13], "to": [3, 16, 16], "faces": { "north": {"uv": [2, 0, 3, 16], "texture": "#top"}, "east": {"uv": [16, 0, 13, 16], "texture": "#top"}, - "south": {"uv": [13, 0, 16, 16], "texture": "#top"}, + "south": {"uv": [0, 0, 3, 16], "texture": "#top"}, "west": {"uv": [13, 0, 16, 16], "texture": "#top"}, "up": {"uv": [3, 3, 0, 0], "texture": "#top"} } }, { - "name": "cube", "from": [0, 13, 3], "to": [3, 16, 13], "faces": { "east": {"uv": [13, 0, 3, 3], "texture": "#top"}, "west": {"uv": [3, 0, 13, 3], "texture": "#top"}, - "up": { - "uv": [13, 3, 3, 0], - "texture": "#top", - "rotation": 90 - }, - "down": { - "uv": [13, 3, 3, 2], - "texture": "#top", - "rotation": 90 - } + "up": {"uv": [13, 3, 3, 0], "rotation": 90, "texture": "#top"}, + "down": {"uv": [13, 3, 3, 2], "rotation": 90, "texture": "#top"} } }, { - "name": "cube", "from": [0, 0, 3], "to": [3, 5, 13], "faces": { "east": {"uv": [12, 11, 2, 16], "texture": "#top"}, "west": {"uv": [3, 11, 13, 16], "texture": "#top"}, - "up": { - "uv": [13, 12, 3, 11], - "texture": "#top", - "rotation": 270 - } + "up": {"uv": [13, 12, 3, 11], "rotation": 270, "texture": "#top"} } }, { - "name": "cube", "from": [0, 8, 3], "to": [3, 10, 13], "faces": { "east": {"uv": [13, 6, 3, 8], "texture": "#top"}, "west": {"uv": [3, 6, 13, 8], "texture": "#top"}, - "up": { - "uv": [10, 1, 0, 0], - "texture": "#top", - "rotation": 270 - }, - "down": { - "uv": [13, 8, 3, 7], - "texture": "#top", - "rotation": 90 - } + "up": {"uv": [10, 1, 0, 0], "rotation": 270, "texture": "#top"}, + "down": {"uv": [13, 8, 3, 7], "rotation": 90, "texture": "#top"} } }, { - "name": "cube", "from": [0, 5, 7], "to": [3, 8, 9], "faces": { @@ -91,7 +67,6 @@ } }, { - "name": "cube", "from": [0, 10, 7], "to": [3, 13, 9], "faces": { @@ -101,6 +76,5 @@ "west": {"uv": [7, 3, 9, 6], "texture": "#top"} } } - ], - "groups": [0, 1, 2, 3, 4, 5, 6] + ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/block/iron_door_top_rh.json b/src/main/resources/assets/minecraft/models/block/iron_door_top_rh.json index 6769437..bdbffdb 100644 --- a/src/main/resources/assets/minecraft/models/block/iron_door_top_rh.json +++ b/src/main/resources/assets/minecraft/models/block/iron_door_top_rh.json @@ -1,5 +1,5 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", "parent": "block/door_top", "textures": { "top": "blocks/door_iron_upper", @@ -7,91 +7,57 @@ }, "elements": [ { - "name": "cube", "from": [0, 0, 13], "to": [3, 16, 16], "faces": { "north": {"uv": [14, 0, 13, 16], "texture": "#top"}, "east": {"uv": [0, 0, 3, 16], "texture": "#top"}, - "south": {"uv": [3, 0, 0, 16], "texture": "#top"}, + "south": {"uv": [0, 0, 3, 16], "texture": "#top"}, "west": {"uv": [3, 0, 0, 16], "texture": "#top"}, - "up": { - "uv": [16, 0, 13, 3], - "texture": "#top", - "rotation": 270 - } + "up": {"uv": [16, 0, 13, 3], "rotation": 270, "texture": "#top"} } }, { - "name": "cube", "from": [0, 0, 0], "to": [3, 16, 3], "faces": { - "north": {"uv": [16, 0, 13, 16], "texture": "#top"}, + "north": {"uv": [3, 0, 0, 16], "texture": "#top"}, "east": {"uv": [13, 0, 16, 16], "texture": "#top"}, "south": {"uv": [3, 0, 2, 16], "texture": "#top"}, "west": {"uv": [16, 0, 13, 16], "texture": "#top"}, - "up": { - "uv": [3, 0, 0, 3], - "texture": "#top", - "rotation": 270 - } + "up": {"uv": [3, 0, 0, 3], "rotation": 270, "texture": "#top"} } }, { - "name": "cube", "from": [0, 13, 3], "to": [3, 16, 13], "faces": { "east": {"uv": [3, 0, 13, 3], "texture": "#top"}, "west": {"uv": [13, 0, 3, 3], "texture": "#top"}, - "up": { - "uv": [13, 0, 3, 3], - "texture": "#top", - "rotation": 270 - }, - "down": { - "uv": [13, 2, 3, 3], - "texture": "#top", - "rotation": 90 - } + "up": {"uv": [13, 0, 3, 3], "rotation": 270, "texture": "#top"}, + "down": {"uv": [13, 2, 3, 3], "rotation": 90, "texture": "#top"} } }, { - "name": "cube", "from": [0, 0, 3], "to": [3, 5, 13], "faces": { "east": {"uv": [2, 11, 12, 16], "texture": "#top"}, "west": {"uv": [13, 11, 3, 16], "texture": "#top"}, - "up": { - "uv": [13, 11, 3, 12], - "texture": "#top", - "rotation": 270 - } + "up": {"uv": [13, 11, 3, 12], "rotation": 270, "texture": "#top"} } }, { - "name": "cube", "from": [0, 8, 3], "to": [3, 10, 13], "faces": { "east": {"uv": [3, 6, 13, 8], "texture": "#top"}, "west": {"uv": [13, 6, 3, 8], "texture": "#top"}, - "up": { - "uv": [10, 0, 0, 1], - "texture": "#top", - "rotation": 270 - }, - "down": { - "uv": [13, 7, 3, 8], - "texture": "#top", - "rotation": 90 - } + "up": {"uv": [10, 0, 0, 1], "rotation": 270, "texture": "#top"}, + "down": {"uv": [13, 7, 3, 8], "rotation": 90, "texture": "#top"} } }, { - "name": "cube", "from": [0, 5, 7], "to": [3, 8, 9], "faces": { @@ -102,7 +68,6 @@ } }, { - "name": "cube", "from": [0, 10, 7], "to": [3, 13, 9], "faces": { @@ -112,6 +77,5 @@ "west": {"uv": [9, 3, 7, 6], "texture": "#top"} } } - ], - "groups": [0, 1, 2, 3, 4, 5, 6] + ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/block/iron_trapdoor_bottom.json b/src/main/resources/assets/minecraft/models/block/iron_trapdoor_bottom.json index eb9c0d1..7dbdd9e 100644 --- a/src/main/resources/assets/minecraft/models/block/iron_trapdoor_bottom.json +++ b/src/main/resources/assets/minecraft/models/block/iron_trapdoor_bottom.json @@ -1,12 +1,11 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", "textures": { "1": "blocks/iron_trapdoor", "particle": "blocks/iron_trapdoor" }, "elements": [ { - "name": "cube", "from": [0, 0, 0], "to": [16, 3, 3], "faces": { @@ -19,15 +18,10 @@ } }, { - "name": "cube", "from": [0, 0, 13], "to": [16, 3, 16], "faces": { - "north": { - "uv": [0, 0, 16, 3], - "texture": "#1", - "rotation": 180 - }, + "north": {"uv": [0, 0, 16, 3], "rotation": 180, "texture": "#1"}, "east": {"uv": [0, 0, 3, 3], "texture": "#1"}, "south": {"uv": [0, 0, 16, 3], "texture": "#1"}, "west": {"uv": [13, 0, 16, 3], "texture": "#1"}, @@ -36,90 +30,54 @@ } }, { - "name": "cube", "from": [13, 0, 3], "to": [16, 3, 13], "faces": { - "north": {"uv": [0, 0, 3, 3], "texture": "#1"}, "east": {"uv": [3, 0, 13, 3], "texture": "#1"}, - "south": {"uv": [0, 0, 3, 3], "texture": "#1"}, - "west": { - "uv": [3, 0, 13, 3], - "texture": "#1", - "rotation": 180 - }, + "west": {"uv": [3, 0, 13, 3], "rotation": 180, "texture": "#1"}, "up": {"uv": [13, 3, 16, 13], "texture": "#1"}, "down": {"uv": [13, 3, 16, 13], "texture": "#1"} } }, { - "name": "cube", "from": [0, 0, 3], "to": [3, 3, 13], "faces": { - "north": {"uv": [0, 0, 3, 3], "texture": "#1"}, "east": {"uv": [3, 6, 13, 9], "texture": "#1"}, - "south": {"uv": [0, 0, 3, 3], "texture": "#1"}, "west": {"uv": [3, 0, 13, 3], "texture": "#1"}, "up": {"uv": [0, 3, 3, 13], "texture": "#1"}, "down": {"uv": [0, 3, 3, 13], "texture": "#1"} } }, { - "name": "cube", "from": [6, 0, 3], "to": [10, 3, 13], "faces": { - "north": {"uv": [0, 0, 4, 3], "texture": "#1"}, - "east": { - "uv": [3, 7, 13, 10], - "texture": "#1", - "rotation": 180 - }, - "south": {"uv": [0, 0, 4, 3], "texture": "#1"}, - "west": { - "uv": [3, 7, 13, 10], - "texture": "#1", - "rotation": 180 - }, + "east": {"uv": [3, 7, 13, 10], "rotation": 180, "texture": "#1"}, + "west": {"uv": [3, 7, 13, 10], "rotation": 180, "texture": "#1"}, "up": {"uv": [6, 3, 10, 13], "texture": "#1"}, "down": {"uv": [6, 3, 10, 13], "texture": "#1"} } }, { - "name": "cube", "from": [3, 0, 6], "to": [6, 3, 10], "faces": { "north": {"uv": [10, 6, 13, 9], "texture": "#1"}, - "east": {"uv": [0, 0, 4, 3], "texture": "#1"}, - "south": { - "uv": [3, 7, 6, 10], - "texture": "#1", - "rotation": 180 - }, - "west": {"uv": [0, 0, 4, 3], "texture": "#1"}, + "south": {"uv": [3, 7, 6, 10], "rotation": 180, "texture": "#1"}, "up": {"uv": [3, 6, 6, 10], "texture": "#1"}, "down": {"uv": [3, 6, 6, 10], "texture": "#1"} } }, { - "name": "cube", "from": [10, 0, 6], "to": [13, 3, 10], "faces": { "north": {"uv": [3, 6, 6, 9], "texture": "#1"}, - "east": {"uv": [0, 0, 4, 3], "texture": "#1"}, - "south": { - "uv": [10, 7, 13, 10], - "texture": "#1", - "rotation": 180 - }, - "west": {"uv": [0, 0, 4, 3], "texture": "#1"}, + "south": {"uv": [10, 7, 13, 10], "rotation": 180, "texture": "#1"}, "up": {"uv": [10, 6, 13, 10], "texture": "#1"}, "down": {"uv": [10, 6, 13, 10], "texture": "#1"} } } - ], - "groups": [0, 1, 2, 3, 4, 5, 6] + ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/block/iron_trapdoor_open.json b/src/main/resources/assets/minecraft/models/block/iron_trapdoor_open.json index ab75bd4..921e109 100644 --- a/src/main/resources/assets/minecraft/models/block/iron_trapdoor_open.json +++ b/src/main/resources/assets/minecraft/models/block/iron_trapdoor_open.json @@ -1,252 +1,83 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", "textures": { "1": "blocks/iron_trapdoor", "particle": "blocks/iron_trapdoor" }, "elements": [ { - "name": "cube", "from": [0, 0, 13], "to": [16, 3, 16], "faces": { - "north": { - "uv": [0, 0, 16, 3], - "texture": "#1", - "rotation": 180 - }, - "east": { - "uv": [13, 0, 16, 3], - "texture": "#1", - "rotation": 90 - }, + "north": {"uv": [0, 0, 16, 3], "rotation": 180, "texture": "#1"}, + "east": {"uv": [13, 0, 16, 3], "rotation": 90, "texture": "#1"}, "south": {"uv": [0, 13, 16, 16], "texture": "#1"}, - "west": { - "uv": [0, 0, 3, 3], - "texture": "#1", - "rotation": 270 - }, + "west": {"uv": [0, 0, 3, 3], "rotation": 270, "texture": "#1"}, "up": {"uv": [0, 0, 16, 3], "texture": "#1"}, - "down": { - "uv": [0, 0, 16, 3], - "texture": "#1", - "rotation": 180 - } - }, - "rotation": { - "origin": [8, 8, 21], - "axis": "x", - "angle": 0 + "down": {"uv": [0, 0, 16, 3], "rotation": 180, "texture": "#1"} } }, { - "name": "cube", "from": [0, 13, 13], "to": [16, 16, 16], "faces": { - "north": { - "uv": [0, 13, 16, 16], - "texture": "#1", - "rotation": 180 - }, - "east": { - "uv": [0, 0, 3, 3], - "texture": "#1", - "rotation": 90 - }, + "north": {"uv": [0, 13, 16, 16], "rotation": 180, "texture": "#1"}, + "east": {"uv": [0, 0, 3, 3], "rotation": 90, "texture": "#1"}, "south": {"uv": [0, 0, 16, 3], "texture": "#1"}, - "west": { - "uv": [13, 0, 16, 3], - "texture": "#1", - "rotation": 270 - }, + "west": {"uv": [13, 0, 16, 3], "rotation": 270, "texture": "#1"}, "up": {"uv": [0, 0, 16, 3], "texture": "#1"}, "down": {"uv": [0, 0, 16, 3], "texture": "#1"} - }, - "rotation": { - "origin": [8, 8, 21], - "axis": "x", - "angle": 0 } }, { - "name": "cube", "from": [13, 3, 13], "to": [16, 13, 16], "faces": { - "north": { - "uv": [13, 3, 16, 13], - "texture": "#1", - "rotation": 180 - }, - "east": { - "uv": [3, 0, 13, 3], - "texture": "#1", - "rotation": 90 - }, + "north": {"uv": [13, 3, 16, 13], "rotation": 180, "texture": "#1"}, + "east": {"uv": [3, 0, 13, 3], "rotation": 90, "texture": "#1"}, "south": {"uv": [13, 3, 16, 13], "texture": "#1"}, - "west": { - "uv": [3, 0, 13, 3], - "texture": "#1", - "rotation": 90 - }, - "up": {"uv": [0, 0, 3, 3], "texture": "#1"}, - "down": { - "uv": [0, 0, 3, 3], - "texture": "#1", - "rotation": 180 - } - }, - "rotation": { - "origin": [8, 8, 21], - "axis": "x", - "angle": 0 + "west": {"uv": [3, 0, 13, 3], "rotation": 90, "texture": "#1"} } }, { - "name": "cube", "from": [0, 3, 13], "to": [3, 13, 16], "faces": { - "north": { - "uv": [0, 3, 3, 13], - "texture": "#1", - "rotation": 180 - }, - "east": { - "uv": [3, 6, 13, 9], - "texture": "#1", - "rotation": 90 - }, + "north": {"uv": [0, 3, 3, 13], "rotation": 180, "texture": "#1"}, + "east": {"uv": [3, 6, 13, 9], "rotation": 90, "texture": "#1"}, "south": {"uv": [0, 3, 3, 13], "texture": "#1"}, - "west": { - "uv": [3, 0, 13, 3], - "texture": "#1", - "rotation": 270 - }, - "up": {"uv": [0, 0, 3, 3], "texture": "#1"}, - "down": { - "uv": [0, 0, 3, 3], - "texture": "#1", - "rotation": 180 - } - }, - "rotation": { - "origin": [8, 8, 21], - "axis": "x", - "angle": 0 + "west": {"uv": [3, 0, 13, 3], "rotation": 270, "texture": "#1"} } }, { - "name": "cube", "from": [6, 3, 13], "to": [10, 13, 16], "faces": { - "north": { - "uv": [6, 3, 10, 13], - "texture": "#1", - "rotation": 180 - }, - "east": { - "uv": [3, 7, 13, 10], - "texture": "#1", - "rotation": 270 - }, + "north": {"uv": [6, 3, 10, 13], "rotation": 180, "texture": "#1"}, + "east": {"uv": [3, 7, 13, 10], "rotation": 270, "texture": "#1"}, "south": {"uv": [6, 3, 10, 13], "texture": "#1"}, - "west": { - "uv": [3, 7, 13, 10], - "texture": "#1", - "rotation": 90 - }, - "up": {"uv": [0, 0, 4, 3], "texture": "#1"}, - "down": { - "uv": [0, 0, 4, 3], - "texture": "#1", - "rotation": 180 - } - }, - "rotation": { - "origin": [8, 8, 21], - "axis": "x", - "angle": 0 + "west": {"uv": [3, 7, 13, 10], "rotation": 90, "texture": "#1"} } }, { - "name": "cube", "from": [3, 6, 13], "to": [6, 10, 16], "faces": { - "north": { - "uv": [3, 6, 6, 10], - "texture": "#1", - "rotation": 180 - }, - "east": { - "uv": [0, 0, 4, 3], - "texture": "#1", - "rotation": 90 - }, + "north": {"uv": [3, 6, 6, 10], "rotation": 180, "texture": "#1"}, "south": {"uv": [3, 6, 6, 10], "texture": "#1"}, - "west": { - "uv": [0, 0, 4, 3], - "texture": "#1", - "rotation": 270 - }, - "up": { - "uv": [3, 7, 6, 10], - "texture": "#1", - "rotation": 180 - }, - "down": { - "uv": [10, 6, 13, 9], - "texture": "#1", - "rotation": 180 - } - }, - "rotation": { - "origin": [8, 8, 21], - "axis": "x", - "angle": 0 + "up": {"uv": [3, 7, 6, 10], "rotation": 180, "texture": "#1"}, + "down": {"uv": [10, 6, 13, 9], "rotation": 180, "texture": "#1"} } }, { - "name": "cube", "from": [10, 6, 13], "to": [13, 10, 16], "faces": { - "north": { - "uv": [10, 6, 13, 10], - "texture": "#1", - "rotation": 180 - }, - "east": { - "uv": [0, 0, 4, 3], - "texture": "#1", - "rotation": 90 - }, + "north": {"uv": [10, 6, 13, 10], "rotation": 180, "texture": "#1"}, "south": {"uv": [10, 6, 13, 10], "texture": "#1"}, - "west": { - "uv": [0, 0, 4, 3], - "texture": "#1", - "rotation": 270 - }, - "up": { - "uv": [10, 7, 13, 10], - "texture": "#1", - "rotation": 180 - }, - "down": { - "uv": [3, 6, 6, 9], - "texture": "#1", - "rotation": 180 - } - }, - "rotation": { - "origin": [8, 8, 21], - "axis": "x", - "angle": 0 + "up": {"uv": [10, 7, 13, 10], "rotation": 180, "texture": "#1"}, + "down": {"uv": [3, 6, 6, 9], "rotation": 180, "texture": "#1"} } } - ], - "groups": [0, 1, 2, 3, 4, 5, 6] + ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/block/iron_trapdoor_top.json b/src/main/resources/assets/minecraft/models/block/iron_trapdoor_top.json index 0f8b2a1..f034d9a 100644 --- a/src/main/resources/assets/minecraft/models/block/iron_trapdoor_top.json +++ b/src/main/resources/assets/minecraft/models/block/iron_trapdoor_top.json @@ -1,12 +1,11 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", "textures": { "1": "blocks/iron_trapdoor", "particle": "blocks/iron_trapdoor" }, "elements": [ { - "name": "cube", "from": [0, 13, 0], "to": [16, 16, 3], "faces": { @@ -19,15 +18,10 @@ } }, { - "name": "cube", "from": [0, 13, 13], "to": [16, 16, 16], "faces": { - "north": { - "uv": [0, 0, 16, 3], - "texture": "#1", - "rotation": 180 - }, + "north": {"uv": [0, 0, 16, 3], "rotation": 180, "texture": "#1"}, "east": {"uv": [0, 0, 3, 3], "texture": "#1"}, "south": {"uv": [0, 0, 16, 3], "texture": "#1"}, "west": {"uv": [13, 0, 16, 3], "texture": "#1"}, @@ -36,90 +30,54 @@ } }, { - "name": "cube", "from": [13, 13, 3], "to": [16, 16, 13], "faces": { - "north": {"uv": [0, 0, 3, 3], "texture": "#1"}, "east": {"uv": [3, 0, 13, 3], "texture": "#1"}, - "south": {"uv": [0, 0, 3, 3], "texture": "#1"}, - "west": { - "uv": [3, 0, 13, 3], - "texture": "#1", - "rotation": 180 - }, + "west": {"uv": [3, 0, 13, 3], "rotation": 180, "texture": "#1"}, "up": {"uv": [13, 3, 16, 13], "texture": "#1"}, "down": {"uv": [13, 3, 16, 13], "texture": "#1"} } }, { - "name": "cube", "from": [0, 13, 3], "to": [3, 16, 13], "faces": { - "north": {"uv": [0, 0, 3, 3], "texture": "#1"}, "east": {"uv": [3, 6, 13, 9], "texture": "#1"}, - "south": {"uv": [0, 0, 3, 3], "texture": "#1"}, "west": {"uv": [3, 0, 13, 3], "texture": "#1"}, "up": {"uv": [0, 3, 3, 13], "texture": "#1"}, "down": {"uv": [0, 3, 3, 13], "texture": "#1"} } }, { - "name": "cube", "from": [6, 13, 3], "to": [10, 16, 13], "faces": { - "north": {"uv": [0, 0, 4, 3], "texture": "#1"}, - "east": { - "uv": [3, 7, 13, 10], - "texture": "#1", - "rotation": 180 - }, - "south": {"uv": [0, 0, 4, 3], "texture": "#1"}, - "west": { - "uv": [3, 7, 13, 10], - "texture": "#1", - "rotation": 180 - }, + "east": {"uv": [3, 7, 13, 10], "rotation": 180, "texture": "#1"}, + "west": {"uv": [3, 7, 13, 10], "rotation": 180, "texture": "#1"}, "up": {"uv": [6, 3, 10, 13], "texture": "#1"}, "down": {"uv": [6, 3, 10, 13], "texture": "#1"} } }, { - "name": "cube", "from": [3, 13, 6], "to": [6, 16, 10], "faces": { "north": {"uv": [10, 6, 13, 9], "texture": "#1"}, - "east": {"uv": [0, 0, 4, 3], "texture": "#1"}, - "south": { - "uv": [3, 7, 6, 10], - "texture": "#1", - "rotation": 180 - }, - "west": {"uv": [0, 0, 4, 3], "texture": "#1"}, + "south": {"uv": [3, 7, 6, 10], "rotation": 180, "texture": "#1"}, "up": {"uv": [3, 6, 6, 10], "texture": "#1"}, "down": {"uv": [3, 6, 6, 10], "texture": "#1"} } }, { - "name": "cube", "from": [10, 13, 6], "to": [13, 16, 10], "faces": { "north": {"uv": [3, 6, 6, 9], "texture": "#1"}, - "east": {"uv": [0, 0, 4, 3], "texture": "#1"}, - "south": { - "uv": [10, 7, 13, 10], - "texture": "#1", - "rotation": 180 - }, - "west": {"uv": [0, 0, 4, 3], "texture": "#1"}, + "south": {"uv": [10, 7, 13, 10], "rotation": 180, "texture": "#1"}, "up": {"uv": [10, 6, 13, 10], "texture": "#1"}, "down": {"uv": [10, 6, 13, 10], "texture": "#1"} } } - ], - "groups": [0, 1, 2, 3, 4, 5, 6] + ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/block/jukebox.json b/src/main/resources/assets/minecraft/models/block/jukebox.json index eb4051a..185b985 100644 --- a/src/main/resources/assets/minecraft/models/block/jukebox.json +++ b/src/main/resources/assets/minecraft/models/block/jukebox.json @@ -1,5 +1,5 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", "parent": "block/cube_top", "textures": { "top": "blocks/jukebox_top", @@ -7,7 +7,6 @@ }, "elements": [ { - "name": "cube", "from": [0, 0, 13], "to": [16, 16, 16], "faces": { @@ -20,7 +19,6 @@ } }, { - "name": "cube", "from": [0, 0, 0], "to": [16, 16, 3], "faces": { @@ -33,7 +31,6 @@ } }, { - "name": "cube", "from": [9, 0, 3], "to": [16, 16, 13], "faces": { @@ -44,7 +41,6 @@ } }, { - "name": "cube", "from": [0, 0, 3], "to": [7, 16, 13], "faces": { @@ -55,7 +51,6 @@ } }, { - "name": "cube", "from": [7, 0, 3], "to": [9, 4, 13], "faces": { diff --git a/src/main/resources/assets/minecraft/models/block/jungle_door_bottom.json b/src/main/resources/assets/minecraft/models/block/jungle_door_bottom.json index 6734365..4485bd8 100644 --- a/src/main/resources/assets/minecraft/models/block/jungle_door_bottom.json +++ b/src/main/resources/assets/minecraft/models/block/jungle_door_bottom.json @@ -1,101 +1,50 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", "parent": "block/door_bottom", - "textures": {"bottom": "blocks/door_jungle_lower"}, + "textures": { + "bottom": "blocks/door_jungle_lower" + }, "elements": [ { - "name": "cube", "from": [0, 0, 0], "to": [3, 16, 7], "faces": { - "north": { - "uv": [0, 0, 3, 16], - "texture": "#bottom" - }, + "north": {"uv": [3, 0, 0, 16], "texture": "#bottom"}, "east": {"uv": [7, 0, 0, 16], "texture": "#bottom"}, - "south": { - "uv": [6, 0, 7, 16], - "texture": "#bottom" - }, + "south": {"uv": [6, 0, 7, 16], "texture": "#bottom"}, "west": {"uv": [0, 0, 7, 16], "texture": "#bottom"}, - "down": { - "uv": [0, 13, 7, 16], - "texture": "#bottom", - "rotation": 90 - } + "down": {"uv": [0, 13, 7, 16], "rotation": 90, "texture": "#bottom"} } }, { - "name": "cube", "from": [0, 0, 9], "to": [3, 16, 16], "faces": { - "north": { - "uv": [9, 0, 10, 16], - "texture": "#bottom" - }, - "east": { - "uv": [16, 0, 9, 16], - "texture": "#bottom" - }, - "south": { - "uv": [13, 0, 16, 16], - "texture": "#bottom" - }, - "west": { - "uv": [9, 0, 16, 16], - "texture": "#bottom" - }, - "down": { - "uv": [9, 13, 16, 16], - "texture": "#bottom", - "rotation": 90 - } + "north": {"uv": [9, 0, 10, 16], "texture": "#bottom"}, + "east": {"uv": [16, 0, 9, 16], "texture": "#bottom"}, + "south": {"uv": [13, 0, 16, 16], "texture": "#bottom"}, + "west": {"uv": [9, 0, 16, 16], "texture": "#bottom"}, + "down": {"uv": [9, 13, 16, 16], "rotation": 90, "texture": "#bottom"} } }, { - "name": "cube", "from": [0, 0, 7], "to": [3, 3, 9], "faces": { - "east": { - "uv": [9, 13, 7, 16], - "texture": "#bottom" - }, - "west": { - "uv": [7, 13, 9, 16], - "texture": "#bottom" - }, - "up": { - "uv": [7, 13, 9, 14], - "texture": "#bottom", - "rotation": 270 - }, - "down": { - "uv": [7, 13, 9, 16], - "texture": "#bottom", - "rotation": 90 - } + "east": {"uv": [9, 13, 7, 16], "texture": "#bottom"}, + "west": {"uv": [7, 13, 9, 16], "texture": "#bottom"}, + "up": {"uv": [7, 13, 9, 14], "rotation": 270, "texture": "#bottom"}, + "down": {"uv": [7, 13, 9, 16], "rotation": 90, "texture": "#bottom"} } }, { - "name": "cube", "from": [0, 14, 7], "to": [3, 16, 9], "faces": { "east": {"uv": [9, 0, 7, 2], "texture": "#bottom"}, - "south": { - "uv": [0, 0, 1, 2], - "texture": "#missing" - }, "west": {"uv": [7, 0, 9, 2], "texture": "#bottom"}, - "down": { - "uv": [7, 1, 9, 2], - "texture": "#bottom", - "rotation": 90 - } + "down": {"uv": [7, 1, 9, 2], "rotation": 90, "texture": "#bottom"} } } - ], - "groups": [0, 1, 2, 3] + ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/block/jungle_door_bottom_rh.json b/src/main/resources/assets/minecraft/models/block/jungle_door_bottom_rh.json index ba3a980..7b76284 100644 --- a/src/main/resources/assets/minecraft/models/block/jungle_door_bottom_rh.json +++ b/src/main/resources/assets/minecraft/models/block/jungle_door_bottom_rh.json @@ -1,97 +1,50 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", "parent": "block/door_bottom", - "textures": {"bottom": "blocks/door_jungle_lower"}, + "textures": { + "bottom": "blocks/door_jungle_lower" + }, "elements": [ { - "name": "cube", "from": [0, 0, 9], "to": [3, 16, 16], "faces": { - "north": { - "uv": [7, 0, 6, 16], - "texture": "#bottom" - }, + "north": {"uv": [7, 0, 6, 16], "texture": "#bottom"}, "east": {"uv": [0, 0, 7, 16], "texture": "#bottom"}, - "south": { - "uv": [3, 0, 0, 16], - "texture": "#bottom" - }, + "south": {"uv": [0, 0, 3, 16], "texture": "#bottom"}, "west": {"uv": [7, 0, 0, 16], "texture": "#bottom"}, - "down": { - "uv": [0, 16, 7, 13], - "texture": "#bottom", - "rotation": 90 - } + "down": {"uv": [0, 16, 7, 13], "rotation": 90, "texture": "#bottom"} } }, { - "name": "cube", "from": [0, 0, 0], "to": [3, 16, 7], "faces": { - "north": { - "uv": [16, 0, 13, 16], - "texture": "#bottom" - }, - "east": { - "uv": [9, 0, 16, 16], - "texture": "#bottom" - }, - "south": { - "uv": [10, 0, 9, 16], - "texture": "#bottom" - }, - "west": { - "uv": [16, 0, 9, 16], - "texture": "#bottom" - }, - "down": { - "uv": [9, 16, 16, 13], - "texture": "#bottom", - "rotation": 90 - } + "north": {"uv": [16, 0, 13, 16], "texture": "#bottom"}, + "east": {"uv": [9, 0, 16, 16], "texture": "#bottom"}, + "south": {"uv": [10, 0, 9, 16], "texture": "#bottom"}, + "west": {"uv": [16, 0, 9, 16], "texture": "#bottom"}, + "down": {"uv": [9, 16, 16, 13], "rotation": 90, "texture": "#bottom"} } }, { - "name": "cube", "from": [0, 0, 7], "to": [3, 3, 9], "faces": { - "east": { - "uv": [7, 13, 9, 16], - "texture": "#bottom" - }, - "west": { - "uv": [9, 13, 7, 16], - "texture": "#bottom" - }, - "up": { - "uv": [7, 14, 9, 13], - "texture": "#bottom", - "rotation": 270 - }, - "down": { - "uv": [7, 16, 9, 13], - "texture": "#bottom", - "rotation": 90 - } + "east": {"uv": [7, 13, 9, 16], "texture": "#bottom"}, + "west": {"uv": [9, 13, 7, 16], "texture": "#bottom"}, + "up": {"uv": [7, 14, 9, 13], "rotation": 270, "texture": "#bottom"}, + "down": {"uv": [7, 16, 9, 13], "rotation": 90, "texture": "#bottom"} } }, { - "name": "cube", "from": [0, 14, 7], "to": [3, 16, 9], "faces": { "east": {"uv": [7, 0, 9, 2], "texture": "#bottom"}, "west": {"uv": [9, 0, 7, 2], "texture": "#bottom"}, - "down": { - "uv": [7, 2, 9, 1], - "texture": "#bottom", - "rotation": 90 - } + "down": {"uv": [7, 2, 9, 1], "rotation": 90, "texture": "#bottom"} } } - ], - "groups": [0, 1, 2, 3] + ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/block/jungle_door_top.json b/src/main/resources/assets/minecraft/models/block/jungle_door_top.json index 5dd4495..d6e13c0 100644 --- a/src/main/resources/assets/minecraft/models/block/jungle_door_top.json +++ b/src/main/resources/assets/minecraft/models/block/jungle_door_top.json @@ -1,145 +1,90 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", "parent": "block/door_top", - "textures": {"top": "blocks/door_jungle_upper"}, + "textures": { + "top": "blocks/door_jungle_upper" + }, "elements": [ { - "name": "cube", "from": [0, 0, 12], "to": [3, 16, 16], "faces": { - "north": { - "uv": [12, 0, 15, 16], - "texture": "#top", - "rotation": 180 - }, + "north": {"uv": [12, 0, 15, 16], "rotation": 180, "texture": "#top"}, "east": {"uv": [16, 0, 12, 16], "texture": "#top"}, "south": {"uv": [13, 0, 16, 16], "texture": "#top"}, "west": {"uv": [12, 0, 16, 16], "texture": "#top"}, - "up": { - "uv": [12, 0, 16, 3], - "texture": "#top", - "rotation": 270 - } + "up": {"uv": [12, 0, 16, 3], "rotation": 270, "texture": "#top"} } }, { - "name": "cube", "from": [0, 0, 0], "to": [3, 16, 4], "faces": { - "north": {"uv": [0, 0, 3, 16], "texture": "#top"}, + "north": {"uv": [3, 0, 0, 16], "texture": "#top"}, "east": {"uv": [4, 0, 0, 16], "texture": "#top"}, - "south": { - "uv": [1, 0, 4, 16], - "texture": "#top", - "rotation": 180 - }, + "south": {"uv": [1, 0, 4, 16], "rotation": 180, "texture": "#top"}, "west": {"uv": [0, 0, 4, 16], "texture": "#top"}, - "up": { - "uv": [0, 0, 4, 3], - "texture": "#top", - "rotation": 270 - } + "up": {"uv": [0, 0, 4, 3], "rotation": 270, "texture": "#top"} } }, { - "name": "cube", "from": [0, 0, 4], "to": [3, 6, 12], "faces": { "east": {"uv": [12, 10, 4, 16], "texture": "#top"}, "west": {"uv": [4, 10, 12, 16], "texture": "#top"}, - "up": { - "uv": [4, 10, 12, 13], - "texture": "#top", - "rotation": 90 - } + "up": {"uv": [4, 10, 12, 13], "rotation": 90, "texture": "#top"} } }, { - "name": "cube", "from": [0, 13, 4], "to": [3, 16, 12], "faces": { "east": {"uv": [12, 0, 4, 3], "texture": "#top"}, "west": {"uv": [4, 0, 12, 3], "texture": "#top"}, - "up": { - "uv": [4, 0, 12, 3], - "texture": "#top", - "rotation": 270 - }, - "down": { - "uv": [4, 0, 12, 3], - "texture": "#top", - "rotation": 90 - } + "up": {"uv": [4, 0, 12, 3], "rotation": 270, "texture": "#top"}, + "down": {"uv": [4, 0, 12, 3], "rotation": 90, "texture": "#top"} } }, { - "name": "cube", "from": [0, 12, 4], "to": [3, 13, 6], "faces": { "east": {"uv": [10, 3, 12, 4], "texture": "#top"}, "south": {"uv": [5, 3, 6, 4], "texture": "#top"}, "west": {"uv": [4, 3, 6, 4], "texture": "#top"}, - "down": { - "uv": [4, 1, 6, 4], - "texture": "#top", - "rotation": 90 - } + "down": {"uv": [4, 1, 6, 4], "rotation": 90, "texture": "#top"} } }, { - "name": "cube", "from": [0, 12, 10], "to": [3, 13, 12], "faces": { "north": {"uv": [5, 3, 6, 4], "texture": "#top"}, "east": {"uv": [4, 3, 6, 4], "texture": "#top"}, "west": {"uv": [10, 3, 12, 4], "texture": "#top"}, - "down": { - "uv": [10, 3, 12, 4], - "texture": "#top", - "rotation": 270 - } + "down": {"uv": [10, 3, 12, 4], "rotation": 270, "texture": "#top"} } }, { - "name": "cube", "from": [0, 10, 4], "to": [3, 12, 5], "faces": { "east": {"uv": [11, 4, 12, 6], "texture": "#top"}, - "south": { - "uv": [2, 4, 5, 6], - "texture": "#top", - "rotation": 180 - }, - "west": { - "uv": [4, 4, 5, 6], - "texture": "#top", - "rotation": 180 - }, + "south": {"uv": [2, 4, 5, 6], "rotation": 180, "texture": "#top"}, + "west": {"uv": [4, 4, 5, 6], "rotation": 180, "texture": "#top"}, "down": {"uv": [4, 5, 5, 6], "texture": "#top"} } }, { - "name": "cube", "from": [0, 10, 11], "to": [3, 12, 12], "faces": { - "north": { - "uv": [11, 4, 14, 6], - "texture": "#top", - "rotation": 180 - }, + "north": {"uv": [11, 4, 14, 6], "rotation": 180, "texture": "#top"}, "east": {"uv": [5, 4, 4, 6], "texture": "#top"}, "west": {"uv": [11, 4, 12, 6], "texture": "#top"}, "down": {"uv": [11, 5, 12, 6], "texture": "#top"} } } - ], - "groups": [0, 1, 2, 3, 4, 5, 6, 7] + ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/block/jungle_door_top_rh.json b/src/main/resources/assets/minecraft/models/block/jungle_door_top_rh.json index c655c7d..5fa5cad 100644 --- a/src/main/resources/assets/minecraft/models/block/jungle_door_top_rh.json +++ b/src/main/resources/assets/minecraft/models/block/jungle_door_top_rh.json @@ -1,120 +1,82 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", "parent": "block/door_top", - "textures": {"top": "blocks/door_jungle_upper"}, + "textures": { + "top": "blocks/door_jungle_upper" + }, "elements": [ { - "name": "cube", "from": [0, 0, 0], "to": [3, 16, 4], "faces": { - "north": {"uv": [16, 0, 12, 16], "texture": "#top"}, + "north": {"uv": [16, 0, 13, 16], "texture": "#top"}, "east": {"uv": [12, 0, 16, 16], "texture": "#top"}, "south": {"uv": [15, 0, 12, 16], "texture": "#top"}, "west": {"uv": [16, 0, 12, 16], "texture": "#top"}, - "up": { - "uv": [12, 3, 16, 0], - "texture": "#top", - "rotation": 270 - } + "up": {"uv": [12, 3, 16, 0], "rotation": 270, "texture": "#top"} } }, { - "name": "cube", "from": [0, 0, 12], "to": [3, 16, 16], "faces": { "north": {"uv": [4, 0, 1, 16], "texture": "#top"}, "east": {"uv": [0, 0, 4, 16], "texture": "#top"}, - "south": {"uv": [3, 0, 0, 16], "texture": "#top"}, + "south": {"uv": [0, 0, 3, 16], "texture": "#top"}, "west": {"uv": [4, 0, 0, 16], "texture": "#top"}, - "up": { - "uv": [0, 3, 4, 0], - "texture": "#top", - "rotation": 270 - } + "up": {"uv": [0, 3, 4, 0], "rotation": 270, "texture": "#top"} } }, { - "name": "cube", "from": [0, 0, 4], "to": [3, 6, 12], "faces": { "east": {"uv": [4, 10, 12, 16], "texture": "#top"}, "west": {"uv": [12, 10, 4, 16], "texture": "#top"}, - "up": { - "uv": [4, 13, 12, 10], - "texture": "#top", - "rotation": 270 - } + "up": {"uv": [4, 13, 12, 10], "rotation": 270, "texture": "#top"} } }, { - "name": "cube", "from": [0, 13, 4], "to": [3, 16, 12], "faces": { "east": {"uv": [4, 0, 12, 3], "texture": "#top"}, "west": {"uv": [12, 0, 4, 3], "texture": "#top"}, - "up": { - "uv": [4, 3, 12, 0], - "texture": "#top", - "rotation": 270 - }, - "down": { - "uv": [4, 3, 12, 0], - "texture": "#top", - "rotation": 90 - } + "up": {"uv": [4, 3, 12, 0], "rotation": 270, "texture": "#top"}, + "down": {"uv": [4, 3, 12, 0], "rotation": 90, "texture": "#top"} } }, { - "name": "cube", "from": [0, 12, 10], "to": [3, 13, 12], "faces": { "north": {"uv": [6, 3, 3, 4], "texture": "#top"}, "east": {"uv": [12, 3, 10, 4], "texture": "#top"}, "west": {"uv": [6, 3, 4, 4], "texture": "#top"}, - "down": { - "uv": [4, 4, 6, 3], - "texture": "#top", - "rotation": 90 - } + "down": {"uv": [4, 4, 6, 3], "rotation": 90, "texture": "#top"} } }, { - "name": "cube", "from": [0, 12, 4], "to": [3, 13, 6], "faces": { "east": {"uv": [6, 3, 4, 4], "texture": "#top"}, "south": {"uv": [6, 3, 3, 4], "texture": "#top"}, "west": {"uv": [12, 3, 10, 4], "texture": "#top"}, - "down": { - "uv": [10, 4, 12, 3], - "texture": "#top", - "rotation": 270 - } + "down": {"uv": [10, 4, 12, 3], "rotation": 270, "texture": "#top"} } }, { - "name": "cube", "from": [0, 10, 11], "to": [3, 12, 12], "faces": { "north": {"uv": [5, 4, 2, 6], "texture": "#top"}, "east": {"uv": [12, 4, 11, 6], "texture": "#top"}, - "west": { - "uv": [5, 4, 4, 6], - "texture": "#top", - "rotation": 180 - }, + "west": {"uv": [5, 4, 4, 6], "rotation": 180, "texture": "#top"}, "down": {"uv": [4, 6, 5, 5], "texture": "#top"} } }, { - "name": "cube", "from": [0, 10, 4], "to": [3, 12, 5], "faces": { @@ -124,6 +86,5 @@ "down": {"uv": [11, 6, 12, 5], "texture": "#top"} } } - ], - "groups": [0, 1, 2, 3, 4, 5, 6, 7] + ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/block/ladder.json b/src/main/resources/assets/minecraft/models/block/ladder.json index ed9bab0..e4aaafc 100644 --- a/src/main/resources/assets/minecraft/models/block/ladder.json +++ b/src/main/resources/assets/minecraft/models/block/ladder.json @@ -1,62 +1,36 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", + "ambientocclusion": false, "textures": { "0": "blocks/ladder", "particle": "blocks/ladder" }, "elements": [ { - "name": "cube", "from": [12, 0, 15], "to": [14, 16, 16], "faces": { "north": {"uv": [2, 0, 4, 16], "texture": "#0"}, "east": {"uv": [2, 0, 3, 16], "texture": "#0"}, - "south": { - "uv": [2, 0, 4, 16], - "texture": "#0", - "rotation": 180 - }, + "south": {"uv": [2, 0, 4, 16], "rotation": 180, "texture": "#0"}, "west": {"uv": [3, 0, 4, 16], "texture": "#0"}, - "up": { - "uv": [12, 0, 14, 1], - "texture": "#0", - "rotation": 180 - }, - "down": { - "uv": [2, 15, 4, 16], - "texture": "#0", - "rotation": 180 - } + "up": {"uv": [12, 0, 14, 1], "rotation": 180, "texture": "#0"}, + "down": {"uv": [2, 15, 4, 16], "rotation": 180, "texture": "#0"} } }, { - "name": "cube", "from": [2, 0, 15], "to": [4, 16, 16], "faces": { "north": {"uv": [12, 0, 14, 16], "texture": "#0"}, "east": {"uv": [12, 0, 13, 16], "texture": "#0"}, - "south": { - "uv": [2, 0, 4, 16], - "texture": "#0", - "rotation": 180 - }, + "south": {"uv": [2, 0, 4, 16], "rotation": 180, "texture": "#0"}, "west": {"uv": [13, 0, 14, 16], "texture": "#0"}, - "up": { - "uv": [2, 0, 4, 1], - "texture": "#0", - "rotation": 180 - }, - "down": { - "uv": [12, 15, 14, 16], - "texture": "#0", - "rotation": 180 - } + "up": {"uv": [2, 0, 4, 1], "rotation": 180, "texture": "#0"}, + "down": {"uv": [12, 15, 14, 16], "rotation": 180, "texture": "#0"} } }, { - "name": "cube", "from": [1, 5, 14], "to": [15, 7, 15], "faces": { @@ -69,7 +43,6 @@ } }, { - "name": "cube", "from": [1, 9, 14], "to": [15, 11, 15], "faces": { @@ -82,7 +55,6 @@ } }, { - "name": "cube", "from": [1, 13, 14], "to": [15, 15, 15], "faces": { @@ -95,7 +67,6 @@ } }, { - "name": "cube", "from": [1, 1, 14], "to": [15, 3, 15], "faces": { @@ -107,7 +78,5 @@ "down": {"uv": [1, 14, 15, 15], "texture": "#0"} } } - ], - "groups": [0, 1, 2, 3, 4, 5], - "ambientocclusion": false + ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/block/rail_curved.json b/src/main/resources/assets/minecraft/models/block/rail_curved.json index f936455..8a53483 100644 --- a/src/main/resources/assets/minecraft/models/block/rail_curved.json +++ b/src/main/resources/assets/minecraft/models/block/rail_curved.json @@ -1,1030 +1,433 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", "textures": { "0": "blocks/rail_normal_turned", "particle": "blocks/rail_normal_turned" }, "elements": [ { - "name": "cube", - "from": [2, 1, 12], - "to": [4, 2, 16], + "from": [8, 1, 4], + "to": [10, 2, 6], "faces": { - "north": { - "uv": [2, 12, 3, 14], - "texture": "#0", - "rotation": 180 - }, - "east": {"uv": [3, 12, 4, 16], "texture": "#0"}, - "south": {"uv": [5, 7, 7, 8], "texture": "#0"}, - "west": {"uv": [2, 12, 3, 16], "texture": "#0"}, - "up": {"uv": [2, 12, 4, 16], "texture": "#0"}, - "down": {"uv": [2, 12, 4, 16], "texture": "#0"} + "north": {"uv": [8, 4, 10, 5], "texture": "#0"}, + "east": {"uv": [8, 5, 10, 6], "texture": "#0"}, + "south": {"uv": [8, 5, 10, 6], "texture": "#0"}, + "west": {"uv": [8, 4, 10, 5], "texture": "#0"}, + "up": {"uv": [8, 4, 10, 6], "texture": "#0"}, + "down": {"uv": [4, 8, 6, 10], "rotation": 270, "texture": "#0"} } }, { - "name": "cube", - "from": [3, 1, 10], - "to": [5, 2, 12], + "from": [7, 1, 5], + "to": [8, 2, 6], "faces": { - "north": {"uv": [8, 4, 10, 5], "texture": "#0"}, - "east": { - "uv": [5, 8, 6, 10], - "texture": "#0", - "rotation": 90 - }, - "south": {"uv": [10, 4, 12, 5], "texture": "#0"}, - "west": {"uv": [12, 2, 14, 3], "texture": "#0"}, - "up": {"uv": [3, 10, 5, 12], "texture": "#0"}, - "down": { - "uv": [8, 4, 10, 6], - "texture": "#0", - "rotation": 270 - } + "north": {"uv": [6, 6, 7, 7], "texture": "#0"}, + "west": {"uv": [6, 6, 7, 7], "texture": "#0"}, + "up": {"uv": [7, 5, 8, 6], "texture": "#0"}, + "down": {"uv": [5, 7, 6, 8], "texture": "#0"} } }, { - "name": "cube", - "from": [4, 1, 8], - "to": [6, 2, 10], + "from": [12, 1, 2], + "to": [16, 2, 4], "faces": { - "north": {"uv": [12, 2, 14, 3], "texture": "#0"}, - "east": { - "uv": [5, 8, 6, 10], - "texture": "#0", - "rotation": 90 - }, - "south": {"uv": [8, 5, 10, 6], "texture": "#0"}, - "west": {"uv": [10, 3, 12, 4], "texture": "#0"}, - "up": {"uv": [4, 8, 6, 10], "texture": "#0"}, - "down": { - "uv": [8, 4, 10, 6], - "texture": "#0", - "rotation": 270 - } + "north": {"uv": [12, 2, 16, 3], "texture": "#0"}, + "east": {"uv": [4, 8, 6, 9], "rotation": 180, "texture": "#0", "cullface": "east"}, + "south": {"uv": [12, 3, 16, 4], "texture": "#0"}, + "west": {"uv": [8, 4, 10, 5], "texture": "#0"}, + "up": {"uv": [12, 2, 16, 4], "texture": "#0"}, + "down": {"uv": [2, 12, 4, 16], "rotation": 270, "texture": "#0"} } }, { - "name": "cube", "from": [5, 1, 7], "to": [7, 2, 8], "faces": { - "north": {"uv": [8, 4, 10, 5], "texture": "#0"}, - "east": {"uv": [6, 7, 7, 8], "texture": "#0"}, + "north": {"uv": [4, 8, 5, 10], "texture": "#0"}, + "east": {"uv": [7, 6, 8, 7], "texture": "#0"}, "south": {"uv": [8, 5, 10, 6], "texture": "#0"}, - "west": {"uv": [10, 3, 11, 4], "texture": "#0"}, + "west": {"uv": [5, 7, 6, 8], "texture": "#0"}, "up": {"uv": [5, 7, 7, 8], "texture": "#0"}, - "down": { - "uv": [6, 6, 7, 8], - "texture": "#0", - "rotation": 270 - } + "down": {"uv": [7, 5, 8, 7], "rotation": 270, "texture": "#0"} } }, { - "name": "cube", - "from": [6, 1, 6], - "to": [8, 2, 7], - "faces": { - "north": {"uv": [10, 3, 12, 4], "texture": "#0"}, - "east": {"uv": [6, 7, 7, 8], "texture": "#0"}, - "south": {"uv": [10, 4, 12, 5], "texture": "#0"}, - "west": {"uv": [4, 8, 5, 10], "texture": "#0"}, - "up": {"uv": [6, 6, 8, 7], "texture": "#0"}, - "down": { - "uv": [6, 6, 7, 8], - "texture": "#0", - "rotation": 270 - } - } - }, - { - "name": "cube", - "from": [7, 1, 5], - "to": [8, 2, 6], + "from": [2, 1, 12], + "to": [4, 2, 16], "faces": { - "north": {"uv": [10, 3, 11, 4], "texture": "#0"}, - "east": {"uv": [0, 0, 1, 1], "texture": "#missing"}, - "south": { - "uv": [0, 0, 1, 1], - "texture": "#missing" - }, - "west": {"uv": [2, 12, 3, 15], "texture": "#0"}, - "up": { - "uv": [7, 5, 8, 6], - "texture": "#0", - "rotation": 270 - }, - "down": { - "uv": [4, 8, 5, 9], - "texture": "#0", - "rotation": 90 - } + "north": {"uv": [3, 10, 4, 12], "texture": "#0"}, + "east": {"uv": [12, 3, 16, 4], "texture": "#0"}, + "south": {"uv": [4, 8, 6, 9], "texture": "#0", "cullface": "south"}, + "west": {"uv": [2, 12, 3, 16], "texture": "#0"}, + "up": {"uv": [2, 12, 4, 16], "texture": "#0"}, + "down": {"uv": [12, 2, 16, 4], "rotation": 270, "texture": "#0"} } }, { - "name": "cube", - "from": [8, 1, 4], - "to": [10, 2, 6], + "from": [3, 1, 10], + "to": [5, 2, 12], "faces": { - "north": {"uv": [10, 3, 12, 4], "texture": "#0"}, - "east": { - "uv": [8, 5, 10, 6], - "texture": "#0", - "rotation": 90 - }, - "south": {"uv": [12, 3, 14, 4], "texture": "#0"}, - "west": {"uv": [8, 4, 10, 5], "texture": "#0"}, - "up": {"uv": [10, 3, 12, 5], "texture": "#0"}, - "down": { - "uv": [8, 4, 10, 6], - "texture": "#0", - "rotation": 180 - } + "north": {"uv": [4, 8, 5, 10], "texture": "#0"}, + "east": {"uv": [8, 5, 10, 6], "texture": "#0"}, + "south": {"uv": [10, 4, 12, 5], "texture": "#0"}, + "west": {"uv": [3, 10, 4, 12], "texture": "#0"}, + "up": {"uv": [3, 10, 5, 12], "texture": "#0"}, + "down": {"uv": [10, 3, 12, 5], "rotation": 270, "texture": "#0"} } }, { - "name": "cube", - "from": [10, 1, 3], - "to": [12, 2, 5], + "from": [4, 1, 8], + "to": [6, 2, 10], "faces": { - "north": {"uv": [10, 3, 12, 4], "texture": "#0"}, + "north": {"uv": [4, 8, 5, 10], "texture": "#0"}, "east": {"uv": [8, 5, 10, 6], "texture": "#0"}, "south": {"uv": [8, 5, 10, 6], "texture": "#0"}, - "west": {"uv": [8, 4, 10, 5], "texture": "#0"}, - "up": {"uv": [10, 3, 12, 5], "texture": "#0"}, - "down": { - "uv": [8, 4, 10, 6], - "texture": "#0", - "rotation": 180 - } + "west": {"uv": [4, 8, 5, 10], "texture": "#0"}, + "up": {"uv": [4, 8, 6, 10], "texture": "#0"}, + "down": {"uv": [8, 4, 10, 6], "rotation": 270, "texture": "#0"} } }, { - "name": "cube", - "from": [12, 1, 2], - "to": [16, 2, 4], + "from": [14, 1, 12], + "to": [16, 2, 14], "faces": { - "north": {"uv": [12, 2, 16, 3], "texture": "#0"}, - "east": { - "uv": [3, 10, 5, 11], - "texture": "#0", - "rotation": 180 - }, - "south": {"uv": [12, 3, 16, 4], "texture": "#0"}, - "west": { - "uv": [2, 12, 3, 14], - "texture": "#0", - "rotation": 90 - }, - "up": {"uv": [12, 2, 16, 4], "texture": "#0"}, - "down": { - "uv": [2, 12, 4, 16], - "texture": "#0", - "rotation": 270 - } + "north": {"uv": [8, 5, 10, 6], "texture": "#0"}, + "east": {"uv": [2, 12, 4, 13], "texture": "#0", "cullface": "east"}, + "south": {"uv": [8, 4, 10, 5], "texture": "#0"}, + "west": {"uv": [8, 5, 10, 6], "texture": "#0"}, + "up": {"uv": [14, 12, 16, 14], "texture": "#0"} } }, { - "name": "cube", "from": [12, 1, 14], "to": [14, 2, 16], "faces": { "north": {"uv": [10, 4, 12, 5], "texture": "#0"}, - "east": {"uv": [12, 2, 14, 3], "texture": "#0"}, - "south": {"uv": [12, 15, 14, 16], "texture": "#0"}, + "east": {"uv": [8, 4, 10, 5], "texture": "#0"}, + "south": {"uv": [2, 12, 4, 13], "rotation": 180, "texture": "#0", "cullface": "south"}, "west": {"uv": [8, 5, 10, 6], "texture": "#0"}, - "up": { - "uv": [4, 8, 6, 10], - "texture": "#0", - "rotation": 180 - }, - "down": { - "uv": [14, 12, 16, 14], - "texture": "#0", - "rotation": 270 - } + "up": {"uv": [12, 14, 14, 16], "texture": "#0"} } }, { - "name": "cube", - "from": [14, 1, 12], - "to": [16, 2, 14], - "faces": { - "north": {"uv": [10, 4, 12, 5], "texture": "#0"}, - "east": {"uv": [4, 8, 6, 9], "texture": "#0"}, - "south": {"uv": [10, 3, 12, 4], "texture": "#0"}, - "west": {"uv": [8, 5, 10, 6], "texture": "#0"}, - "up": {"uv": [14, 12, 16, 14], "texture": "#0"}, - "down": {"uv": [8, 4, 10, 6], "texture": "#0"} - } - }, - { - "name": "cube", "from": [13, 1, 13], "to": [14, 2, 14], "faces": { - "north": {"uv": [6, 7, 7, 8], "texture": "#0"}, - "east": {"uv": [0, 0, 1, 1], "texture": "#missing"}, - "south": { - "uv": [0, 0, 1, 1], - "texture": "#missing" - }, + "north": {"uv": [7, 6, 8, 7], "texture": "#0"}, "west": {"uv": [7, 6, 8, 7], "texture": "#0"}, - "up": { - "uv": [13, 13, 14, 14], - "texture": "#0", - "rotation": 270 - }, - "down": { - "uv": [13, 13, 14, 14], - "texture": "#0", - "rotation": 90 - } + "up": {"uv": [13, 13, 14, 14], "texture": "#0"} } }, { - "name": "cube", - "from": [1, 0, 11], - "to": [3, 1, 13], + "from": [10, 1, 3], + "to": [12, 2, 5], "faces": { - "north": { - "uv": [12, 5, 14, 6], - "texture": "#0", - "rotation": 180 - }, - "east": { - "uv": [12, 4, 14, 6], - "texture": "#0", - "rotation": 180 - }, - "south": { - "uv": [12, 5, 14, 6], - "texture": "#0", - "rotation": 180 - }, - "west": { - "uv": [12, 5, 14, 6], - "texture": "#0", - "rotation": 180 - }, - "up": { - "uv": [12, 4, 14, 6], - "texture": "#0", - "rotation": 90 - }, - "down": { - "uv": [12, 4, 14, 6], - "texture": "#0", - "rotation": 270 - } + "north": {"uv": [8, 4, 10, 5], "texture": "#0"}, + "east": {"uv": [8, 5, 10, 6], "texture": "#0"}, + "south": {"uv": [8, 5, 10, 6], "texture": "#0"}, + "west": {"uv": [8, 4, 10, 5], "texture": "#0"}, + "up": {"uv": [10, 3, 12, 5], "texture": "#0"}, + "down": {"uv": [3, 10, 5, 12], "rotation": 270, "texture": "#0"} } }, { - "name": "cube", - "from": [4, 0, 12], - "to": [7, 1, 14], + "from": [6, 1, 6], + "to": [8, 2, 7], "faces": { - "north": { - "uv": [7, 14, 10, 15], - "texture": "#0", - "rotation": 180 - }, - "east": { - "uv": [12, 4, 14, 7], - "texture": "#0", - "rotation": 180 - }, - "south": { - "uv": [7, 14, 10, 15], - "texture": "#0", - "rotation": 180 - }, - "west": { - "uv": [12, 4, 14, 7], - "texture": "#0", - "rotation": 180 - }, - "up": { - "uv": [12, 4, 14, 7], - "texture": "#0", - "rotation": 90 - }, - "down": { - "uv": [12, 4, 14, 7], - "texture": "#0", - "rotation": 270 - } + "north": {"uv": [10, 3, 12, 4], "texture": "#0"}, + "east": {"uv": [7, 6, 8, 7], "texture": "#0"}, + "south": {"uv": [8, 5, 10, 6], "texture": "#0"}, + "west": {"uv": [6, 6, 7, 7], "texture": "#0"}, + "up": {"uv": [6, 6, 8, 7], "texture": "#0"} } }, { - "name": "cube", - "from": [7, 0, 13], - "to": [10, 1, 15], + "from": [5, 0, 5], + "to": [7, 1, 7], "faces": { - "north": { - "uv": [7, 14, 10, 15], - "texture": "#0", - "rotation": 180 - }, - "east": { - "uv": [13, 7, 15, 10], - "texture": "#0", - "rotation": 180 - }, - "south": { - "uv": [7, 14, 10, 15], - "texture": "#0", - "rotation": 180 - }, - "west": { - "uv": [13, 7, 15, 10], - "texture": "#0", - "rotation": 180 - }, - "up": { - "uv": [13, 7, 15, 10], - "texture": "#0", - "rotation": 90 - }, - "down": { - "uv": [13, 7, 15, 10], - "texture": "#0", - "rotation": 270 - } + "north": {"uv": [11, 1, 13, 2], "texture": "#0"}, + "east": {"uv": [11, 1, 13, 2], "texture": "#0"}, + "south": {"uv": [11, 1, 13, 2], "texture": "#0"}, + "west": {"uv": [11, 1, 13, 2], "texture": "#0"}, + "up": {"uv": [7, 7, 9, 9], "texture": "#0"}, + "down": {"uv": [7, 7, 9, 9], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", "from": [10, 0, 14], "to": [13, 1, 16], "faces": { - "north": { - "uv": [14, 7, 15, 10], - "texture": "#0", - "rotation": 90 - }, - "east": { - "uv": [13, 7, 15, 10], - "texture": "#0", - "rotation": 180 - }, - "south": { - "uv": [7, 14, 10, 15], - "texture": "#0", - "rotation": 180 - }, - "west": { - "uv": [13, 7, 15, 10], - "texture": "#0", - "rotation": 180 - }, - "up": { - "uv": [13, 7, 15, 10], - "texture": "#0", - "rotation": 90 - }, - "down": { - "uv": [13, 7, 15, 10], - "texture": "#0", - "rotation": 270 - } + "north": {"uv": [7, 13, 10, 14], "texture": "#0"}, + "south": {"uv": [7, 13, 10, 14], "texture": "#0", "cullface": "south"}, + "west": {"uv": [11, 1, 13, 2], "texture": "#0"}, + "up": {"uv": [7, 13, 10, 15], "texture": "#0"}, + "down": {"uv": [7, 13, 10, 15], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", "from": [14, 0, 10], "to": [16, 1, 13], "faces": { - "north": { - "uv": [13, 9, 15, 10], - "texture": "#0", - "rotation": 180 - }, - "east": { - "uv": [7, 14, 10, 15], - "texture": "#0", - "rotation": 90 - }, - "south": { - "uv": [13, 7, 15, 10], - "texture": "#0", - "rotation": 90 - }, - "west": { - "uv": [7, 14, 10, 15], - "texture": "#0", - "rotation": 90 - }, + "north": {"uv": [7, 7, 9, 8], "texture": "#0"}, + "east": {"uv": [7, 13, 10, 14], "texture": "#0", "cullface": "east"}, + "west": {"uv": [7, 13, 10, 14], "texture": "#0"}, "up": {"uv": [13, 7, 15, 10], "texture": "#0"}, - "down": { - "uv": [13, 7, 15, 10], - "texture": "#0", - "rotation": 180 - } + "down": {"uv": [13, 7, 15, 10], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", - "from": [13, 0, 7], - "to": [15, 1, 10], + "from": [7, 0, 13], + "to": [10, 1, 15], "faces": { - "north": { - "uv": [7, 14, 9, 15], - "texture": "#0", - "rotation": 180 - }, - "east": { - "uv": [7, 14, 10, 15], - "texture": "#0", - "rotation": 180 - }, - "south": { - "uv": [7, 13, 10, 15], - "texture": "#0", - "rotation": 180 - }, - "west": { - "uv": [7, 14, 10, 15], - "texture": "#0", - "rotation": 180 - }, - "up": { - "uv": [7, 13, 10, 15], - "texture": "#0", - "rotation": 90 - }, - "down": { - "uv": [7, 13, 10, 15], - "texture": "#0", - "rotation": 270 - } + "north": {"uv": [7, 13, 10, 14], "texture": "#0"}, + "east": {"uv": [11, 1, 13, 2], "texture": "#0"}, + "south": {"uv": [7, 13, 10, 14], "texture": "#0"}, + "west": {"uv": [11, 1, 13, 2], "texture": "#0"}, + "up": {"uv": [7, 13, 10, 15], "texture": "#0"}, + "down": {"uv": [7, 13, 10, 15], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", - "from": [12, 0, 4], - "to": [14, 1, 7], + "from": [13, 0, 7], + "to": [15, 1, 10], "faces": { - "north": { - "uv": [4, 12, 7, 14], - "texture": "#0", - "rotation": 180 - }, - "east": { - "uv": [4, 13, 7, 14], - "texture": "#0", - "rotation": 180 - }, - "south": { - "uv": [4, 13, 6, 14], - "texture": "#0", - "rotation": 180 - }, - "west": { - "uv": [4, 13, 7, 14], - "texture": "#0", - "rotation": 180 - }, - "up": { - "uv": [4, 12, 7, 14], - "texture": "#0", - "rotation": 90 - }, - "down": { - "uv": [4, 12, 7, 14], - "texture": "#0", - "rotation": 270 - } + "north": {"uv": [5, 5, 7, 6], "texture": "#0"}, + "east": {"uv": [7, 13, 10, 14], "texture": "#0"}, + "south": {"uv": [9, 9, 11, 10], "texture": "#0"}, + "west": {"uv": [7, 13, 10, 14], "texture": "#0"}, + "up": {"uv": [13, 7, 15, 10], "texture": "#0"}, + "down": {"uv": [13, 7, 15, 10], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", - "from": [11, 0, 1], - "to": [13, 1, 3], + "from": [9, 0, 9], + "to": [11, 1, 11], "faces": { - "north": { - "uv": [4, 13, 6, 14], - "texture": "#0", - "rotation": 180 - }, - "east": { - "uv": [4, 13, 6, 14], - "texture": "#0", - "rotation": 180 - }, - "south": { - "uv": [4, 12, 6, 14], - "texture": "#0", - "rotation": 180 - }, - "west": { - "uv": [4, 13, 6, 14], - "texture": "#0", - "rotation": 180 - }, - "up": { - "uv": [4, 12, 6, 14], - "texture": "#0", - "rotation": 90 - }, - "down": { - "uv": [4, 12, 6, 14], - "texture": "#0", - "rotation": 270 - } + "north": {"uv": [12, 1, 14, 2], "texture": "#0"}, + "east": {"uv": [11, 1, 13, 2], "texture": "#0"}, + "south": {"uv": [11, 1, 13, 2], "texture": "#0"}, + "west": {"uv": [11, 1, 13, 2], "texture": "#0"}, + "up": {"uv": [10, 10, 12, 12], "texture": "#0"}, + "down": {"uv": [10, 10, 12, 12], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", - "from": [9, 0, 9], - "to": [11, 1, 11], + "from": [1, 0, 11], + "to": [3, 1, 13], "faces": { - "north": {"uv": [10, 11, 12, 12], "texture": "#0"}, - "east": {"uv": [10, 11, 12, 12], "texture": "#0"}, - "south": {"uv": [10, 11, 12, 12], "texture": "#0"}, - "west": {"uv": [10, 11, 12, 12], "texture": "#0"}, - "up": { - "uv": [10, 10, 12, 12], - "texture": "#0", - "rotation": 270 - }, - "down": { - "uv": [10, 10, 12, 12], - "texture": "#0", - "rotation": 90 - } + "north": {"uv": [1, 11, 3, 12], "texture": "#0"}, + "south": {"uv": [11, 1, 13, 2], "texture": "#0"}, + "west": {"uv": [11, 1, 13, 2], "texture": "#0"}, + "up": {"uv": [4, 12, 6, 14], "texture": "#0"}, + "down": {"uv": [4, 12, 6, 14], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", - "from": [10, 0, 11], - "to": [11, 1, 12], + "from": [12, 0, 4], + "to": [14, 1, 7], "faces": { - "north": {"uv": [10, 11, 12, 12], "texture": "#0"}, - "east": {"uv": [10, 11, 12, 12], "texture": "#0"}, - "south": {"uv": [10, 11, 11, 12], "texture": "#0"}, - "west": {"uv": [10, 11, 11, 12], "texture": "#0"}, - "up": { - "uv": [10, 11, 11, 12], - "texture": "#0", - "rotation": 270 - }, - "down": { - "uv": [10, 11, 11, 12], - "texture": "#0", - "rotation": 90 - } + "east": {"uv": [4, 13, 7, 14], "rotation": 180, "texture": "#0"}, + "south": {"uv": [5, 12, 7, 13], "texture": "#0"}, + "west": {"uv": [4, 12, 7, 13], "texture": "#0"}, + "up": {"uv": [12, 4, 14, 7], "texture": "#0"}, + "down": {"uv": [12, 4, 14, 7], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", - "from": [8, 0, 9], - "to": [9, 1, 10], + "from": [11, 0, 1], + "to": [13, 1, 3], "faces": { - "north": {"uv": [8, 9, 10, 10], "texture": "#0"}, - "east": {"uv": [8, 9, 10, 10], "texture": "#0"}, - "south": {"uv": [8, 9, 9, 10], "texture": "#0"}, - "west": {"uv": [8, 9, 9, 10], "texture": "#0"}, - "up": { - "uv": [8, 9, 9, 10], - "texture": "#0", - "rotation": 270 - }, - "down": { - "uv": [8, 8, 10, 10], - "texture": "#0", - "rotation": 90 - } + "north": {"uv": [7, 7, 9, 8], "texture": "#0"}, + "east": {"uv": [12, 5, 14, 6], "rotation": 180, "texture": "#0"}, + "west": {"uv": [7, 7, 9, 8], "texture": "#0"}, + "up": {"uv": [12, 4, 14, 6], "texture": "#0"}, + "down": {"uv": [12, 4, 14, 6], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", "from": [11, 0, 11], "to": [13, 1, 13], "faces": { - "north": {"uv": [11, 12, 13, 13], "texture": "#0"}, - "east": {"uv": [11, 12, 13, 13], "texture": "#0"}, - "south": {"uv": [11, 12, 13, 13], "texture": "#0"}, - "west": {"uv": [11, 12, 13, 13], "texture": "#0"}, - "up": { - "uv": [11, 11, 13, 13], - "texture": "#0", - "rotation": 270 - }, - "down": { - "uv": [11, 11, 13, 13], - "texture": "#0", - "rotation": 90 - } + "north": {"uv": [11, 1, 13, 2], "texture": "#0"}, + "east": {"uv": [11, 1, 13, 2], "texture": "#0"}, + "south": {"uv": [11, 1, 13, 2], "texture": "#0"}, + "west": {"uv": [11, 1, 13, 2], "texture": "#0"}, + "up": {"uv": [10, 10, 12, 12], "texture": "#0"}, + "down": {"uv": [10, 10, 12, 12], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", - "from": [12, 0, 12], - "to": [14, 1, 14], + "from": [10, 0, 11], + "to": [11, 1, 12], "faces": { - "north": { - "uv": [11, 12, 13, 13], - "texture": "#0", - "rotation": 180 - }, - "east": { - "uv": [11, 11, 13, 13], - "texture": "#0", - "rotation": 180 - }, - "south": { - "uv": [11, 11, 13, 13], - "texture": "#0", - "rotation": 180 - }, - "west": { - "uv": [11, 12, 13, 13], - "texture": "#0", - "rotation": 180 - }, - "up": { - "uv": [11, 11, 13, 13], - "texture": "#0", - "rotation": 90 - }, - "down": { - "uv": [11, 11, 13, 13], - "texture": "#0", - "rotation": 270 - } + "south": {"uv": [11, 1, 12, 2], "texture": "#0"}, + "west": {"uv": [11, 1, 12, 2], "texture": "#0"}, + "up": {"uv": [9, 10, 10, 11], "texture": "#0"}, + "down": {"uv": [9, 10, 10, 11], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", - "from": [7, 0, 7], - "to": [9, 1, 9], + "from": [8, 0, 9], + "to": [9, 1, 10], "faces": { - "north": { - "uv": [7, 8, 9, 9], - "texture": "#0", - "rotation": 180 - }, - "east": { - "uv": [7, 8, 9, 9], - "texture": "#0", - "rotation": 180 - }, - "south": { - "uv": [8, 8, 9, 9], - "texture": "#0", - "rotation": 180 - }, - "west": { - "uv": [7, 7, 9, 9], - "texture": "#0", - "rotation": 180 - }, - "up": { - "uv": [7, 7, 9, 9], - "texture": "#0", - "rotation": 90 - }, - "down": { - "uv": [7, 7, 9, 9], - "texture": "#0", - "rotation": 270 - } + "south": {"uv": [11, 1, 12, 2], "texture": "#0"}, + "west": {"uv": [11, 1, 12, 2], "texture": "#0"}, + "up": {"uv": [8, 9, 9, 10], "texture": "#0"}, + "down": {"uv": [8, 9, 9, 10], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", - "from": [6, 0, 7], - "to": [7, 1, 8], + "from": [7, 0, 7], + "to": [9, 1, 9], "faces": { - "north": { - "uv": [7, 8, 9, 9], - "texture": "#0", - "rotation": 180 - }, - "east": { - "uv": [7, 8, 9, 9], - "texture": "#0", - "rotation": 180 - }, - "south": { - "uv": [8, 8, 9, 9], - "texture": "#0", - "rotation": 180 - }, - "west": { - "uv": [7, 8, 8, 9], - "texture": "#0", - "rotation": 180 - }, - "up": { - "uv": [7, 8, 8, 9], - "texture": "#0", - "rotation": 90 - }, - "down": { - "uv": [7, 8, 8, 9], - "texture": "#0", - "rotation": 270 - } + "north": {"uv": [11, 1, 13, 2], "texture": "#0"}, + "east": {"uv": [7, 7, 9, 8], "texture": "#0"}, + "south": {"uv": [11, 1, 13, 2], "texture": "#0"}, + "west": {"uv": [11, 1, 13, 2], "texture": "#0"}, + "up": {"uv": [8, 8, 10, 10], "texture": "#0"}, + "down": {"uv": [8, 8, 10, 10], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", - "from": [5, 0, 5], - "to": [7, 1, 7], + "from": [6, 0, 7], + "to": [7, 1, 8], "faces": { - "north": { - "uv": [7, 8, 9, 9], - "texture": "#0", - "rotation": 180 - }, - "east": { - "uv": [7, 8, 9, 9], - "texture": "#0", - "rotation": 180 - }, - "south": { - "uv": [8, 8, 9, 9], - "texture": "#0", - "rotation": 180 - }, - "west": { - "uv": [7, 8, 9, 9], - "texture": "#0", - "rotation": 180 - }, - "up": { - "uv": [7, 7, 9, 9], - "texture": "#0", - "rotation": 90 - }, - "down": { - "uv": [7, 7, 9, 9], - "texture": "#0", - "rotation": 270 - } + "south": {"uv": [11, 1, 12, 2], "texture": "#0"}, + "west": {"uv": [11, 1, 12, 2], "texture": "#0"}, + "down": {"uv": [7, 8, 8, 9], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", "from": [11, 0, 3], "to": [12, 1, 5], "faces": { - "north": { - "uv": [4, 12, 6, 13], - "texture": "#0", - "rotation": 180 - }, - "east": { - "uv": [4, 12, 6, 13], - "texture": "#0", - "rotation": 180 - }, - "south": { - "uv": [4, 13, 5, 14], - "texture": "#0", - "rotation": 180 - }, - "west": { - "uv": [4, 12, 6, 13], - "texture": "#0", - "rotation": 180 - }, - "up": { - "uv": [4, 12, 6, 13], - "texture": "#0", - "rotation": 90 - }, - "down": { - "uv": [4, 12, 6, 13], - "texture": "#0", - "rotation": 270 - } + "south": {"uv": [5, 5, 6, 6], "texture": "#0"}, + "west": {"uv": [11, 1, 13, 2], "texture": "#0"}, + "down": {"uv": [12, 4, 13, 6], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", "from": [3, 0, 11], "to": [5, 1, 12], "faces": { - "north": { - "uv": [12, 5, 14, 6], - "texture": "#0", - "rotation": 180 - }, - "east": { - "uv": [12, 4, 13, 6], - "texture": "#0", - "rotation": 180 - }, - "south": { - "uv": [12, 4, 13, 6], - "texture": "#0", - "rotation": 180 - }, - "west": { - "uv": [12, 4, 13, 6], - "texture": "#0", - "rotation": 180 - }, - "up": { - "uv": [12, 4, 13, 6], - "texture": "#0", - "rotation": 90 - }, - "down": { - "uv": [12, 4, 13, 6], - "texture": "#0", - "rotation": 270 - } + "north": {"uv": [11, 1, 13, 2], "texture": "#0"}, + "east": {"uv": [5, 5, 6, 6], "texture": "#0"}, + "down": {"uv": [5, 12, 7, 13], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", "from": [12, 0, 3], "to": [14, 1, 4], "faces": { - "north": {"uv": [4, 13, 6, 14], "texture": "#0"}, - "east": {"uv": [4, 13, 5, 14], "texture": "#0"}, - "south": {"uv": [4, 12, 5, 14], "texture": "#0"}, - "west": {"uv": [4, 12, 5, 14], "texture": "#0"}, - "up": { - "uv": [4, 12, 5, 14], - "texture": "#0", - "rotation": 270 - }, - "down": { - "uv": [4, 12, 5, 14], - "texture": "#0", - "rotation": 90 - } + "north": {"uv": [5, 12, 7, 13], "texture": "#0"}, + "east": {"uv": [7, 8, 8, 9], "texture": "#0"}, + "down": {"uv": [12, 4, 14, 5], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", "from": [3, 0, 12], "to": [4, 1, 14], "faces": { - "north": {"uv": [12, 4, 14, 5], "texture": "#0"}, - "east": {"uv": [12, 4, 14, 5], "texture": "#0"}, - "south": {"uv": [12, 4, 13, 5], "texture": "#0"}, - "west": {"uv": [12, 4, 14, 5], "texture": "#0"}, - "up": { - "uv": [12, 4, 14, 5], - "texture": "#0", - "rotation": 270 - }, - "down": { - "uv": [12, 4, 14, 5], - "texture": "#0", - "rotation": 90 - } + "south": {"uv": [5, 5, 6, 6], "texture": "#0"}, + "west": {"uv": [11, 1, 13, 2], "texture": "#0"}, + "down": {"uv": [6, 12, 7, 14], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", "from": [13, 0, 14], "to": [15, 1, 16], "faces": { - "north": {"uv": [8, 8, 10, 10], "texture": "#0"}, - "east": {"uv": [8, 9, 10, 10], "texture": "#0"}, - "south": {"uv": [8, 9, 10, 10], "texture": "#0"}, - "west": {"uv": [8, 8, 10, 10], "texture": "#0"}, - "up": { - "uv": [8, 8, 10, 10], - "texture": "#0", - "rotation": 270 - }, - "down": { - "uv": [8, 8, 10, 10], - "texture": "#0", - "rotation": 90 - } + "east": {"uv": [5, 12, 7, 13], "texture": "#0"}, + "south": {"uv": [11, 1, 13, 2], "texture": "#0", "cullface": "south"}, + "up": {"uv": [10, 14, 12, 16], "texture": "#0"}, + "down": {"uv": [10, 14, 12, 16], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", - "from": [14, 0, 13], - "to": [16, 1, 15], + "from": [7, 0, 6], + "to": [8, 1, 7], "faces": { - "north": {"uv": [10, 10, 12, 12], "texture": "#0"}, - "east": {"uv": [10, 11, 12, 12], "texture": "#0"}, - "south": {"uv": [10, 10, 12, 12], "texture": "#0"}, - "west": {"uv": [10, 10, 12, 12], "texture": "#0"}, - "up": { - "uv": [10, 10, 12, 12], - "texture": "#0", - "rotation": 270 - }, - "down": { - "uv": [8, 8, 10, 10], - "texture": "#0", - "rotation": 180 - } + "north": {"uv": [5, 5, 6, 6], "texture": "#0"}, + "east": {"uv": [5, 5, 6, 6], "texture": "#0"}, + "down": {"uv": [9, 8, 10, 9], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", - "from": [9, 0, 8], - "to": [10, 1, 9], + "from": [13, 0, 12], + "to": [14, 1, 14], + "faces": { + "north": {"uv": [11, 1, 12, 2], "texture": "#0"}, + "up": {"uv": [12, 11, 13, 13], "texture": "#0"}, + "down": {"uv": [12, 11, 13, 13], "texture": "#0", "cullface": "down"} + } + }, + { + "from": [12, 0, 13], + "to": [13, 1, 14], "faces": { - "north": {"uv": [7, 8, 8, 9], "texture": "#0"}, - "east": {"uv": [0, 0, 1, 1], "texture": "#missing"}, - "south": { - "uv": [0, 0, 1, 1], - "texture": "#missing" - }, - "west": {"uv": [0, 0, 1, 1], "texture": "#missing"}, - "up": {"uv": [9, 8, 10, 9], "texture": "#0"}, - "down": {"uv": [0, 0, 1, 1], "texture": "#missing"} + "west": {"uv": [11, 1, 12, 2], "texture": "#0"}, + "up": {"uv": [12, 13, 13, 14], "texture": "#0"}, + "down": {"uv": [12, 13, 13, 14], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", "from": [11, 0, 10], "to": [12, 1, 11], "faces": { - "north": {"uv": [12, 11, 13, 12], "texture": "#0"}, - "east": {"uv": [10, 11, 11, 12], "texture": "#0"}, - "south": { - "uv": [0, 0, 1, 1], - "texture": "#missing" - }, - "west": {"uv": [0, 0, 1, 1], "texture": "#missing"}, + "north": {"uv": [5, 5, 6, 6], "texture": "#0"}, + "east": {"uv": [11, 1, 12, 2], "texture": "#0"}, "up": {"uv": [11, 10, 12, 11], "texture": "#0"}, - "down": {"uv": [9, 10, 10, 11], "texture": "#0"} + "down": {"uv": [11, 10, 12, 11], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", - "from": [7, 0, 6], - "to": [8, 1, 7], + "from": [14, 0, 13], + "to": [16, 1, 14], + "faces": { + "east": {"uv": [13, 5, 14, 6], "texture": "#0", "cullface": "east"}, + "down": {"uv": [14, 11, 16, 12], "texture": "#0", "cullface": "down"} + } + }, + { + "from": [15, 0, 14], + "to": [16, 1, 15], "faces": { - "north": {"uv": [9, 8, 10, 9], "texture": "#0"}, - "east": {"uv": [8, 7, 9, 8], "texture": "#0"}, - "south": { - "uv": [0, 0, 1, 1], - "texture": "#missing" - }, - "west": {"uv": [0, 0, 1, 1], "texture": "#missing"}, - "up": {"uv": [9, 8, 10, 9], "texture": "#0"}, - "down": {"uv": [8, 9, 9, 10], "texture": "#0"} + "east": {"uv": [5, 5, 6, 6], "texture": "#0", "cullface": "east"}, + "south": {"uv": [5, 5, 6, 6], "texture": "#0"}, + "up": {"uv": [15, 11, 16, 12], "texture": "#0"}, + "down": {"uv": [15, 11, 16, 12], "texture": "#0", "cullface": "down"} + } + }, + { + "from": [9, 0, 8], + "to": [10, 1, 9], + "faces": { + "north": {"uv": [5, 5, 6, 6], "texture": "#0"}, + "east": {"uv": [5, 5, 6, 6], "texture": "#0"}, + "up": {"uv": [10, 9, 11, 10], "texture": "#0"}, + "down": {"uv": [10, 9, 11, 10], "texture": "#0", "cullface": "down"} + } + }, + { + "from": [4, 0, 12], + "to": [7, 1, 14], + "faces": { + "north": {"uv": [7, 13, 10, 14], "texture": "#0"}, + "east": {"uv": [11, 1, 13, 2], "texture": "#0"}, + "south": {"uv": [7, 13, 10, 14], "texture": "#0"}, + "up": {"uv": [7, 13, 10, 15], "texture": "#0"}, + "down": {"uv": [7, 13, 10, 15], "texture": "#0", "cullface": "down"} } } ], "groups": [ { "name": "track", - "origin": [8, 8, 8], - "isOpen": true, - "display": { - "visibility": true, - "export": true, - "autouv": true - }, - "children": [6, 5, 8, 3, 0, 1, 2, 10, 9, 11, 7, 4] + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] }, { "name": "supports", - "origin": [8, 8, 8], - "isOpen": true, - "display": { - "visibility": true, - "export": true, - "autouv": true - }, - "children": [ - 27, - 15, - 16, - 14, - 17, - 20, - 12, - 18, - 19, - 23, - 21, - 22, - 24, - 25, - 26, - 13 - ] - }, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36 - ], - "display": { - "thirdperson_righthand": {"scale": [1, 1, 1]} - } + "children": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38] + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/block/rail_flat.json b/src/main/resources/assets/minecraft/models/block/rail_flat.json index d922bb0..dae3e41 100644 --- a/src/main/resources/assets/minecraft/models/block/rail_flat.json +++ b/src/main/resources/assets/minecraft/models/block/rail_flat.json @@ -1,451 +1,229 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", "textures": { "0": "blocks/rail_normal", "particle": "blocks/rail_normal" }, "elements": [ { - "name": "cube", "from": [2, 0, 5], "to": [4, 1, 7], "faces": { "north": {"uv": [4, 1, 6, 2], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, "south": {"uv": [4, 2, 6, 3], "texture": "#0"}, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "up": { - "uv": [4, 1, 6, 3], - "texture": "#0", - "rotation": 90 - }, - "down": { - "uv": [4, 1, 6, 3], - "texture": "#0", - "rotation": 270 - } + "down": {"uv": [4, 1, 6, 3], "rotation": 270, "texture": "#0", "cullface": "down"} } }, { - "name": "cube", "from": [4, 0, 5], "to": [12, 1, 7], "faces": { "north": {"uv": [4, 2, 12, 3], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, "south": {"uv": [4, 2, 12, 3], "texture": "#0"}, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "up": { - "uv": [4, 1, 12, 3], - "texture": "#0", - "rotation": 180 - }, - "down": {"uv": [4, 9, 12, 11], "texture": "#0"} + "up": {"uv": [4, 1, 12, 3], "rotation": 180, "texture": "#0"}, + "down": {"uv": [4, 9, 12, 11], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", - "from": [0.9999999999999998, 0, 5], - "to": [1.9999999999999998, 1, 7], + "from": [1, 0, 5], + "to": [2, 1, 7], "faces": { "north": {"uv": [1, 1, 2, 2], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, "south": {"uv": [1, 1, 2, 2], "texture": "#0"}, - "west": { - "uv": [1, 1, 2, 3], - "texture": "#0", - "rotation": 90 - }, - "up": { - "uv": [1, 1, 2, 3], - "texture": "#0", - "rotation": 180 - }, - "down": {"uv": [1, 1, 2, 3], "texture": "#0"} + "west": {"uv": [1, 1, 2, 3], "rotation": 90, "texture": "#0"}, + "up": {"uv": [1, 1, 2, 3], "rotation": 180, "texture": "#0"}, + "down": {"uv": [1, 1, 2, 3], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", - "from": [0.9999999999999998, 0, 1], - "to": [1.9999999999999998, 1, 3], + "from": [1, 0, 1], + "to": [2, 1, 3], "faces": { "north": {"uv": [1, 1, 2, 2], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, "south": {"uv": [1, 1, 2, 2], "texture": "#0"}, - "west": { - "uv": [1, 1, 2, 3], - "texture": "#0", - "rotation": 90 - }, - "up": { - "uv": [1, 1, 2, 3], - "texture": "#0", - "rotation": 180 - }, - "down": {"uv": [1, 1, 2, 3], "texture": "#0"} + "west": {"uv": [1, 1, 2, 3], "rotation": 90, "texture": "#0"}, + "up": {"uv": [1, 1, 2, 3], "rotation": 180, "texture": "#0"}, + "down": {"uv": [1, 1, 2, 3], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", - "from": [0.9999999999999998, 0, 9], - "to": [1.9999999999999998, 1, 11], + "from": [1, 0, 9], + "to": [2, 1, 11], "faces": { "north": {"uv": [1, 1, 2, 2], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, "south": {"uv": [1, 1, 2, 2], "texture": "#0"}, - "west": { - "uv": [1, 1, 2, 3], - "texture": "#0", - "rotation": 90 - }, - "up": { - "uv": [1, 1, 2, 3], - "texture": "#0", - "rotation": 180 - }, - "down": {"uv": [1, 1, 2, 3], "texture": "#0"} + "west": {"uv": [1, 1, 2, 3], "rotation": 90, "texture": "#0"}, + "up": {"uv": [1, 1, 2, 3], "rotation": 180, "texture": "#0"}, + "down": {"uv": [1, 1, 2, 3], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", "from": [4, 0, 1], "to": [12, 1, 3], "faces": { "north": {"uv": [4, 2, 12, 3], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, "south": {"uv": [4, 2, 12, 3], "texture": "#0"}, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "up": { - "uv": [4, 1, 12, 3], - "texture": "#0", - "rotation": 180 - }, - "down": {"uv": [4, 9, 12, 11], "texture": "#0"} + "up": {"uv": [4, 1, 12, 3], "rotation": 180, "texture": "#0"}, + "down": {"uv": [4, 9, 12, 11], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", "from": [4, 0, 13], "to": [12, 1, 15], "faces": { "north": {"uv": [4, 2, 12, 3], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, "south": {"uv": [4, 2, 12, 3], "texture": "#0"}, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "up": { - "uv": [4, 1, 12, 3], - "texture": "#0", - "rotation": 180 - }, - "down": {"uv": [4, 9, 12, 11], "texture": "#0"} + "up": {"uv": [4, 1, 12, 3], "rotation": 180, "texture": "#0"}, + "down": {"uv": [4, 9, 12, 11], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", "from": [4, 0, 9], "to": [12, 1, 11], "faces": { "north": {"uv": [4, 2, 12, 3], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, "south": {"uv": [4, 2, 12, 3], "texture": "#0"}, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "up": { - "uv": [4, 1, 12, 3], - "texture": "#0", - "rotation": 180 - }, - "down": {"uv": [4, 9, 12, 11], "texture": "#0"} + "up": {"uv": [4, 1, 12, 3], "rotation": 180, "texture": "#0"}, + "down": {"uv": [4, 9, 12, 11], "texture": "#0", "cullface": "down"} + } + }, + { + "from": [12, 0, 5], + "to": [14, 1, 7], + "faces": { + "north": {"uv": [4, 1, 6, 2], "texture": "#0"}, + "south": {"uv": [4, 2, 6, 3], "texture": "#0"}, + "down": {"uv": [4, 1, 6, 3], "rotation": 270, "texture": "#0", "cullface": "down"} } }, { - "name": "cube", "from": [2, 0, 1], "to": [4, 1, 3], "faces": { "north": {"uv": [4, 1, 6, 2], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, "south": {"uv": [4, 2, 6, 3], "texture": "#0"}, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "up": { - "uv": [4, 1, 6, 3], - "texture": "#0", - "rotation": 90 - }, - "down": { - "uv": [4, 1, 6, 3], - "texture": "#0", - "rotation": 270 - } + "down": {"uv": [4, 1, 6, 3], "rotation": 270, "texture": "#0", "cullface": "down"} } }, { - "name": "cube", "from": [12, 0, 13], "to": [14, 1, 15], "faces": { "north": {"uv": [4, 1, 6, 2], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, "south": {"uv": [4, 2, 6, 3], "texture": "#0"}, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "up": { - "uv": [4, 1, 6, 3], - "texture": "#0", - "rotation": 90 - }, - "down": { - "uv": [4, 1, 6, 3], - "texture": "#0", - "rotation": 270 - } + "down": {"uv": [4, 1, 6, 3], "rotation": 270, "texture": "#0", "cullface": "down"} } }, { - "name": "cube", "from": [12, 0, 9], "to": [14, 1, 11], "faces": { "north": {"uv": [4, 1, 6, 2], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, "south": {"uv": [4, 2, 6, 3], "texture": "#0"}, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "up": { - "uv": [4, 1, 6, 3], - "texture": "#0", - "rotation": 90 - }, - "down": { - "uv": [4, 1, 6, 3], - "texture": "#0", - "rotation": 270 - } + "down": {"uv": [4, 1, 6, 3], "rotation": 270, "texture": "#0", "cullface": "down"} } }, { - "name": "cube", - "from": [12, 0, 5], - "to": [14, 1, 7], + "from": [2, 0, 13], + "to": [4, 1, 15], "faces": { "north": {"uv": [4, 1, 6, 2], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, "south": {"uv": [4, 2, 6, 3], "texture": "#0"}, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "up": { - "uv": [4, 1, 6, 3], - "texture": "#0", - "rotation": 90 - }, - "down": { - "uv": [4, 1, 6, 3], - "texture": "#0", - "rotation": 270 - } + "down": {"uv": [4, 1, 6, 3], "rotation": 270, "texture": "#0", "cullface": "down"} } }, { - "name": "cube", "from": [12, 0, 1], "to": [14, 1, 3], "faces": { "north": {"uv": [4, 1, 6, 2], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, "south": {"uv": [4, 2, 6, 3], "texture": "#0"}, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "up": { - "uv": [4, 1, 6, 3], - "texture": "#0", - "rotation": 90 - }, - "down": { - "uv": [4, 1, 6, 3], - "texture": "#0", - "rotation": 270 - } + "down": {"uv": [4, 1, 6, 3], "rotation": 270, "texture": "#0", "cullface": "down"} } }, { - "name": "cube", - "from": [2, 0, 13], - "to": [4, 1, 15], + "from": [14, 0, 5], + "to": [15, 1, 7], "faces": { - "north": {"uv": [4, 1, 6, 2], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "south": {"uv": [4, 2, 6, 3], "texture": "#0"}, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "up": { - "uv": [4, 1, 6, 3], - "texture": "#0", - "rotation": 90 - }, - "down": { - "uv": [4, 1, 6, 3], - "texture": "#0", - "rotation": 270 - } + "north": {"uv": [2, 1, 1, 2], "texture": "#0"}, + "east": {"uv": [2, 1, 1, 3], "rotation": 90, "texture": "#0"}, + "south": {"uv": [2, 1, 1, 2], "texture": "#0"}, + "up": {"uv": [1, 3, 2, 1], "rotation": 180, "texture": "#0"}, + "down": {"uv": [1, 3, 2, 1], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", "from": [2, 0, 9], "to": [4, 1, 11], "faces": { "north": {"uv": [4, 1, 6, 2], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, "south": {"uv": [4, 2, 6, 3], "texture": "#0"}, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "up": { - "uv": [4, 1, 6, 3], - "texture": "#0", - "rotation": 90 - }, - "down": { - "uv": [4, 1, 6, 3], - "texture": "#0", - "rotation": 270 - } + "down": {"uv": [4, 1, 6, 3], "rotation": 270, "texture": "#0", "cullface": "down"} } }, { - "name": "cube", - "from": [0.9999999999999998, 0, 13], - "to": [1.9999999999999998, 1, 15], + "from": [1, 0, 13], + "to": [2, 1, 15], "faces": { "north": {"uv": [1, 1, 2, 2], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, "south": {"uv": [1, 1, 2, 2], "texture": "#0"}, - "west": { - "uv": [1, 1, 2, 3], - "texture": "#0", - "rotation": 90 - }, - "up": { - "uv": [1, 1, 2, 3], - "texture": "#0", - "rotation": 180 - }, - "down": {"uv": [1, 1, 2, 3], "texture": "#0"} + "west": {"uv": [1, 1, 2, 3], "rotation": 90, "texture": "#0"}, + "up": {"uv": [1, 1, 2, 3], "rotation": 180, "texture": "#0"}, + "down": {"uv": [1, 1, 2, 3], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", "from": [14, 0, 13], "to": [15, 1, 15], "faces": { "north": {"uv": [2, 1, 1, 2], "texture": "#0"}, - "east": { - "uv": [2, 1, 1, 3], - "texture": "#0", - "rotation": 90 - }, + "east": {"uv": [2, 1, 1, 3], "rotation": 90, "texture": "#0"}, "south": {"uv": [2, 1, 1, 2], "texture": "#0"}, - "west": {"uv": [2, 0, 0, 1], "texture": "#missing"}, - "up": { - "uv": [1, 3, 2, 1], - "texture": "#0", - "rotation": 180 - }, - "down": {"uv": [1, 3, 2, 1], "texture": "#0"} + "up": {"uv": [1, 3, 2, 1], "rotation": 180, "texture": "#0"}, + "down": {"uv": [1, 3, 2, 1], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", "from": [14, 0, 9], "to": [15, 1, 11], "faces": { "north": {"uv": [2, 1, 1, 2], "texture": "#0"}, - "east": { - "uv": [2, 1, 1, 3], - "texture": "#0", - "rotation": 90 - }, - "south": {"uv": [2, 1, 1, 2], "texture": "#0"}, - "west": {"uv": [2, 0, 0, 1], "texture": "#missing"}, - "up": { - "uv": [1, 3, 2, 1], - "texture": "#0", - "rotation": 180 - }, - "down": {"uv": [1, 3, 2, 1], "texture": "#0"} - } - }, - { - "name": "cube", - "from": [14, 0, 5], - "to": [15, 1, 7], - "faces": { - "north": {"uv": [2, 1, 1, 2], "texture": "#0"}, - "east": { - "uv": [2, 1, 1, 3], - "texture": "#0", - "rotation": 90 - }, + "east": {"uv": [2, 1, 1, 3], "rotation": 90, "texture": "#0"}, "south": {"uv": [2, 1, 1, 2], "texture": "#0"}, - "west": {"uv": [2, 0, 0, 1], "texture": "#missing"}, - "up": { - "uv": [1, 3, 2, 1], - "texture": "#0", - "rotation": 180 - }, - "down": {"uv": [1, 3, 2, 1], "texture": "#0"} + "up": {"uv": [1, 3, 2, 1], "rotation": 180, "texture": "#0"}, + "down": {"uv": [1, 3, 2, 1], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", "from": [14, 0, 1], "to": [15, 1, 3], "faces": { "north": {"uv": [2, 1, 1, 2], "texture": "#0"}, - "east": { - "uv": [2, 1, 1, 3], - "texture": "#0", - "rotation": 90 - }, + "east": {"uv": [2, 1, 1, 3], "rotation": 90, "texture": "#0"}, "south": {"uv": [2, 1, 1, 2], "texture": "#0"}, - "west": {"uv": [2, 0, 0, 1], "texture": "#missing"}, - "up": { - "uv": [1, 3, 2, 1], - "texture": "#0", - "rotation": 180 - }, - "down": {"uv": [1, 3, 2, 1], "texture": "#0"} + "up": {"uv": [1, 3, 2, 1], "rotation": 180, "texture": "#0"}, + "down": {"uv": [1, 3, 2, 1], "texture": "#0", "cullface": "down"} } }, { - "name": "cube", "from": [12, 1, 0], "to": [14, 2, 16], "faces": { - "north": {"uv": [2, 0, 4, 1], "texture": "#0"}, + "north": {"uv": [2, 0, 4, 1], "texture": "#0", "cullface": "north"}, "east": {"uv": [2, 0, 3, 16], "texture": "#0"}, - "south": { - "uv": [2, 0, 4, 1], - "texture": "#0", - "rotation": 180 - }, + "south": {"uv": [2, 0, 4, 1], "rotation": 180, "texture": "#0", "cullface": "south"}, "west": {"uv": [3, 0, 4, 16], "texture": "#0"}, - "up": { - "uv": [2, 0, 4, 16], - "texture": "#0", - "rotation": 180 - }, - "down": { - "uv": [2, 0, 4, 16], - "texture": "#0", - "rotation": 180 - } + "up": {"uv": [2, 0, 4, 16], "rotation": 180, "texture": "#0"}, + "down": {"uv": [2, 0, 4, 16], "rotation": 180, "texture": "#0"} } }, { - "name": "cube", "from": [2, 1, 0], "to": [4, 2, 16], "faces": { - "north": {"uv": [4, 0, 2, 1], "texture": "#0"}, + "north": {"uv": [4, 0, 2, 1], "texture": "#0", "cullface": "north"}, "east": {"uv": [4, 0, 3, 16], "texture": "#0"}, - "south": { - "uv": [4, 0, 2, 1], - "texture": "#0", - "rotation": 180 - }, + "south": {"uv": [4, 0, 2, 1], "rotation": 180, "texture": "#0", "cullface": "south"}, "west": {"uv": [3, 0, 2, 16], "texture": "#0"}, "up": {"uv": [2, 16, 4, 0], "texture": "#0"}, "down": {"uv": [2, 16, 4, 0], "texture": "#0"} @@ -455,45 +233,10 @@ "groups": [ { "name": "supports", - "origin": [8, 8, 8], - "isOpen": true, - "display": { - "visibility": true, - "export": true, - "autouv": true - }, - "children": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 11, - 8, - 9, - 10, - 13, - 12, - 18, - 14, - 15, - 16, - 17, - 19 - ] + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] }, { "name": "track", - "origin": [8, 8, 8], - "isOpen": true, - "display": { - "visibility": true, - "export": true, - "autouv": true - }, "children": [20, 21] } ] diff --git a/src/main/resources/assets/minecraft/models/block/rail_raised_ne.json b/src/main/resources/assets/minecraft/models/block/rail_raised_ne.json index fc5a4b8..99c8ec1 100644 --- a/src/main/resources/assets/minecraft/models/block/rail_raised_ne.json +++ b/src/main/resources/assets/minecraft/models/block/rail_raised_ne.json @@ -1,728 +1,273 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", - "textures": {"particle": "blocks/rail_normal"}, + "credit": "Made with Blockbench", + "ambientocclusion": false, + "textures": { + "particle": "blocks/rail_normal" + }, "elements": [ { - "name": "cube", - "from": [2, 2, 7], - "to": [4, 18, 8], + "from": [1, -1, 15], + "to": [2, 0, 17], + "rotation": {"angle": 45, "axis": "x", "origin": [8, 7, 23], "rescale": true}, "faces": { - "north": { - "uv": [12, 0, 14, 16], - "texture": "#particle" - }, - "east": { - "uv": [3, 0, 4, 16], - "texture": "#particle" - }, - "south": { - "uv": [2, 0, 4, 16], - "texture": "#particle" - }, - "west": { - "uv": [2, 0, 3, 16], - "texture": "#particle" - }, - "up": {"uv": [2, 0, 4, 1], "texture": "#particle"}, - "down": {"uv": [2, 0, 4, 1], "texture": "#particle"} - }, - "rotation": { - "origin": [10, 10, 8], - "axis": "x", - "angle": -45, - "rescale": true - } - }, - { - "name": "cube", - "from": [12, 2, 7], - "to": [14, 18, 8], - "faces": { - "north": { - "uv": [2, 0, 4, 16], - "texture": "#particle" - }, - "east": { - "uv": [2, 0, 3, 16], - "texture": "#particle" - }, - "south": { - "uv": [12, 0, 14, 16], - "texture": "#particle" - }, - "west": { - "uv": [3, 0, 4, 16], - "texture": "#particle" - }, - "up": { - "uv": [12, 0, 14, 1], - "texture": "#particle" - }, - "down": { - "uv": [12, 0, 14, 1], - "texture": "#particle" - } - }, - "rotation": { - "origin": [20, 10, 8], - "axis": "x", - "angle": -45, - "rescale": true + "north": {"uv": [1, 1, 2, 2], "texture": "#particle"}, + "south": {"uv": [1, 2, 2, 3], "texture": "#particle"}, + "west": {"uv": [1, 1, 2, 3], "rotation": 270, "texture": "#particle"}, + "up": {"uv": [1, 1, 2, 3], "texture": "#particle"}, + "down": {"uv": [1, 1, 2, 3], "rotation": 180, "texture": "#particle"} } }, { - "name": "cube", "from": [1, 3, 11], "to": [2, 4, 13], + "rotation": {"angle": 45, "axis": "x", "origin": [8, 11, 19], "rescale": true}, "faces": { - "north": { - "uv": [1, 1, 2, 2], - "texture": "#particle" - }, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "south": { - "uv": [1, 2, 2, 3], - "texture": "#particle" - }, - "west": { - "uv": [1, 1, 2, 3], - "texture": "#particle", - "rotation": 270 - }, + "north": {"uv": [1, 1, 2, 2], "texture": "#particle"}, + "south": {"uv": [1, 2, 2, 3], "texture": "#particle"}, + "west": {"uv": [1, 1, 2, 3], "rotation": 270, "texture": "#particle"}, "up": {"uv": [1, 1, 2, 3], "texture": "#particle"}, - "down": { - "uv": [1, 1, 2, 3], - "texture": "#particle", - "rotation": 180 - } - }, - "rotation": { - "origin": [8, 11, 19], - "axis": "x", - "angle": 45, - "rescale": true + "down": {"uv": [1, 1, 2, 3], "rotation": 180, "texture": "#particle"} } }, { - "name": "cube", "from": [4, 3, 11], "to": [12, 4, 13], + "rotation": {"angle": 45, "axis": "x", "origin": [11, 11, 19], "rescale": true}, "faces": { - "north": { - "uv": [4, 2, 12, 3], - "texture": "#particle" - }, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "south": { - "uv": [4, 6, 12, 7], - "texture": "#particle" - }, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, + "north": {"uv": [4, 2, 12, 3], "texture": "#particle"}, + "south": {"uv": [4, 6, 12, 7], "texture": "#particle"}, "up": {"uv": [4, 1, 12, 3], "texture": "#particle"}, - "down": { - "uv": [4, 1, 12, 3], - "texture": "#particle", - "rotation": 180 - } - }, - "rotation": { - "origin": [11, 11, 19], - "axis": "x", - "angle": 45, - "rescale": true + "down": {"uv": [4, 1, 12, 3], "rotation": 180, "texture": "#particle"} } }, { - "name": "cube", "from": [2, 3, 11], "to": [4, 4, 13], + "rotation": {"angle": 45, "axis": "x", "origin": [9, 11, 19], "rescale": true}, "faces": { - "north": { - "uv": [4, 5, 6, 6], - "texture": "#particle" - }, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "south": { - "uv": [4, 2, 6, 3], - "texture": "#particle" - }, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, + "north": {"uv": [4, 5, 6, 6], "texture": "#particle"}, + "south": {"uv": [4, 2, 6, 3], "texture": "#particle"}, "up": {"uv": [4, 5, 6, 7], "texture": "#particle"}, - "down": { - "uv": [4, 1, 6, 3], - "texture": "#particle", - "rotation": 180 - } - }, - "rotation": { - "origin": [9, 11, 19], - "axis": "x", - "angle": 45, - "rescale": true + "down": {"uv": [4, 1, 6, 3], "rotation": 180, "texture": "#particle"} } }, { - "name": "cube", "from": [12, 3, 11], "to": [14, 4, 13], + "rotation": {"angle": 45, "axis": "x", "origin": [20, 11, 19], "rescale": true}, "faces": { - "north": { - "uv": [4, 2, 6, 3], - "texture": "#particle" - }, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "south": { - "uv": [10, 6, 12, 7], - "texture": "#particle" - }, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "up": { - "uv": [10, 5, 12, 7], - "texture": "#particle" - }, + "north": {"uv": [4, 2, 6, 3], "texture": "#particle"}, + "south": {"uv": [10, 6, 12, 7], "texture": "#particle"}, + "up": {"uv": [10, 5, 12, 7], "texture": "#particle"}, "down": {"uv": [4, 1, 6, 3], "texture": "#particle"} - }, - "rotation": { - "origin": [20, 11, 19], - "axis": "x", - "angle": 45, - "rescale": true } }, { - "name": "cube", "from": [14, 3, 11], "to": [15, 4, 13], + "rotation": {"angle": 45, "axis": "x", "origin": [21, 11, 19], "rescale": true}, "faces": { - "north": { - "uv": [1, 6, 2, 7], - "texture": "#particle" - }, - "east": { - "uv": [14, 1, 15, 3], - "texture": "#particle", - "rotation": 90 - }, - "south": { - "uv": [14, 6, 15, 7], - "texture": "#particle" - }, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, + "north": {"uv": [1, 6, 2, 7], "texture": "#particle"}, + "east": {"uv": [14, 1, 15, 3], "rotation": 90, "texture": "#particle"}, + "south": {"uv": [14, 6, 15, 7], "texture": "#particle"}, "up": {"uv": [1, 1, 2, 3], "texture": "#particle"}, - "down": { - "uv": [1, 1, 2, 3], - "texture": "#particle", - "rotation": 180 - } - }, - "rotation": { - "origin": [21, 11, 19], - "axis": "x", - "angle": 45, - "rescale": true + "down": {"uv": [1, 1, 2, 3], "rotation": 180, "texture": "#particle"} } }, { - "name": "cube", "from": [1, 7, 7], "to": [2, 8, 9], + "rotation": {"angle": 45, "axis": "x", "origin": [8, 15, 15], "rescale": true}, "faces": { - "north": { - "uv": [1, 1, 2, 2], - "texture": "#particle" - }, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "south": { - "uv": [1, 2, 2, 3], - "texture": "#particle" - }, - "west": { - "uv": [1, 1, 2, 3], - "texture": "#particle", - "rotation": 270 - }, + "north": {"uv": [1, 1, 2, 2], "texture": "#particle"}, + "south": {"uv": [1, 2, 2, 3], "texture": "#particle"}, + "west": {"uv": [1, 1, 2, 3], "rotation": 270, "texture": "#particle"}, "up": {"uv": [1, 1, 2, 3], "texture": "#particle"}, - "down": { - "uv": [1, 1, 2, 3], - "texture": "#particle", - "rotation": 180 - } - }, - "rotation": { - "origin": [8, 15, 15], - "axis": "x", - "angle": 45, - "rescale": true + "down": {"uv": [1, 1, 2, 3], "rotation": 180, "texture": "#particle"} } }, { - "name": "cube", "from": [2, 7, 7], "to": [4, 8, 9], + "rotation": {"angle": 45, "axis": "x", "origin": [9, 15, 15], "rescale": true}, "faces": { - "north": { - "uv": [4, 5, 6, 6], - "texture": "#particle" - }, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "south": { - "uv": [4, 2, 6, 3], - "texture": "#particle" - }, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, + "north": {"uv": [4, 5, 6, 6], "texture": "#particle"}, + "south": {"uv": [4, 2, 6, 3], "texture": "#particle"}, "up": {"uv": [4, 5, 6, 7], "texture": "#particle"}, - "down": { - "uv": [4, 1, 6, 3], - "texture": "#particle", - "rotation": 180 - } - }, - "rotation": { - "origin": [9, 15, 15], - "axis": "x", - "angle": 45, - "rescale": true + "down": {"uv": [4, 1, 6, 3], "rotation": 180, "texture": "#particle"} } }, { - "name": "cube", "from": [4, 7, 7], "to": [12, 8, 9], + "rotation": {"angle": 45, "axis": "x", "origin": [11, 15, 15], "rescale": true}, "faces": { - "north": { - "uv": [4, 2, 12, 3], - "texture": "#particle" - }, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "south": { - "uv": [4, 6, 12, 7], - "texture": "#particle" - }, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, + "north": {"uv": [4, 2, 12, 3], "texture": "#particle"}, + "south": {"uv": [4, 6, 12, 7], "texture": "#particle"}, "up": {"uv": [4, 1, 12, 3], "texture": "#particle"}, - "down": { - "uv": [4, 1, 12, 3], - "texture": "#particle", - "rotation": 180 - } - }, - "rotation": { - "origin": [11, 15, 15], - "axis": "x", - "angle": 45, - "rescale": true + "down": {"uv": [4, 1, 12, 3], "rotation": 180, "texture": "#particle"} } }, { - "name": "cube", "from": [12, 7, 7], "to": [14, 8, 9], + "rotation": {"angle": 45, "axis": "x", "origin": [20, 15, 15], "rescale": true}, "faces": { - "north": { - "uv": [4, 2, 6, 3], - "texture": "#particle" - }, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "south": { - "uv": [10, 6, 12, 7], - "texture": "#particle" - }, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "up": { - "uv": [10, 5, 12, 7], - "texture": "#particle" - }, + "north": {"uv": [4, 2, 6, 3], "texture": "#particle"}, + "south": {"uv": [10, 6, 12, 7], "texture": "#particle"}, + "up": {"uv": [10, 5, 12, 7], "texture": "#particle"}, "down": {"uv": [4, 1, 6, 3], "texture": "#particle"} - }, - "rotation": { - "origin": [20, 15, 15], - "axis": "x", - "angle": 45, - "rescale": true } }, { - "name": "cube", "from": [14, 7, 7], "to": [15, 8, 9], + "rotation": {"angle": 45, "axis": "x", "origin": [21, 15, 15], "rescale": true}, "faces": { - "north": { - "uv": [1, 6, 2, 7], - "texture": "#particle" - }, - "east": { - "uv": [14, 1, 15, 3], - "texture": "#particle", - "rotation": 90 - }, - "south": { - "uv": [14, 6, 15, 7], - "texture": "#particle" - }, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, + "north": {"uv": [1, 6, 2, 7], "texture": "#particle"}, + "east": {"uv": [14, 1, 15, 3], "rotation": 90, "texture": "#particle"}, + "south": {"uv": [14, 6, 15, 7], "texture": "#particle"}, "up": {"uv": [1, 1, 2, 3], "texture": "#particle"}, - "down": { - "uv": [1, 1, 2, 3], - "texture": "#particle", - "rotation": 180 - } - }, - "rotation": { - "origin": [21, 15, 15], - "axis": "x", - "angle": 45, - "rescale": true + "down": {"uv": [1, 1, 2, 3], "rotation": 180, "texture": "#particle"} } }, { - "name": "cube", - "from": [1, -1.0000000000000002, 15], - "to": [2, -2.220446049250313e-16, 17], + "from": [2, -1, 15], + "to": [4, 0, 17], + "rotation": {"angle": 45, "axis": "x", "origin": [9, 7, 23], "rescale": true}, "faces": { - "north": { - "uv": [1, 1, 2, 2], - "texture": "#particle" - }, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "south": { - "uv": [1, 2, 2, 3], - "texture": "#particle" - }, - "west": { - "uv": [1, 1, 2, 3], - "texture": "#particle", - "rotation": 270 - }, - "up": {"uv": [1, 1, 2, 3], "texture": "#particle"}, - "down": { - "uv": [1, 1, 2, 3], - "texture": "#particle", - "rotation": 180 - } - }, - "rotation": { - "origin": [8, 7, 23], - "axis": "x", - "angle": 45, - "rescale": true + "north": {"uv": [4, 5, 6, 6], "texture": "#particle"}, + "south": {"uv": [4, 2, 6, 3], "texture": "#particle"}, + "up": {"uv": [4, 5, 6, 7], "texture": "#particle"}, + "down": {"uv": [4, 1, 6, 3], "rotation": 180, "texture": "#particle"} } }, { - "name": "cube", - "from": [2, -1.0000000000000002, 15], - "to": [4, -2.220446049250313e-16, 17], + "from": [4, -5, 19], + "to": [12, -4, 21], + "rotation": {"angle": 45, "axis": "x", "origin": [11, 3, 27], "rescale": true}, "faces": { - "north": { - "uv": [4, 5, 6, 6], - "texture": "#particle" - }, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "south": { - "uv": [4, 2, 6, 3], - "texture": "#particle" - }, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "up": {"uv": [4, 5, 6, 7], "texture": "#particle"}, - "down": { - "uv": [4, 1, 6, 3], - "texture": "#particle", - "rotation": 180 - } - }, - "rotation": { - "origin": [9, 7, 23], - "axis": "x", - "angle": 45, - "rescale": true + "north": {"uv": [4, 2, 12, 3], "texture": "#particle"}, + "south": {"uv": [4, 6, 12, 7], "texture": "#particle", "cullface": "south"}, + "up": {"uv": [4, 1, 12, 3], "texture": "#particle", "cullface": "south"}, + "down": {"uv": [4, 1, 12, 3], "rotation": 180, "texture": "#particle"} } }, { - "name": "cube", - "from": [4, -1.0000000000000002, 15], - "to": [12, -2.220446049250313e-16, 17], + "from": [4, -1, 15], + "to": [12, 0, 17], + "rotation": {"angle": 45, "axis": "x", "origin": [11, 7, 23], "rescale": true}, "faces": { - "north": { - "uv": [4, 2, 12, 3], - "texture": "#particle" - }, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "south": { - "uv": [4, 6, 12, 7], - "texture": "#particle" - }, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, + "north": {"uv": [4, 2, 12, 3], "texture": "#particle"}, + "south": {"uv": [4, 6, 12, 7], "texture": "#particle"}, "up": {"uv": [4, 1, 12, 3], "texture": "#particle"}, - "down": { - "uv": [4, 1, 12, 3], - "texture": "#particle", - "rotation": 180 - } - }, - "rotation": { - "origin": [11, 7, 23], - "axis": "x", - "angle": 45, - "rescale": true + "down": {"uv": [4, 1, 12, 3], "rotation": 180, "texture": "#particle"} + } + }, + { + "from": [14, -5, 19], + "to": [15, -4, 21], + "rotation": {"angle": 45, "axis": "x", "origin": [21, 3, 27], "rescale": true}, + "faces": { + "north": {"uv": [1, 6, 2, 7], "texture": "#particle"}, + "east": {"uv": [14, 1, 15, 3], "rotation": 90, "texture": "#particle"}, + "south": {"uv": [14, 6, 15, 7], "texture": "#particle", "cullface": "south"}, + "up": {"uv": [1, 1, 2, 3], "texture": "#particle", "cullface": "south"}, + "down": {"uv": [1, 1, 2, 3], "rotation": 180, "texture": "#particle"} } }, { - "name": "cube", - "from": [12, -1.0000000000000002, 15], - "to": [14, -2.220446049250313e-16, 17], + "from": [12, -5, 19], + "to": [14, -4, 21], + "rotation": {"angle": 45, "axis": "x", "origin": [20, 3, 27], "rescale": true}, "faces": { - "north": { - "uv": [4, 2, 6, 3], - "texture": "#particle" - }, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "south": { - "uv": [10, 6, 12, 7], - "texture": "#particle" - }, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "up": { - "uv": [10, 5, 12, 7], - "texture": "#particle" - }, + "north": {"uv": [4, 2, 6, 3], "texture": "#particle"}, + "south": {"uv": [10, 6, 12, 7], "texture": "#particle", "cullface": "south"}, + "up": {"uv": [10, 5, 12, 7], "texture": "#particle", "cullface": "south"}, "down": {"uv": [4, 1, 6, 3], "texture": "#particle"} - }, - "rotation": { - "origin": [20, 7, 23], - "axis": "x", - "angle": 45, - "rescale": true } }, { - "name": "cube", - "from": [14, -1.0000000000000002, 15], - "to": [15, -2.220446049250313e-16, 17], + "from": [2, -5, 19], + "to": [4, -4, 21], + "rotation": {"angle": 45, "axis": "x", "origin": [9, 3, 27], "rescale": true}, "faces": { - "north": { - "uv": [1, 6, 2, 7], - "texture": "#particle" - }, - "east": { - "uv": [14, 1, 15, 3], - "texture": "#particle", - "rotation": 90 - }, - "south": { - "uv": [14, 6, 15, 7], - "texture": "#particle" - }, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "up": {"uv": [1, 1, 2, 3], "texture": "#particle"}, - "down": { - "uv": [1, 1, 2, 3], - "texture": "#particle", - "rotation": 180 - } - }, - "rotation": { - "origin": [21, 7, 23], - "axis": "x", - "angle": 45, - "rescale": true + "north": {"uv": [4, 5, 6, 6], "texture": "#particle"}, + "south": {"uv": [4, 2, 6, 3], "texture": "#particle", "cullface": "south"}, + "up": {"uv": [4, 5, 6, 7], "texture": "#particle", "cullface": "south"}, + "down": {"uv": [4, 1, 6, 3], "rotation": 180, "texture": "#particle"} } }, { - "name": "cube", "from": [1, -5, 19], "to": [2, -4, 21], + "rotation": {"angle": 45, "axis": "x", "origin": [8, 3, 27], "rescale": true}, "faces": { - "north": { - "uv": [1, 1, 2, 2], - "texture": "#particle" - }, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "south": { - "uv": [1, 2, 2, 3], - "texture": "#particle" - }, - "west": { - "uv": [1, 1, 2, 3], - "texture": "#particle", - "rotation": 270 - }, - "up": {"uv": [1, 1, 2, 3], "texture": "#particle"}, - "down": { - "uv": [1, 1, 2, 3], - "texture": "#particle", - "rotation": 180 - } - }, - "rotation": { - "origin": [8, 3, 27], - "axis": "x", - "angle": 45, - "rescale": true + "north": {"uv": [1, 1, 2, 2], "texture": "#particle"}, + "south": {"uv": [1, 2, 2, 3], "texture": "#particle", "cullface": "south"}, + "west": {"uv": [1, 1, 2, 3], "rotation": 270, "texture": "#particle"}, + "up": {"uv": [1, 1, 2, 3], "texture": "#particle", "cullface": "south"}, + "down": {"uv": [1, 1, 2, 3], "rotation": 180, "texture": "#particle"} } }, { - "name": "cube", - "from": [4, -5, 19], - "to": [12, -4, 21], + "from": [14, -1, 15], + "to": [15, 0, 17], + "rotation": {"angle": 45, "axis": "x", "origin": [21, 7, 23], "rescale": true}, "faces": { - "north": { - "uv": [4, 2, 12, 3], - "texture": "#particle" - }, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "south": { - "uv": [4, 6, 12, 7], - "texture": "#particle" - }, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "up": {"uv": [4, 1, 12, 3], "texture": "#particle"}, - "down": { - "uv": [4, 1, 12, 3], - "texture": "#particle", - "rotation": 180 - } - }, - "rotation": { - "origin": [11, 3, 27], - "axis": "x", - "angle": 45, - "rescale": true + "north": {"uv": [1, 6, 2, 7], "texture": "#particle"}, + "east": {"uv": [14, 1, 15, 3], "rotation": 90, "texture": "#particle"}, + "south": {"uv": [14, 6, 15, 7], "texture": "#particle"}, + "up": {"uv": [1, 1, 2, 3], "texture": "#particle"}, + "down": {"uv": [1, 1, 2, 3], "rotation": 180, "texture": "#particle"} } }, { - "name": "cube", - "from": [2, -5, 19], - "to": [4, -4, 21], + "from": [12, -1, 15], + "to": [14, 0, 17], + "rotation": {"angle": 45, "axis": "x", "origin": [20, 7, 23], "rescale": true}, "faces": { - "north": { - "uv": [4, 5, 6, 6], - "texture": "#particle" - }, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "south": { - "uv": [4, 2, 6, 3], - "texture": "#particle" - }, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "up": {"uv": [4, 5, 6, 7], "texture": "#particle"}, - "down": { - "uv": [4, 1, 6, 3], - "texture": "#particle", - "rotation": 180 - } - }, - "rotation": { - "origin": [9, 3, 27], - "axis": "x", - "angle": 45, - "rescale": true + "north": {"uv": [4, 2, 6, 3], "texture": "#particle"}, + "south": {"uv": [10, 6, 12, 7], "texture": "#particle"}, + "up": {"uv": [10, 5, 12, 7], "texture": "#particle"}, + "down": {"uv": [4, 1, 6, 3], "texture": "#particle"} } }, { - "name": "cube", - "from": [12, -5, 19], - "to": [14, -4, 21], + "from": [12, 2, 7], + "to": [14, 18, 8], + "rotation": {"angle": -45, "axis": "x", "origin": [20, 10, 8], "rescale": true}, "faces": { - "north": { - "uv": [4, 2, 6, 3], - "texture": "#particle" - }, - "east": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "south": { - "uv": [10, 6, 12, 7], - "texture": "#particle" - }, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "up": { - "uv": [10, 5, 12, 7], - "texture": "#particle" - }, - "down": {"uv": [4, 1, 6, 3], "texture": "#particle"} - }, - "rotation": { - "origin": [20, 3, 27], - "axis": "x", - "angle": 45, - "rescale": true + "north": {"uv": [2, 0, 4, 16], "texture": "#particle"}, + "east": {"uv": [2, 0, 3, 16], "texture": "#particle"}, + "south": {"uv": [12, 0, 14, 16], "texture": "#particle"}, + "west": {"uv": [3, 0, 4, 16], "texture": "#particle"}, + "up": {"uv": [12, 0, 14, 1], "texture": "#particle"}, + "down": {"uv": [12, 0, 14, 1], "texture": "#particle"} } }, { - "name": "cube", - "from": [14, -5, 19], - "to": [15, -4, 21], + "from": [2, 2, 7], + "to": [4, 18, 8], + "rotation": {"angle": -45, "axis": "x", "origin": [10, 10, 8], "rescale": true}, "faces": { - "north": { - "uv": [1, 6, 2, 7], - "texture": "#particle" - }, - "east": { - "uv": [14, 1, 15, 3], - "texture": "#particle", - "rotation": 90 - }, - "south": { - "uv": [14, 6, 15, 7], - "texture": "#particle" - }, - "west": {"uv": [0, 0, 2, 1], "texture": "#missing"}, - "up": {"uv": [1, 1, 2, 3], "texture": "#particle"}, - "down": { - "uv": [1, 1, 2, 3], - "texture": "#particle", - "rotation": 180 - } - }, - "rotation": { - "origin": [21, 3, 27], - "axis": "x", - "angle": 45, - "rescale": true + "north": {"uv": [12, 0, 14, 16], "texture": "#particle"}, + "east": {"uv": [3, 0, 4, 16], "texture": "#particle"}, + "south": {"uv": [2, 0, 4, 16], "texture": "#particle"}, + "west": {"uv": [2, 0, 3, 16], "texture": "#particle"}, + "up": {"uv": [2, 0, 4, 1], "texture": "#particle"}, + "down": {"uv": [2, 0, 4, 1], "texture": "#particle"} } } ], "groups": [ { "name": "supports", - "origin": [8, 8, 8], - "isOpen": false, - "display": { - "visibility": true, - "export": true, - "autouv": true - }, - "children": [ - 12, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 13, - 18, - 14, - 21, - 20, - 19, - 17, - 16, - 15 - ] + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] }, { "name": "tracks", - "origin": [8, 8, 8], - "isOpen": false, - "display": { - "visibility": true, - "export": true, - "autouv": true - }, - "children": [1, 0] + "children": [20, 21] } - ], - "ambientocclusion": false + ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/block/trapdoor_bottom.json b/src/main/resources/assets/minecraft/models/block/trapdoor_bottom.json index 7463058..394a879 100644 --- a/src/main/resources/assets/minecraft/models/block/trapdoor_bottom.json +++ b/src/main/resources/assets/minecraft/models/block/trapdoor_bottom.json @@ -1,12 +1,11 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", "textures": { "0": "blocks/trapdoor", "particle": "blocks/trapdoor" }, "elements": [ { - "name": "cube", "from": [0, 0, 0], "to": [16, 3, 3], "faces": { @@ -19,15 +18,10 @@ } }, { - "name": "cube", "from": [0, 0, 13], "to": [16, 3, 16], "faces": { - "north": { - "uv": [0, 0, 16, 3], - "texture": "#0", - "rotation": 180 - }, + "north": {"uv": [0, 0, 16, 3], "rotation": 180, "texture": "#0"}, "east": {"uv": [0, 0, 3, 3], "texture": "#0"}, "south": {"uv": [0, 0, 16, 3], "texture": "#0"}, "west": {"uv": [13, 0, 16, 3], "texture": "#0"}, @@ -36,108 +30,54 @@ } }, { - "name": "cube", "from": [13, 0, 3], "to": [16, 3, 13], "faces": { - "north": { - "uv": [0, 0, 3, 3], - "texture": "#missing" - }, "east": {"uv": [3, 0, 13, 3], "texture": "#0"}, - "south": { - "uv": [0, 0, 3, 3], - "texture": "#missing" - }, - "west": { - "uv": [3, 0, 13, 3], - "texture": "#0", - "rotation": 180 - }, + "west": {"uv": [3, 0, 13, 3], "rotation": 180, "texture": "#0"}, "up": {"uv": [13, 3, 16, 13], "texture": "#0"}, "down": {"uv": [13, 3, 16, 13], "texture": "#0"} } }, { - "name": "cube", "from": [0, 0, 3], "to": [3, 3, 13], "faces": { - "north": { - "uv": [0, 0, 3, 3], - "texture": "#missing" - }, "east": {"uv": [3, 6, 13, 9], "texture": "#0"}, - "south": { - "uv": [0, 0, 3, 3], - "texture": "#missing" - }, "west": {"uv": [3, 0, 13, 3], "texture": "#0"}, "up": {"uv": [0, 3, 3, 13], "texture": "#0"}, "down": {"uv": [0, 3, 3, 13], "texture": "#0"} } }, { - "name": "cube", "from": [6, 0, 3], "to": [10, 3, 13], "faces": { - "north": { - "uv": [0, 0, 4, 3], - "texture": "#missing" - }, - "east": { - "uv": [3, 7, 13, 10], - "texture": "#0", - "rotation": 180 - }, - "south": { - "uv": [0, 0, 4, 3], - "texture": "#missing" - }, - "west": { - "uv": [3, 7, 13, 10], - "texture": "#0", - "rotation": 180 - }, + "east": {"uv": [3, 7, 13, 10], "rotation": 180, "texture": "#0"}, + "west": {"uv": [3, 7, 13, 10], "rotation": 180, "texture": "#0"}, "up": {"uv": [6, 3, 10, 13], "texture": "#0"}, "down": {"uv": [6, 3, 10, 13], "texture": "#0"} } }, { - "name": "cube", "from": [3, 0, 6], "to": [6, 3, 10], "faces": { "north": {"uv": [10, 6, 13, 9], "texture": "#0"}, - "east": {"uv": [0, 0, 4, 3], "texture": "#missing"}, - "south": { - "uv": [3, 7, 6, 10], - "texture": "#0", - "rotation": 180 - }, - "west": {"uv": [0, 0, 4, 3], "texture": "#missing"}, + "south": {"uv": [3, 7, 6, 10], "rotation": 180, "texture": "#0"}, "up": {"uv": [3, 6, 6, 10], "texture": "#0"}, "down": {"uv": [3, 6, 6, 10], "texture": "#0"} } }, { - "name": "cube", "from": [10, 0, 6], "to": [13, 3, 10], "faces": { "north": {"uv": [3, 6, 6, 9], "texture": "#0"}, - "east": {"uv": [0, 0, 4, 3], "texture": "#missing"}, - "south": { - "uv": [10, 7, 13, 10], - "texture": "#0", - "rotation": 180 - }, - "west": {"uv": [0, 0, 4, 3], "texture": "#missing"}, + "south": {"uv": [10, 7, 13, 10], "rotation": 180, "texture": "#0"}, "up": {"uv": [10, 6, 13, 10], "texture": "#0"}, "down": {"uv": [10, 6, 13, 10], "texture": "#0"} } } - ], - "groups": [0, 1, 2, 3, 4, 5, 6] + ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/block/trapdoor_open.json b/src/main/resources/assets/minecraft/models/block/trapdoor_open.json index e50aadc..2e341ae 100644 --- a/src/main/resources/assets/minecraft/models/block/trapdoor_open.json +++ b/src/main/resources/assets/minecraft/models/block/trapdoor_open.json @@ -1,252 +1,83 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", "textures": { "0": "blocks/trapdoor", "particle": "blocks/trapdoor" }, "elements": [ { - "name": "cube", "from": [0, 0, 13], "to": [16, 3, 16], "faces": { - "north": { - "uv": [0, 0, 16, 3], - "texture": "#0", - "rotation": 180 - }, - "east": { - "uv": [13, 0, 16, 3], - "texture": "#0", - "rotation": 90 - }, + "north": {"uv": [0, 0, 16, 3], "rotation": 180, "texture": "#0"}, + "east": {"uv": [13, 0, 16, 3], "rotation": 90, "texture": "#0"}, "south": {"uv": [0, 13, 16, 16], "texture": "#0"}, - "west": { - "uv": [0, 0, 3, 3], - "texture": "#0", - "rotation": 270 - }, + "west": {"uv": [0, 0, 3, 3], "rotation": 270, "texture": "#0"}, "up": {"uv": [0, 0, 16, 3], "texture": "#0"}, - "down": { - "uv": [0, 0, 16, 3], - "texture": "#0", - "rotation": 180 - } - }, - "rotation": { - "origin": [8, 8, 21], - "axis": "x", - "angle": 0 + "down": {"uv": [0, 0, 16, 3], "rotation": 180, "texture": "#0"} } }, { - "name": "cube", "from": [0, 13, 13], "to": [16, 16, 16], "faces": { - "north": { - "uv": [0, 13, 16, 16], - "texture": "#0", - "rotation": 180 - }, - "east": { - "uv": [0, 0, 3, 3], - "texture": "#0", - "rotation": 90 - }, + "north": {"uv": [0, 13, 16, 16], "rotation": 180, "texture": "#0"}, + "east": {"uv": [0, 0, 3, 3], "rotation": 90, "texture": "#0"}, "south": {"uv": [0, 0, 16, 3], "texture": "#0"}, - "west": { - "uv": [13, 0, 16, 3], - "texture": "#0", - "rotation": 270 - }, + "west": {"uv": [13, 0, 16, 3], "rotation": 270, "texture": "#0"}, "up": {"uv": [0, 0, 16, 3], "texture": "#0"}, "down": {"uv": [0, 0, 16, 3], "texture": "#0"} - }, - "rotation": { - "origin": [8, 8, 21], - "axis": "x", - "angle": 0 } }, { - "name": "cube", "from": [13, 3, 13], "to": [16, 13, 16], "faces": { - "north": { - "uv": [13, 3, 16, 13], - "texture": "#0", - "rotation": 180 - }, - "east": { - "uv": [3, 0, 13, 3], - "texture": "#0", - "rotation": 90 - }, + "north": {"uv": [13, 3, 16, 13], "rotation": 180, "texture": "#0"}, + "east": {"uv": [3, 0, 13, 3], "rotation": 90, "texture": "#0"}, "south": {"uv": [13, 3, 16, 13], "texture": "#0"}, - "west": { - "uv": [3, 0, 13, 3], - "texture": "#0", - "rotation": 90 - }, - "up": {"uv": [0, 0, 3, 3], "texture": "#missing"}, - "down": { - "uv": [0, 0, 3, 3], - "texture": "#missing", - "rotation": 180 - } - }, - "rotation": { - "origin": [8, 8, 21], - "axis": "x", - "angle": 0 + "west": {"uv": [3, 0, 13, 3], "rotation": 90, "texture": "#0"} } }, { - "name": "cube", "from": [0, 3, 13], "to": [3, 13, 16], "faces": { - "north": { - "uv": [0, 3, 3, 13], - "texture": "#0", - "rotation": 180 - }, - "east": { - "uv": [3, 6, 13, 9], - "texture": "#0", - "rotation": 90 - }, + "north": {"uv": [0, 3, 3, 13], "rotation": 180, "texture": "#0"}, + "east": {"uv": [3, 6, 13, 9], "rotation": 90, "texture": "#0"}, "south": {"uv": [0, 3, 3, 13], "texture": "#0"}, - "west": { - "uv": [3, 0, 13, 3], - "texture": "#0", - "rotation": 270 - }, - "up": {"uv": [0, 0, 3, 3], "texture": "#missing"}, - "down": { - "uv": [0, 0, 3, 3], - "texture": "#missing", - "rotation": 180 - } - }, - "rotation": { - "origin": [8, 8, 21], - "axis": "x", - "angle": 0 + "west": {"uv": [3, 0, 13, 3], "rotation": 270, "texture": "#0"} } }, { - "name": "cube", "from": [6, 3, 13], "to": [10, 13, 16], "faces": { - "north": { - "uv": [6, 3, 10, 13], - "texture": "#0", - "rotation": 180 - }, - "east": { - "uv": [3, 7, 13, 10], - "texture": "#0", - "rotation": 270 - }, + "north": {"uv": [6, 3, 10, 13], "rotation": 180, "texture": "#0"}, + "east": {"uv": [3, 7, 13, 10], "rotation": 270, "texture": "#0"}, "south": {"uv": [6, 3, 10, 13], "texture": "#0"}, - "west": { - "uv": [3, 7, 13, 10], - "texture": "#0", - "rotation": 90 - }, - "up": {"uv": [0, 0, 4, 3], "texture": "#missing"}, - "down": { - "uv": [0, 0, 4, 3], - "texture": "#missing", - "rotation": 180 - } - }, - "rotation": { - "origin": [8, 8, 21], - "axis": "x", - "angle": 0 + "west": {"uv": [3, 7, 13, 10], "rotation": 90, "texture": "#0"} } }, { - "name": "cube", "from": [3, 6, 13], "to": [6, 10, 16], "faces": { - "north": { - "uv": [3, 6, 6, 10], - "texture": "#0", - "rotation": 180 - }, - "east": { - "uv": [0, 0, 4, 3], - "texture": "#missing", - "rotation": 90 - }, + "north": {"uv": [3, 6, 6, 10], "rotation": 180, "texture": "#0"}, "south": {"uv": [3, 6, 6, 10], "texture": "#0"}, - "west": { - "uv": [0, 0, 4, 3], - "texture": "#missing", - "rotation": 270 - }, - "up": { - "uv": [3, 7, 6, 10], - "texture": "#0", - "rotation": 180 - }, - "down": { - "uv": [10, 6, 13, 9], - "texture": "#0", - "rotation": 180 - } - }, - "rotation": { - "origin": [8, 8, 21], - "axis": "x", - "angle": 0 + "up": {"uv": [3, 7, 6, 10], "rotation": 180, "texture": "#0"}, + "down": {"uv": [10, 6, 13, 9], "rotation": 180, "texture": "#0"} } }, { - "name": "cube", "from": [10, 6, 13], "to": [13, 10, 16], "faces": { - "north": { - "uv": [10, 6, 13, 10], - "texture": "#0", - "rotation": 180 - }, - "east": { - "uv": [0, 0, 4, 3], - "texture": "#missing", - "rotation": 90 - }, + "north": {"uv": [10, 6, 13, 10], "rotation": 180, "texture": "#0"}, "south": {"uv": [10, 6, 13, 10], "texture": "#0"}, - "west": { - "uv": [0, 0, 4, 3], - "texture": "#missing", - "rotation": 270 - }, - "up": { - "uv": [10, 7, 13, 10], - "texture": "#0", - "rotation": 180 - }, - "down": { - "uv": [3, 6, 6, 9], - "texture": "#0", - "rotation": 180 - } - }, - "rotation": { - "origin": [8, 8, 21], - "axis": "x", - "angle": 0 + "up": {"uv": [10, 7, 13, 10], "rotation": 180, "texture": "#0"}, + "down": {"uv": [3, 6, 6, 9], "rotation": 180, "texture": "#0"} } } - ], - "groups": [0, 1, 2, 3, 4, 5, 6] + ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/block/trapdoor_top.json b/src/main/resources/assets/minecraft/models/block/trapdoor_top.json index ac8b237..cc8f225 100644 --- a/src/main/resources/assets/minecraft/models/block/trapdoor_top.json +++ b/src/main/resources/assets/minecraft/models/block/trapdoor_top.json @@ -1,12 +1,11 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", "textures": { "0": "blocks/trapdoor", "particle": "blocks/trapdoor" }, "elements": [ { - "name": "cube", "from": [0, 13, 0], "to": [16, 16, 3], "faces": { @@ -19,15 +18,10 @@ } }, { - "name": "cube", "from": [0, 13, 13], "to": [16, 16, 16], "faces": { - "north": { - "uv": [0, 0, 16, 3], - "texture": "#0", - "rotation": 180 - }, + "north": {"uv": [0, 0, 16, 3], "rotation": 180, "texture": "#0"}, "east": {"uv": [0, 0, 3, 3], "texture": "#0"}, "south": {"uv": [0, 0, 16, 3], "texture": "#0"}, "west": {"uv": [13, 0, 16, 3], "texture": "#0"}, @@ -36,112 +30,54 @@ } }, { - "name": "cube", "from": [13, 13, 3], "to": [16, 16, 13], "faces": { - "north": { - "uv": [0, 0, 3, 3], - "texture": "#missing" - }, "east": {"uv": [3, 0, 13, 3], "texture": "#0"}, - "south": { - "uv": [0, 0, 3, 3], - "texture": "#missing" - }, - "west": { - "uv": [3, 0, 13, 3], - "texture": "#0", - "rotation": 180 - }, + "west": {"uv": [3, 0, 13, 3], "rotation": 180, "texture": "#0"}, "up": {"uv": [13, 3, 16, 13], "texture": "#0"}, "down": {"uv": [13, 3, 16, 13], "texture": "#0"} } }, { - "name": "cube", "from": [0, 13, 3], "to": [3, 16, 13], "faces": { - "north": { - "uv": [0, 0, 3, 3], - "texture": "#missing" - }, "east": {"uv": [3, 6, 13, 9], "texture": "#0"}, - "south": { - "uv": [0, 0, 3, 3], - "texture": "#missing" - }, "west": {"uv": [3, 0, 13, 3], "texture": "#0"}, "up": {"uv": [0, 3, 3, 13], "texture": "#0"}, "down": {"uv": [0, 3, 3, 13], "texture": "#0"} } }, { - "name": "cube", "from": [6, 13, 3], "to": [10, 16, 13], "faces": { - "north": { - "uv": [0, 0, 4, 3], - "texture": "#missing" - }, - "east": { - "uv": [3, 7, 13, 10], - "texture": "#0", - "rotation": 180 - }, - "south": { - "uv": [0, 0, 4, 3], - "texture": "#missing" - }, - "west": { - "uv": [3, 7, 13, 10], - "texture": "#0", - "rotation": 180 - }, + "east": {"uv": [3, 7, 13, 10], "rotation": 180, "texture": "#0"}, + "west": {"uv": [3, 7, 13, 10], "rotation": 180, "texture": "#0"}, "up": {"uv": [6, 3, 10, 13], "texture": "#0"}, "down": {"uv": [6, 3, 10, 13], "texture": "#0"} } }, { - "name": "cube", "from": [3, 13, 6], "to": [6, 16, 10], "faces": { "north": {"uv": [10, 6, 13, 9], "texture": "#0"}, - "east": {"uv": [0, 0, 4, 3], "texture": "#missing"}, - "south": { - "uv": [3, 7, 6, 10], - "texture": "#0", - "rotation": 180 - }, - "west": {"uv": [0, 0, 4, 3], "texture": "#missing"}, + "south": {"uv": [3, 7, 6, 10], "rotation": 180, "texture": "#0"}, "up": {"uv": [3, 6, 6, 10], "texture": "#0"}, "down": {"uv": [3, 6, 6, 10], "texture": "#0"} } }, { - "name": "cube", "from": [10, 13, 6], "to": [13, 16, 10], "faces": { "north": {"uv": [3, 6, 6, 9], "texture": "#0"}, - "east": {"uv": [0, 0, 4, 3], "texture": "#missing"}, - "south": { - "uv": [10, 7, 13, 10], - "texture": "#0", - "rotation": 180 - }, - "west": {"uv": [0, 0, 4, 3], "texture": "#missing"}, + "south": {"uv": [10, 7, 13, 10], "rotation": 180, "texture": "#0"}, "up": {"uv": [10, 6, 13, 10], "texture": "#0"}, "down": {"uv": [10, 6, 13, 10], "texture": "#0"} } } - ], - "groups": [0, 1, 2, 3, 4, 5, 6], - "display": { - "thirdperson_righthand": {"scale": [1, 1, 1]}, - "ground": {"scale": [1, 1, 1]} - } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/block/wooden_door_top.json b/src/main/resources/assets/minecraft/models/block/wooden_door_top.json index d98c5f3..04f7cca 100644 --- a/src/main/resources/assets/minecraft/models/block/wooden_door_top.json +++ b/src/main/resources/assets/minecraft/models/block/wooden_door_top.json @@ -1,26 +1,22 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", "parent": "block/door_top", - "textures": {"top": "blocks/door_wood_upper"}, + "textures": { + "top": "blocks/door_wood_upper" + }, "elements": [ { - "name": "cube", "from": [0, 0, 0], "to": [3, 16, 3], "faces": { - "north": {"uv": [0, 0, 3, 16], "texture": "#top"}, + "north": {"uv": [3, 0, 0, 16], "texture": "#top"}, "east": {"uv": [3, 0, 0, 16], "texture": "#top"}, "south": {"uv": [13, 0, 16, 16], "texture": "#top"}, "west": {"uv": [0, 0, 3, 16], "texture": "#top"}, - "up": { - "uv": [16, 3, 13, 0], - "texture": "#top", - "rotation": 90 - } + "up": {"uv": [16, 3, 13, 0], "rotation": 90, "texture": "#top"} } }, { - "name": "cube", "from": [0, 0, 13], "to": [3, 16, 16], "faces": { @@ -28,67 +24,39 @@ "east": {"uv": [16, 0, 13, 16], "texture": "#top"}, "south": {"uv": [13, 0, 16, 16], "texture": "#top"}, "west": {"uv": [13, 0, 16, 16], "texture": "#top"}, - "up": { - "uv": [3, 3, 0, 0], - "texture": "#top", - "rotation": 90 - } + "up": {"uv": [3, 3, 0, 0], "rotation": 90, "texture": "#top"} } }, { - "name": "cube", "from": [0, 13, 3], "to": [3, 16, 13], "faces": { "east": {"uv": [13, 0, 3, 3], "texture": "#top"}, "west": {"uv": [3, 0, 13, 3], "texture": "#top"}, - "up": { - "uv": [13, 3, 3, 0], - "texture": "#top", - "rotation": 90 - }, - "down": { - "uv": [13, 3, 3, 0], - "texture": "#top", - "rotation": 90 - } + "up": {"uv": [13, 3, 3, 0], "rotation": 90, "texture": "#top"}, + "down": {"uv": [13, 3, 3, 0], "rotation": 90, "texture": "#top"} } }, { - "name": "cube", "from": [0, 0, 3], "to": [3, 5, 13], "faces": { "east": {"uv": [12, 11, 2, 16], "texture": "#top"}, "west": {"uv": [3, 11, 13, 16], "texture": "#top"}, - "up": { - "uv": [13, 14, 3, 11], - "texture": "#top", - "rotation": 270 - } + "up": {"uv": [13, 14, 3, 11], "rotation": 270, "texture": "#top"} } }, { - "name": "cube", "from": [0, 8, 3], "to": [3, 10, 13], "faces": { "east": {"uv": [13, 6, 3, 8], "texture": "#top"}, "west": {"uv": [3, 6, 13, 8], "texture": "#top"}, - "up": { - "uv": [13, 3, 3, 0], - "texture": "#top", - "rotation": 270 - }, - "down": { - "uv": [13, 3, 3, 0], - "texture": "#top", - "rotation": 90 - } + "up": {"uv": [13, 3, 3, 0], "rotation": 270, "texture": "#top"}, + "down": {"uv": [13, 3, 3, 0], "rotation": 90, "texture": "#top"} } }, { - "name": "cube", "from": [0, 5, 7], "to": [3, 8, 9], "faces": { @@ -99,7 +67,6 @@ } }, { - "name": "cube", "from": [0, 10, 7], "to": [3, 13, 9], "faces": { @@ -109,6 +76,5 @@ "west": {"uv": [7, 3, 9, 6], "texture": "#top"} } } - ], - "groups": [0, 1, 2, 3, 4, 5, 6] + ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/block/wooden_door_top_rh.json b/src/main/resources/assets/minecraft/models/block/wooden_door_top_rh.json index 35a5237..2bdb440 100644 --- a/src/main/resources/assets/minecraft/models/block/wooden_door_top_rh.json +++ b/src/main/resources/assets/minecraft/models/block/wooden_door_top_rh.json @@ -1,5 +1,5 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", "parent": "block/door_top", "textures": { "0": "blocks/door_wood_upper", @@ -7,24 +7,18 @@ }, "elements": [ { - "name": "cube", "from": [0, 0, 13], "to": [3, 16, 16], "faces": { "north": {"uv": [14, 0, 13, 16], "texture": "#0"}, "east": {"uv": [0, 0, 3, 16], "texture": "#0"}, - "south": {"uv": [3, 0, 0, 16], "texture": "#0"}, + "south": {"uv": [0, 0, 3, 16], "texture": "#0"}, "west": {"uv": [3, 0, 0, 16], "texture": "#0"}, - "up": { - "uv": [16, 0, 13, 3], - "texture": "#0", - "rotation": 270 - }, + "up": {"uv": [16, 0, 13, 3], "rotation": 270, "texture": "#0"}, "down": {"uv": [0, 0, 0, 0], "texture": "#0"} } }, { - "name": "cube", "from": [0, 0, 0], "to": [3, 16, 3], "faces": { @@ -32,16 +26,11 @@ "east": {"uv": [13, 0, 16, 16], "texture": "#0"}, "south": {"uv": [3, 0, 2, 16], "texture": "#0"}, "west": {"uv": [16, 0, 13, 16], "texture": "#0"}, - "up": { - "uv": [3, 0, 0, 3], - "texture": "#0", - "rotation": 270 - }, + "up": {"uv": [3, 0, 0, 3], "rotation": 270, "texture": "#0"}, "down": {"uv": [0, 0, 0, 0], "texture": "#0"} } }, { - "name": "cube", "from": [0, 13, 3], "to": [3, 16, 13], "faces": { @@ -49,20 +38,11 @@ "east": {"uv": [3, 0, 13, 3], "texture": "#0"}, "south": {"uv": [0, 0, 0, 0], "texture": "#0"}, "west": {"uv": [13, 0, 3, 3], "texture": "#0"}, - "up": { - "uv": [13, 0, 3, 3], - "texture": "#0", - "rotation": 270 - }, - "down": { - "uv": [13, 2, 3, 3], - "texture": "#0", - "rotation": 90 - } + "up": {"uv": [13, 0, 3, 3], "rotation": 270, "texture": "#0"}, + "down": {"uv": [13, 2, 3, 3], "rotation": 90, "texture": "#0"} } }, { - "name": "cube", "from": [0, 0, 3], "to": [3, 5, 13], "faces": { @@ -70,16 +50,11 @@ "east": {"uv": [2, 11, 12, 16], "texture": "#0"}, "south": {"uv": [0, 0, 0, 0], "texture": "#0"}, "west": {"uv": [13, 11, 3, 16], "texture": "#0"}, - "up": { - "uv": [13, 11, 3, 12], - "texture": "#0", - "rotation": 270 - }, + "up": {"uv": [13, 11, 3, 12], "rotation": 270, "texture": "#0"}, "down": {"uv": [0, 0, 0, 0], "texture": "#0"} } }, { - "name": "cube", "from": [0, 8, 3], "to": [3, 10, 13], "faces": { @@ -87,20 +62,11 @@ "east": {"uv": [3, 6, 13, 8], "texture": "#0"}, "south": {"uv": [0, 0, 0, 0], "texture": "#0"}, "west": {"uv": [13, 6, 3, 8], "texture": "#0"}, - "up": { - "uv": [10, 0, 0, 1], - "texture": "#0", - "rotation": 270 - }, - "down": { - "uv": [13, 7, 3, 8], - "texture": "#0", - "rotation": 90 - } + "up": {"uv": [10, 0, 0, 1], "rotation": 270, "texture": "#0"}, + "down": {"uv": [13, 7, 3, 8], "rotation": 90, "texture": "#0"} } }, { - "name": "cube", "from": [0, 5, 7], "to": [3, 8, 9], "faces": { @@ -113,7 +79,6 @@ } }, { - "name": "cube", "from": [0, 10, 7], "to": [3, 13, 9], "faces": { @@ -125,6 +90,5 @@ "down": {"uv": [0, 0, 0, 0], "texture": "#0"} } } - ], - "groups": [0, 1, 2, 3, 4, 5, 6] + ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/item/iron_trapdoor.json b/src/main/resources/assets/minecraft/models/item/iron_trapdoor.json index 448c199..64a32f7 100644 --- a/src/main/resources/assets/minecraft/models/item/iron_trapdoor.json +++ b/src/main/resources/assets/minecraft/models/item/iron_trapdoor.json @@ -1,5 +1,5 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", "parent": "block/iron_trapdoor_bottom", "textures": { "1": "blocks/iron_trapdoor", @@ -7,7 +7,6 @@ }, "elements": [ { - "name": "cube", "from": [0, 0, 0], "to": [16, 3, 3], "faces": { @@ -20,15 +19,10 @@ } }, { - "name": "cube", "from": [0, 0, 13], "to": [16, 3, 16], "faces": { - "north": { - "uv": [0, 0, 16, 3], - "texture": "#1", - "rotation": 180 - }, + "north": {"uv": [0, 0, 16, 3], "rotation": 180, "texture": "#1"}, "east": {"uv": [0, 0, 3, 3], "texture": "#1"}, "south": {"uv": [0, 0, 16, 3], "texture": "#1"}, "west": {"uv": [13, 0, 16, 3], "texture": "#1"}, @@ -37,106 +31,56 @@ } }, { - "name": "cube", "from": [13, 0, 3], "to": [16, 3, 13], "faces": { - "north": {"uv": [0, 0, 3, 3], "texture": "#1"}, "east": {"uv": [3, 0, 13, 3], "texture": "#1"}, - "south": {"uv": [0, 0, 3, 3], "texture": "#1"}, - "west": { - "uv": [3, 0, 13, 3], - "texture": "#1", - "rotation": 180 - }, + "west": {"uv": [3, 0, 13, 3], "rotation": 180, "texture": "#1"}, "up": {"uv": [13, 3, 16, 13], "texture": "#1"}, "down": {"uv": [13, 3, 16, 13], "texture": "#1"} } }, { - "name": "cube", "from": [0, 0, 3], "to": [3, 3, 13], "faces": { - "north": {"uv": [0, 0, 3, 3], "texture": "#1"}, "east": {"uv": [3, 6, 13, 9], "texture": "#1"}, - "south": {"uv": [0, 0, 3, 3], "texture": "#1"}, "west": {"uv": [3, 0, 13, 3], "texture": "#1"}, "up": {"uv": [0, 3, 3, 13], "texture": "#1"}, "down": {"uv": [0, 3, 3, 13], "texture": "#1"} } }, { - "name": "cube", "from": [6, 0, 3], "to": [10, 3, 13], "faces": { - "north": {"uv": [0, 0, 4, 3], "texture": "#1"}, - "east": { - "uv": [3, 7, 13, 10], - "texture": "#1", - "rotation": 180 - }, - "south": {"uv": [0, 0, 4, 3], "texture": "#1"}, - "west": { - "uv": [3, 7, 13, 10], - "texture": "#1", - "rotation": 180 - }, + "east": {"uv": [3, 7, 13, 10], "rotation": 180, "texture": "#1"}, + "west": {"uv": [3, 7, 13, 10], "rotation": 180, "texture": "#1"}, "up": {"uv": [6, 3, 10, 13], "texture": "#1"}, "down": {"uv": [6, 3, 10, 13], "texture": "#1"} } }, { - "name": "cube", "from": [3, 0, 6], "to": [6, 3, 10], "faces": { "north": {"uv": [10, 6, 13, 9], "texture": "#1"}, - "east": {"uv": [0, 0, 4, 3], "texture": "#1"}, - "south": { - "uv": [3, 7, 6, 10], - "texture": "#1", - "rotation": 180 - }, - "west": {"uv": [0, 0, 4, 3], "texture": "#1"}, + "south": {"uv": [3, 7, 6, 10], "rotation": 180, "texture": "#1"}, "up": {"uv": [3, 6, 6, 10], "texture": "#1"}, "down": {"uv": [3, 6, 6, 10], "texture": "#1"} } }, { - "name": "cube", "from": [10, 0, 6], "to": [13, 3, 10], "faces": { "north": {"uv": [3, 6, 6, 9], "texture": "#1"}, - "east": {"uv": [0, 0, 4, 3], "texture": "#1"}, - "south": { - "uv": [10, 7, 13, 10], - "texture": "#1", - "rotation": 180 - }, - "west": {"uv": [0, 0, 4, 3], "texture": "#1"}, + "south": {"uv": [10, 7, 13, 10], "rotation": 180, "texture": "#1"}, "up": {"uv": [10, 6, 13, 10], "texture": "#1"}, "down": {"uv": [10, 6, 13, 10], "texture": "#1"} } } ], - "groups": [ - 1, - 3, - 5, - { - "name": "iron_trapdoor", - "origin": [8, 8, 8], - "display": { - "visibility": true, - "export": true, - "autouv": true - }, - "children": [0, 1, 2, 3, 4, 5, 6] - } - ], "display": { "thirdperson_righthand": { "scale": [0.375, 0.375, 0.375], @@ -158,7 +102,6 @@ "rotation": [0, 225, 0], "translation": [0, 0, 0] }, - "head": {"scale": [1, 1, 1]}, "ground": { "scale": [0.25, 0.25, 0.25], "rotation": [0, 0, 0], @@ -174,5 +117,11 @@ "rotation": [30, 225, 0], "translation": [0, 0, 0] } - } + }, + "groups": [ + { + "name": "iron_trapdoor", + "children": [0, 1, 2, 3, 4, 5, 6] + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/models/item/trapdoor.json b/src/main/resources/assets/minecraft/models/item/trapdoor.json index d9b2c08..829039b 100644 --- a/src/main/resources/assets/minecraft/models/item/trapdoor.json +++ b/src/main/resources/assets/minecraft/models/item/trapdoor.json @@ -1,5 +1,5 @@ { - "credit": "Made with Blockbench, a free, modern block model editor by JannisX11", + "credit": "Made with Blockbench", "parent": "block/wooden_trapdoor_bottom", "textures": { "0": "blocks/trapdoor", @@ -7,7 +7,6 @@ }, "elements": [ { - "name": "cube", "from": [0, 0, 0], "to": [16, 3, 3], "faces": { @@ -20,15 +19,10 @@ } }, { - "name": "cube", "from": [0, 0, 13], "to": [16, 3, 16], "faces": { - "north": { - "uv": [0, 0, 16, 3], - "texture": "#0", - "rotation": 180 - }, + "north": {"uv": [0, 0, 16, 3], "rotation": 180, "texture": "#0"}, "east": {"uv": [0, 0, 3, 3], "texture": "#0"}, "south": {"uv": [0, 0, 16, 3], "texture": "#0"}, "west": {"uv": [13, 0, 16, 3], "texture": "#0"}, @@ -37,125 +31,56 @@ } }, { - "name": "cube", "from": [13, 0, 3], "to": [16, 3, 13], "faces": { - "north": { - "uv": [0, 0, 3, 3], - "texture": "#missing" - }, "east": {"uv": [3, 0, 13, 3], "texture": "#0"}, - "south": { - "uv": [0, 0, 3, 3], - "texture": "#missing" - }, - "west": { - "uv": [3, 0, 13, 3], - "texture": "#0", - "rotation": 180 - }, + "west": {"uv": [3, 0, 13, 3], "rotation": 180, "texture": "#0"}, "up": {"uv": [13, 3, 16, 13], "texture": "#0"}, "down": {"uv": [13, 3, 16, 13], "texture": "#0"} } }, { - "name": "cube", "from": [0, 0, 3], "to": [3, 3, 13], "faces": { - "north": { - "uv": [0, 0, 3, 3], - "texture": "#missing" - }, "east": {"uv": [3, 6, 13, 9], "texture": "#0"}, - "south": { - "uv": [0, 0, 3, 3], - "texture": "#missing" - }, "west": {"uv": [3, 0, 13, 3], "texture": "#0"}, "up": {"uv": [0, 3, 3, 13], "texture": "#0"}, "down": {"uv": [0, 3, 3, 13], "texture": "#0"} } }, { - "name": "cube", "from": [6, 0, 3], "to": [10, 3, 13], "faces": { - "north": { - "uv": [0, 0, 4, 3], - "texture": "#missing" - }, - "east": { - "uv": [3, 7, 13, 10], - "texture": "#0", - "rotation": 180 - }, - "south": { - "uv": [0, 0, 4, 3], - "texture": "#missing" - }, - "west": { - "uv": [3, 7, 13, 10], - "texture": "#0", - "rotation": 180 - }, + "east": {"uv": [3, 7, 13, 10], "rotation": 180, "texture": "#0"}, + "west": {"uv": [3, 7, 13, 10], "rotation": 180, "texture": "#0"}, "up": {"uv": [6, 3, 10, 13], "texture": "#0"}, "down": {"uv": [6, 3, 10, 13], "texture": "#0"} } }, { - "name": "cube", "from": [3, 0, 6], "to": [6, 3, 10], "faces": { "north": {"uv": [10, 6, 13, 9], "texture": "#0"}, - "east": {"uv": [0, 0, 4, 3], "texture": "#missing"}, - "south": { - "uv": [3, 7, 6, 10], - "texture": "#0", - "rotation": 180 - }, - "west": {"uv": [0, 0, 4, 3], "texture": "#missing"}, + "south": {"uv": [3, 7, 6, 10], "rotation": 180, "texture": "#0"}, "up": {"uv": [3, 6, 6, 10], "texture": "#0"}, "down": {"uv": [3, 6, 6, 10], "texture": "#0"} } }, { - "name": "cube", "from": [10, 0, 6], "to": [13, 3, 10], "faces": { "north": {"uv": [3, 6, 6, 9], "texture": "#0"}, - "east": {"uv": [0, 0, 4, 3], "texture": "#missing"}, - "south": { - "uv": [10, 7, 13, 10], - "texture": "#0", - "rotation": 180 - }, - "west": {"uv": [0, 0, 4, 3], "texture": "#missing"}, + "south": {"uv": [10, 7, 13, 10], "rotation": 180, "texture": "#0"}, "up": {"uv": [10, 6, 13, 10], "texture": "#0"}, "down": {"uv": [10, 6, 13, 10], "texture": "#0"} } } ], - "groups": [ - 1, - 3, - 5, - { - "name": "trapdoor", - "origin": [8, 8, 8], - "isOpen": true, - "display": { - "visibility": true, - "export": true, - "autouv": true - }, - "children": [0, 1, 2, 3, 4, 5, 6] - } - ], "display": { "thirdperson_righthand": { "scale": [0.375, 0.375, 0.375], @@ -182,7 +107,6 @@ "rotation": [30, 225, 0], "translation": [0, 0, 0] }, - "head": {"scale": [1, 1, 1]}, "firstperson_lefthand": { "scale": [0.4, 0.4, 0.4], "rotation": [0, 225, 0], @@ -193,5 +117,11 @@ "rotation": [0, 45, 0], "translation": [0, 0, 0] } - } + }, + "groups": [ + { + "name": "trapdoor", + "children": [0, 1, 2, 3, 4, 5, 6] + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/texts/splashes.txt b/src/main/resources/assets/minecraft/texts/splashes.txt index c5c06a4..19505f5 100644 --- a/src/main/resources/assets/minecraft/texts/splashes.txt +++ b/src/main/resources/assets/minecraft/texts/splashes.txt @@ -1,7 +1,5 @@ Is that why you explode?! Burn creeper, BURN! -/locate Flagstaff,AZ -/locate Tuscon,AZ /kill @e[type=demon] Ivan Moody! Five Finger Death Punch! @@ -31,8 +29,6 @@ I'll never stop playing Minecraft, Angelica! Chester Bennington! LINKIN PARK! Mike Shinoda! -/locate GCU -/locate PHX College Method Man! DMX! Redman! @@ -61,7 +57,7 @@ Windows security is a big fat joke! Rob Halford! Judas Priest! Since 1969! -GNU/Linux>Microshaft+Apple! +GNU/Linux>Microshaft+crApple! Screw Windows 10 and macOS! I use Arch by the way... @@ -77,3 +73,6 @@ Strike while the iron is hot! I'm modding it now, Angelica! JAVA IS SO FREAKING CONFUSING!!!!! Java sucks! + +IN THIS HOUR, THE TOWER SHALL FALL!!!!!! +I AM THAT I AM!!!!!! diff --git a/src/main/resources/assets/minecraft/textures/blocks/anvil_base.png b/src/main/resources/assets/minecraft/textures/blocks/anvil_base.png new file mode 100644 index 0000000000000000000000000000000000000000..50848f8676d98cc4fbb5c349c87cf5a5ae61fbd5 GIT binary patch literal 376 zcmV-;0f+vHP)pC?}liIe8*!TNQ z!!V?6+tPjC>3N;&nW|v8nXeQYbhur5+ezpI48Pf zz5qc9fa-Q#7e&;B7*>uO45$o<0H>7cK$5~5w*eLm_#xGGUDG&@p*jgB$p&n>2O%N> z5}Y5O7|fuqMi_oMR$!b5I)a&#lQHZB3wMD;h0cI@BA<{1E`LRH*)Z5L-m)wy1F(yt zm9z!(LT+oxG^?gSRR<&+%6+>Q literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/anvil_top_damaged_0.png b/src/main/resources/assets/minecraft/textures/blocks/anvil_top_damaged_0.png new file mode 100644 index 0000000000000000000000000000000000000000..395dea47c64c6cc7d932d6a08c679e4c90f11975 GIT binary patch literal 310 zcmV-60m=S}P)ym>Y426BCwkn|F-EH^%pNI8J8z+CDv(B6W6V4?JRb{@h>rxCMt>c(p`<{M}Bl)J0 z{Su?}2Jcgq`<~k-hXG;=tR|BhiVxg*^L^`5*S6(5 zXzurPEQ^S!BOncRP)vXW&?Jx%o%&v&y{`i5#$g0(4P*t>#lAu%+1l3xAe@g0?DH(J zy{rIEO2A1(>bFpRyUF_R1o|?!X}W}q0$iG=Q1W~BaEV&ZA2zxZnzC_IS^xk507*qo IM6N<$g3ca}kpKVy literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/anvil_top_damaged_1.png b/src/main/resources/assets/minecraft/textures/blocks/anvil_top_damaged_1.png new file mode 100644 index 0000000000000000000000000000000000000000..eddc47fbeb1c7f813905e902b9ac8c13e786fb2c GIT binary patch literal 367 zcmV-#0g(QQP)tDlgbYm1V~SH~{;wjddIZ zwBGN3?4Op9$I+&2n+7f8$O*P-(xmL8grRB99f+D`7(C-!zg|gVH(fs`a4n0IVSiAH z*n6llun&AapT`7XpNBzNAJ{&KPy!sx{Xmnt*3%wzbxplOsydHuKbD16zm;nL8$0bm zqHF^o5R#9}g~~K#NbD^^zjFeD{T^^gAS#Z!Ho@n*a?<`~zIA|R$@2}>)9tE?BnBK3 zKnaHdD8=}Z+Ky+>wt4=S0|18sd6{ilZp5bqzT<2zB>7c)ypis6egNM?6K-43)%XAa N002ovPDHLkV1ip9q(uM# literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/anvil_top_damaged_2.png b/src/main/resources/assets/minecraft/textures/blocks/anvil_top_damaged_2.png new file mode 100644 index 0000000000000000000000000000000000000000..6cade1fab147ebfee9f73b08142325416d324248 GIT binary patch literal 406 zcmV;H0crk;P)+}rLn>}1|L|8#U=X}zZJzMx zGW&*P71Q*4H4a7$-AU(Hryr1*?s$WDM>+30LD}Xf8>AbSSw4Bz`u}JD`vnOTBz7rE zuqkBE`~33lf93!G8x1>plQ`NK1N0kICYr`KC#5(SNHKg?_Ym~?Y`s8+<1kO7B!e-_ zQEnCK23>)Z-F#%PL-74aEz1~lKyIiDiVXa7M##mtc# z%Zg3STy?z)`(m#A!{X~9<&Lv_W@UB83}8|6RqkoxpZOmj5{fI&u##0A$Ed6X1#0Hi bBT~ROrseuXuHE=G00000NkvXXu0mjfLQ-Os literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/beetroots_stage_0.png b/src/main/resources/assets/minecraft/textures/blocks/beetroots_stage_0.png new file mode 100644 index 0000000000000000000000000000000000000000..c1ef732040074d2e35033fa265cf5933169ec0df GIT binary patch literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`#-1*YAr-fh6C_v{Cx~2Nd?WDR zf6pU#rWsw=lMEk7=sADy_?vz}Md=xy~0{%OFvQS*ozo7sZd z;-N|HKk9cZwD{YXW33@@@n~5`vQz=j$%K>xv(EmSpDD(_$~U{Q>tZaM3BwYx)!Y+Q l9g-64cD;3Ao*2u(5OOTJgkgQfTA*tfJYD@<);T3K0RUipLb(6{ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/beetroots_stage_3.png b/src/main/resources/assets/minecraft/textures/blocks/beetroots_stage_3.png new file mode 100644 index 0000000000000000000000000000000000000000..a13a0ec934c5b13a459b3d730cb00d2d9b597a03 GIT binary patch literal 394 zcmV;50d@X~P)W--h>tD?*LOe~A_>yGPVzs)9IychLqH0V`5;XY zF{q&+0f+(rWxI|4Cr@(yFP?9X(6CA3KL~@xV79{ea2r6bfEqBlFXlggmnuX7&{g%l zv0wv0a$v(&$ovPYM{*_93m{D}17L=MXb|6OnJ2_RpvL))>0lZx5BCDl6(9o+_4PnZ zh8h6kgAD}Q3Uk5aDjxgUQDO$D;MnZh|NAT~fY<=!Y=$$-SNzZN(FAJ-@lP*W^uN|o=Rep& zSnMIkDagq)-95mzgEWBnAj4qM400WqkD?h0qGiRw&Y$Gu{2#;y;TirO{|i)PQ25zU oK89wH!bVL+Fa{|i#D^II06&!QB&R_5*#H0l07*qoM6N<$f?V&W_y7O^ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/bone_block_side.png b/src/main/resources/assets/minecraft/textures/blocks/bone_block_side.png new file mode 100644 index 0000000000000000000000000000000000000000..ffdf641a00629b9ffbd77949c06843a8d6f3fd33 GIT binary patch literal 289 zcmV++0p9+JP)!$hE+)X@n`}wU)m`>&l-{M&M3I7DD*Xo zgFW4@Yf7RcrT0@7LneuIO2UJzL(qfX9v+@OE&#$?ew&Mc@D~387iUrr*m}PJV0|X0 ziroIM9h{AUe1XKlP9k+cB(~(5Lsi=dptuRRI#bnL0kAa&UJpwp4+wW&1rP>M#K1eX z<;p|s44|P2z<@geI6IoLb_OsYJ^~|19BADDTu~Xo+6wR$;t2TL$^as=?|Fcc3V^?@ n4ha2CJAnKRpa8{fGhpBYk~f7G2g}8o00000NkvXXu0mjfGdyrh literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/bone_block_top.png b/src/main/resources/assets/minecraft/textures/blocks/bone_block_top.png new file mode 100644 index 0000000000000000000000000000000000000000..85a8b8770ac863136abb91d1dd21647470db56d2 GIT binary patch literal 591 zcmV-V0pEjw$5#oW57qx4D%|(P!wKu~w9>k65v#_41fnyqjxk;k&r*Aj zzwTQPN25yA=hH85X^4sC)-reQXDZDhdZjeAy9>i zHdV1M8EMPD&VFA$({uAbC5p82V2^E?4Mdh{ysECbztZB>+^|q_O?1wSYVq`->I)=; zI!T8>1`PovW+aoEBV5d}V1ZLMWHe{H8RfRU8rX&DlM{inUoH*${zk!=*!{3Dy~3w+ zQ7uKU>pD}p{7$%De^>|EEV}~7RFlNBeg9_8Br!{AF+4@~tV7O=IoBQXS4+~=b|4!u@I_=)2*7Fz5W8cA{{aB_(-PQCNyEI>wglF>+ zlYq15(cZlVyR(>Dqi+f5w<=N`^Pj8q)~#IuACn#>NkUN+ksF710EVjo+$)A-QI?j0 z3J8LLeBYNIeq{iEh_?>X$O0f$_RS3LdSEL7Kc@ji2B-r00000 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/brewing_stand.png b/src/main/resources/assets/minecraft/textures/blocks/brewing_stand.png new file mode 100644 index 0000000000000000000000000000000000000000..60832aabb3fe97483e56dabedc3784ceb9af1029 GIT binary patch literal 321 zcmV-H0lxl;P)zaUL}7YBh|0b+y1 z(AB}gm0ZvNdqNHWuXI=ak8A))^RYdFgbg^ee(C?|=3@UrG_nC8%`h*(48ZDzCr_UI z-z*{V|J=EA1YLjuK$`BFnEcq zx2{4#3`F-A$vNko3y=U21Qb94LX>=}pUxnoS6Fw0J)Rlw4b^JZve~Rt6ukcDsoh6rJX7x3ly4 zEC34n{k}aO4*^hvq`;vg(%FLq3Zc*4^ZB&v_4;GPJxu}{F=@G6>LQ=d>jM20a{u{! z?0&!N-Wj=9p;D=6gMMT{8~vNjM$A08FO^D~4u;|tQUyS)Rx5REwOR^aV=$l;L?RIt zAu*LoeHr)&(MXU?(d+fHZnvv7=X8(7Vgg`IF|`6zdkBYP3 zOQZ`kMjvdP6(hq7@916u&}cNiQ-BgdGPGR+M&SbtDDbf|V*H{zxdAsBm;WH;a#>#< z7c5}NmotBT6cQREUFql#%8|MJ|JUIQ9&zUX0w(?e>90RW_}!_W00000NkvXXu0mjf Dd2;BV literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/brick.png b/src/main/resources/assets/minecraft/textures/blocks/brick.png new file mode 100644 index 0000000000000000000000000000000000000000..fd6959c2f5aca29017e58b72391fa4cef6736a07 GIT binary patch literal 506 zcmVG^nq`+tOt=A8S z*`3)tch1?fMsaGG&c_A_@hN}Fu{<51(=i|2%?5e@5DU}ssFz;LS>8(?Fg62y1f;_K z^mSLEdOXVeRc{w9y4rcY?(d;Q$fX)=k2pBLWq})Hq8?iIbT%DW^L3N_06={=$vlBzSu35a_=SRt2mo;kY8U@e!E4myXY#0;% zfY8w7F?YcqgRa#17O+6_vt}yM=6YK=!XLPM=4`1hbu{J%!Y7~HZt{U$pZ99vS0l?i zqKN_DgD3oM_rhcLf+>Nob`;hkH3CW&BS}+e>BCE*s;(Hf$K9Q=2%t1`QZeth zwvB1iIAdEs&j6V0C+-FT9;|ya?^7E;t<#$CEAUAGSvZA^)^s{Tb`>a~q5>NvVnOO{ z8Nea{$tCFo!9B+SvB;#2CR`%|loU+z6)7OV5Q;nuzzE6!_*_^-cTT(iUlT%EbAwSdi{B9flF*3=|#Kb2(gR}W2BKazU^5`t$kCOD;5Es>5A0qW> zhY}#5?}ree{Z#@;RI?l+>LEvBeAY9yT^$JU3*w`$;d@Y6+o_r6MJ582M3-C@Q$I-M z1r+KrUv7aeg2O!Qlf{`27CTbj};sf#q z?Gb&fRR)yAZ~%)0PE+wg>ve3}e_P@a77rMRfSWhZngy6q*<`^KnwNb%RRrw6Ks??M z0X7?-c_-dvsDu_Aae;W1K^Wt-?Ug3vAxdRuW%hgdO#HCQiELpR)%CzbbPiRw-e@fF Y4?x9ciJ$ruSO5S307*qoM6N<$f(p^Lk^lez literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/cactus_top.png b/src/main/resources/assets/minecraft/textures/blocks/cactus_top.png new file mode 100644 index 0000000000000000000000000000000000000000..98e6faad974b1ca11372e9f1cd516b6befe6b9ab GIT binary patch literal 320 zcmV-G0l)r9U5bVK&AZlZK5T!n<2Y<*9@aPYC5)niYL=f?R*UXxYnU#2JN zKwrey{{~X>ZeiVt47(I}+^FC^kg9A}IB9RgJEb{#3da;~RWRC4@%+SO80axg{6wEy sOx(fQ6Fht;vg~yT@>-%{9LU5_eRQ>o_$1bqKr0wLUHx3vIVCg!0Acbl4FCWD literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/cake_inner.png b/src/main/resources/assets/minecraft/textures/blocks/cake_inner.png new file mode 100644 index 0000000000000000000000000000000000000000..ce7ce6904b40694b4486a4e34583b90b4e7f318a GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ii4<#Ar-fh6C_v{GjQ?AT7CKd z@9%Gk9bTOe>vvhOEI!@%%+s86MAglJha+(YBg5<2=WG|-ulNqM Om%-E3&t;ucLK6VlpF8^i literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/cake_side.png b/src/main/resources/assets/minecraft/textures/blocks/cake_side.png new file mode 100644 index 0000000000000000000000000000000000000000..343a0234f9abfe0e053163e6ffa5ffbb5bfb29e2 GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`iJmTwAr-fh6C_v{GjQ?AT7CKd z@9%Gw#0hdD%yD~be1(o>F?6);Y!i?_%pedaw}#=^kxviVe7;X<@?O^;(6;&GN5`rF z9tO`h9ii;W0<%HNW~dmk-E8sZIm}RG;Gxg3daL0}4#x+NfR-_My85}Sb4q9e02NF# A?*IS* literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/cake_top.png b/src/main/resources/assets/minecraft/textures/blocks/cake_top.png new file mode 100644 index 0000000000000000000000000000000000000000..2947892e8b7d92afc59de48b2e7ee82a30b73640 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`eV#6kAr-gQPQJ@|K!K+v_K4w~ z`YxN_x8^HGDY=~cvPDdrBo)az+x&($tIHDKGI_$q`s;@`}$YrGW;*72$@(mM}y8H1;*pUXO@geCyG>`yuX literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/carrots_stage_0.png b/src/main/resources/assets/minecraft/textures/blocks/carrots_stage_0.png new file mode 100644 index 0000000000000000000000000000000000000000..c1ef732040074d2e35033fa265cf5933169ec0df GIT binary patch literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`#-1*YAr-fh6C_v{Cx~2Nd?WDR zf6pU#rWsw=lMEk7=sADy_?vz}Md=xy~0{%OFvQS*ozo7sZd z;-N|HKk9cZwD{YXW33@@@n~5`vQz=j$%K>xv(EmSpDD(_$~U{Q>tZaM3BwYx)!Y+Q l9g-64cD;3Ao*2u(5OOTJgkgQfTA*tfJYD@<);T3K0RUipLb(6{ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/carrots_stage_3.png b/src/main/resources/assets/minecraft/textures/blocks/carrots_stage_3.png new file mode 100644 index 0000000000000000000000000000000000000000..2391be83797f792525c87c18e0ef4b8424514d2b GIT binary patch literal 306 zcmV-20nPr2P)6uGD;c#i)?{lkPuThnn6%Qz+yl) zLNn9=kOW9G?<$7>Ak7SoP{oZzhtLeCYmoT3fTJ(Zf5&*f|E$@pU|Y4U1;7|A3Dm3{Dg0l>nI9~V zp*h=5;Qylq0{<^f;`r~VDDfZ0KiJBE!ar0G;luO+0Ccdi@=63xr2qf`07*qoM6N<$ Eg7VCI%>V!Z literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/cauldron_bottom.png b/src/main/resources/assets/minecraft/textures/blocks/cauldron_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..acb4c08ae03e9cae39bee1a0dd21967a9f665d79 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;Do-U3d z7N?UhT)g;`|M0F|yAsYcFe|KXU77B1-DeGB!Bzt{O+AN=Jrc7oGM4g6ur@O)EY}PA tx{M-37T3>T->uMUd&eHLgcgQu&X%Q~loCII`5FJ}M% literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/cauldron_inner.png b/src/main/resources/assets/minecraft/textures/blocks/cauldron_inner.png new file mode 100644 index 0000000000000000000000000000000000000000..5ae6c70798f10e6b0a6498ef79921904344b9f0e GIT binary patch literal 337 zcmV-X0j~auP)A z*Iq|iM;p!+KCsW#ht!CrXV45)X)+XtYYLL>st%T&8+ j!yx1y`0pvzn~47pgG3f5vZ#XA00000NkvXXu0mjffftR` literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/cauldron_side.png b/src/main/resources/assets/minecraft/textures/blocks/cauldron_side.png new file mode 100644 index 0000000000000000000000000000000000000000..b976acfcb29a482ab21d6984052389ad22dd3508 GIT binary patch literal 408 zcmV;J0cZY+P)F@` z0uC)XNuVk_XP9t?9SmT_PCO8trpX;7QH1~$S;Tb~m_YdUvSnF116rx7%IWeAbry-V z1rV2M6(1IGD48Ux48!1T03w;{x=bA73=408>IBAdw7&133A|pfM=*(spMvZZ4g636 zbHuw9B?AH=tT>Clv6#Xkejz>Y?_gZLB z38<)t0B3LnRDw8;T?C}dVNJX1I!yt5OMrb`sy6b%d!4*|P)iD`+L}iz>L94=`b$6_ zRMcbRIF70S4A1kZ3v?p3Sj*DNsIr!}ABbD|j=E_hnF}y7=rG3bPh~M3%N+T3smg)G dtAL^te*l<89oe15g(?65002ovPDHLkV1iCWh@=1j literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/chain_command_block_back.png b/src/main/resources/assets/minecraft/textures/blocks/chain_command_block_back.png new file mode 100644 index 0000000000000000000000000000000000000000..aab8909d5e9d9e6997f0c43ebe637232dbb7285c GIT binary patch literal 501 zcmV> zd+O@{qleC-V30bH`U!hh{$~IM2+RX>FI!JzZ@elJ%8@<|8_y1@YrBL4r!2ILC(hKf{Fbz!Rla9iDH17r2*K_Accq8 z?Z9-Kvm==PoDc)1%S#&m8@btGPX{2AVFuvBAOk?^u%-i07=S_<+3#yI(@|UkG619w zYdSzS0G|tB(TFu2fD8ad6)3bp0S3~5j&Y^~;sgW1p$2$mbqTA9(g zJU9^&gc24jLIOw2gVFL}w0$t3?Sp|U4`6V_zq{@(kD{VOYsX`~TTfSHUzkd5}H^T$pNHf?4ut0(tg0A^QND!Pof9`UyJWMmlat7p( z2Kg1{Y+QI^|4gttSX81Ipk`?R4m6O$L+y58y3N@UOn**@0n_Cr4gZbY?69W;Sg7N3 z0muN5I;`mcsWhSBn1D3k|_^mGPEd2rUsY_vQWEe}S^g8?lMR(N|3Pg8z z*t7CK11Lby4FM@Wclz4@%^P;Y@%*{VQ49fT2D<iXBytqvl4lq#4~9Z{u)^DO zfXai}IYtl{gam@=C3@NeR33D!O&Ki@M$3cI@&JfWgai$6`=HI)5lnwhh#8>rzzOo|vS4`^K;008Qs%R>|f_jdpQ002ovPDHLkV1n^3y}|$h literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/chain_command_block_front.png.mcmeta b/src/main/resources/assets/minecraft/textures/blocks/chain_command_block_front.png.mcmeta new file mode 100644 index 0000000..4894b53 --- /dev/null +++ b/src/main/resources/assets/minecraft/textures/blocks/chain_command_block_front.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frametime": 10 + } +} diff --git a/src/main/resources/assets/minecraft/textures/blocks/chain_command_block_side.png b/src/main/resources/assets/minecraft/textures/blocks/chain_command_block_side.png new file mode 100644 index 0000000000000000000000000000000000000000..c67fd4ce5f260a6ba40c3bbeb8f85c8c732cceac GIT binary patch literal 491 zcmVV_zq{@(kD{VOYsX`~TTfSHUzkd5}H^T$pNHf?4ut0(tg0A^QND!Pof9`UyJWMmlat7p( z2Kg1{Y+QI^|4gttSX81Ipk`?R4m6O$L+y58y3N@UOn**@0n_Cr4gZbY?69W;Sg7N3 z0muN5I;`mco zAWI@gF)n$A(ehv@ln0CSbOuRzaMsF<&gDUqsxp{9S5*$CJJzO*mItHd!H6yoR(N|3 zPH{% literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/chain_command_block_side.png.mcmeta b/src/main/resources/assets/minecraft/textures/blocks/chain_command_block_side.png.mcmeta new file mode 100644 index 0000000..4894b53 --- /dev/null +++ b/src/main/resources/assets/minecraft/textures/blocks/chain_command_block_side.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frametime": 10 + } +} diff --git a/src/main/resources/assets/minecraft/textures/blocks/chorus_flower.png b/src/main/resources/assets/minecraft/textures/blocks/chorus_flower.png new file mode 100644 index 0000000000000000000000000000000000000000..97d1ca655f49a0bf9df406e0f477aa3c1d02d61c GIT binary patch literal 695 zcmV;o0!aOdP)$D6WDl zTVh;Dp^J*7n2op*!T(SYisWn08D`YQ;ofua{l5F1m#~yrLeLz9v)&1NogHCIn0>MZ zbpe@B2D1aRP^~J&W)X9-IpkA$R?;gBbl!KucFzV!or8S>q&;c4AG#5F z7J=L*Lu?V@ZSeBlpmh*Jz!YFcdX#*fg!D*)+NGlWxy-BI?B})ku86hN8iMUXblmA+ zBN8Fd5jcN; zV;q%^aB+HJSl`n=!$=W@F%zAEAe&`&3Yh}`GUgd$lFL7rypjgvHn*J0xq=HHz}rvH>CjorHio*wx^|P}dNq zd#AM|4%>&Z^L_`F@0DBNTCK+Z;kQHdzvyS9Dv(-Ny-QO-jX|4YzR19XF9)~6xS5Od z$~h~@4dmc{;MV$}r>RFH_)@Uw5M$8>tQcK_^Jq5==ZdP%H{ho@|m? z+Jra((IkRq#MkKKa`~J5pj^?!`Wk$oPwDq5c}lASjV5)K(yEcsbW(!IAMuPB=LDp^ dZj;g^{sBTFa+NC*G` literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/chorus_flower_dead.png b/src/main/resources/assets/minecraft/textures/blocks/chorus_flower_dead.png new file mode 100644 index 0000000000000000000000000000000000000000..e9a3952fd15e5d619c7e861585fc7bde5c190a5c GIT binary patch literal 679 zcmV;Y0$BZtP)3_Ne#3>D<6S$=fZ?UjU|Yz zT)8SAal--=V~juPFz42p#m#&7-gnP=_uTiC-B-IX1`T9-Gf4HMV25n+X`6uQCqB`b=X3q+>p4U2XySO>`P(hVFro&38Z_{;Gv5gSzy$tS%$jlav;|e0Yhg%kL-` z9H^Ztru(KvCkmZ?lx@F*+~b@NK#_QmW1^^YV;XWpGm?*Y#U;)$bKE5JUm_2vciqB{ z2%;TPnY%G$NS~tkKpvA_lLEkXHZTh-XraDXhaw|%nThI+$rF>Ba4KG&CKGbCXf<2y z7QBLNe-`Q9w9KDIfb*ksn8PNFVMA^>)#nNsvQQ~hP+zEvkcvDQ_vg)r=l!2XpAU*` z1mZ2sAyWjTcqAqJT4Aj{1%6Ey@~5$wzmo#d-+Qy?$63g|XRG=ut^qTx0WoE@#a;ja N002ovPDHLkV1h6%Fx~(F literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/chorus_plant.png b/src/main/resources/assets/minecraft/textures/blocks/chorus_plant.png new file mode 100644 index 0000000000000000000000000000000000000000..bc2de3c8656178896ec46309f8b7e8597bc9960e GIT binary patch literal 621 zcmV-z0+RiSP)3*Ew1!3nQAjQL2vXLiq-nKQfU=En`Jq=o8S73EkNUfL6%cIjWD@APr;{Q`d0M}47=L1%#R z!x*FABZ(_BVdC!BodBz!t0;afq7ti!Ptfz@GkAxI&X3OFuDC)(JI)?MH4+VBY%DgA zdy^C6p_Q`4uKjEA%b&_oJU^8eqpt`gv!C~|KDiF#y&)L~-axYV?LJDgC3qQ6K%4J2 zB}qiUKDjB*7R7kLl`WjPXJ~(GOLZG>Hw0XmDabi7Osty8W<)?C38W5g+7$tHza(Lt z)p5@lTUV`2OB@nW4_Si?2VW1O7D)8;@Pw<*6-M2W_&vK9w!olvXgnm4;{8`aK+YIV zi2sp@hz!2|d6m^p*)WqP+SxW*tF3Sfi*@YAcj2r!a!x{Bx#Gj%h9LIWHM%IpO40(A zXEr7=rVQ-FcSI)&UHeiC-@*R;endc#c#&hGs08Zv3eyFNbIcq!lSMC)7mN=9a3Y7b zi8YzKwPZ=3qIl54*7TMTaNSGn!AUt7c7{+g!XPtQ^_aAn?4MK7=QI*hi}C$9Y(WER z3pG^cDl&il23{UtU@zOSmMy7pJH8Dk?V#7}VR$qYAr&w4=N)Daqn}2f4~p4H#47A1 zTLh$dOv>!1&C_rS{F(&vrxDEGNrC9!{=ALi1ahzK#5}=Y%WL}^SwLR500000NkvXX Hu0mjfhMXSJ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/clay.png b/src/main/resources/assets/minecraft/textures/blocks/clay.png new file mode 100644 index 0000000000000000000000000000000000000000..c19e0319cd2f0aa58d40de1a21b79700127dabbe GIT binary patch literal 584 zcmV-O0=NB%P)B-N4UL2B$-C+n!;*)phjuA<_di#Q)7D@XB`1rye>OPs%H z(dCDj@h^)^zyQnIK~!QdmhDA${f(P}4Sc}{flFWkkgOVI;TM)gO`vvv6SWF!@so}e zL3JIq5?fZAxP8!ttVs^!VU4f1N=2phi3vcTz6f2oikYqa7P^XH;m5tat}_-{`lTow z#;n{}o&T7awP%4hkv>sQWiFKRYm+-xmK_)XNX=G>#MvOLZA;DGN=s56D9O=xo`8)x z{UH#TurtZKC?FvLo784OP(fR1-SO&t2^ZpQevA3I zvz@38!^8Bz928S?tK)~~OIn=C01@dU!I+e}RwBx7*^=Y<9L}3b%gw3-1 zd<+pf;n@y>kpnZ_2YnPoJK={i=R4iRM83=eCQVi9?#c^|xiSafX?1vXZ5#FOEuf#% zON*=@+vxiZSQam@0WZ#$$>Sns2Dt!Nppn`c$00gm#yckyj|OJKC>S|0n;sgzkoO;W W)AHG2&FB^Y0000|(n<*yM6rNX1fhaX0b<&x;L2_S z?1U==;ga1RaF4JPiBOWq<`xL}1RTl9JQ1G2@e4O6+*tk1t06V|uQyPTuIG6UEHt60l+tr}2kZoBNb+$UOZmeHE_a93cp?h#2CnPs?8KGm zF#(l9H!swT0`djklLBYn$@e8^#o?R9b5B6k&gS@H#s!dX{srqVlFND%z=n z>e+nT%*w3o;MlhPbt5D5W4#P6Spa=B{iKWZ>h(H($cqKqZvpn*h@=NQn5d}uMs0%f z+?#U*d59?$0HPD4T-03Gm3PHaK0pkH^Ox1M{P|Rt?dM^?5U828OvqOnh;W{)BxN@@ zLh+DXvZ5U>j{99`moW3OIw|jq5h+A^eX(}(jz5*U>A)OfBPy?+z6YgdJ8>oLCTEu97H}brndP$0>x^avOu$^=0XxKJUwbg3T iufMhGq?HqQdfWhh`UjEj&Zn>d0000}M{P)N)G@VZQ44>2Kr1SYq5@WSmNv+pwt_HxbB@zh^G?`3fx7!)B*=%%2 zNRY{7NWI^0s#dF%&*$m&dNFCw=aT`F===TBe!u5H=?GlmpDL9~eDVAJwA<~d)oL*x zU|w2As zy3CzSCV5U_9{+;DpbiFK3bVqAFTeNzyLZLurvsovFYFH`|sW%Z4VIQzvE|-fJ z3hN5V?)N)alLR<-IvqAv0oCv@uJP)jXP#csFbZ0HLPoNKijn@P}{ zI!z`Ma#dZVd{U@TD9~oJVUEaTG7N?jU|Z5gtyaq@_q9asKW@5SuawK>$nn!b@pzmf zkqEboSqQU#d)jXF7B$L6>AZ=sO3q(Sn$PEqK|;o->=X)x{sq7cl+OxhL>mZ(a@BA5 z?+1nae!sN|p36P(<#Hi`(jT5ZFyVYY^9GPf`=N25)oR7r)X+W9dxhjTGI=~6ZVT@M z>oLUwaiCB1hI=xZ27WV$ zfb#PBJlURXtS~B1ryDRn$0F}Mr5;DzQ{qDX0sVpDixkbu~@XS zz(B%}1d&1JP$?=C03!$lqI^_HdUOV literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/cocoa_stage_0.png b/src/main/resources/assets/minecraft/textures/blocks/cocoa_stage_0.png new file mode 100644 index 0000000000000000000000000000000000000000..25892eba74ac2cd78e2bcbdf6a0ecb7889f1ec9e GIT binary patch literal 248 zcmVGc0AmIwW> zue6330Mgtw(eZz2z43oyH7}YU08tBbI*3kB(I#lXmhI7C&9&v0M0*zwigJzqw|3e5 zuP!(LpPj5vx&al{rvJC^jRt#p;xsqX4FGv{+n%WZ3zvKUZ|Sfh-GG`}^Z%Q+NB*BQ y)A@gSsVV6ORF;`TVynXBe_o~m=?08~!3qG-%5CKAc1DK)0000`|IaQ7{l9Bk(Eo+?&i}K*WpEk*)0`fn0Z{|8 z4P@)aE>|!Hu|eLzWk7a>7Fe^tBh-=TUiXnh3$O$}BJp0EH9CRn-ZG{|lp4 z|Hs=Zf-&3$Ae`f;@;}@`5=?_MAR7SEe0D+b|5J-%{!guN{J*o$`G348{%}G8Nj`G_ zkIaqwe|cl+|7i_gK*Iw6N4ScRV1T#W|EsGL{~uhQ|9^VD_y05V{Qd`82@`KXdZ6O} zQwt*gZ<`kPzpu>h|KX{w{}Vjqh&Lc7T;czo$v*$POPv2NYxDTOqu1%bkBJcR21Hm& y{V$K#{-5BZ@INO+?SH7H{Q|+2u1Z=|NT_0H zrD>bA=_JlH)5&}Do{JzN#CGr9pToUe@wA$^rLv?l<6>P0cc?i$&FFLu8|_5!kGy`d zYPaeqxTUh>{>>?tDn$a{!={SuMw^;Qp*YGDzxo5eZ-l}XLg3_!R2OeC9Rx_n#e}<Q$&Ld0M}$1J?PP? z*GLww)874#&j2>b$h1MD?9D?EqbuSX+z0s9M8KR?apdn6%$eiRb&Mp_A4JuI#Qh^l? z$0vQHlyv)wG_sdZ2t!LhRP3}u;_#e&A;->s7co%CQGtsa9Je#RH2VA$hUV8FY#qg< hvE@xY!dU*7`~uqd-$J{|ul2ff)jlICuKm|IHhA;>0VKt_Q0FX$HFh7DyltvH>eX z0>ShmJsmLZmtzE`=g(dKKhn_%9vckEAr0~?$l3T@FtL9oSRE`XQ4Fxxlmh!1r0`I? z9hg2>RSu@lTA6|A@{)%CzNTu}(*ek2m;tyj$N-Q!tmyz02B1&|DQr?zMsdNK%yhT` zAaz*N0kQ%3TmXwktmyz`04S=Kyd zrt0wj8w=h4ugr1ADvy#5V1^(|B1bVUd4|#QU@(^lusi@O4?5PS(78OA4K0D%oE-n-3W;z3&1F#JM0000RWOZB9;A-}m*yxBoBx;2-}=9K!_NOl51j?` z(bb%pR`Q<#6d>q^fD~W7bQi1{hS3cHX$HFh7DzBd&^0%yD#O|H=Pn1!!!&~|XFv{V zkY8cW#)T*L&jhQ3MJ0*>_L@@QKm#c})NTi+&sCL!>CXuK>GXP{Oh&?;o z=YPJZKA48dAsc{^4z^CL1WSVOrsh<*W)O`m2V$e71CU>kT>_KbR2}|*W1;*1l{wB> z00juTAt1%)PG9@KdBaXPoCpw31$eo=0$osaQ4LhnP7RCW{~9! z$RQ2#E6CZ%Hlt&ZAs}_Is6;WqUQ-I}XOO}}?RH?g&Djx5e@=)2)8!=%|9wr>u%`o% z$uI+OVUPhJbvV-j$d8}^gK6-~F+$M{3rM`_0Hg@yS9F`vqmp1c02u<(h)pxzbO4hC z`4tpk*is@&Iso|v*$|lIrt0wj8w=h4ugr1ADvy#5V1^(|B1bVUd4|#QU?`LaCqjY- zs63br&4uTx%E9y!J?#N150aoI(`b1xS{{t_@}Nmod61L`XRXWzs66Ocn=)D+jFtzZ q<-vfK2QQ$xa7||VX!~IJmj?id7;#wrJLJ9q0000P)NklRWOZB9;A-}m*yxBoBx;2-}=9K!_NOl51j?` z(bb%pR`Q<#6d>q^fD~W7bQi1{hS3cHX$HFh7DzBd&^0%yD#O|H=Pn1!!!&~|XFv{V zkY8cW#)T*L&jhQ3MJ0*>_L@@QKm#c})NTi+&sCL!>CXuFKm2aEJ{P)Z~}sEbC+gVFL} zq?QLKLV^aUJb1A-1x&X&JA&yYdfKDq!Dx9fS{{th_5rNFuqHEofZ7MJz7nj3QZgxG ev^=0yc>n;2b5wpJSxkNa0000C}EDcGLSo|+f@UvR2v~Am+ST2{rchfYM4?x5Ou!%&# zuSrHEiNz2{2izc7#qWDjA`oCDf;}L19S{8xoMUPcggnnJ0m!mUyRHkIz@<4r0z{?) z!28Ri0ffHqgJx4)cx80LHHh1fwQgRYM-jL{1Q9%Qz&pmDu;m55)=&Dg{j_ym*X9D% z{j3OxRQ6<4{@%PA3(c>r{MaFA{inqT&@?Na-As)>{4~ICH*l;k2`DO-##IfZlS5;-s9`61o^7h^; z`|GqOvIl-hc-L$cK-)gg988}mpYP4pwM`%~ea@VNU)`U`Mhw_1mjD0&07*qoM6N<$ Ef`rSo2mk;8 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/comparator_on.png b/src/main/resources/assets/minecraft/textures/blocks/comparator_on.png new file mode 100644 index 0000000000000000000000000000000000000000..bb9413c658bd0894495ff770d7fd0569eea72957 GIT binary patch literal 413 zcmV;O0b>4%P)Z)ay+mSvJ8i3jZEd9H}#SmS?r4nIxP$a1;din^}7@2aXaAApDoU=xXeU6YJR z5{n^@4!A+Eiru%OgeSmC1baYiJ0AMuaE_@(5a#o_CID%gO4oIs6S!0dNPx&x0C;}5 zRe;d0Km-vyb-+8upRi>G-X8Dd`*2^^Wm&2VRJXI@ zK%}xIqw?3mp2p9*R528Q2;BhQAW?uM#E*+JB?Gn>;~d~TY#hkqq5)1eK_IIku3RXa z$cco3yhb~t$asxVvG#x5OkRReZXyWGq;-L;!(C|yk#-QX&GZI|W6M!4ib9<&uKp(S z@>(m~>(nN)2X;t!*K8C(+cr-fOrI#9@5#}zP9QOT&YXi^`3262dXCKD00000NkvXX Hu0mjf+#k6J literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/concrete_black.png b/src/main/resources/assets/minecraft/textures/blocks/concrete_black.png new file mode 100644 index 0000000000000000000000000000000000000000..8413b9c648517d629745406a86d907c8719a179f GIT binary patch literal 228 zcmV!Mi3Y_oISae)!8%fd@oc>-Wabm%5 zOXt2S$u}om0}p)(vi%k7_3kw3G9+ZV{GR8`J_ybaVYwFUzopr E07ZaKh5!Hn literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/concrete_brown.png b/src/main/resources/assets/minecraft/textures/blocks/concrete_brown.png new file mode 100644 index 0000000000000000000000000000000000000000..1ee67164c6fb1ddf0af9ac8050a3948eb394c0d2 GIT binary patch literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|%RF5iLp08p26YP_Rp3aTY*xJG z98>;()wtD7HE-r#SCVkgtFOCi1BC-xPrWOZNRt$o(RkKz>l6EI X%iS}z1T%jEUCiL=>gTe~DWM4fg`iiQ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/concrete_cyan.png b/src/main/resources/assets/minecraft/textures/blocks/concrete_cyan.png new file mode 100644 index 0000000000000000000000000000000000000000..ec3936cb53f36cb3ef69dcfdc329af3c5d81f5bf GIT binary patch literal 233 zcmV6xu0p4=Sb$XGIL>jRcnwKuk;QCXBzr>P zBdw+8(AeSXi-XEO3hAjm1gLpnzTM4$)K7D!xJhb-dtjB#F1sv}cvS3P{|(D}LaW|q jX>^gGsh&UQx&7$}mOm8gN02iY00000NkvXXu0mjf%wc2Q literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/concrete_gray.png b/src/main/resources/assets/minecraft/textures/blocks/concrete_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..ee95a153ddc5d72653f35f897e10d9b0c065bea0 GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|O`a}}AsQ1~gE;vb3^*Q#&I|ni zU)xYcR%FJ>q=Yp~SyOHEY){ukHeBJ0eHAXSuxEM8#*m_$mzCLq)Vyla?`&Q&soGke zg>^x&y-h`Eh#J3qL)_&B8IKqP{ESym?OS;{vSLAAi}-y14(12br~1COI`wnH(v3U( mLjTD&v)`^)`}X(io^O}e-afH*$pWBj7(8A5T-G@yGywoj8%Wpy literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/concrete_green.png b/src/main/resources/assets/minecraft/textures/blocks/concrete_green.png new file mode 100644 index 0000000000000000000000000000000000000000..871889831e3bb02dd6bb5008e78299a03852c9f2 GIT binary patch literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|i#%N%Lp08pPCPAmK!L+$yM&YO zBq4*p*C#Ts*wJS!BVqS0x}~(UVt@K++sT4bx-R<57F(ISe_Y8qt2omqd+m0SkdWA< zYWuA@7HdW=|D_IVgU(ckM6pOFKIwb^NN-I+`Th?Fc#a!g zeDp5p=G5-ell`k1*53PWA-h6QKUA*h(6aOYvwqjjoBFIH>vI6Zmu1G$*PgPcMV_=< TcDnN#(6tPnu6{1-oD!M<+BjIr literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/concrete_light_blue.png b/src/main/resources/assets/minecraft/textures/blocks/concrete_light_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..d5a46fe2c61e561ec5a659a0f115e55810c95482 GIT binary patch literal 282 zcmV+#0pGz zfepkU3@71Kk9RSpW^%dJMMn??lGyKUM*G}jb)0i zzN_^qeyNTwst2+kMm~;D-J3kDI$-GeWCkio1*W=lPDy?P(RDD$35_PQBWWm; zuo)~3k**_G8vqizE~5pxV1P-UWwa!1hPGi7u*aNQg7<~DHNcpSY0|tMw;{F| zK@P((2;)ax^51pb*6x)fm>7zLB0{h+5V>C;v)|BVQ?KKMV<(=>BIpr`R3y1A{07ui z@Jb~klD+|I+yPG|pttMycoTp#Dm0-%xwYAK#iuU(EIlxaY|xVnHQ@`$nA#-Si6@x( z!r^$*$&M*H>kQ2)g{q-V0EfZevO?8UxtR))0->yEKIsX|<));v+Q{&Nz{7ThJ>#~! z2YBQpLQ?x}0MM`BNvhCB$#%K>{2G;`Z8s!r(m!hTc=bLqezE`n002ovPDHLkV1lqA BZtDO5 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/concrete_orange.png b/src/main/resources/assets/minecraft/textures/blocks/concrete_orange.png new file mode 100644 index 0000000000000000000000000000000000000000..243bbc8259d64ce6d21a74fa49700d4a26e0e430 GIT binary patch literal 291 zcmV+;0o?wHP)JULvE$;Mr3Pn_GOWVC%spWzo};n4pEDiEn`E zr)3edLeAULPDq3u%7fza7F>re%;a#{chY-lHpab;<^T?GTe4mrlvW#6>T4OO4vex; zAUAGDG$n-wqyLl;b*e zW4JL#kc$Jlbw$B7W@^67z!*9`-T&C1EsP;_mlY3}8?BJ2Bv#S$X>Qp)b1f@3jWNoA z_*2lRb|N!mL0Q?LUVob*QoSH0WxaW=j!}nlGad~5(}iHALzm+#f@uQ&0@m)y Uao}jJtpET307*qoM6N<$f|#Li&;S4c literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/concrete_powder_black.png b/src/main/resources/assets/minecraft/textures/blocks/concrete_powder_black.png new file mode 100644 index 0000000000000000000000000000000000000000..529daaa5da29c933d6952d683d2ae32c319fe183 GIT binary patch literal 480 zcmV<60U!Q}P)ALd{pT?%mk{y6hDjh*2mTl#-kOcp`o&vz=rDth_A@2;5-aWSN<_%RAyZ>zs(}y!Hc&*GJe3_r zS&NBeha_H|Pcs&N85JAEz>tVa2N@dQHZeL2KlB_y2f9IE5*E3kt3Y!~Yc|Xv?!6#H zwe7X-WsF3aMEtf`Wk>f?`n*?|&*wL2gxz=}^KwMaOJZ^loH7HT`~3@x+yJw3LNZjz z&5Wt!#!OU@^f2mqFg()SW(MH4{hSX(2>-XCMm}L=;^KG+^BI#5CF!3l!5}J38-4)? W6I2Dqqn={`00000%2 z+lt#T5cOY`w!}sfBP1aiIVKyjPyL|2EelJo_!eJD;;h?lAC^9p{#TC|jIpdaGv_iv z#I`QE`t**s^*0muLKdVdCUPb+9Jwsx^uBuh6S6I*EWm|!o%2^tC8q=9$B^x$u8g~A z+dn-11q>MN+ITrKUIbFte)Uu80i{fwBEI*lS4pS z*T0Qx060O0khwCGwheeQDj3hXIQi9^jeEEfMmtbS9;QY30!o=rCz2VcFQOMN3PHJX ztuhT4ne*f3+dtzv;|4Iq6Mzo{SU*A;C&)OEf}{~LLbeA6|7T;;Dc!u=_zFM+N-lY| z?vkv3aRRp<7*s1WGTP%0G|U5O&L{Y?c=qWC>BuNqPaujR+G6H_Qjn3l!_}-!oU|PR z+~N83`8)hJz9rQveU5k*FDGROZMr!)Ambl$HZu>9E7~tNZ=`aZ!FcxDGzg9~T+XbY zw5jJnRI!Mj1IYa_0lCy@3^$R3P)B8|c!iit)M3-OtT>&pW`T_dp=zZ2HGBelY!UKS z=0ftU>_xjCbChY3V4O}8qCp0G>XM6)XkUEn0&ML#9gXXynG*yIrrD%NWq=UCf$@WO uRl0tM<%rg}8>YiwuxET$1?e!Ci{pPi!!~Big000014= zTWjJ_6ot>vnTL@`5>7}$6vrn;gGq=XiZxV)d60@1w2C*>iuF?3nLZBvt@Fh~IPC1} zT5E4HtSSpn-^b?MQ&)kU)zoz;H+AEZ}hjP`_n5f1Fc`mj9f*$cM8-@YwE6U zj9hi*X_O5s%F@>szV`K0y51`EOf`1em*v%xzsxYAV2J@$9KXS6v1YJVXJ!2_?=!H7jt9tI8oVnRsbC=e7-! zLu?*mi+bR_G^}+XpUTRnE&(rSa82@qit^bj>|^VrTUZDBcNb<-wu#Jtqw2BgZ0kn9 z^i#|Oxe8J>-a3VetAZQR_(dYfFl`&jZ{yUo$Eb8_ImD=D?j|&_FNt$|%*}nEX1^vb z*?)UQNZyhh^#aKeejkyFpgJ~qD2CD@HU^bcG=QBSa>#>R0vBBuo(3Ue*LDtZ*#=IE zL5P$0qx%bE7a4-lWOs`{K(z{uLu3FH$?uETUt;T?XKq6sEMOM9h;a_`AtJp|jEoVx z_te{C9_a6#{M^^!Gbm@qHB}%vVO-E)H2@`v>}OAhQaZ{{d&6oU+t5oly$o~^Pdz?0 zT{fbHlC$Anz{%pKH4tj+5HU@0Y+7XVu^L_oFb8tiq_7HQznozpAeX)zx!KR(#Z*=< yg0nd^?6<^$1N-Jexv0hc;Aziw?!j3@F6}?BoCr^G5z&hP0000WyT5QTMNxA2c70JcVUDa_Qn}r9+MXk^DUw4zud#%`T&&rKg(qH5a`a zpJTJ4n#W0Ms_xszN5q+nUw_BpLXATcdeWR*+5UV|$ED|P_`F38=jeK6!^ak_=%~5v zuS;`tx5pOO9XFnHFDFy8dB`Hp9l=BDv8_zN2kSx2XG$7+tjKt-d+Bf}RU2quMItv$ zbkbY@f+DW^t5*l>YQ8`>?MteRl;K#ZqucK%PFnU-hmM?Dw5HNfVNj>qF*av$rF&@M z#zkVZ?UWfg6NuD0u6(?#P)}(~w*T_>24euAmY-@^K*?gQbWq&{f}jBp>_*B>tj|&1pLA2BX1KzbqrYbx~(ysD1caON3k_ve-qJV&K z7HFj>q@J1h@{3Nuuta3NM3Z-v)GEwh-`_`96` zh=;3OpaV^Tvn&G81!V*MC@}}uSxOz1?M7?CQd{J$#*124b$OA1%^*O-q^4&KM5Lw# zIZ&cyE-)Q#fH}C5*+eo)4(VJVzDkH^7PEvQv%o^fYWw;}P4nhH#}o)_zmV(2N#WQI ca%rLe11cg_+59^~*Z=?k07*qoM6N<$f})iYt^fc4 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/concrete_powder_gray.png b/src/main/resources/assets/minecraft/textures/blocks/concrete_powder_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..7d5a4d163dae4e52b5ea321f0dbd481600522c72 GIT binary patch literal 493 zcmVTh*wE02z=$AtI@|^_lJ*3-Ru+pG1pYr+q6uxe=HGPOf{CO+X0t7F>~%k9b^Ie+8xPQpVF58qizIu=isbZ2((|HMea?mps6?+02>u@hISyncN(0tuDnbPUl8C=S_ zNGLKA(4^LBH>KUsCPfmqPR?7{_Kv8J#X>W+%4&jx)fOzlxS`00000NkvXXu0mjf6UpLd literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/concrete_powder_green.png b/src/main/resources/assets/minecraft/textures/blocks/concrete_powder_green.png new file mode 100644 index 0000000000000000000000000000000000000000..c3c78ec9469ec5696939ae9d6671691db1bcd02e GIT binary patch literal 615 zcmV-t0+{`YP))>3KcC)(y4=H+K-;=K0mLYs*V*>pR$-@0xk}c}aE75iKbm$*%X<)^2wP=C zn7ym#+A22Zh5#!PIshrz#b|CXMT*thv}4w)DN)5ui)d}5;Hnjt%V4b+X+?DOy-z3C zOr;dA0t%e-q*XkxoFMdk9&nwc3v=jrxi{A?>7wqIG1CB;6rv*3 z+6?=#)csTAK4U&8B_fkb<#TOQtn<4C4d;=j*DTpdq4m*Due-5??ZAF0^IMr- zF0K`k5GY6ItTu*>gHkU=^2cAt^6<=+{{H7hs%tu&f7A3Mo*R({uFMQ9e6F^ilwevO z>N<2hSQ}&0p#(}d(eZ4%aZfRnQcM$%`)J$55S8*Z`tfzP9xz|fPDx?C|5upHHV3Y? zAH8#A90F^pCLc~w0k-p7hdJqe)=j8Qi`D}XOy5(aq2(+D@p)>8$Q_hLwI5yu0 zKmGC>lcBY)ICO8`r(Zso%ln|K?ZZR<-?X27h60seUW#}bGeMCj(+qALtILolj>^Dj zD*`y~ODYAnTKjPT+Yv^(YHW%r5McV*ls7Hao2df`@1rLb?>Jc7VEHX%<3-U)^wG= zOpLgxD{WV5j9h!FmK#PX(anu9&e~#pvk3u&9s1YTE>L_d%dYmAi%>a4NS?6$v&NVy z>*4l!A1Lwk>0B1B?X8_5%poJsjeQSTkd9XP$rm!$Z-cwnd#rV?RscsgNq=w63k6%&GKR(_VYzp)3ri zsHp0IGh0Dy8Gs^-10000`URB(A|ju9BN2CqZ0*2Lvm$NhX`==|8vas^a_b z{f8ezM{RA=&ROwL!?NnOL*L<^)LBqP01bVWrwoL)KN>D-4J1pn~Qa?L|W*C-}2cD;oP*NJT~0w4g}&MC79Y_}qy^Qy}5^p)Q}G$u!VelBTYTS4n> z<*;>F7}AZeBmeUHw`pS+DD-43JU&k5*B{>89dIkA3pg{p7_1A%RxCat{Ca=c8{e1uKXRNh)wW+u*mnSa@mpOF-mZ-OpJInJ8 zTI9x)8uRU$0iijQiK`mIPuKnLf4B3!U6VEznwpZDLr=RJR?SJ?zGg29>I4P T)HuKG00000NkvXXu0mjftdcDi literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/concrete_powder_magenta.png b/src/main/resources/assets/minecraft/textures/blocks/concrete_powder_magenta.png new file mode 100644 index 0000000000000000000000000000000000000000..054553d38c6f02db1f9f7b78dcbb13196f6d442f GIT binary patch literal 684 zcmV;d0#p5oP)?w`qfOT2Fu=)8!+nrKfB<+YXJgY`Oyf*P(#3wg+oEN?9E^q#2J72Xs|W49SG~dz zGsZ*|r?-=z+;!@LafiR&NbsS|E6#auu4Ps*!G_yVuNwfskJq+*sF|Uou>ePaz_MAA zo9e4&wQt{3!RkudE*i9nLZgj^}o@dx$0AluBU%CrP37hSd3E`pNtk=39a6&)= zoK{S-Nlzr9ox0dy!)xqqhiJtqp*O9z_2U>vH+wsdvv+w@@xU-Z?WM(O!kIA65>C+m zeGehPgdEl3a6IxlUF;sT8Eik`9COOQe)*bZk^`C~L=b^C%k|=?4@H`x1f?+bAdHN8@0TkJZD1V*dE^bJw1yyY00KD1LhSc)FZ1z*$q6 zL0`K|wQJy?zy84hVO-wTZPZgy7d|?iU~{toL|Nvuny@6M8xY47Bq(usv0c5KUvMB; z5;shvnbZ%}G)*S*RHSsl%x$Q6%>_d#K@NCz=sq<&9Sw~{ZVMPe@lZ@*(q=gA4;8Nf zMTYC!MV?0;SS{-qL9r?8td1VWBzhYbb-j7o0t1tTu0B7>R3wa^y7T|AdSW(> S1^18u0000d_$bsM@uSssJk>$zy^DuZa| z^>)2Y^NQ-_=@C;|HU;OH5=!Dc=BFbD;;f;JqZm9^W?6Q5nqU{^E`*?joQE}m1RX_8 zV8@$_$b~34zs=jWS;qN>%HrXbU?|@m&2Wwpalt_nAN2J2vBPn59gI`y||S8dv(6cG|O08%CY>F4_LX&m))H)6sAEukv7 z-j;cqbAeDwAf&o$SBFfXDIxp!Kc62zg`uktyI@WE%PUytMF@#7e7#t`7`H4Qv3(7h zL=0_Gamg9sVme=%`&NJWKvh*ErdTpgag5>J>9-{6i0|e zgn1ATZ=l{4((z0sUUJC^^57R54RRK9MfH-Ro@VnuoH%l;&7T2000000NkvXXu0mjf DM6@;t literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/concrete_powder_pink.png b/src/main/resources/assets/minecraft/textures/blocks/concrete_powder_pink.png new file mode 100644 index 0000000000000000000000000000000000000000..9f6a6bb7e55ef7e5849b049d52c88c3645bdb208 GIT binary patch literal 714 zcmV;*0yX`KP)^j`$ESFc=FsC-1q5iNXM(J&Z5AREat-%1lsbA32Dg#33m)vteMY1U?d$`%+f#J~=N zSWHarBZ^4KNyJe%V2hI=?H@jR%zNFv!a<6wDfnlZc>ie_irpVeI7l(eZLL@=++~Ic z?n6u&_rJPD3?l}NbG-iHXBzP4x%89J5$sRjRR2DSEUwfkFn}E9sj!{#=c8^{cB+LS ziA>$3^Rcy-dkmBjBJw9$G8$=R=pu8fZ;ws2-}eVS$N>~MLa1hFa(*slhZ*(W->9N$ z*88*1Z#)E>^>c7B;^Ul70xx3ZyHCC$mN=ta%!>8amYrN}hu*jW>G~9&PiAi~PpcP^ z#ct^3uJN)o1rLiPv8@_kOsl72^2Ig3TXfH_=GavCE7j^KPvlD(U(bhHL2@<07PBNm za-g@fFc(0HlJa!_IQsH#U^t!UMrqZ`^5IcQiI+eA!V&cQhNOXMI_xl=rD}IzBGiWl zS(IJRR4@CY_1=UOd%!y9fwwsnTm+V47zhxcgt|%xK}dbplqG~gK0kAVmB$k}h6!hP z-+o>1i+C}ki-=rJEntIs6jL0KC`|gHKM*a;qx1n#-OI8*{{E1^z3f(7+Yj!qj~Z)o z7K6{cBrMB48)rUHpq|JxFj@!GTz7i&&rIQ?U81pdn_ekDDq_2nAKCj$>`lxYqaGw@emxA8`Mb*Se{Nvk~RMo wNPz#@MVQ9%bnI1<-p1py12WZ*@9J&ma$9`BAUu_|2YFpO$BylhM_4Bu4gA(X+K#rUN^$Z{Y zI5MV{*h3y9N|n=WQu1mRhfF zvl@G2Pt(OJ6KJQJCq231ZhqxE9U5f^*vb`v1VDrOce?|?pZC{Z`6vCTg*j49M2Zb4 zy1pIj^YZi_c7w|;u0PIChL5f|gIpmN@(;`6j!-(Uz3@R>E!4}l0|-xLl-k9(rma%p zFuwa0fc?3?rAC>2E}0L8hnxn5qmr#w#zmsgI|-C~UXfb{QlUKAK}*z9b1G1JKj?OI zK2ne%M{PMn0F*)l@Q?UWE1lE=y~h%HD)C{QXL%{re_JlVXdXx8jB5Nm=t;{_p0&Vh z_^Tyyk#W|`5kqZs(&t==D*anGCdjAox`9UQy~Wxj!5;U|9Ddx8rJ+2((UGPRbl95Ji`W zTjZBluamwmj~!C}BgQ)~b~@5>fU40q|sR`H~BXwEzGB07*qoM6N<$ Ef=tC5?f?J) literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/concrete_powder_red.png b/src/main/resources/assets/minecraft/textures/blocks/concrete_powder_red.png new file mode 100644 index 0000000000000000000000000000000000000000..7612112eaf6e1e416f8dccd1e07b2d9237789941 GIT binary patch literal 565 zcmV-50?Pe~P)Z*(d=(KtlfR9^Wx2aE zbLN~gQ?*I11dro0{A=4k(HNtn~e;Rif>8oa+;n9FTA+IBSu5% zd>R#@1gI%ypUCh}L(Y9Rm^@u%s6wndoc#U}&VZkK*k!-13quHi^5@-avX9;LqnB~H zXut$g54GdN#+iD7=ltIdL$l*#X&a>y@=@Jow?Fqg$C zqUpfA`{Ddb%GB}nxtC8XlODT?GX9Uf#G1@as!1&7u!f^3=-~-4G8Rc5dwF63ix@oE zL&dRJaVN|jyAE~!(oL5V{>>QOjAf){wOFuC)^*mu>e>+o?65KV00000NkvXXu0mjf DutoyG literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/concrete_powder_silver.png b/src/main/resources/assets/minecraft/textures/blocks/concrete_powder_silver.png new file mode 100644 index 0000000000000000000000000000000000000000..18ebf59ae6eada4f2291c10bd10afff171e3b601 GIT binary patch literal 567 zcmV-70?7S|P))(`6Zk!HK@tT~~d5y=$!iPm{N{gthnDhnCxQ9bqZU14N&nH(`uI1GB0sD~j}V zTKMF8w|hZPj2$d>ouR_}wry+Sy;Ump-cYn{X-t8<>vajCl`;YOoi=?t!5SSd4a_1IB>C?VJH7()8E)d{pW{6JF_Sn!IkLlv{{>U~)5#0hSnB zt_0a3&RR(hgn$zikNAA%3&xlV>&IglhVBt7vyg!YknDl!D5S$Vy(~UWH@E`E$+C~@#K^99O>qt>>sA<3?yDduzg?mz2RJ`eUkhX)7&!->E|C>k2hizGM*l4uF#1k zz^EmjICMNd`@MX`K&jM@re%qw8G?~Tf*$ZZ1q6?y{||pi${8GmxQGA%002ovPDHLk FV1oV;3|#;K literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/concrete_powder_white.png b/src/main/resources/assets/minecraft/textures/blocks/concrete_powder_white.png new file mode 100644 index 0000000000000000000000000000000000000000..35ae8ae4cb5d2241780a72a5e0f7f99fd7ce0ea0 GIT binary patch literal 555 zcmV+`0@VG9P)0mS6o&o&kJeFBO%`H|!C->{vxFs0CKr+Bb1OxN9Q*t$qO{g`UG05dmbR`ze4giJU8TzErV(w|Rn~=Jm~Xc~hp)cx&r&9-vUQ`4dA(jd$7uqHmu=g` zzVB@B_is~GOuMdkbpw@eTi1A)*LBPCymF37Ka4`A%D0_VJlitL$l08x`Q!6|o)7{< z$opZaTzx#B#WYP>UW9Q(cNaoc*Xy?N!kV>?+uOb)sclk!7iz$ghi?`5X@5E}2% z;5(LGZj3Gri4|pu!Zw7M65F?BndZ4^JG5p$R5Sq3@ZCT zTb2b#Ah^wOZb~K`kw+Ltl8ur$;HQ)#^3x@ub#`bCk^F{XAPE;#6ZA?CjG}d8 z@PiYYiY0~s_I|%Z7(%L>)oFwp|jSuju6h?VR2v$#*%YP}$sV;V0mk$5{002ovPDHLkV1iE?1Nr~} literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/concrete_powder_yellow.png b/src/main/resources/assets/minecraft/textures/blocks/concrete_powder_yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..74429838fe66e0c3340633a81600fd611f594c16 GIT binary patch literal 657 zcmV;C0&e|@P)s@6#ah&e7=ouj-B({hRn~~h>kICL>m_w)qkP@VvQjv@`5>B=PDZxgchVqPz>1i zWJ%AE+!}@6B=mQ}+Kq0d6w&+K>>6e|h864#ho3-q^XnDY*NWUNSNR6&~G@TAcq0`0<{L09Wg}mjLOJX(x>l~BHTz(EmxuwC0P&6Mm+x< zLY*wp4P_AV<<}o2M>j2x&+>fEidVA#wkGRON2MSH@R@O~@;ot8J!_a97qMeN>Ex8R z6R(h`Qy9+(kou3RD;pZ7|E_B2q6;!Q);5@dYg6KCyT{(2&&>lfdKYl8Z+~aO*HTGN zX};^N33DWb0xe#2TiG^P0&-TT(Ff|^kNXeX_2!tCg^EhWIxfZZZ1GeJi1#ToQ*!0B zT9;wH5=^%fHXUPWErMhAxuW8PGzP`+aDg90w{_#94+pUwm>})bqmm%{T>w*@-F(&4 z?Sp+ES)z>;@}S4*_^(pvlPvQ~PIbN9Xuk)dy4KxFdpRy8#6UDL+}VHry#MvbrbT2l zjIUJd)#i{W0Mr=YUuPjm^YjdaXp!;s`zLfu5WD&24E197lfahkztGp7$u;I6%1eBAo)y% r7Uu9E732O)NrnD{8upm{vgZE*IUQQoRQ?N100000NkvXXu0mjf;)p$r literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/concrete_purple.png b/src/main/resources/assets/minecraft/textures/blocks/concrete_purple.png new file mode 100644 index 0000000000000000000000000000000000000000..bf90f745dc94b457b83ffed0180a9a1b9f634184 GIT binary patch literal 236 zcmVe4 zi4njc2xF7h+1gH}?pi)0;9bvxkeC2{_k6EmAL8fgUz?orY4?)q4M}pN)}^dXkH!eB zn*-8c=Mx>}L8C)pfJL)3IAs%-EkQ}i^(`6@b4^(~xc!Bcx6Oq6B9&l2N{`y283$kp zP+S}vskKoa;vQvyi4(J=fZ#QLCo=5;`-*@vH#dzTB;VLTn-%b8z&X}9@$^DjNYs6L m7?tt_ERj@49+%MOS^5Ej1R#4xD+qo70000$D z0S<&P2;(Vp`>yDhZ&IkmTtb#PC@oaGkK-D{$Ji(D_ncmz`;OETa~kXR2^avaI`Bx@ zDLpiYmTZKY9hNPnp9ZPCUQFv$t`2su1>}yL;T4VH;)Udy3Yf9(l8I9cnIn6~C5I-7 zSE7MMg8k*CXws6(GS}Hznk|9>gv~fCq}hk4O+1nkx)uk07ggqvFt?R2Q((SN_rsQ&cqP2g85R19vqc^Z)<=07*qoM6N<$f(dA6#sB~S literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/concrete_silver.png b/src/main/resources/assets/minecraft/textures/blocks/concrete_silver.png new file mode 100644 index 0000000000000000000000000000000000000000..21d57aa12d6b4d4b86b1e6c01239107d27adc2fc GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Q#@T9Lp09k21RonFyQ%g=CH=Uzt2tg86(&2!h%$2%5vmVW064(NTyTFsxOyiIJ8r=H6)%@to>NIv2| zGUd~>HjctQ3!YDVy4^xhab0l7(yH$tgZUUYHfCymVD#Fat8u*IYzokQ44$rjF6*2U FngF^{RLlSX literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/concrete_white.png b/src/main/resources/assets/minecraft/textures/blocks/concrete_white.png new file mode 100644 index 0000000000000000000000000000000000000000..e2f7f41d8c9f4131b04e6410464d88d26a893945 GIT binary patch literal 217 zcmV;~04D#5P)Nkl$D z0S<&P2Xj$31LY7f<1ATH~50BiVljvESB1q{=Z2E-`-Nvp2Zt z&%$b*9&JSU5M5-@!u5E zM!+eaWM_v*!{%l+NwZnKU5wp4Mkn()&fOM1Z??9p;u1(^P&t}$Oqy?lb0ghDm_*@YiJP*== zgvx|`g)qgDj3k{(-^o>)WDLNHwa@~O094WJaRWK1`muqK@F+sc&*Q0u(i9B^4%oO< zQ-kXVjPiz*5bItu5aX9gdcLK26z`h@ffPO<Aop!n zzQwcdG-`8h_;l)SHkMqsvEcXEzTf)>+|BXBVfc3K z2ECSFL4Bp*F9Y@vW7nD?Q1+MZRtQ?JmP}?P$y9KEx$SYXSMwkUEY41Ous_--Ur9StCm9w63$GoJ{K+tu+E;N*hl!Oz5RTl77)0)jEdPCcVqkWPHW7!AY@M8Jh| zDQ|`dD2aIm`qSGVHkUoH%}h@O4TQBy(Gw7p(co)v5T=qfu0Y^9`7#>7E`rfPQu!jG z|I8fxH;M9Vz|4Ok?(w<5A7+3(0kI$ZS*LF1wc0v#v?R)@Bt!#XR+|CENZ?p0Z zoMqO%DbAg}Gdn-$?9>+LCd2ppWr9v?A&g$m!`;?O=yjItjPLhzkbvA8AAUw3w_(^n zFbmqNvz81vQy9N&RzTg~dOPvb=6WOPtR~q6kJr0~v!j-QOJI3^%E0+_Z!O*f_+o+o z-PM87nLsg55hMi&ZZzu_z^VW=@O?cTMh%2S13=<)zZ)$DBp}qrz5?CFtt`uU_8Rc- zbx1T&MUv@^y}#Nv{JClWIasyc9?*{CN=!AF0000Q@L+58}mIA|jSHc<|?r`yHL> zZN$Tuv&@-q&NhmpqJ#jWp@=2JY+zeJA5&>5WgQYwV0@e|QRaAo8a)<&uXS7)Q|^EJL>*B(;9`gOKK^))8C-3Zg&W|%J5yI9`DyXkRvfOS1omzh3O%bW>k zfS2#L`zR8urKu(dMLRtbuqPVrtVcR(S%L(2@VH_!7SrqA5Zxwv`0#4UPwCZmnhUsP z+8}^GlN^%-@N))WfpL@Q=0oTR7*MU0ing#m*;YlzGfhl_EKu4X0t7}oJTw<{(?qM2 zbzr)=l8Hew-eBi4MFv~~6C8}NGZs?wWVvhr5T&0nSQNY}x-A+9iRSftEv#n` z|Cs{DDC)jiY@>IrCwL8h1VRU~Ab8m6W53))ECmSWJL@=r7Y9?wl>vw|_z~;#So2fB zUVE#{`2g&Y0@v{nr8j$7$F^d%RkxY4C$an{f&dVo2~EYw05OTDt>3f}BjV*0@GbRU mb*A1*W7;c_dWbKr|K>j@+T4ftB_Nvs00007i#}v1^sy!5@HzGkCiCxvX*u^Y3{YC+=OUnO8ToG#;IVLUe iRA@3d=&*!^nc>*6kXru0f7U>^FnGH9xvXzopr0RO2t-~a#s literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/debug.png b/src/main/resources/assets/minecraft/textures/blocks/debug.png new file mode 100644 index 0000000000000000000000000000000000000000..8643d0a18d6e7a6c7d539f4ac5194bfb8bd33cd8 GIT binary patch literal 560 zcmV-00?+-4P)dXb*>*!|%g7-{vXzzPFhnjWbGVeYUk?}W&y;JQ`u3>r#pn6z+c(SbUr&~0 zM&-$}%$Rs#TyjEkYO*+4k%Vm02MWG1HP3X+z-$y_A(o*G71)7Vv>86%V?puTxN&h> zvdX`us$_H0U*E}=->2jmWp7yfm5Mx@L~XAqHi~MG;WL1KbjN~<&bV>g%W!{Ma$4At z^w(F(+p;Ye+0jB(JJk=VeZk4kH0PswKegg~K_4EW9j&q8P*dDoe?7eNJbaRtFl=w~ zM)I8OXf1WeXl&rZdD>d&yhYD5K7B+UKA{_(XvGEbWsb*!=ISWis0({9rD9id=y57u zPSzz4$}VlDt&)yibRD3thA;JKLQ6k)@A0~op>sHa8dPH!w#R}yxhTEbl8XD1C)>lD zr^3Pgsk}8=E_<+yo)z?$GOz|YZ0x48mE8>-so~5Xu5IV(Mh45VM*N>EW5N5PR9uuS zX$o^Y!=1VCY)SZgQCcuh_HiOVCSeMuwNQA3nUxgfm|x10rL11Sh9b7j;&35Xr}1kF yCdUFJQhD_HaO~W0d_h<+KAbZ)TsJ!WInp1)aIu56Iuerb_)_pK8A`#OL?RMtw*+U2 z)06YA;KmP;mevYB8si&tK4!0I7_4AdJiVd12Jaz8NXhmOaJk4ZO8~wEbp^gk|7_3*%T`;yA7nd@{y=+wEwQ Twyj)J00000NkvXXu0mjfaK&xh literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/destroy_stage_0.png b/src/main/resources/assets/minecraft/textures/blocks/destroy_stage_0.png new file mode 100644 index 0000000000000000000000000000000000000000..f65b7ede8059cd0ea3556dfd227dae3cc94e56e6 GIT binary patch literal 102 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`x}GkMAr-fhfBgS%udF&F@k+zN zyoR-F-`02W%&@KgR`1j%@P+Bbgo_z6Z-Ba9wf{B_xVJwAsFA_b)z4*}Q$iB}0Tm-_ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/destroy_stage_1.png b/src/main/resources/assets/minecraft/textures/blocks/destroy_stage_1.png new file mode 100644 index 0000000000000000000000000000000000000000..7c91596175f6affa76e89d8bc8ae68d47f2001b5 GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`R-P`7Ar-fhfBgS%udF&F@e0Eo zwi~x@{gaPiPCGyEuY4MZ-Qf>yjAsM{e9IJsK5;oRf4FHkOK4>Z1H%#KuiH-^y1pN1 O3WKMspUXO@geCyTuqXQf literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/destroy_stage_2.png b/src/main/resources/assets/minecraft/textures/blocks/destroy_stage_2.png new file mode 100644 index 0000000000000000000000000000000000000000..dadd6b058a05db7434c5d13d08c3ef4abceac0e5 GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`PM$7~Ar-fhfBgS%udF&FQ9?Q) zJNtKifh5DDWMh%#jGNQXw`DV2RIuZiEYe}%ydhJ?N{pkGHJ4Z6NzI}|2`o=o8Frb! VI~r`&e;Q~SgQu&X%Q~loCICB*CZ_-Z literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/destroy_stage_3.png b/src/main/resources/assets/minecraft/textures/blocks/destroy_stage_3.png new file mode 100644 index 0000000000000000000000000000000000000000..52a40b65980cf4cea4fd17104503619b2513d833 GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`5uPrNAr-fhfBgS%udF&Fu|PT@ zJNx(i9A<}E>F4M9&SY%4VZqCw=@iCM#OcFxH#7psY07l^#%HGgkk@5~;*Ud32_`~a qoVO$!v@dj+F@!JR-MGhrhmFC_?s<7>TdpP04hBzGKbLh*2~7Y1KrPt- literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/destroy_stage_4.png b/src/main/resources/assets/minecraft/textures/blocks/destroy_stage_4.png new file mode 100644 index 0000000000000000000000000000000000000000..e37c88a2c56df860a774d2bc3609cbe1913d7355 GIT binary patch literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`NuDl_Ar-gw20L;cFyJZTKkfbb zMvoi|=RzL$YK|>IM`wtHe*L2gTe~DWM4f D1ba1K literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/destroy_stage_5.png b/src/main/resources/assets/minecraft/textures/blocks/destroy_stage_5.png new file mode 100644 index 0000000000000000000000000000000000000000..9590d2f78d6f257ac786dde8067787e753458641 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`1)eUBAr-f_PLAesP~>pQOy%i3oYdGjFtIDvwNM5=mnXoO))-^SvBwdsv?A zyXY4Zx=rAv#;QDBMp0X-ohB1yXZ23-Ym}^DNm!=Kc;-YdgYl=A#<8|f@4hg8d`Wz7 S2~!BrZU#?RKbLh*2~7Yg5Is%+ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/destroy_stage_6.png b/src/main/resources/assets/minecraft/textures/blocks/destroy_stage_6.png new file mode 100644 index 0000000000000000000000000000000000000000..fb00ade54631ae02978bfb3fe8f8d5b61218b295 GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`6`n4RAr`$$Cpq#lC~`1=P297k z|Lr^vsUXgE?EDh4r&?T#_Ro2$r`+Vvz~JNIvVl3O!HGfOfXsrqpObwTtc+?X4hoKR zm}`CfVn`Xw((s8<(G81NpI8%p!1G21{}%75WqaARK3$iyn5gWa{>kLjs{UAUUz4JO aVmqdFN2{Y(|J(|61B0ilpUXO@geCy;8a}}Q literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/destroy_stage_7.png b/src/main/resources/assets/minecraft/textures/blocks/destroy_stage_7.png new file mode 100644 index 0000000000000000000000000000000000000000..0b40c78914707a9250134048c0c94786701ca1dc GIT binary patch literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`t)4E9Ar-flPWBXPFyLVMm{_UV zfAkb1_iaVZuLl&lZ4Fe!1dq=*$m=moI+otB`*=^wn}%ze>MD(EJ~0NIn(0vy>&?Hy zDMB>cH{@+dz&q*5lh@q}Op6Lv>rIIkauAptBD!63h4-ocr_PHeUhUt;YHB34Qtk@t oi(^MNFYOGu6T0P(PyRLaEp6+{S^rjM03F2O>FVdQ&MBb@0FEk1A^-pY literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/destroy_stage_8.png b/src/main/resources/assets/minecraft/textures/blocks/destroy_stage_8.png new file mode 100644 index 0000000000000000000000000000000000000000..c0bf1decebbe2ee1c91984ea7b08cd733158ab92 GIT binary patch literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`vpiiKLn?0dPD literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/destroy_stage_9.png b/src/main/resources/assets/minecraft/textures/blocks/destroy_stage_9.png new file mode 100644 index 0000000000000000000000000000000000000000..e3185f82f2982b4a12e6519b4d61e44dd8441a44 GIT binary patch literal 218 zcmV<0044v4P)J(R>Hq)$ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/diamond_block.png b/src/main/resources/assets/minecraft/textures/blocks/diamond_block.png new file mode 100644 index 0000000000000000000000000000000000000000..d8663d36535d58aa7f52881092fad1c2b648899e GIT binary patch literal 468 zcmV;_0W1EAP)3SvkQZwuo~u0n z3S5PSdPAZTk*q{7Z2QuJaW4X>h9p=6w3^zt(RZK%woRzp zBHkEe95}^KT?c3ZN$SE2BtulEfq4G4=pG_^_I-BbCstd)#%#I3Q-vJU#eoq>MMS{= z)fEB6dWaeWaH*3~w@wR20OY;zo&YgiVAU7^Sy!9`E*^yfM!;N8CEHK|tqvl3hyC$< zhAFt~3TP#-8|>9G=08(^Tb0|9??iPDWF5Ydx%KX zG3ng(=3$JJkGBrVOif-Y4sd_R2p|{)<4jhQES60nfeJ*AWsE;t+7Xb=Jf0W;0000< KMNUMnLSTZ_H_6ig literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/diamond_ore.png b/src/main/resources/assets/minecraft/textures/blocks/diamond_ore.png new file mode 100644 index 0000000000000000000000000000000000000000..735ecdaa99b1aebd7a6231e0df3de74691bc2378 GIT binary patch literal 262 zcmV+h0r~!kP)Gt^a80?@s4hj-{dA^qPhY_6a4y*ChD7+fb zqwe?>=sp3KK{Zd*i~{rp?1_PQ-qH6ZXU5^1MRN~;)lTL(>x>E@FLgR3?!Z-nzIXMp z!!HXqZhI1prX`-~ucVba(;@lHSry+wX7*Rc)hNR$uQXpRD>uOR13oyM5D0-qt^fc4 M07*qoM6N<$f^{iwX8-^I literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/dirt.png b/src/main/resources/assets/minecraft/textures/blocks/dirt.png new file mode 100644 index 0000000000000000000000000000000000000000..617d353e0d67a14a2952b2a98375eb8a50b97d79 GIT binary patch literal 266 zcmV+l0rmcgP)7w`V=NDEI+d2EruJ8Nt`?O29*Y((K z=DVK`tGLh7MTtz%ds&v@Ga&DZ$;xQ1!Z)iihj}Hm*4l8eo1~Im3;+ie&}VWdpbDk0 z+*Vd{tJH?~A!2frcub(;r0KIVImhR2X8sP4PM&T#KQlJngXEsPNu_c;# zj2A0tbfmyB_f1S^g6x^QT2YWaZ|9A0rZL;l$|NdG{#j@PkUL^d5f-%2La>z-Hrn_Xet=(hoVjsi za+4IZGtA@6Idj)^4lHWB7URct|3g(eQN=y3IV??X5YMrcX4wWIt~g7!W{xFTf2kdFd5#Oa3csI`GyX zfNbXcBS|$Ja5MY36yP$M4V@Qf4A_R{EqqK$$g<4!^59iD=VHSjZr~ve#yK(0NuR`Q z%-ZlrC#TctT!YkgtQQ%-Su@dWmgOCQpVVF``@_0s^cG$8^)8e3FG0|K%>pcWEk$l+ zmg&+P`02C+0g>4FNgrgD39C5?Y)^yQ!r?@Q+(o~Z@tgF8wSIrm0)YPy$dOjPzbyC# X3J(faAy9Do00000NkvXXu0mjfJz>F8 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/dirt_podzol_top.png b/src/main/resources/assets/minecraft/textures/blocks/dirt_podzol_top.png new file mode 100644 index 0000000000000000000000000000000000000000..60d1361c662e1289be05e1e7c43c99f29194b056 GIT binary patch literal 634 zcmV-=0)_pFP)fgc5cOYZIPThs1V^BsY0@UO)WnTHn%J)6CIGR zyD{{zT6t&Qn>TO9PI;{5#hEMFsg|pGLoT{XE>4sLM_PiXT2kEK<}Gsy}$Ekw?i-=(!Q1-o4({A867Ga?J5KQvwkG=u9oGAmJsjEB}v>?k|XZC4?Xh{q3X-n zlK{!lfsz{#Qr-7wEt&VUEKn^i8j??UBsjFhEMOGmV7~=XaBRV>QUXv7UAYNdnfh9i zj*?5n!pBO+2loirCrS7a?e8>c;6N>1O!p;7}74m`gPed zplsHVs0RRA`1NjR2v{W860opSv~906iha`yPT{(GU`T?tHH;umf;lvl-)z$%kY{~v zy@*WZ9b@JPNTgvbP#@;KIrskgaeYw%|1$r^@}oN*_EM4EPs z0FyTeaw6P=7^LB@HH(K{ts+m#MMDPIg%sX6KR3S2Fs9FCQ&y11N*oXGWV?wxB;dB@ z$W65W?4qQ9JqyI+HxVsqJ2QU|nl?l$_6ID9gvb<+W79ijnzlIXZ zt<7R=vL&c1kDe&u7Mo2hU}Of8u&?Aft650&ql@x=hYg5)*&p80k+?ify%yB#b-ABRCbE)q90#uJ`UbIB4DEIs+wB&eP6y-h7=yt;u;1@7olene zwQxF}a6BF{91bP6*=$O+h9&Vp0m=9Kjo0fXqUCb=0q@8$=5o1UKA(fhr3IFHy(0*dIv^dORMo z+L^VI^Z6{Aa5xOZCu9E_XbWz)n}BA&90y-06nuknx%@?{m>EK$knC-a;7jm-m|Cs& z8K7pOfI?%8fP21xZ9q+_RPqhjw-Pi_gJ3X-Kp^mCpe<1&|9}P@pk}vQpaDU#&EM~L zY&IMJC#r!h)?f+=3Vu0i_z6w5S`|0jzz$Z>M2&b}tyX>ojYdP<*pq@J@q4!KJ{541 k90uL^w-vmz@gGOcAHe2ap4p^Dx&QzG07*qoM6N<$f+F4DDgXcg literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/dispenser_front_vertical.png b/src/main/resources/assets/minecraft/textures/blocks/dispenser_front_vertical.png new file mode 100644 index 0000000000000000000000000000000000000000..9913188741d9f4761344c83f982e6044acb1d480 GIT binary patch literal 535 zcmV+y0_gpTP)2$(ovq9lSqtQSznM9#b zfZy*&EEYqj(-8!NL9v%gB{_NL^Z5{sM!yM+MkB)EFb0DGB9RD+#Uf6plVCU;qFgTH zf6zp3i4o zE*H__Uo9|utyV+5UdQ9{cpqcG-Kup}k{iQdM@xigq!q9eZ<$jtnv zjoYYJ@;1i5!R28fHHpXL(xRG#cpD=#U$0l}_j@^+MJ0N@Ub0LKoX_WS{*3Y0kLkD1 Z`42cE0;^CV6%zme002ovPDHLkV1j^#`t|?- literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/door_acacia_lower.png b/src/main/resources/assets/minecraft/textures/blocks/door_acacia_lower.png new file mode 100644 index 0000000000000000000000000000000000000000..ba1bd2b8a5aa2aad47999c0f8424f6d96901a70a GIT binary patch literal 543 zcmV+)0^t3LP)1McfdoJX5wPc}k^mQdR$5S74XADM;-N!f4SqJDEfH|oZI%Eh zJr+6$>%`eERZ+wP03gH9`ex83B|z0j?i{TG^aGmTl=v?IdlrQ?s($Ru*EB$Iw=R>0 zi{d4~Oj(iym@J7Tcp9l;08i?)*FuM`9P%i!zZ*hBc8wl>9#z16rCtJHat!$J)l#q} zS8Cxe02Q%d!Ww57pePEDaiTau0*FS!0X9uE0IdAnl`pCMsaCaaOP5L(0e4;p-L)$b zD+3^^9t|K?1ZQIOyytmTvobEo`-GEl7|^puBkgol5M~Z*<1#@^Xa>Ns+dy*_s(WD) z_y9U=)nrhpEsy)di~pw$25t|=!N2n+Bg64!05U^Bl-O4o$E{#wFb=LarsK|vVb{UV h)1^t|Gilczv2Ov~jotSy)v*8o002ovPDHLkV1n(Y?uq~a literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/door_acacia_upper.png b/src/main/resources/assets/minecraft/textures/blocks/door_acacia_upper.png new file mode 100644 index 0000000000000000000000000000000000000000..9ea5df33481fd5b87b58d09ffc0c7cf20bbba264 GIT binary patch literal 525 zcmV+o0`mQdP)cdYnN_|Qe1w^p_0WC5NiQ=k^d|QBhE?BVeullq9%ql*N=bPQc_=Yd zP0^kTIu;*J+si1{TS>RwPg_|7lpqpL?t2kOE7!1;b$WcCUK5C7?y{0PryYs4dF0ZcPml>dOx40Eif| z7m|`lmQel0O$eTeh9c|-&;)KS^+&7w*J;sa!40Z z20){Ty-15dZ)F*P_ppil{s6$|veT^f&W&gqh{%dcjUxjAkTpUIcnf?9ng#$_0|3zT zy8S3blL4_Q7k459(8>TrMLX+H6)NKap~QH$0N_7zw^%IX^Z6(g3h|{slU0{|(b%xB P00000NkvXXu0mjf{G{qp literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/door_birch_lower.png b/src/main/resources/assets/minecraft/textures/blocks/door_birch_lower.png new file mode 100644 index 0000000000000000000000000000000000000000..98bca06a3d714ef31fc5d0c42bf8af0476e1d041 GIT binary patch literal 586 zcmV-Q0=4~#P)3I&{}Zgg{#Ko^}KJHqg}X|%;lSTX1@8(acatrVLsZ9aPTVjf2?8e`x>^gOZc_F ziG!VtG-W%tET57|1u;9~!~OPCa8~0_urPUBfV^9nU0+0QBO#kblrQ-eY=8c!SU#IT zCizTFJpi58K_7nZZD8l?C+vPp%T}>l`1>#?pWP34GuT`mR84>PX*kLG2Z%-6FdFi? zqh@stLa15%KR{yU9(r$`gtIc&i@A5L2tRK`dU-&HCg!J?9%DWER6@H5U^^gWB76a{ zv72~5+N2TVQ{6gaGKH}ZkrrwCUCkALcR;}GaH9b9CF31}Fqv98?)InNTq>S`MI`gk z0P5%htUKeJhMJAy)BXY=wb(Br4+&v1JJB})eaj)7jd*tS3IR;Ny`q5b?rJNr?(`?a z7uD5vLWlszOG}hMvMrB(By`rh2IJ$e8obFEXRNQQ77jmU+c1Od#Cwjts8dG*Si~vq zii|Ty6QmaU6tw&CDG7?cJYNK0j1w4uy0C*-z#ElM#R<4&cC=3az6^zD)Q|jU3ZJqq z%9hCjOJdxf&?b!xos+E{ga(>Kx^uk}cW+e5=3f@*sFvMxtpfg*6Q2LDvlf@@%ViVr Y2e)b*hSFN7y!`oeeXJI(=By;7}U;k)u+`l4Hzk4UM8Do*zL`;^` zQB~Jg=N>+6wRR5L*;Bv&`kMyu`ro}$RLN{$RF^U7{UqWjv*~^7{OOhJ=PZ3_Rl_{r zibx-S@;M6hKD>GJ4m^9d(b{C1CK2iHKYw+BB&ueGE{eJDnEoyC1)Id-xA*))yku;c)Bv z>Jnv)62WeNbhWv(EQ@h^?(qJNs?tV(poS0#nLz}~7^SL=QN|cxnkFH%)wzh!s%9X< zZhw%OGD7deJkK&yMCiS{dArx9G{yqX&YBjv0wG*qeIzsO_D3+r5D_v{MB1z`M1=c8 z2awbBSXDQw%S;g=Gi0V|nnZ-mG-Zkil)l`9Hl+qoqr82)Q)sQ(zdu@*Zj52oCOM_; zb}u4Sbr2C6wADF|E-s#k2*=}{&F0eSG^;9SXDhq?(Tf+?#u#pQRCQG)A#x=%_1=v! zRF&R`Wm!}es45T^2<-Z z(fh1w*sL$C*B4-#Qfp0Sf>B&vKDAz7=>5UV^&|7#{SR7HHfGVo8rc8<002ovPDHLk FV1h<+A_@Qi literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/door_dark_oak_lower.png b/src/main/resources/assets/minecraft/textures/blocks/door_dark_oak_lower.png new file mode 100644 index 0000000000000000000000000000000000000000..1004d23d39d87600f59c3654cc384e37a00c5105 GIT binary patch literal 545 zcmV++0^a?JP)wiko1a?!ujn^G$Pz4^4aK^36Xpr`~S2 zljm+(=AkdMz?TPoKXyto57PIvT~vF~Vt#)-S;b{}ic99}RhLp%5DDPVk6FjY(Sep# z@Xe;20$SSxVjalsW!?as-Eav+5ra)v>KmLmo56no6Q>f=0nk4H>{Le~n|T?v4FK3% zLsKU^MFG8$#1=?E1ptb;76G_B;td7^TN`V1LnN5>vK1sVV2aSfL~ZX$I(WMWTx9?Z z5jp^p2%>LV0?s!{K-?C%owi0QBNOSXZVF%qoC#zLtPdYHR*XsmxNDi{LsjU^Wt{|8 z9Yw=t!EPUR{A_{Qa6dc-LJI`CiqNU(02FY;9W~Q`;!X!{KNFRaLJRcDWO*1IR}~vK j4jT#B+j?#sXUzWxrY3~8=;XY>00000NkvXXu0mjfDzoPK literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/door_dark_oak_upper.png b/src/main/resources/assets/minecraft/textures/blocks/door_dark_oak_upper.png new file mode 100644 index 0000000000000000000000000000000000000000..cad8741d37c070c07a0f1503a95827c4847552cc GIT binary patch literal 540 zcmV+%0^|LOP)0T%%E=#N`s4#v^zbZ{dsQDEq6S(1#91Enojt zUE|(|6?y7Ka@P*zHIC$E5XoCy5&X~IPYm09|IhJGM%+U;l=JGc^bhiKRa=p>s34cM zWw}0Fk<)TkhG9W%e4|R@w^J`Iin}=pw5Ym~mLu;t+)S(8-ODMI#Hg5(#`cmlww9#n ze*w<`$c9ewg;!!KXr<#JahO*C1;jbyex!L^J9(3;>i8Krisi6(j?u9fqr$Xh{Gl;@C41BN3ZJ4l@9zfcwsYwD+1vAHf1984CdDu^@ppvx1nR zOK&&_i0a6aZ2x>d0YD&5OchANzu)gyU_jW5k+a|iaP)n@Rwf8Q0BG)(iTV~2nx=^> z5k1MlNCX_poYO0Sp%38odNpT(6GW=PfIyPf)Z6X0O4>?(`mhH4j4#L@c;iqe?8Had_r zO?5zv#o`OLk|c=&n*lv>Is-D18A@#};M~*~MWLoWKgfYCfNf@B8AQkCA}7t`$_a6FZbi&ZeNw z<74eQL|VXr(*6sB%?6fiiK?^NOl8pT_y1>rll>_6Ca8)Y9cv?qLhK)OyWPL1%&OQs rMoy~4ajY_q$kXXmPxGOAuh)|gU{scUQ_%6w00000NkvXXu0mjfEFjV# literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/door_jungle_lower.png b/src/main/resources/assets/minecraft/textures/blocks/door_jungle_lower.png new file mode 100644 index 0000000000000000000000000000000000000000..13f679f4a827b61bfbcaa56be390f1f61c473b33 GIT binary patch literal 345 zcmV-f0jBX5g!A2&knX_HQ*{b@e5&bVLnV--A(3kkpo$a__lHbZTjQQay4 zm;kQZsgMbP#~*|D=dwzrGQ0(V0t6T&2nq{kl}SVJU$7jW4HAWt{}dH1CvZ~>SBD#JJ@@4MhC;1GSA r=LO&khKlgmu0dQD!x?e(>&rg@`*I$`V=fgV00000NkvXXu0mjfyw-`g literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/door_jungle_upper.png b/src/main/resources/assets/minecraft/textures/blocks/door_jungle_upper.png new file mode 100644 index 0000000000000000000000000000000000000000..df8a4c38f2e6f2188898eb000c33a01ab870a85c GIT binary patch literal 364 zcmV-y0h9iTP)}SH1SM4 z>y8dzPFo}Em;BB!F98$k_RvwpBW(8 zDJ^~@1Y7?LfOw8!zY)ox<^}LBYy<*8e7|kWeA2UP{IR=cYG?%+QoIOik`L-Boou>+hkiA>;KK+*stru~QIf_ww^0`V)43cCUT0000< KMNUMnLSTX)x}B*2 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/door_spruce_lower.png b/src/main/resources/assets/minecraft/textures/blocks/door_spruce_lower.png new file mode 100644 index 0000000000000000000000000000000000000000..411ef2636e1c4688d8ec6228c315ac2ebad97835 GIT binary patch literal 344 zcmV-e0jK_nP)N(co536j!62_BM5LQln;*Lds2 zn?J#mzqFq`JFaU2vb>!)Z+7N6K~WUHm-u>$-&aonKETgc2-qzjIor0a>sr+Mbru}= z9U?=tlqMislr+77P_~)t1q9G0XqpBJP?jZBJbwtzpDWQ*0THfMRgq2PoW68|Y`b(j z7Vt`_$^HcdUY?Y0lOq8wnZTxp1Gv5^GPESx0JQmQ5x`)pN81eQ1i-{2fuhQA^8~Eh zP7p;=k|cSaLkmFP1KkX)hK*?Tu*eDvaP}_k-$K_M%X58`U4u*BE_px11fw5!bNQ^W qz4^aP)Nkl$DF$%&!5X?KoMz9DXScHTiLIfp55G+z?6FVhf5wNlp?0mIz zOqi^9flHX1*}2=@+vr?n-$(hml>}G-&t?ly?-KlhtrX#VU$gsZwNGXMuS<5w=hy<1 zk%YBgPMrZ%y^Rq^17vG}LpGG4bgb={+1N{!%e%LQ+ QY5)KL07*qoM6N<$f~4bm%K!iX literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/door_wood_lower.png b/src/main/resources/assets/minecraft/textures/blocks/door_wood_lower.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0bae98ddf0e0284c9450ca4d194a8c66275b17 GIT binary patch literal 398 zcmV;90df9`P)5H=W&9CS}bzq6^e2!D1IOoqK(>|!hwyTjR-dSA4Yz& zypTjK9+S)@lQ-|}7FAXG`-4S)u{&cCJPno%?{{s>YcG5}bS)mPPx<2edD}L_Bj-ma z^(F9jyJn!F*2)uqHPGt<4MF@e`^(;Z*js~_^A&$q&ia0*;rBP22{^1Zb%FEL%GN~9 z;6DwZd$YF?@?3%iBM?tFn!flPcC5%NqAlt)xGv|Cyfh&u8t_s+GY7>io?R{&gV(E7 zD>B#Pz$L&HYQ(&jXps9%G1ejH75VJ2thzRtZ9eLruw&wj@P9QYcnd;cNs_vc*1=Bd|m{lnB z>*bQw zg9ahs$xINBW~BzopsrRTHSuK^7!*>h6OnS7#Pu{l(I&B)9Aje+&_FdI5kJ!+5oZ$SsjNR!AOKFczfB#DdT*rHno vjI#QDwKHqA0ru1i&pE)bJ3nMRD;oR&qOrQ>av`gc00000NkvXXu0mjfj#IT- literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/double_plant_fern_bottom.png b/src/main/resources/assets/minecraft/textures/blocks/double_plant_fern_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..c5e43cc56ab83bd6b747ea47a0b367244f059bf4 GIT binary patch literal 403 zcmV;E0c`$>P)QEH03E0}=(cK!VthX@9fzlp(__VvBjj`2KCilUHl9OZhw zN|GdUJRaq6I7pu7;<~Qv_j~F4-c(hkHEEjiH5!-8MZz!?lDpkb%tyRH3gCa+w%V8) zz^|reZi0fcEM=M|1;9ulYB-a(IqrfWkn{PxATt203JV;DK?`rUn>GbVE%_OUACmY5 z#4I@bzCW|kD9bWEuWf2r*?{i%yD*nHj-~55{oZ#65ZH z+1i(XJ89&?RM)kF*h14Zayp%Kt!xV`UlyV$Qm-`P_k2E8F2(q#>E|10JdSbKo03BG{1rZ0PnZ18({B9=cS?u xf=vtS^)LhOKkvR)_$!#ny1~DKVQxx(#~&NOjL@wE&rARS002ovPDHLkV1hYpwD$l2 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/double_plant_fern_top.png b/src/main/resources/assets/minecraft/textures/blocks/double_plant_fern_top.png new file mode 100644 index 0000000000000000000000000000000000000000..f80d3e1ed4e75249b2ae0afda4959c27a26b2166 GIT binary patch literal 383 zcmV-_0f7FAP)z`+yE_h-JD#o|9t+qQoP zd!DBRX`1T&^_)&8sq0$y`@QfRkRdRqX&Sj)E;37!B#CrgCogrbg82qPAXQa~@B6Y^ ztt88`d6GDem4qT3KzckL1@#x9IyB@{eamvWRJHYbEr-KF6|dK;l9;+lF!oRbgi_!4 zQWS;cc`ncAQ|-I1J8ylr+lg^OF@ZveIzX&L{&5o6MjcfM9*>9K?RKldI*#+1z>JVW zlE>BUc2fsY6lo3+ecT0r5aER0$8pp*VFLac=H#JINKCP9+d2{6Wm$@4S@LF^&`@DK zfFa@1KduPVSbyz?OfC;&3&T(s2t_kiz9!uB`TRag)8GAm*FPzS1ZTrA=$kOvP6(;r dY&PFnd;x8RNH9L5NSFWs002ovPDHLkV1n(Is_*~+ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/double_plant_grass_bottom.png b/src/main/resources/assets/minecraft/textures/blocks/double_plant_grass_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..ecc4e5d79cec9793de589cf5ae49698ccf903652 GIT binary patch literal 415 zcmV;Q0bu@#P)%#!A%FUh|SGnHW&>4 z1DlT3&%k$>ad%*unYZtKf4q6d{H?Mq`^93>KU}ZO^Zkoiuh;fITkaaZqA2X$-{Uwo zZV^b+wEuklGM9IAQ`fakJYOA{iU?*O% zK*8z9#)9z^=>YKY9|8eLkprlz$^ytg06*W4*1w8SCL+ZG040GA+xy$ZvWpEXNFN1| zClts(3fi{q^E|i3drun&)-+An1A)LS1+WXC>pIt53f0sAK!pOrzY0*s^J)$h4*-NJ zJ15JXK#dfPz5+|W#KKTX4FE^k_Fy6d0Q~wxa*@xS1?=b*L_(tnO;pe?^q)??^-{qc z_)U>V&4F)iw1NLU>3(**Kj{3Z|0GEa!7R&q&g}kOXMZQo`USX_&i$3-^N0Wd002ov JPDHLkV1l?6ylemf literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/double_plant_grass_top.png b/src/main/resources/assets/minecraft/textures/blocks/double_plant_grass_top.png new file mode 100644 index 0000000000000000000000000000000000000000..f192abc2bc72067860340f8587c82512dc53ecea GIT binary patch literal 387 zcmV-}0et?6P)Nklb0?62ynFzQV%7@|sj3 z@(+B+PA=lWvf102Z)X0T3t?mz4~Opi?EWD9YcIFUu>Sb6CA)l_*?zS=c7V6V`_{*q zE(FouG|iBvsbv@F)Mh`R-#Ke|9rn1 zB!&tmqoQq~0<@oh_Mz)KbD#>XqA2VJ^i4IKCtmBr5S%EU5G5E2Ya0oLjTMOzLn6e=!b)OGNT}(oEUoiwq%1sF(Q!Tw~-$;1iR z4DvYk6vgu>1#Rr$R_F^j>(W8+0i1k;j@^BS4&oyyfszab2SL=qO)1p=F(_0}uTICF zFPx9hBQX)e;B{RpRG)Woc0ijt&RpwR%^(w}f2)dzdQ(9bT{_#`Z=(a%V o$z?Oozy1qh-nE@|52#z>C*dT?Gy~!ARR91007*qoM6N<$f=|Px# literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/double_plant_rose_bottom.png b/src/main/resources/assets/minecraft/textures/blocks/double_plant_rose_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..27aca8eed8aa645c27637f45eb9008b56d4327f8 GIT binary patch literal 428 zcmV;d0aN~oP) zZ`j@3B?H6k?ag~L^LB_b`<{pxUb!YXExZvmzKExGh-c1-n=O0BeYHnSMJ7MFvu_EI zT<+O#5a2r_Fhz>MwEpA3%OAw?kp)#AEogAC$A6`S2XSg*t~!zc08w*8&K*}7cM4QD zK(q+3w&%yF?KD{HlhFu3)hnouM1S7KCvkE|JSpNOx5Vj#{g2!L48v?_4RAe zdv=MN@`S0p|J;S_!@1KXTQnZIjlPKUqI`TROSKwqV@8m-)^7L;wfnF-V)e-qpc5Kp zi|=+6ygxunf;;R(xl7{>Nv7Q{@zM%$=~(=Pc=|@-;h4(9B+->@;+DiqiQATRIPV{5 WULjj9VeG#E0000iTp%$E0QiFgPsMn#glXl^H4mjEWAZ$yA3pydgNeMZWW; zf^p`5fGQwc!HHr`@06Nd??8~-GU*`YOn{vlo&_=pcTj}+s49GyA}v9wrU3vslk2QQ zl989z($or7GKWdIBw$M+0c8T<64i0<9$2E{h6F%AxUzpFq)2IKOdxQ3x85s)Pyu8k zzzP8G9yNHpEh$sio_RXyO2F!VPEBR5jW3ex$}O<6C37PU36q)NTB)A4Z{Y_x+1}J_ SI3FYc0000|_1>pc2voBG literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/double_plant_sunflower_bottom.png b/src/main/resources/assets/minecraft/textures/blocks/double_plant_sunflower_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..5a1febe3a8d575175e8cd51be576a07b07720970 GIT binary patch literal 359 zcmV-t0hs=YP)d=N805TLT-mZw>0LwZtu;$SDh769~GVpW&G5{oJ zRKrkT^l`>C+sr0iZyG1t2U<{oEK;oUe_c`Sn>vFdJqFUISnn-(FMt|8S-}7{9xz1UHbN0We!Z z8XvSP{=Zfy31&kz|0mi7AWe6g<-mqKS|a}+$y^bg8NpuAvOCc+T7P@91y0MY<51Y`inAd(G$0hj^!008$* V6BRm{E(`zw002ovPDHLkV1k;zVkiIr literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/double_plant_sunflower_top.png b/src/main/resources/assets/minecraft/textures/blocks/double_plant_sunflower_top.png new file mode 100644 index 0000000000000000000000000000000000000000..6ab2f15c0ef7b621bb2df3ed7cb92b8801a365e8 GIT binary patch literal 347 zcmV-h0i^zkP)<{oEn5_b%8_f(C$G0J05)FCCYI z8vxU6c<(P^7ig{f4Ym>F0_QxP|JKRs|3R8HH~eK#Tk;#fW{_>500j9LWJqYIHP`@f z7%bEVV}b@C$AV{>0oVW#A0+PFu87|N%Q`Uz=Qd?{EFc>I!bVkm_zigS>J!)ym^WZy z05S*^4zL7<6MXtK2W$XHA>K6&BWnh! zLAC@ABqSsll$Dji24yyffi-~)Ff9}LufFCtTq8&xW*Gyr^Fab`SN<{t-u?@+73_SN zA>Y4$X8^ejrV+yhAVHY_LG;jNx%?*DU)Rz2)tHEjj)VW|kgKUNw0OBKi5vx~V5+MIO zw<*K?4>kZKjvRkL7o&CR=ojK zEW-VL1Q-zbv~J60T_JX10}KEUh&Xz0o$^@#iDZbbsw#tErlZ;Gu}kuKh$?6cNf*7V z6bFfMxCH^|M7gXPsS1W@?&iQc^??<&-9EXq+kLAhKr|bGyi^<}Qp*9-RVTjdO*f~V z!{qx1LS+Mm4WQJ#vjYr*FarUY50R~$TaN(oJzMb~-?2V2BGh6D00000NkvXXu0mjf DOeZN;LFe`bitkhh=G3C1l z4_nuBSJ3Fhu{;Jw*-u&Z7tkjd2GoA$ybRt4KbP8|Nk|7qsUO%3Xy$FmlC qHJzKa`1VyP0~sZQdu~rHg>4QtsT?|SqjEaXNerH@elF{r5}E+&97^8+ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/dropper_front_horizontal.png b/src/main/resources/assets/minecraft/textures/blocks/dropper_front_horizontal.png new file mode 100644 index 0000000000000000000000000000000000000000..a2848daf928fcb4de4a5fcb2b8026ff3797e6809 GIT binary patch literal 492 zcmV2w-~#A304>$(_? zMyOOO==FNoY&L>=y)OHc$wa>7%H=Y;-L4l9i^b4xx3Syp(CKtA9*;2?3siNoe zDPOy?c5=B~#1jsOVR&UczY1-GA2!Fq=ks|lpj0aTkgQJJ?{|T&?J(X1--oHyYTp5> zFcb>G81n<}@fI|Io?@}+1@PQh6}BYNZ=Fn|N}w@4ua2%2sF@pxdn z-Fh!k18lR3X(VXybM){LnrgKwX?B1uRxm_^xL&We0%Ls?V zST2{CPN&G_auOQ~g```BE%A`aWYBK6@pwE?sZ_ApY_MLhC85=7A(>1folc`xt6{g> ziDhvafvu92PF5a`MglcqyWQe;yWx7hqSxzTwOXOm>BxQ*lgT9PlgUIn7>~zt{)EM1 zA;i^cRhB9QTm+ZH`AEP(tycRHhrzt8y#8D_fP-`Z}OJkN!Bq|XypyL56r$&ge=4c-Oc>^L`d5&P|DMrgrpxx?*@}8jI zOXXK8)6z3$=GPiDw8562f;B&Z_MZXh;%*K_$}iAcxT`{v>&N$SIUmBM+!UOJIW)%v zXy{}ToD5SXu0oilUAb|lJ?&=+$-0ilVL2Q_!#gW9RPz7fvC=9$g$Ro~j)J^?K0U~L zNJ4_ngJ4adgegdZf#Na?l(rPXxrA5V>tcy2P%ezZBc&Ax(gJ)^lw07^r^YRPdt3u9)G!}^3z##<9;<8}zy2;9X8 zKYOKlhVDd^?yH!-^+UfcLjP5SVN0wDR({L>w0{zsu{$@9?!#$VvlFoH1z_15fqvJE z)1P~wk9lC&^x)Knox`S0Z&eVjykv=WKfsVo5tvg$d@==f8&}cz;Ub5lmDjS!3C(1A zjmPINKB|+DfWvaXXLm%j#IC6)FUw(CXMs1j0DEo*w(KN2e*{@#*&pT7&8Y#jCPcJu z3uyRsg~N;T$7IchU`YDVwC<=0C`@$7<047h_hA@QH_(!hN46tym_9IWO~$y}hsO8z ss-XFco68}ZJ~|i*oP;i{ZqIs^zn!F>nl}X8r2qf`07*qoM6N<$g2#R literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/emerald_ore.png b/src/main/resources/assets/minecraft/textures/blocks/emerald_ore.png new file mode 100644 index 0000000000000000000000000000000000000000..db820dd13fe96acc487ffb6e12d269e87ad5014c GIT binary patch literal 363 zcmV-x0hIoUP)*~`q zU7{!oZ<@yEdG@aB{5TH3!y#w*K>#$4qnBmrd7k@^|M|yn?NwF99Rq}X1Ck&>lC1cT zM|f;spP_=)5PjcAj%QE0t5+&RoR6A@gIPoGTg%#RR*=DhM+0|Btj0rwrvAL zVtQe$j>9kv@jyMmnQf?A8ftpEZJRI4a#qo5cO!i906_E!09(kiEc!*ByP+zK4(k{( z1-8J6C?QmFLYGA%2`d5!0`&xWHQ02s_I(c@=s1BO2biJiLV?b_uInH{l;4j4V!e?^ zaG}mc(*9@?`vVx?1-()CPZL#Ak|b}(rTcRE8dVZ2DOlr<_z4NDVbh!Vd13$n002ov JPDHLkV1h?Bm;nF) literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/enchanting_table_bottom.png b/src/main/resources/assets/minecraft/textures/blocks/enchanting_table_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..ad0de6333c6884360434587abd6ad875840cd2ca GIT binary patch literal 437 zcmV;m0ZRUfP)li2yrpKz(>kbg<;HCt%#F}di}3-Qly^mK6q`=^Tn6pYa|FmQm5l52Z1;)G;$`y zep}tEBxzL?<^D2a6M~on*X@xn3n5v>+v$hn08wET#d=-ZwI^6}k`T2<#)zVflZeQ! zTb-9!vW9a#f$;{(DU(4FyyK5EV~1>B?PHT7N{x;WT^$^VGJQF+waG0pIzV#;K@fP^ zZGK>>rQEAD?Yu?g4*U1ZMRY+FNXka-w~xLqrhq-a?#K~4s{ydJ9!-^Rx(A(Du`*a$ zE+t=vm01_C!K--PwF{Ld>Ua%>roB76PtM!uCa_|Hk)-hUOz&&9@%r>VuK^M;i5MiK zf|QJV+rE&`Og&s1VJV+ma1$rQmG-*!7ocF*50i5cG;DD~PHDXYN%HQB8v f7&}vr1pmP=)(<@C7-wQo00000NkvXXu0mjfj}pDM literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/enchanting_table_side.png b/src/main/resources/assets/minecraft/textures/blocks/enchanting_table_side.png new file mode 100644 index 0000000000000000000000000000000000000000..f2f461434b6fb521411c9527b2d4f9de31d9814c GIT binary patch literal 359 zcmV-t0hs=YP)TA zvJAk30LJ5JF9dI>2>@aMTEe4*({%O&B4LsEkv09oVs=5!mE?V;5DBMg6ZV+u{Cog2 z@@uO_&^)NrPM|o>0yv}5$nz&jl51T7_!Yl9SMc3A+>iKdZ4yFwUv~HD5CFqu;<{kb zgA`o5THi4o-C>OD%{_Ob02sEbTRN>*T^Ejg(r~NRTCO3`j)@U5Qa&63hSqc(W}1Pgr;E-+F_sf<2|@ z^8U;}d!RwQ`O1MS&0mZfBosEhxc&KmT)zIl_36+5?DvQk)@D1|c%|V=6N88T4TcE} zyBJlAHvLyVa`b@25jS&&mV;~!b6A90GTp9q^f?w8I6Fuzna=n`e}aPI*%xgM1|Ur{ z!pjm641ex%>{n1s zV-O4VdlrDu@XuT7e=j5gK}PlWWS^pWjqFa2yg`Bdn?wXL2!IzXM7+Va5r}IX9P2XO zn^Hgm`EPu{7ejr-dnr*ef`HXtBQ=TY$;;z+DG8X&D=Y?~>}AOaC7}W8#Qb1$s}Gsv z4PHKYMS#8iB}e_UE%pZYn$;(y8kJ@0_BY8fF4xMB892a-v-+oHUYpewa(f%h!#Vbq z(o$j~$^aa9gAp%cR%?waAC|aX(^-T2e;pjsXmU(pRN~oDlAhbk)A{8N*9hZKJA6R~ z5WAlprKVmQj`*Tr)X3EDkBTV)20|DjNH;RWmOaaw$^zmz+VwvH^<#V?C}%KThD^y2 zVX^>-@HB#GQk4?20$1TK1CJ_s&9-wqnn)XD@c|u@62z}|bCo)s=ZOGF{%tXxfz$Kt zbPl@S7Q;Ttr2?lvUOgz6=fH9D^tJPX|DNBR^~Ef#aQf&qvXI_`1K=BX{{iapa^SlL RVyXZD002ovPDHLkV1m>-4-^0Z literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/end_rod.png b/src/main/resources/assets/minecraft/textures/blocks/end_rod.png new file mode 100644 index 0000000000000000000000000000000000000000..b01dd48b5535665583f5b9834d27cf9a5f5ba39a GIT binary patch literal 253 zcmVErJGdb}39GE)zBNgqQD;lHhP%Lx1>lAiUpk zatHbOfO*vSz506}sB;mq01=7l$1)ADyagj-uWc|E#yrpu6Eey3abdvQdFXE4v7nl! zh_S7%Jk;;bwN{ooK*Md*>H|_r2AqwoWZjC=z{u?m?Y}`apdT`6lWE;)F$V)CYz~1pmql-2&4C=h9V500000NkvXXu0mjf D2s~`S literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/end_stone.png b/src/main/resources/assets/minecraft/textures/blocks/end_stone.png new file mode 100644 index 0000000000000000000000000000000000000000..c2a91e3c6813abeca3593bf90f61bcc5d299a4c0 GIT binary patch literal 404 zcmV;F0c-w=P)cg^#@jkDQUEbrdS?Ck99 z#;ST;KAW@h(Oi`4$(~2`I4<@3@%H|QY1f z+ld<}9CufcN0`BU%O4-*-5}<_mt|tTa7$(~|cEwOX?9fPM+D*iS$!oX09G8%X#R!lWLo*#gWy0M=MJ)vgl&!qqHU yyMQ;$n^W6|nQE6wnEoVMC^2gTvw?XlHN9Vyvte3RojFYa0000}1Cpa+Q@rwGd>htzM zguM+*Ph!mk8D_-;dW-+a-xNqWt6;f^r$Mr*C-ISsbOX1rNy8(922H*U{lD+$2y-1% zF!PzC!R)YYUS-MO`l{f2^{YL8|KI7&{XkDKgTZ5=v)hILGmoqNpMFh@;qkIq)da%{ zG8fqzOeUr>oZ(hTZ=U17NnC@^rE75^3loD@!eZuJ<)0})w=sCS`njxgN@xNACG|&N literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/endframe_side.png b/src/main/resources/assets/minecraft/textures/blocks/endframe_side.png new file mode 100644 index 0000000000000000000000000000000000000000..e6cb56738ff326982902b5e916be6a18fdd690a6 GIT binary patch literal 424 zcmV;Z0ayNsP)Y5Z(V^<3A8Av=YI>KcGbl!O~LV7ot(b&PGt|5{qjzD)};(XvA1}2^@$43o(#{ z5Rhmkg4&4S-8JLA3A0?lB4FjgW9Qz!c{?+^O8x(DY<7nJ0yP*4kx_|K|HwG?4UP5$ zXeEaYBsp;y*2ra7=sdedr>RxVWfDu2K3>o!+5kj88=;%>4z(T+sMYS^&AHM5U%TI@ zdM!q&qj`O(k^pP*Vw3FBE?L$V+S! zLV0F-x#s~2GAE1NvU1&9`f|&ZjEC8%U~aH8koQqA*O?FQNiycb2B-q7#Ml%;`z1-P zSJA@+-)I>0a2M?u2wAcB7%;&NfWy?qENIYd8VqQa2q1>@>vxfbo>%1<6+kT4iWOIh z)7b!`dNtNnvb+V%=F=(h3JwO(A35FbyK_kjr{d?yPed%vFxC&thg1}73H%R*Z!RE$ SS9;$70000(Q0qof>WC?o(NO8ZMx{7BQsXI52Y_j_3{ z&k2q{7GiXH9nk_nM?&XdzmR31PuLv}8>{%9=FT(#Sqd>7N!3mDRAX!qf)CmK9(sFC zsR1LKi@cDOyh?Ys2Yf1u46R10Yc~nOx6Mpa{{E0o6YE^#49=H3=$>(N2bdG>0-zKb znw!e7HWT$P%u=BsQSN$&JLsA7s+Xwh0EHFm3wSvvbG)G)As$_!LOx1nXOFf6QzO-u zZ2P>s)MbiqK{G<^aG5v!cLY|cbwi7hg%Q5K&nYQ|wIlq!MyqF>g{}Acr@7D(^s#VL zXX!2dhxGIiX9ylt@A~A1p)(LdwSk2z<<} imm>g`!glpydhuU8MJ`>+y2gM20000anyr{S_(iw1=CeAu%HrJYllt*RIo1w{OAcRRtDN&0%$?f zsBxVIC4-$@za|q*S@H};b^yPHBoY6Hl;kKoq-%1TJ|mR`A4>9pv#59P{lma@DHC3u z0}ymt*#VOKobB|1n(4l+KYyqs58hD=oNn?3+^)$iX-4$V8=#u&H`w$keErWF=5XJY4bX)uGwiU!Dl~PzJ+qc!am4||;K|*C6XyV<#S z=A4-`GtTdERh~C8@^e&?9}mm&bTKVY^nAJR$>)J5TeY;bXA{Qe{_T3+_&uwq#wgSf`J!*|7xV@+1-f7^+hqbu&cxF}du7*#)xL)#YFp z#)~C0^P38S((!#@*kJC=+1(+|Iq4S6HnLD4(pG9iSX72>yJqdzDq4Jz-nA9rv{w{B w1`5DpfeJbk3K(4?2pa<4Df>LE%5dJ5KgGm=)dmn44*&oF07*qoM6N<$f}n*V8~^|S literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/fern.png b/src/main/resources/assets/minecraft/textures/blocks/fern.png new file mode 100644 index 0000000000000000000000000000000000000000..fd769501b483e3c3f193d784a843030a43e55634 GIT binary patch literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`DV{ElAr-fh6Bel6*j4(vev_%X zn%X~h$$;>1_G2p243}7p8+2|vN-U8)rsipU=4MJY<81B@GnVPx9pBh?tyS5{u#6GN zE@SmEJi+j5H$$Z1E^dxpOtFmHE~snzP7tYmBE`V4b@ASJ)4y%C1lq^o>FVdQ&MBb@ E04j|$p8x;= literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/fire_layer_0.png b/src/main/resources/assets/minecraft/textures/blocks/fire_layer_0.png new file mode 100644 index 0000000000000000000000000000000000000000..6066dc49674f58068070cf11b4435a2f47e9c647 GIT binary patch literal 12500 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 FV1oD0hAIF6 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/flower_blue_orchid.png b/src/main/resources/assets/minecraft/textures/blocks/flower_blue_orchid.png new file mode 100644 index 0000000000000000000000000000000000000000..7c00b5c38a246ae10dca3c30be0e95a402a2c071 GIT binary patch literal 348 zcmV-i0i*tjP)j+thN8|f6aBj{~I0q z%>bf7d}J5c_HcnUg5;b0ni&{CvSmd u2CyL%p|a9``@BDk#esG(c)I$ztaD0e0su1*F-ZUb literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/flower_houstonia.png b/src/main/resources/assets/minecraft/textures/blocks/flower_houstonia.png new file mode 100644 index 0000000000000000000000000000000000000000..50151c86cdc4e45f9a51351dfd46ef9cdf4e1ef2 GIT binary patch literal 334 zcmV-U0kQsxP)c_a8^319w|^O|p8jR{ z^l1)A<9`qhGUQk*#9KtU0A_ROWTXF{EgJvt9d2TP8Ai|rNH)Wq55^$FKzxF>BPnLE zFP8^v0vQT&2~kl9vKgci=KTCEz6>BX%y5ulL>UBA3^D{}0MXun82}4N7$z%&!Ms9t g4h0zi3I}`u04NaWjPBjVQ2+n{07*qoM6N<$f-Vq?WB>pF literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/flower_oxeye_daisy.png b/src/main/resources/assets/minecraft/textures/blocks/flower_oxeye_daisy.png new file mode 100644 index 0000000000000000000000000000000000000000..03a11e52f6c09727b9c3d0f34dee856805cee37e GIT binary patch literal 339 zcmV-Z0j&OsP)-o5)DnI_sLTjRjC{eSgr?f*;1<-jz^5Q~q0iE{zSHV_7BhGCeP;XNV@(OUPL z0c0bx3qUT?-0+t{ZOL!^nmxNU7{ZqrVGV=8h1v`tOwa&OXgjwlGkA4qgAEFtX!svw zC|JB*5x)VJbz)%6q4NzH9J^&euK90TCIU79Bxh8`hu?rFuRehl2F%m|D+bvP;sa^0 zI6?5~(;ToukgXuiKrg{<2VsyrQ2=Bk$PkbLFm~uaIEko_NK5K#bR07x@PBg_z(K?F5}YysH@(*$%8+z_A_{u6WsNCC(ukVcROm_aZ$ zNX{tA47+BKgnF=I>9P2z3F;+_Ah!D?VvkfhNn*&a+=mY6W8MX3^R zJ4hok1{t6nqWm8e9?`C5aB+f$z@idifX07iKb8L~L285zKo0|u?I6wgYzF{VH|qb? Sa|C+;0000^P)7dsgJuXHx~58{^q*+d(VYN3sxxZ1^(cmwim^)VDzI++k}K#{#6 zhT>csec}zMa5BbFoMo-|pQJ#{vo-jiZmA0nz%nPJ|IMD3#2ZlWW)9X^4D<>(27q*# zqcLeNfN9PJ1}NASq!<8lKFG-+r^7UZXp&q2(gbpPo0rx9P9JMvf-)t|fOu0)u&vp^ f=xg${!07@2(nTJ11J00000NkvXXu0mjfR3~0A literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/flower_rose.png b/src/main/resources/assets/minecraft/textures/blocks/flower_rose.png new file mode 100644 index 0000000000000000000000000000000000000000..4a76098645c7c7853b808a0c8bc7c6be9766b316 GIT binary patch literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`t)4E9Ar_~T6C_x-u-?DDwpfDU(d6tC^^;7S|L|>=Ok?O!J87-pyeRgp n1j}d11C5?x76+0T=QA>7RyaP0TEQ*^bP$85tDnm{r-UW|?G{8; literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/flower_tulip_orange.png b/src/main/resources/assets/minecraft/textures/blocks/flower_tulip_orange.png new file mode 100644 index 0000000000000000000000000000000000000000..200815f237ddf3b401834e1f86821c8dcd606a40 GIT binary patch literal 369 zcmV-%0gnEOP)X?uu$bch~AO< zo5A4jUk1Z_L>QvA?l;(w{iVMdE=Gy{fAZ=RgVv@$44NDMGN>*2jbF3l+rJE9%MAV} zZnk0oX*4bq{D0%#GX{?ywg0Khor!Y+NHNF|uMTa7fJyrQ?;UOe(;#tzF8K6m4ug5U z@c)p7`u`ofWx#9@4KfhKCTKgz*&v1fv(&&gg4iGoasg2Wz+B+et^n2m^A5}~kUUWU zWFyEBkVcs8p_7dmKmke=0NDyM0Oog4tdIm?2Ec45*#H;-Y0lr`i&qT*G^@e*7TG;* P00000NkvXXu0mjfNHn2K literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/flower_tulip_pink.png b/src/main/resources/assets/minecraft/textures/blocks/flower_tulip_pink.png new file mode 100644 index 0000000000000000000000000000000000000000..719457fe55997c4d0532c32d7aacab90aca0a1f1 GIT binary patch literal 360 zcmV-u0hj)XP)vcD8!$dgx}7_>J1VbI+0mqBgGZ~U4)yEXoYFERS>+^)y~(r8*H^8d!Y zXJGNbh1v`tOvnI+(D{b{o!gZEdv$0tfDF5LxCu;y3;`L87g*MbF@Q9K3~}t10c(WO zK)L@$Rebmj0680^Fkq$zSaIM)L$F2|O)vmIeVPL{0OVX44YM8OI*>e30AwS~-!R)l zCmS(<0+c8K(f|qznC%2ZAHxMe4aj~c*#KmhT>t>u~;m^6C?V)}}uUnj8Kys4e-8U$f)ezYJDS|1t#4 zFaT?eo^Sd8#=U0@iJPtdr!IFU&IKUNAdOxf+6<1}GXL)#ZUP$s5+~?_PoL(1HGwpM zXpli5m&C8L1oH{n4pNM60EmuSZa|y?AQ#w|%Y(fEb2dn$&ty%oOF;5O0hsL|13;QV z?9jvcL2J{?* zzj5ywhz}MA;{OC)0MZOn=+&Xk;N7eB|K8yyux9@`TK_?Ecr}0eG>5^ciVtjnW48>L z4WdDsZJVV3gZOw20680^2xK#i25MyRnyN@xGqMX{-T=`cKFoHIJW&8DXQRiOq)C?<4H?fk^rfW~ xvIQ{<+zps?h+%fOM90-0Z&_yFVr4@KhAAy4MXsf8ybQF6!PC{xWt~$(69BwkFcts+ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/frosted_ice_1.png b/src/main/resources/assets/minecraft/textures/blocks/frosted_ice_1.png new file mode 100644 index 0000000000000000000000000000000000000000..96f1f6a309dee3f7ba0321c22028fd2a7e4cafdf GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Rh}-6Ar`$$Cmj?#puoYRd0X#= z!~ZbH^y&UGogYPxv+Lg!&6^MsnCBJNpViLvfaf2Fjm*k#jRq19X+`$3XBTjWeF%Fn zn=!@ys=vXkt5zRQZITk)aAbB0Tid$?p3e~sXISkbv;to5Hnx~@kjqchb&>k%U)vPl dy^8w4u=2{4Dax-U9|K*%;OXk;vd$@?2>@>8LdgIC literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/frosted_ice_2.png b/src/main/resources/assets/minecraft/textures/blocks/frosted_ice_2.png new file mode 100644 index 0000000000000000000000000000000000000000..2a271876fa29f7fa96709e341809e8ec286988fa GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`9iA?ZAr_~%1|Jk`FyJ_SEici0 zMgH;)vyX~P3Fg?IXYUUZy5wNEHfA5oJiX^{RT(SUC$Dj4;hGkstE;wwO@gsnw93zR zgVHCi532+ib$!w@)6dy+{!-K4ARy|lXA)@ra_Phrx3cdKu1W|Ocq|BZzGiBCwqNGr rDL1#Y-%a=S&2C!5xBuUPUeGd zR)W*7c`jzXOS9vAl%pkQHu^X5%#nm9(gJ3&Bml z>GYi|`iZnST%J3e=iEVYyWKcCIuaZn9>VE#!r^ehZnq2e_V(cMc(BZ)&tx*e<#OTR z-~b8(g+c*WS68^dzlY!N$K~ZE%H^^k7z~O(o6U-4?EL&3$z*atV6j*bi^Wi@)sRRe zkjZ2)91aDIMgtEI4~Ryi=yW=0wOY8lyOZ2VBqC}RO5)@C`WnSz5l>G~*x%omcKE~Y z?k@Pr&dv_JUN3UF9QysfSo);}N+m1hvQI@({>1U|G2-z!y4^0GpPywuip^$2DwRUB z*<3LGQMiurc#Ox#M;WRRP$q}N{+0wPl?rOL8aka08jS{ey&hXzTM~PHeMPU=lNz?C zaAoX2olZ;drBVr>pP!gaCU}2;7t5lTmlx#odAz;7iDC}^2w9ogDWFWPfx|t$Jl5zk~UZ)cR&ILmrk;Zw2kSLh^SO5vI$zb#3cd2gw4WD zP|Z>$k5CB&0>UQ!{7cYkwJ;bAD;SMNY;SLiWsEr=A0M(UQ4k7+gpCADFq_S?POH@_ y;Cmgsjjyk-{|Z>hqaYg(=`WCQ{mq+L*8BqDGwHY>w9)TiebpE)5p@eEYHX+WTz9Znwi~wF)d23&zLCVK$p#GMNOUqoZ&* z98mM<8yg#g&1S>I!~_%ulF1|%78bC&x(ct?i%=+pt*tGA&*u|=G#VAln8)KmFc|C; z7z_sZ{eEP#Sr>Ccad_Ip@EQYzcIqdK6V`pavD=RCKJ3BioY86W2V{vg2 z8yg!)rBcxA^)e1SjEszcO@@bu;c~eUkH>L*d@PoJ8G%yCO1Yd ztrj|+PGYyWw>UgJlp2nw@RxD^NF*Y&r_*UvDiu6DJmCKRUM!1lZf=lBBye|kCyKfF zsi~S7dSsZ$JyDL__(7?CWED=CCTS~C^IuNI5{~% ztyV*`*%Z9Iyr9?X3Etn|#nPw7nadid)7dA;<#Kp>dP1w!!rR*$I-QREGGcmqS}c8x zJwHF=@$pe=rM?25CA$j&6Iq}_CHn8(?RLKv?C$Q$ sX36$XfofUw^ZP6I`ud8?%S);G3rsXOi9tS3z5oCK07*qoM6N<$f^M!N82|tP literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/furnace_side.png b/src/main/resources/assets/minecraft/textures/blocks/furnace_side.png new file mode 100644 index 0000000000000000000000000000000000000000..115f73d07c300fc72f740b5966534323a2cca3c5 GIT binary patch literal 564 zcmV-40?Yl0P)okmxg_`GuG~eWC=(_ohW>(qGVz<9xAo|}oloyKSnadd ze%9LSdCnG0CKDM928Ld*C#_aX8jXh3YBfVHmy^X}A+ZjeLZKj|(MUR-jszT(N+pU$ zqm)Xe$l-8MC={Z4z0PpE-OOh)8D4Q_x7#Tg41NrhN+tRIermVd6bJ+;oletkw_|j> zUCL&&4#P@wgC%_}bF77!J#AaQfA*JFr+)oMk@oB#~vFQD+76E!~pu2X?q=)ej900000@?kEP)#nY@ zno+&Kzr$j&NSMuL7>!043^8rbc2D0R$fwOUxMR+vmCsCZE>ml26XkV>WC za=8!+h0tg;Bs?CEgpPImUVohpc6{9NDts i&tQP@{MtYN z8}yFu`R!4n7{?%D^7$0^&kG5{+6 BOEv%i literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/glass_blue.png b/src/main/resources/assets/minecraft/textures/blocks/glass_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..d51688907a46328dc0fdd003b5c755cae6b87d3c GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Q#@T9Lo7~DoqUk@fC7i>-IJzs z7Bd$lFrHU=cYy5}r&XlBX`ssmX3oI>!UyG(R^|I_YTPYstYV?C;S#}klA>R`P#e%Q~RV>a49(Z$Ssgq?6UL}XM_0J z*NdP2<9`s;v%8-~{1GdIpYi%V6ZmW8Z&nLN`UP{o_DBHGX@6DggS2+@#!jH<$0y>Yu)78&qol`;+ E0BkHzVE_OC literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/glass_cyan.png b/src/main/resources/assets/minecraft/textures/blocks/glass_cyan.png new file mode 100644 index 0000000000000000000000000000000000000000..0a4fc8d82d43c74838e670ac3b042edb01239816 GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`lRaG=Lo7~DoxG8kL6O5%_JU;| z16LGxwor6-SV7b5H?xcbT`n}WtoYygfZy<{`LbJW3CgoN%>SG$7O-5#m9#dJK_DsQ zTn^*WotFI!Wk-bkoX-gb%&|N1m(!sy;x%Ko{{^q(ydkU;6xH|xdIA>(J!Lu2{p{<- zqW|m#n#bWi{qDq;;TN6Jf;hbTNICUE?cx*zmiXhSz+rn8wO27>GW+4 zQg`OKH?Sn}>O1R61vJ~e_{$lXeL%hj*`L%!k zH|QPR^V_3DF^)mR&&cprw0+T%s|I6c)I$ztaD0e0stPn BN*e$G literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/glass_green.png b/src/main/resources/assets/minecraft/textures/blocks/glass_green.png new file mode 100644 index 0000000000000000000000000000000000000000..73e4b4b1a032326a56b47ba2b0740be624949b69 GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`lRRApJ{`yIJiAp!vmAgC%K9P+qP!!&7aIY3nn{xt?KFlx{krq)z4*}Q$iB} Dp%PGT literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/glass_light_blue.png b/src/main/resources/assets/minecraft/textures/blocks/glass_light_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..f7f02d1476697a7d5ebaefbfdd5c6fa12b4f1366 GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`lRRAH7F(;seJ$j0ZBGO%}hj^q_@C*|s%%Z~kNsy%Q8TTiewK=sE^ZS3j3^P6lQ9huNa8io^45*e3>eD_mQ}%An}> z^o&@*oY|i_65Mqjnmo~AJo>Wv&U}U^9b4r#d}CQ#a>pT*K{DwR!%+!Utx!LPJsENG zy5H*=rYGI0RoNk+&rmR{@@Z>L#s(=7>*#B7Z~id)ZN2ZrYq(hv=spHdS3j3^P6;+3J z26nLzIgj{q5@sw2w(!$84RpD{%o+G!_@I1NPJVB1yMl7W5$S(VEIUGynKvF2V`!0> zY8>rQnCGY5AhWUMxuQC!hM)YCe=H~ZB3?6Q`d{!m&Kts-;ylOJ!O*SKYpO7V{;ccn z-hbr}ER`si=hQpG%`hh|u2NA}s;4EKvu#kHOQ`&t;ucLK6UX C%0$}$ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/glass_orange.png b/src/main/resources/assets/minecraft/textures/blocks/glass_orange.png new file mode 100644 index 0000000000000000000000000000000000000000..95b0a6811b4a66cdcc64b9ac62da819ec93d58d1 GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Q#@T9Lo7~DoxG8kL6O7t?#a1% z3|vv%*+S(Btm->7WuDJ64s^ND)Ux7#=L3G-quZB8v?nO9>M;LvvRGi}QjVmxQ49h} zA?I=!kM6YWXDB-&UouH`3AJ7xHDCjB6f$nEt zFBbi0FVH-8*S(4RBNM~&nc;CK+Syh+Zrq&u_UJkJs}`(*?>V;D0Nuyn>FVdQ&MBb@ E0FX;fBme*a literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/glass_pane_top.png b/src/main/resources/assets/minecraft/textures/blocks/glass_pane_top.png new file mode 100644 index 0000000000000000000000000000000000000000..02de5877d8fae5bc97f22db353258646380dd0a4 GIT binary patch literal 117 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Hl8kyAr-fh6Am!{`}_O*{{z?S z|4W`=RbV!Y-|ah-QDi5>l9@@&4(lX#7%=QiNZ^&I(C2BMVqvkz;RFN2)FVdQ&MBb@0O}P&JZWk)O?a@^fG6nDgAYv$uSe|xnsfNCV_9+P Si}gUG7(8A5T-G@yGywo5X(>4X literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_brown.png b/src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_brown.png new file mode 100644 index 0000000000000000000000000000000000000000..cbd791a420d195aa4e52a5c075cfa12f1a0984e3 GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`cAhSdAr-fh6Amy3)%MI&t&*}y zRuFIC=_tOw{0u`^48tX#jf@K6JTVdtF$Nphc=m|5IeN*+#Cd!(I+D%6pvq_ASQwJt Q1T=}k)78&qol`;+0Qtrs?*IS* literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_cyan.png b/src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_cyan.png new file mode 100644 index 0000000000000000000000000000000000000000..9a34b84424b2af69360753f906630f62359d8435 GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`cAhSdAr-fh6Am!fyh^wEyk^#y zp2ipkqXT=_^cyj26ft@jA7yKZF)T=AC^~pR%HTts1e<1ILB+w@;y!%(bSRsFA^w_0g1q`R Q5uiy7p00i_>zopr07lp&F8}}l literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_green.png b/src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_green.png new file mode 100644 index 0000000000000000000000000000000000000000..a7d9fc7d0329f05a7e6369c567b5df5cf3dc76bf GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`cAhSdAr-fh6Amy3z3!c-8YXFz ztRUXN)1iHN`5A_;7=}we8yOYCd153QVhlF0@$3*`vwT8y;hYUPAn-6oJ4Ay&S%D|8_EwtkD S#{dEq4?Z}ZHTscRZHD2X?i1m`fE5M>r;QxNA_!^r%;HF1Ivd%O6xs@Ox>3=E~GLn|gG SnB)VEV(@hJb6Mw<&;$UURU_a4 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_orange.png b/src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_orange.png new file mode 100644 index 0000000000000000000000000000000000000000..2866571b0fad5e57cf5db12f1333c5eee578e027 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`_MR?|Ar-fh6Am!1yDn{O9iRH4 zr!j`X=t0U%yHvJ-CrlI4x_B9OCOtUB@T95HG~vNs1D>Eq4?Y}PD&@QfXwJB#o+1c=d#Wzp$PyV3@CB{ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_pink.png b/src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_pink.png new file mode 100644 index 0000000000000000000000000000000000000000..6b6cd7689f4129e24eca80daa031bfdcbe0d6474 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`_MR?|Ar-fh6Am!jUDL1qwkPYJ zFF>*8hDne^Zg!;_{)(}V|m4S0ecJ^0|%dpBwi(44+gp61D- SZ|ZFVdQ&MBb@0Q4{+DF6Tf literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_silver.png b/src/main/resources/assets/minecraft/textures/blocks/glass_pane_top_silver.png new file mode 100644 index 0000000000000000000000000000000000000000..f226ecc96c5b7435fd4b87bbebd156848a402e34 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`_MR?|Ar-fh6Amz^otg15=h70- z^Aaam6_|hh`lVsqpd{X45}dee)yP3=B_mqlBW5 S1)T&M#o+1c=d#Wzp$PzRQ6s_t literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/glass_pink.png b/src/main/resources/assets/minecraft/textures/blocks/glass_pink.png new file mode 100644 index 0000000000000000000000000000000000000000..c1f61f072b43e11e971853af14cba1d40f9c6e1e GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`lRaG=Lo7~DoxG8kL6O6C?l-mt z3$|`BD`bDf=2M_-dC)X{QO5#S&cOe|2j!#I=6=J_c%$ZTwRuBgtb;V1v(AIpiph}Vpn{ujKC^MS<0&KYgovuD$W=iGgBMH*o-+$KdJe=d#Wzp$Pyr Cibmi7 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/glass_purple.png b/src/main/resources/assets/minecraft/textures/blocks/glass_purple.png new file mode 100644 index 0000000000000000000000000000000000000000..712a6249277148642148f924c4d7f1a2aafe3f5f GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`lRaG=Lo7~DoxG8kL6O7t?wQ;? z2CgXXY@zZ5=Ep4NH%-$Qbu3`z4E!&AP(El)e%DssgKj2*`9CHgOHXk&h@XAE z_~}3X2SGi%`&q;vu`>7>uirC)pZ8i*Qu^sz-E-|_WnVk#PKtj9bRL7JtDnm{r-UW| D)vim4 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/glass_red.png b/src/main/resources/assets/minecraft/textures/blocks/glass_red.png new file mode 100644 index 0000000000000000000000000000000000000000..37b603dfbf3fc6655fffaf6dfaee3eece162d8b6 GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`lRRAyM>}mAoO=R`P&)hGRtDHjhSF!_L$KdJe=d#Wzp$Py_ C2uhFu literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/glass_silver.png b/src/main/resources/assets/minecraft/textures/blocks/glass_silver.png new file mode 100644 index 0000000000000000000000000000000000000000..528dfaae768e896bbd8baf99b8c5e9140c60c2ec GIT binary patch literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`6FglULo7~DoxG8kL6O6C?l-mt z35?mox8pZA30vGWE$>un5>s*c>(5fpbb)b;;*ri}iLV~Vj*|#-&Z~SCUC~*s%xVKvm=r#sVS3j3^P6Y1iE-IH^z z7}&)=$W6BL@-<~yZHK6tDl@@83FN{P7yOCQNaH(9J)l(G);&)y>41pKQf*pOC9 vWZ~)$oEw$_1#l$2pdK)&e#*V5veNtmD4v1*;Hr5800000NkvXXu0mjf8#s=7 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_blue.png b/src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..8ced312b4021f97f50475b7ed16f7af7e7cbfd9a GIT binary patch literal 257 zcmV+c0sj7pP)B zcIV`TPkbKKA+xjpD+ocuI7bTRwF?LiwUQr=lgn*t?Ts_xtq;*O2XE3|D6)ATdzoM z(B&N%c>sLE212H)4zQk2MYaBUb*A-$#8Z4M1Ti7!E2P6W=Y;!te$N)=00000NkvXX Hu0mjf`iE{q literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_brown.png b/src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_brown.png new file mode 100644 index 0000000000000000000000000000000000000000..17bd427ba52594e7213602fbf22df38660d4b53c GIT binary patch literal 326 zcmV-M0lEH(P)$@ zu}VWh5JmSVqGiBOP*SC`kTd~_oqbz&^UI&tN7lsW!}MiwWpc1SoNZ6+S=kdM>bKR+*Jk$pG!MW=5&JNutqnk+ zvrn3wKfi}5){dF1$NQ1MkApmcO7)1TA=4DOr62nai6*4 ziq)`U?ZBN74imoTis%4GA#06Xv4E}wP?IUi{!8kLq~p~Nj*@Hbk%UQx=4R_H<)4$X zX+&bg@5f$s1w7z83;-*p#ZVJDExxUm5s--!Gxa~@JreCaQE+N)_ubGwN$0V)j7Kf` Y2bLl@Ij0-u&;S4c07*qoM6N<$f}H=8bN~PV literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_cyan.png b/src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_cyan.png new file mode 100644 index 0000000000000000000000000000000000000000..9a14cc5e3447883a063961d160ae99c8ad14a8c2 GIT binary patch literal 360 zcmV-u0hj)XP)Gz zF-n6$5QXOsY9e?GK`}xCLBvw<80oCU6oQ>an)K=Z=7;12xq^X23%yRhnYWp2ei)XW z<-IpEZ`Ll}zKGsp@$~#c?Ed~YyI;<$^;$1ylXs%uw*A$Li`|bNZU;jMm&@h%_J`=8 zUGZZMq1QBU473Qz>7s)GS{U8LHR1Z^ zPN`l9A0Qcx{x z3Li^_>8$4X*XS%#Bgwinii`X}%cR#q^TRp)haQAA6|g;^0VrMW5o@pj0000$@ z&1%A65Jl&m1R)DSD4`%&+dwxKiVK%+>_QiPjx4gsyY}djYX}{NWWF!=&d;6H>#kci zD|{G+aU2Q0PG@|vY(Dni1joxSn837P^l!MoB zH_;MS>$cs#dnB-II5&dHUN&#s+6*x_#sp3!vr?TRI58kECCGPro)uYacf1>X8Vk+( zI2kKw0|mg)O#&dGQQ}5OSJrhZo@&5gxMGl{W;((#y?e|U*;NH6$HuIKMF7(KA5=QA zf#~Q|?#GF#@Els7Y45(=2~gE5antR{aTq5dw{kyPGKYJyh$>;Up2a_8ou<#N+i-VN aG{GPJU<)3H_kW@Q0000jEvm? literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_green.png b/src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_green.png new file mode 100644 index 0000000000000000000000000000000000000000..c1f81deb82fdb94cf3f8e5f93cf47937be67a638 GIT binary patch literal 363 zcmV-x0hIoUP)Gz zy-EX75QXnkthMF`d!Hd-DjNx?ASA_NkxEDt1WA|1GF2KoeU}7GQY5eA7ry1J2*d83 zx#!HBnLDL^zrl9L6E=M6VmW_&Jz%fv?(DO-`Pmc1Eui_~5W1W6?_aJ%7>q8T-zo_6 z?|!|!5LUbfjSnGYpm4^Eiu4e0;SeuD6T-H;0}--v4Vnmq>FUb!S(3U@611h{!^A+h z1cZX-^cPJEz9<2$Hd_MO^q_&}!rWX34H;EvBhogFV{SnZkRjU1Dz9XGb}2`*j>4#b z9)d*~;B3n@s*+{|v_mf$Xx@kecjR_@>apONU;=PNG0|M7OW(nkT7uD_)1vAL-adAk z3e1OgaeN(fM>j4|n}OD>20S@@|8;31D>uuRZF8AJ$a-s8?_b3iM$a%sTP*+p002ov JPDHLkV1ihBoW=kE literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_light_blue.png b/src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_light_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..516fb7ed59cb0b4f2a08577cfa0c7bf082f837cf GIT binary patch literal 317 zcmV-D0mA-?P)7u>HM^mLg31NB2OA4xp{-#D1Y+#m01bphIOLEIcmm0t$-Fz? zxqtJjHT=B0f5skOXOHjSSpVaP9Z#qG#2No;^Vc4K;bbq?&ET!UaJcP^0Q3N$@w@{t z@^B4fc<%Uwk)JQu04n!@jEdgN6t%oC07>&6mNHJSu1 zlggZp?R>(NbL87u{caAi)2ITO$~4&%o03vzX04_y+5l0f;$yW|&f7dz(unQL7=D+* zUS%5UJmLwEGEl?t4vl_Ho4)t|5<86jTxTlt!h77$C8qL_{=+hv+ka*Y{MFPYx}!}v P00000NkvXXu0mjfD$@ zF$%&^5JdL^mZDao;Gt~nJcl+`o*`gsDl1PAuo0|1f)Ff{1H_liXY=z748h%<*}prk z9Usf4%<|8Ecb$)7dzpdiHf`zxvcV=GMSyG+RKNKICNRZ-W@t{Yl|Wu!HEIQQL2DDw z2Y_^buVdMWK-pL$pd=5%4rPX{7r^i>DS(8nRR;p#W%cVV>IAJz5jp!+e^hMs_I7YgjDW6j+*@0zw+u9$x85O@jNy~`dH(>;LZ9TKh$nmi0000GN~#1 zgm+f5uovd?q%h_W`Gz zu?@mN3`M;Jq=3vpMadR4G^{|Ik|EMXNI`-HBGIw~B@zSBk|N>zzVme;eb6cPv%h_3 zpQ?oBb?t}Ks=sdV5BZmIfR^_=wdgwJSO87KLw{aF0E)JKZ0)@dJ$D8GGE_pg1F0}O z@C%Zd3IQe)9q2(Y$}>BnRY?-Y%nMHdiz%Fs$LtA6PEeSp8P3ZK0BjtQz9T#iY^5f2 zPtV4+;Tgt5E>npLZS#IQLI=n$3=;D|CERnx7x;i{Y+ju07>U~mq z0+0jv35W-hfLQnB{s({=xX;V$1|Y7VjNdeY{1qTZyT#>_Gh9I2AG4W}k0?e@ICiWx eYd$e5&x9{}Pl`({Qqn2_0000Pb4n#++mDoxdY4Kpl;C=TC$YEjDc%XClI=8E>G`9?oE$E#?zQS2eHTBDo`zBB zmLz+>zNUo6t8-h8gNhXsS_xa1_^Pc)G#@qM2jKxb(-tY09{>OV07*qoM6N<$f_u4Y ArT_o{ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_purple.png b/src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_purple.png new file mode 100644 index 0000000000000000000000000000000000000000..d0f9e68f9727f018bff06f7835006eda5c12910a GIT binary patch literal 298 zcmV+_0oDGAP)Gz zI|@QE5JhJr>ISSHDlWvzMi4h+p^YFGR<6Rz-d(s9kDPD~4~CG>xigd8)Ny#87q7?W zGoKFzbC(j1v0{)k;Vl_C^7*Bkpud2$2HDAoZcbY_UfKXn`;Kms w2%s6)(`GWa!KPxF3LS&;fBj&-k2W*;0?R%&gU3+JEdT%j07*qoM6N<$f+je) zI|>3p5JcxD$|4#Fnj4CliIJ!A27+Md4GayvgD7|-pS-1P6?&KcR839Sw8LlJaHjx1Y+*1rMbx!pjx&L?sjpR=4nkfWdugmAtHB)0sgFF_8`>cEz9 zTQ0mFc}65HEB+9OYyu5HuOOQ9D6#{$qI3<=v7x_G(CnJk;h@Rr$AcE99e@yIAC4Y` z)2LODQ=chK16Z$+Tg8w{h|3>a9akMX?i~fox2^Z%E}T5GeAUvS1pFq*sc$Sg?s>Mz qMq&2_b9-C=IiMA+XyOH@1}3PZ$5q<^0000Gz zO-ckY5QTFHe~#ozltF0J#kds_8AZK-xOaAeS!6laa3d~U3;aq(7s3c8K7#b`AD>1J*K5(Nqm!8gED^;XUtYg| zc6f{&G=51-I6fQl-)a>|i@-pevzi3Dq7F7ycpH}>$kIF_cdJzpWJsC?oh>;0P6UiP zw&bP{HuXwLm$wh+Hw(M!adCF=(XGk~q3%jicyjiGr?=?G*+3=>wVN8vvz zb`@&Ac-mVoA?%OC1un#OGYw5BICw{*f@iA|krV<4$HpASV1KQtmzfP3{F@|R4H5cJ v{dM|as|Mpcl@RZ;Rp|SXpay~HUp|;$Q#syNS*CA)00000NkvXXu0mjfFo=;{ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_white.png b/src/main/resources/assets/minecraft/textures/blocks/glazed_terracotta_white.png new file mode 100644 index 0000000000000000000000000000000000000000..b94f6b9d4706f2b53b2fd220b2da66a9b353d609 GIT binary patch literal 308 zcmV-40n7f0P)$D zF%H5o4D?_41rj3*6H`~7!5erF6XF4^NJxNC=>$6}9q3ZH$@ zF;2rk5JmR_lsN*&pruMdMVk}QrlQI%DAG|yAVGsKkVB-(38Kh~`@oxh&Ui&4ec9`o z|7ZTrxSV$nr?1)XVIAnZz+r8K6yR{&+T z2wn6ap$S1&)xe|~wwhFf02IH|@p-?17m?!z8>3RqegUDh9%O^)S!E*ILMZ<|T-bEb zEh#9jyh`*lke~QTKLZdW*|pr)|t351+rN9f>oG=xG^S; zN?R0VuEL%fXg$JI*`Jp7!l(s{*(XSg4CK`5;H2`IBJ!CW;NUeKm^A9Uc2&1@2=`)2 zT~+JA=gS23A5=4=j=|J`>e9i_)V0Mg9<@)l;cs5sBAYPiKTx$;n~|IaQ{s@2Zf%j4 h2{ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/gold_block.png b/src/main/resources/assets/minecraft/textures/blocks/gold_block.png new file mode 100644 index 0000000000000000000000000000000000000000..4d233c763f631ace0f9ef76767826fc72c816d73 GIT binary patch literal 528 zcmV+r0`L8aP)US-}xM7{m(muSZ1;c+;= zm@d}`V-_8CZ`CEQuQI3OxERMp)pWl9%Y5_Qx4!=I2j#Bjl2>5_O^T*6ID#fkFD&og zGwaIu>JdO;_n)Fjk)b-qSSqLN({_`-F`mpZ005}k#u)UFCKdXIQ&r5%fveQBDahZ{ zH#)!5r*RB=lc^LnBqWi9hM|sErfR7}@`v&118}{d&}dO|6dp(j)D`f=%W1%B02!s`Qj;>s)_oUk42RKW9It^de*yqd z9hdVkpAO@x^vmh~a>{u(KiekMI8+Kj(_7YQeg0S7o=uw(1J!MEQ~klnW;Ls* zqKlN#k>2`tdbM6HEB*(O)=8Wj S`=^rt0000ujP)mOc_0Fy$14?w2Vel*8K zXC8%`Ly)C$nl@rb1nDFAUKl9yj=qW<8Jj9g&%Np=tDVhug-jP1QPky-cn9hV=_{(P zZF*T`qi-+r;e`B(c;!EuGIy3k(w(C#szGG-*T!rWcgmUPnOG5kxeqK0mtF5+vUUIf N002ovPDHLkV1iNNaC!g$ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/grass_path_side.png b/src/main/resources/assets/minecraft/textures/blocks/grass_path_side.png new file mode 100644 index 0000000000000000000000000000000000000000..c9de13528ed4076faeb0c05c4dcc516c974695d1 GIT binary patch literal 406 zcmV;H0crk;P)dYP%YIMON(u~@B`vb7j8t95)|v(AQX!cYYSo&-$9gu*(q-P06*o} zxjJQfo30E@W^!iknK^T#)PJ9k(;}YsY`g~rTyIX|Y;_#xl?mMMSO_;Vi1uxbk$>^C zcs`s#u#&>(RZ-^^9lEJZAy`Y{aw~(^S{8+&0Yt~PCZU6IBaesOX@q_b-*1bEd$+&Jr_m^np;a&a5}Y_4f3Q5_As1B`^uc$^=c4e#TRENg!L8 z9qm~h%iz7p+frtc+_2PdHtHcT{{dc7zx(F~Kf_BH-x|t#kN^Mx07*qoM6N<$f<%?F AqW}N^ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/grass_path_top.png b/src/main/resources/assets/minecraft/textures/blocks/grass_path_top.png new file mode 100644 index 0000000000000000000000000000000000000000..d1f6e3a5b314feed89130c2f876a120c963ed37c GIT binary patch literal 796 zcmV+%1LOROP)~qTbB{@XOqe0( zo^QQUFKfr3=0?A=fZU!8Wn&1bts&$*BS?Ejp~jp@ZfQ^rSy5N)s0Xdc>>F^dIFRue zAe9bAQ1t4N+R>xnm2s1pK$C_pBM#&bO~?lz?x_XblcWbDf+K~5~P&_h0 z`j#C>D?HA~kx#>Dh6%~9dqJb88Mfp1^(t-?PW)C^Q9iMvOl&I0W9VciAqCf7@iwu& zlb<3sT2y>8BMT{ywM8gfIz|;z&J`oF2PX9MGbjg$L19OOpXv(QDJPnWl{E`lX^)KJ zz82lHY53NMkf1|CYMW4_Uu5#af=*!$(skU4=cXH%F$Yw|hMTkt1)mve)PYufoKUPd zkJymi)sja>M0Z9|@*AOs9ehSo;|`{NOAJ_Z$d0@8Ec_e8$nWcrBql=leawQV#tH`Y zW%ffX5%W@&v}U~qrk?mb%t+nrJTDZ+HjngZMeHaA%qSjP5uuqu#f{9K4wVBLQafs9 zs@>c)%3d8xM`IW?+~{N{Id2hdBOtS}g1%t$NDETiT7=0|>CB_y!G3OvT^DYP4m{PD zP$8N*pAiq`1&;GJO$Kg_kdbrfug|vQU5m!kUMQPxU1V3uficUc4 z=3G3G+BM)lGmR3VRsGa;k`Y>e%}azF@hc7rvmc5JXp>~o1xd89m$V{9B`F=6$ru@_ zuX@C`b^I-42^J!a=7|Np(mTY-ht{bTMLH`zHb7w99 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/grass_side.png b/src/main/resources/assets/minecraft/textures/blocks/grass_side.png new file mode 100644 index 0000000000000000000000000000000000000000..a4975e53478ee3b1fad636c7cc99a2798a043b16 GIT binary patch literal 408 zcmV;J0cZY+P)(QU7!qQ_q-1>VjC+_FRu#+3W?#m!Xqt%$ZX+rX%fq{;GrjaQmn1qTcpTHLHTj35q zC%E9`&tv8?!VGj@$#t=&4z~+&9DXN}{Y|lNI9r3nSsmMs4(~l*NLHV_Lz{#;AWiL( z-i$}W7}@UF$Jij9-y7$E_;j)mNp1)rN#xXEx=@3OO+ti@4($wrpeRA&+SWwQChJag zH|6{cV4Ye^%eGj@oL!3DvK2du(~Ndz0T#a=MRw)N&7~RW>GTNtnfW7Grv<4b(pAw2 zB-jBF34r|rvZPAyF9iQ-5GtheB{zfs00006I!Nu zI;ORT*!P_m?)!$6l0Q)HoMTT4*LB5l9JsEFYiXJy&vTA{===VwK?=yT+?SV^zdXRi Vczl&7)+PV|002ovPDHLkV1ku5TnqpJ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/grass_side_snowed.png b/src/main/resources/assets/minecraft/textures/blocks/grass_side_snowed.png new file mode 100644 index 0000000000000000000000000000000000000000..8b28fc7a03b70454c509aa0c7942d6778cde6593 GIT binary patch literal 267 zcmV+m0rdWfP)0o$0icQWqG2{0$%((?U+Qb;v%@2c-s{?l zQ!}UQ>9BEj0FL;Y1t9CqVAqK+U9Gh)V1##>fcxb*Y~t(L&YjWwdfd7Joja2V-vNM= zln&;B4hAn$!XhimWm*0lM9F)iN(ZmRtC{ILKq~#EvJ7@xVa#5$-&tFu0?@N(fHO$M ztTrvMPGqglllYqZM@nUa>=9KJK{=ev>g)DxRXRCH4$|cfK>h&@33)ar0DpBYZm{xd RSgHU3002ovPDHLkV1ghyad`j$ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/grass_top.png b/src/main/resources/assets/minecraft/textures/blocks/grass_top.png new file mode 100644 index 0000000000000000000000000000000000000000..eaa7e458f702c46fe6eb7d58efdd091cca089530 GIT binary patch literal 560 zcmV-00?+-4P)nJC=}8J zv-|z7b5;sF3}>C>1NIICKE7TrnZl0ogeHsw8QL_1h<1j;1Rw`G(-?#g41*1YAbr1I z3xz_`jW;x6;(rg&30)#gsQADch=huFo?#Y=M1+ohGJw&JJyQf74p=Lc(Hahib;dh) znn)!~VMU*#k(iQ5kSJmZ=j495TuKTx$Ylda;GMwfzd#XMJ&L4_kkE+J1c?hnG16N( yEF4rx9#hfG{@H>z05dwG5;T%S-EWC!Q4gw00002}QIjG~#3y_~f<{q%QUQP7+Sz8CEAe6av3D~& zJ9p~Zzo0|gqSyJH9>Nh_4F=R{xA^_?Jf|=W8AbDe*JTf28vCR`HjQi~Fr)D(ppu!V z({7tLHcuS#eV@sI5I>h6)Tr0^TZtmbfNXRlvJiAvAkU^#s#VL}M4_7qYg>zFi7^Q<KT0NDqi zx$1Xa7Lbm>@lhq^NQC8k9Nh3bo7p8LvwMzvC6S0D3b&{M@*a*(=i8UIp8_<%yE z&1y}n?;l=3fUqp0x@}zm;Wuh!QuujayhTJiWfM2fZ8|C2;t<~;bBG8~KUZwF5Zv#|p?D!u<}HZ_6ySmRnw$!VfXSaurhCQmp=%x4>FMd2HCfP?{ld8-TlA%f zT&dHEoK|Dm2aeR+v79zz$(D|MzdjH@vq#1T1bNVtdNYw`>q`^+N-&i}*yDvPbfk#; zQf)mc*RK4`ySxvepvl6ad@Os{g#ElD-?I)+#HVB=d8D|UxPMGXa*TRfs3YbWk0`H* zhLSJ3O#XU(BzqkWBv(Ks5%n1pL01bX0TP>yC)L_xH4uKj*d7nS+)6!fCqxliGUU+% zBqJyjm+}s(0+)bmH3jZ~9AL7NAlINO%qe0^Kp(VXz8pvsdTfi+(S&0(V7t}Il`^)) zOqqCev`qvdz~AeU)a&uphg&sJ43GfxE|eAK9dsg?08W7YsyYx=8+&r(>6By!EcnqT z5?Y-xT0!;D#sJ5uIPWG(=!?NP=&bh7N40NJv0{4{cR@ zNtY%VQZkaEw4DN4LECHrb8dU3nJTw+9{-t5bUfwG z=ccvm48r%to%Q6hC)Jy4_kbp85-^`5Ck#x+5ql#48osaJQZnw{{OE4Fxb2|mAiaCQ*@~SZ1aWTy~l8zx%&|tciDUP z=rRN0YjZ`%kqBdEo1!ANXAc+h9X@XgjsWJ3D?%91p}-3>+w48>JwdsP2=DW}_kgg6 z`M%ASjY8+W0f6By!%RbY?|I2a0ZbvDM=2CyY;1G)^JTgN;k_B|((?9P5kX-#w&x3b z6Z}p`GSem4yhj)qo4cPcsR$!sAZ(C3pf}`Ud%oSVu~9Ui?*sSyi;rQS5!Zpcgm2AY znQ7b|hL1OFDq_Ykl$l)r!eZCd~lCgy~#x9i-Y>|5Oe$i#&t=8Oc(YrOA? z3U+HIaz?w7fVM8Ns&7TLr3ex;W6Lf|GIH@s>Snl!U2G{pjMyzu1n36^(-O=uXUshc zt+%VCt#ijY13(6G&+wLnF728b06@G~37KfoI%iBvh5{1Wf+Mur($Y$pkcsbGx9BUX z<(vWUt=<@8UqMS>NhHh}7iMCG?|ECgWV}~_i3tEi67PF1>{cP@B0x*Rt|uT9)CqIO z?Jgps(768`!SC-cxso_T8~c{XnnUK00000NkvXXu0mjfio&Ru literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_cyan.png b/src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_cyan.png new file mode 100644 index 0000000000000000000000000000000000000000..b2d18c92ad31e9cf0068f60123e3a3a03a01d23a GIT binary patch literal 444 zcmV;t0Ym11wgaGL?SB(K60u%&pZ?%DK?ng;QCnH`u_Cr=?@Q;kWQ>(neLt35V-??j zYo+~ZjpqaaZ1lR8&AF^k2e?-@<$dwBc3a{gZFCQmeXl!VD%RHrhX}}y{B_HbL7Yu_ zoBOxv)&bmBYJLfNpj|{5{H=}XYR(R(VLi^g0}}^8pg92QMK%C_qQ*?yRBc|g8h}g) z4J@*^pqHHmoT|ODnLR$R9c)aTn03UZ^+y~!*kD=b+#n{|ZXhIc4aQ%p0#Nv m%MtDTj~7FNI;-=Q@%94@dkfkPf4<)U0000BQTo}rcjR8dP0mBPHI63lt7jriRp7((J%}_Dk z6L-Ld&2tU_fO`i-*mzFPh5!)Tz=6#+8&DL*_su)FGZ^PY+&g=cxD3XIfKFcM1n%#3 zhmCUYkm3XYsod{+VV9Z0hJaCQvjG*R=;XB_gdxv+!1w!0kK`P-?2hJsv+-`!BrC@K zM(9x#_ri#ZaCu>Xu&~(>_2^#PYy=03csl{8Yu=LX9H5P{NGqIyV x$l~b%HgowGC+`r%o<|7h_p}8<#D$2tM__s4y^of# zyJp6mU*@PA|NKC*eys#4z{Q}Vb185)}keelh{@Z7=k{uiYW$@$c!@w zRK2bi>fYnd0WD?__e{L4h%LI#3;-bBt{@4aTlXHbTS*iEZ7IjlYO7n6iAl`F_dS>B zTU9VKV0Z1*ICfV{i?^DHm^m)w40zwi7K^d3sLVKnph!f#_qotrEfZJ-P)W4U+ki}H zoipYfxBEy)D8#)NeBVEEjhGV^`yS!_o~m1{>Oq_{ry}N$S*m8Gu3m_8@oWz+SD7W#w z7Zu#rWSkjq*Ga%_J@AWX7uBK&31^~ZEhPyD%L&g6e?(iBTUL$uh`THlVcmBd}NJ~IG-cy|egDO)~s%vwnlAlw!lL+iG-C=ru5 z!}nefqq|nMJSX72m9vgvYoWB&kitzuUrpR$3J@E9 z<_Nl6{;ix9LZP!69R&m(0&tdNq}p7F$mN0a-tE(mLrWAb_4j(MWB zf7E$?`8*K<{r`LaV)O*;9SDH=brhr{5uEaX?;s?Cm>MP+pG3IS+3xg0(B(6!+J%0p zNTK2t`zdufe1gu$tz*)ds_Y_t1Upu-ScygYJwIBy&=$pz8r`?-EUZevHIhB3VgGZJ z8V6tzs~0K{h)QOHZdUb?8U}j2nT51K#3p$tbizcCW1Ovj(a;XnL238MFy$! zo~=vA3!%n&!JrY5<3VA2om{?4$FFo?SPp!cliEZ%mN<2ga3N^dO;rxb(6HrA>a_%{ zkz4|Dwps;sX(+y5w(oq^%rVC3ybTn{oLMwx>_@T>A{%GmydE@OaX7ub%mFvaX8d;G zBtBye+8>Fo)7tlU!jI|SW6_LdLcKO|e=CDMW$n`+(RL9bcl^fA00000NkvXXu0mjf DG)m4E literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_magenta.png b/src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_magenta.png new file mode 100644 index 0000000000000000000000000000000000000000..f28da0dbf8accc241e413b7f3aae343f268b804c GIT binary patch literal 467 zcmV;^0WAKBP)pwZ$+awGjKW;=LoGo9XNMEHDBh z-rItt2-EF(wz@r1%mBgdF&&ShTX&moj4W1BRldJtkLYum(fI6T;XT(~@mb4zhZ#LM zBZ-8ymkn!|Mt@)D#7s-dd0RrN>=hF-NQwBJV>9j@)1wkIO#;S9%FOk91G0;0&nkN_ zyYH2RDsvn0=kpQ#_x+D7W!X=RIOmw~`?a32yQv~+Ng3lk$E2hlpCXCV!;GY?#T4$? z5i>wS!t`iYMCy@y^ttX(p@oSgc6LdCD(?SG;!&g2CKtrVUiN!~gvf8j5)`d@TR~002ov JPDHLkV1kDg-xmM? literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_orange.png b/src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_orange.png new file mode 100644 index 0000000000000000000000000000000000000000..9ccdb4b3bae660492f728bb983be17d0d57e7be5 GIT binary patch literal 463 zcmV;=0WkiFP)`jhBsE7vXlH_}>$4veE&)-P`pp@>mo|YTuzP_F<;XSX(07_Tcu!^-G zUB%_3d_KP_RB`XM*0!Ey4!eLGHsv?5-=jj1PzCI@%y4HIx>|h|=UT;HU3PDChm1Ew zl=4)&H%7Q9TFED1!cJmqwU%^w!tXhPPcBv9&({Oac@4UnjQy}cKaai{wMqgMZbHgqk#RF7AyHjcm(}Ix96MUxV?yxk1V~vs{jDBGIQMvti2G8wYQynQL0)p zgg@Vps`B6O54EgX_HHxW_od?8>xO-Y)zP?6obytxYFn#xm-h~#x^X=Z%wgPjss`B_(|Q3*4lL|Y6~k$Rz}q&eS7jlyEpDe*MZ1T_ z@5zcOLFPn9A_*0IUy_^}Jm&DJ28sa^P=Nxy(-+)8xBzt^IFkCtjv6?jD1~z|Ovf8b6GL1RTbC@X>b$2*1MA9Ki195#LI%7laZlcIuz!j1K)QA_J+-QBQ@s_IqW_D T_2RUF00000NkvXXu0mjfrC`)? literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_purple.png b/src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_purple.png new file mode 100644 index 0000000000000000000000000000000000000000..8bee14ea1f1359dd98c5dbba2eecd48844540268 GIT binary patch literal 476 zcmV<20VDp2P)b~^f?%J__ddf&$;%FXFc4@ zFvGc55=rd6ZPU?>Qz>c|28w+ha5p zJ4J0WbcEP)7!~}SLu6H1|M*-M-r#Ubo;p$XaVr_ z5s{S2=pLVI+dVB6(?G;&B0ja;{TR_<6{!*g-{-MMIq%CbxORc(ZN1vHw&yf6&fv5P zN$kCB*n4T?{=U4JA@Mvdp{lG^#)u%2a=(vFd(W62D`AENfJ9F_50G6LKgC|#KIf=J zSIim2uWL)+44ClN$eD5~Ho{lam<0RlYuTDvAS49%1n;|K?Q1PC&VTMM6 z&^<-77A;#8^wO5{ zv?OsRgy8#L)Vmj>>euH1@4XZmx}ImoyDN#7?t0Du0wUhK5|Svip7WS?WukzD-O_jr zyLOkBGKn*hiSPS**66*cEuS+EzIXL-=CGwz+$~6A&hfxGU5Uakr=>CIPmdh$1D(U~5$p$&tOf>y|+$2zW9fz)9RzK4ae3w%+$k`LP}& zfO8^^2SB;subVhi3J@lKXF#{M<$Iko9#FvNaS(A5Z%a#}ExW1;8MpigVbKg}P%R9{ P00000NkvXXu0mjfbo#-g literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_white.png b/src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_white.png new file mode 100644 index 0000000000000000000000000000000000000000..b7ba8e99972cd73e5f9debf8ef26d6cd982e7672 GIT binary patch literal 434 zcmV;j0ZsmiP)f_qB zG`4jf;s|jA;<`I}w>Rapq zPN-_cLbd8>806)H#}BxTZY8p4*xZ5>%tLQfokz8W>5wEcwkB1JVgZ#)Z=f~};CWGd zUG_oEMv_qpNFsP~w$UcAHxK{3PYR6uMzVtfO;ilc7tGb|WZDNb6hr~z(4dR$z~1pZ zoqF@INJuEwi@r!maBs(|zBH8laGOT9*gGs>&Rw3#J$C*rUjNcQ9gf)-N{WQze0gE; zb%707*qoM6N<$f;zItF#rGn literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_yellow.png b/src/main/resources/assets/minecraft/textures/blocks/hardened_clay_stained_yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..ec96503ab20e78399cc3970fddd992d7bbb73f98 GIT binary patch literal 469 zcmV;`0V@89P)M?_g`{=Y7EExmvO|cbwN=zIUv|9nAH5Z9qW8 z=Z+u=p;Pbov1Z0vF$IX3GV!vQYi4u`){e7culRhvPA&6XZ56Mx!1o!mIs15SwbgQ; z5>{fLC)$xL&$pzqme&qJkw}*B_i?Cut5ZAC4hg7QS=#IS4af?=`J66Kj!_ELET9lCWORimbS|+Dc;Y=)$cN z(Es6|6KIU&Ga@!VQJo8OO_`u+1O>f?Ilh*HiwGI5kbxxc?A zi>VX|iDvo97R=Plc>auiwo?Q`-){>$vDfy!RTWXyd$mC-_ zuALllb(d;;up!DWY8@>$jE0T#*RsR2%I12oHApUw`Yvg~PS-QsDE>I>ISoNoFXx^f zX5%--xe;%t)bk>&79Rh_vf<#*1vowpR?XC--7sh zM%#1+P=e(=S~XOO@a^4Ufzu`nD7e&5UM#W@D1{Ixg}wEpE5txo2&mrwW}Vn-+RCkW zcy>sP+*~9VE(DVay;$jDV{6EK9=&^ugM%cdR(1F0rdgSKTXW||_VSn;*P_L$bAD8L zJucSQqY#U$SCXgClI>AerQ*xaqZrn+DzUqpEHalb2VpIOt`x(~p1n(blS!2NMLi=# zc1L|DV`AzTdwW5>3?>Z<7j_ERy~3jF2n6Id*c_0%B5eidM#S-q5Q~@3TM8i+N%7As zN+G7;WEKbk%%({ZoQ-FodhvYW^rW*|^5|D)bubzhbsg+K=+v`DsyZci9{v)HPg_kc zCU5!qK_~q9)#Wl67H1OzU~rDEBSuPLJ`0p0Ce}8B<-Axm^b*w%Co}OCUEye%!A>ty z_%C-#;rd$gy2$`wyO;dE%Bt&Mui1)O#(Skw^@F0AodwkvtQI(_qM)u|` z`f#&T<@0N<50=I`*l3F<({=s4^u=e{Z^wPjX>kAk(rg?(p7srj5+MFjo_e`85=%}{vP00000NkvXXu0mjfZDv{H literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/hay_block_top.png b/src/main/resources/assets/minecraft/textures/blocks/hay_block_top.png new file mode 100644 index 0000000000000000000000000000000000000000..3c74f6f31ef7053c838cc9c4420a92e3b2664c44 GIT binary patch literal 714 zcmV;*0yX`KP)$?9}LzK{$z%xdT2w$T{QSlbmlmF(0%Qr4cf7L40p2q-HFRwyl6% zkmaON!6G%QQCT)fhb(UTinyQ-DhlaYznj3PvXv?v^!G>!Se>d|H#7!WS8OS4aoe9j zJ7G|Gt5>jvjdBcyU%KQaw29vEh) z@#j#Zx?*s(OC59-j*Ax8oe4CPjwsXhg2G9QD*mLHk literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/hopper_inside.png b/src/main/resources/assets/minecraft/textures/blocks/hopper_inside.png new file mode 100644 index 0000000000000000000000000000000000000000..5ae6c70798f10e6b0a6498ef79921904344b9f0e GIT binary patch literal 337 zcmV-X0j~auP)A z*Iq|iM;p!+KCsW#ht!CrXV45)X)+XtYYLL>st%T&8+ j!yx1y`0pvzn~47pgG3f5vZ#XA00000NkvXXu0mjffftR` literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/hopper_outside.png b/src/main/resources/assets/minecraft/textures/blocks/hopper_outside.png new file mode 100644 index 0000000000000000000000000000000000000000..c961a17efecccd02f58c9cceb41a6a84a69995ab GIT binary patch literal 425 zcmV;a0apHrP)!c>E$yTB?J^iSz9+Il6rqya?Ns`z&j`sO{ zEXy)`KA&#y_j~KQ&eAmXbDsFu>$ROuCkyBE*&dIFJ1ImEham)ey_5PefP+VYEF%lS&0u&6Y3pqm*UoWBC11@bP&3vttxSM3PC;2#Vp{8FEOFRw?BVheH%hOq!;N0_$3b zc~!3Q_wMmAJFKuNI3G2rT3y$%5J9>V^YwjS^TJ7dR2N)?tc|lj}@!^j3Z5gF&V=cWEciL&r`Q; z(`lNtX&SxnTd(WVbzOCyXZyNM%)akt^N&D~B#D+~scD*Op66y~S*Ar%Xxp~7kIlaO z-6zYkXjN6g1jHT3p+agbfV_M>o^pN}fVTu>0MJ1YgtWk0f+&g<{4xkF0gXW4_g?}; z0&fWr6Ckh=#BpqROTdqS@}=v#;1c{myGCAg9|$dh?8VzRgrKf#1x7#}u4-ro<2b53 z&to^>PH&R`mUf$FW6kOKtdaZ{LJ2sOF%Z&#gawV^W6L=x7| SSBe?{0000DXQRiOq)C?<4H?fk^rfW~ xvIQ{<+zps?h+%fOM90-0Z&_yFVr4@KhAAy4MXsf8ybQF6!PC{xWt~$(69BwkFcts+ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/ice_packed.png b/src/main/resources/assets/minecraft/textures/blocks/ice_packed.png new file mode 100644 index 0000000000000000000000000000000000000000..3b06f3f18413f24ae8e592cf66a2736d081f7593 GIT binary patch literal 465 zcmV;?0WSWDP)N|!B!nP zK>&LI69AGnzXefd=Y@O0|#m1>}EkD<1ud0lJS*6Hqbe|=~|Lef?1xLl5PynS)3EFwQ?w=iBm^=v z$@QM3d#&!;wwx~jAj|TQWP#MRoUrdXJ=0y)1-V=RK$gcC9#a?z0BrmG3?$toKmc_2 zMxLAJ)sPW@CBOiZ00{|6=))U+{2kjihYbLCw?d4$%>+pxOJfYW_nn`A$2K?10^sAV zzWug`fhpTGzxMs3Wl0tQ z^ZAS=dBk>-gaiOd9EUtC0YU;MfFwyt(~=|+00an-1OUK)fxi(nDLC=u00000NkvXX Hu0mjf#&yb- literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/iron_bars.png b/src/main/resources/assets/minecraft/textures/blocks/iron_bars.png new file mode 100644 index 0000000000000000000000000000000000000000..cb3057dc166136401872e94910774113702f1114 GIT binary patch literal 490 zcmVbELv@^_N!ul9NlYfx54LWUPLn_jXaTOu)#@uE#!q~?L5zd( z<@3IJWS?WkexH}Q0=I0izs_kI!Rk}C%%^Y%E@6x@#=h%4X6cLs2d$B2DPfCzf`0F* zDQNUJT)w@;a|v)@Ygrg;JzE&*pGl*AQ$j&hc)guvRBv7Pk@j5$gIggcy=?nT2rv z+4-lB6~qexF9^Xof5@tv3X|ZNK4E4);ijq(hM_rw(I`a!s6~SF%?5pL5f;S}y4|iR zP(^`b=ZWzX=d;Y1!8A=wL6PTh2aZv`dZTdhdXDR}68dn5`}?1ezBC2Pe1cxLM}jZ) zS4iK(a45hX4k3oPyWL_mivM#1Rlv4633lsO2&6~YYPE*+0#i_)mUJzQvB@|_t3?Mp g9>?f(9{*v#07_H_u}u_r+5i9m07*qoM6N<$f^+cPO#lD@ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/iron_ore.png b/src/main/resources/assets/minecraft/textures/blocks/iron_ore.png new file mode 100644 index 0000000000000000000000000000000000000000..250d8bb73f588fa9f38631749009337053abae40 GIT binary patch literal 265 zcmV+k0rvihP)_672L;Z&lJ86I6^CyY&piQEE1Tnt85cmm)Zvi019t`a z&gx@_UlwZo?L{aWmU!mBie~N%hvYN&uJ{gmWq)m)jnbU*%=6i@dIDlUt)hq$qM)(c P00000NkvXXu0mjflRt8= literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/iron_trapdoor.png b/src/main/resources/assets/minecraft/textures/blocks/iron_trapdoor.png new file mode 100644 index 0000000000000000000000000000000000000000..c705ca1bb34d83d69a58606d6c53fbbc7f3ad393 GIT binary patch literal 279 zcmV+y0qFjTP)FQ7VmoScF2Gcagn-nL(@$VC7E002ovPDHLkV1oT%cOw7* literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/itemframe_background.png b/src/main/resources/assets/minecraft/textures/blocks/itemframe_background.png new file mode 100644 index 0000000000000000000000000000000000000000..660bae6c505d926f8ac8c1ad07b77cddf9a15378 GIT binary patch literal 409 zcmV;K0cQS*P)6n_@D)H%&`#%{W!2Uqrg5+jGbkHz)m2p!)aT@_YivY8XQL&#!0;FT2IySRfOQhC?oh-Z%9Q4QVzit{00000NkvXXu0mjf D-4(V) literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/jukebox_side.png b/src/main/resources/assets/minecraft/textures/blocks/jukebox_side.png new file mode 100644 index 0000000000000000000000000000000000000000..a3c27c1899ec70358f3658f1f7b47c7dfbdf69d0 GIT binary patch literal 395 zcmV;60d)R}P)rIhjEz167lhJcPa1F3;CD~6p80?eT6;uVg+b4-FdYxQeCqo%!d-C%zl15QXnUC|HUS{Ev#)LI@I!*w_R?6cOxv0vkI?Qlu4$xPknv76bnltN=QA2fF{P8H90iGG`!)p#;593SDpE^kLGjNix#jfEti{`Aq(& zp*jd{bZbwJF{nNiO$+Fsz~2C}6^sA&oyPSHL;MBeAnMGGV~ySb0000}1Cp0weOPc-PP;S+K zNsb0nS;zmz%wGeq>SliU#eYcd*{1)FY>fs!JWCkc9BU@TtXgk2gV$W)X#8vYGpq_` zW-@P=aUD}IJHe_TbyQTra{@OVU0@7?7RQgS28+aIgid)J|xOpP6)mZ<)pZU^j`b~8o_^>N5%6qdm#TA%L ca^qxXn0a5FTiD%v8qli@p00i_>zopr0J$4q3;+NC literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/lapis_block.png b/src/main/resources/assets/minecraft/textures/blocks/lapis_block.png new file mode 100644 index 0000000000000000000000000000000000000000..24810ac9cb3904c0f7ed5d0546836f8d3fac836d GIT binary patch literal 668 zcmV;N0%QG&P)4X@b?ELg~RzX_$bcJXh|E7Y)lx%t9cf*1;b2nXn8lkTS{xZAGO=TT01FCPD?g> zDJ-25in`9G#{wecc4EwG4Wg{yjOIfp)-2VAxN+US5ps~6<-F+nI}l;oztH$Bp0lz} zn&+$j>ZsOLDXqGWj?+t<@X;m@j)zOTXa9hB`|2$bvNu81^Y2!x# zAp}jH?e2b;rzz{YKP+KuJ>Of7s~Cg2B((<1TBJN+xK?2|JuYy*LQzfw9@lS!->QGH7HAza&S1k7Jm5g z=lbTi8N`ck%?~@d{S`Ff3C#6cnjYj15IIg?f&T#k`%bP-ME6$!0000Uv+XMe4-L`@a5Oq2O4hxu}(ysIV zEBW+cx&S08>#*X#xaU@!&Ic*P=6`q?D0|QUFJZqE9_KIxqHc#EUJ73EU(3Jezr5FS zjBsGU6~Z7a;kN0&jO%)!{}=q1c3ulM1SBr)u;9OTcsFK30!d0*u0e?vNt-P|0~Y>Q z@tgz~mjxPVoX`p}02Z2Zo-_Xosm=Z`s5uQKMvwy;hLyY~{5Op6Mg$_d(?xX_!`T8l zz*uouiIO^1e0u&XIU#ugIn9get^F^ew;rxRRBQWxQPWBPm0WsILLVg%ku!&?Z!a8U o(}3(^unVxoIW~Wzdle=I0B+!1TW+d~nE(I)07*qoM6N<$f|KdJoB#j- literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/lava_flow.png b/src/main/resources/assets/minecraft/textures/blocks/lava_flow.png new file mode 100644 index 0000000000000000000000000000000000000000..ccb5d6b18489e403ac085787736ec2761946f0fe GIT binary patch literal 5603 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 y1i?;C|Ni3{ZDCZwqV00002%cg`~C7a z+39quf4N-bdcBI?Jc@Sk z>0q2vsbt#hcDv$oxfHluE}M}N*B?fskqn1JgEpJZ#Ow8{kFhG1iup#n(P)?=+D<;7 zR|l1l6pzQ%2M{X-gF(Hc(Wu_JTuv;X&u8Ysazdey+StKju`rd>>9nx{8V-jg7K@1{ z-tTw)IG@kucDpGE=B?Fg8ecA#0+vvW0JxLMq*#x~L&!j{*VAr55A;C*#AuUpu%mjw zyyO{eaY>w;qG`2S#@}wYQm@y40KxBn8XXRY*~MzLdf^*!3eIrO8!G#x3H|^eDi?wS zxJ53{=d(#fi;yirip8SYg>BnvW9;d4Dk=yB@Q64Ugha)$8Udh_{eJ&DRwk1%i2wn& z6ctY@mC^^qMWS02(>+Zllef9a0C-0wXoB4H;X##%e*vMZkFws!*vkL_002ovPDHLk FV1h`#@k0Or literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/leaves_big_oak.png b/src/main/resources/assets/minecraft/textures/blocks/leaves_big_oak.png new file mode 100644 index 0000000000000000000000000000000000000000..a6773aff74a7f60366d6f277245cf26afc4f2857 GIT binary patch literal 499 zcmV2%cg`~C7a+39quf4N-bdcBI?Jc@Sk>0q2vsbt#hcDv$oxfHlu zE}M}N*B?fskqn1JgEpJZ#Ow8{kFhG1iup#n(P)?=+D<;7R|l1l6pzQ%2M{X-gF(Hc z(Wu_JTuv;X&u8Ysazdey+StKju`rd>>9nx{8V-jg7K@1{-tTw)IG@kucDpGE=B?Fg z8ecA#0+vvW0JxLMq*#x~L&!j{*VAr55A;C*#AuUpu%mjwyyO{eaY>w;qG`2S#@}wY zQm@y40KxBn8XXRY*~MzLdf^*!3eIrO8!G#x3H|^eDi?wSxJ53{=d(#fi;yirip8SY zg>BnvW9;d4Dk=yB@Q64Ugha)$8Udh_{eJ&DRwk1%i2wn&6ctY@mC^^qMWS02(>+Zl plef9a0C-0wXoB4H;X##%e*vMZkFr!eT!#Pv002ovPDHLkV1h75>(&4O literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/leaves_birch.png b/src/main/resources/assets/minecraft/textures/blocks/leaves_birch.png new file mode 100644 index 0000000000000000000000000000000000000000..a6773aff74a7f60366d6f277245cf26afc4f2857 GIT binary patch literal 499 zcmV2%cg`~C7a+39quf4N-bdcBI?Jc@Sk>0q2vsbt#hcDv$oxfHlu zE}M}N*B?fskqn1JgEpJZ#Ow8{kFhG1iup#n(P)?=+D<;7R|l1l6pzQ%2M{X-gF(Hc z(Wu_JTuv;X&u8Ysazdey+StKju`rd>>9nx{8V-jg7K@1{-tTw)IG@kucDpGE=B?Fg z8ecA#0+vvW0JxLMq*#x~L&!j{*VAr55A;C*#AuUpu%mjwyyO{eaY>w;qG`2S#@}wY zQm@y40KxBn8XXRY*~MzLdf^*!3eIrO8!G#x3H|^eDi?wSxJ53{=d(#fi;yirip8SY zg>BnvW9;d4Dk=yB@Q64Ugha)$8Udh_{eJ&DRwk1%i2wn&6ctY@mC^^qMWS02(>+Zl plef9a0C-0wXoB4H;X##%e*vMZkFr!eT!#Pv002ovPDHLkV1h75>(&4O literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/leaves_jungle.png b/src/main/resources/assets/minecraft/textures/blocks/leaves_jungle.png new file mode 100644 index 0000000000000000000000000000000000000000..e0cb935aa10654b1e266b1fef5c002b713f42d8f GIT binary patch literal 341 zcmV-b0jmCqP)4_48rvU-y%L-gZGFz^tl;RGK3Jssjv-(>+kl z%wHtXA#u6VG@b3hA^{T!#-BhkcLX_Qbos-J=*@I~(dN0(U&4iA&r6BF@ n=MIGbE&;vHAXt*8!^Hay60a7O)er}n00000NkvXXu0mjfC=rn} literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/leaves_oak.png b/src/main/resources/assets/minecraft/textures/blocks/leaves_oak.png new file mode 100644 index 0000000000000000000000000000000000000000..a6773aff74a7f60366d6f277245cf26afc4f2857 GIT binary patch literal 499 zcmV2%cg`~C7a+39quf4N-bdcBI?Jc@Sk>0q2vsbt#hcDv$oxfHlu zE}M}N*B?fskqn1JgEpJZ#Ow8{kFhG1iup#n(P)?=+D<;7R|l1l6pzQ%2M{X-gF(Hc z(Wu_JTuv;X&u8Ysazdey+StKju`rd>>9nx{8V-jg7K@1{-tTw)IG@kucDpGE=B?Fg z8ecA#0+vvW0JxLMq*#x~L&!j{*VAr55A;C*#AuUpu%mjwyyO{eaY>w;qG`2S#@}wY zQm@y40KxBn8XXRY*~MzLdf^*!3eIrO8!G#x3H|^eDi?wSxJ53{=d(#fi;yirip8SY zg>BnvW9;d4Dk=yB@Q64Ugha)$8Udh_{eJ&DRwk1%i2wn&6ctY@mC^^qMWS02(>+Zl plef9a0C-0wXoB4H;X##%e*vMZkFr!eT!#Pv002ovPDHLkV1h75>(&4O literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/leaves_spruce.png b/src/main/resources/assets/minecraft/textures/blocks/leaves_spruce.png new file mode 100644 index 0000000000000000000000000000000000000000..602eab8e1bb11e36cb5cae37a633e3a04ac1368d GIT binary patch literal 263 zcmV+i0r>ujP)V)6U{-uK>4k;#VSO1J|=Gkd(J##0iihw#E}VA$ydG* zh&LM<^~D$B^pfv9Y4{$gCl@Wk;^;gj>EqFX!HnSh(XnTT))7O%H$terA-&?r@u>ne z62(R*_?ow@n(3QLQ6;bUub;>7DfvhLCPxjgi*rTM{8w!XL7UhhT0(H(me$ N002ovPDHLkV1k7ncSisK literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/lever.png b/src/main/resources/assets/minecraft/textures/blocks/lever.png new file mode 100644 index 0000000000000000000000000000000000000000..051187fafb06cc7eda3261f864546324eb7836a7 GIT binary patch literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`{+=$5Ar-fh6C_xhWv*Pi_D^3! z!TJh#xXPGC~D|V>_5{AG@8NF)z4*}Q$iB}8Za)9 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/log_acacia.png b/src/main/resources/assets/minecraft/textures/blocks/log_acacia.png new file mode 100644 index 0000000000000000000000000000000000000000..d4ee2f44067cb7e4cf432bd3bee0e5a2fc20eb85 GIT binary patch literal 513 zcmV+c0{;DpP)Brqqw~Qajp~yLLtISg9Eg9>k?$K}|ZZ7bUtB5YAt3 zH-7PV?^Zzp8TapGD-%}$R+_k2XjV%5IjJ6OXc37Ntwa~KD`1J`d7r^F0C^5d>#2xT ziaANgm-Lbk0Kg2u_OO9E&B$|&@~$4xz`F3+nFidG#|R4Gt$->3iHx8H-ppL8Xx^Tp z)5@L}AzH7~RAv;ymIjVwn+cH5*J~*kvI;_%LAT|1EAC_@8l3S*gq@=UT?w$arz8e- zghFU*0yFl!mI6SHBm%9I19^YCn9S_Op~=d5_}Eq^u%r?B6A}LnfuT$^AH>suFCGf` z#-iBv3cwSZC?o^&@p7fK@dl$I^6#kY=P>44GCVPosj80jigBdP&x$(%_!)Lo8xxvw z0CMs0oF+mOflO2i>1I~9B4WG}Y%rFi6LXsvrk|BKA1;NR`oRN0BXna-{TH~T1E?@C z0LH@yW@FgeGXkbYqO*0S0O5EUV)l$?YfQvS%z*v?#atxMn{DH?00000NkvXXu0mjf D)#~SL literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/log_acacia_top.png b/src/main/resources/assets/minecraft/textures/blocks/log_acacia_top.png new file mode 100644 index 0000000000000000000000000000000000000000..534225699f5e4ca0c7ef13a2b8bf7c2908360c7f GIT binary patch literal 449 zcmV;y0Y3hTP)I zO;5r=5bdw>gI3X)c+i^%Dg9Kih7uxP{3S;DFmm%?B$|pq!RX2VweA~s+uiM9*qQC{ zX6C(Ft9Ko+UgELS<2s$NwB4jw8r}0e`294d_@)z)Zz1^fZT9ZjbecBx^l!_+W_h^r zJD2Co0_vCVuz_D=Lw-5p3HOaHItR@iHfbG_ui8_*&t^Oq#fuJ}`Q@B{T!&R#1P-03 z{vB>W@E;Vn+_Mvw@c9` zz+Z9ujclzdy3j_z&rAUPwGRp~*$oUp<7kh)c{eQL)GWwqLV@e zkR&+(p^xsiroxX>6)IrFf`hcxphZD~WZTqTnki%VN|2Z-bHfLbNXU$>T#6j1gBZm% z6~H(upp%ucOj30WbcEP)b~*4c^Smy z?PBPpkZcy2jnaw}up<)E+JW8VRl7e={*r!yBte8KWDux=G6A?iNyGMOB;bi69A+Ic6#O#HO?9?V9swv>Xng*C;|bndIC(D zccU{WA@P0IjcSuDv39Z-TckR#0969zrzD07gJRGUp|XDj{+_$37n8QFpL?FD*|0MM z;t(UkQY%4*z)%_*U=5CiKX`LuB+Fz@z!PdHfFW7W2VOQ$ixNZrejP;&Z9?WoQYkVH zj--D8?5IQVwaQ})@&iQfL;)F)hRQc;vbvIp@k&%fEO4Oj=!Md=5@*p0)ro)^F*n4$ z0(oAJ6anh^KsE-eXVm`@P?jnQsG&kkLzAsB5xd{-h<*T0SaToSl&}E+0000oXv#t(AnASRBunutaDP| zC!ki^;g#W*c`wj8r(TugR--~^UWFWN-ufXedLggdc)1M0z zfJ?yVeUK6S%vzRA)BuPl9p4z*v}7Q-2o7=+U;9~oT8$<^ha^V1t6`XT0VZh=(kr*n zg-x2+63_*dXg!FJ%RDGZ5Vy5)8oG@jNZh@miJ|~TihK<*7TsBzJuWX0z;WF0-#|$> zK!RKtZ@VCM<6yh@_&@1nF=hj!EeZ;gr~w7fCTWgDQ!6n0n|}@4g>%2kY2NN6!bp;YPtd9AE;C(ahKmkLfHsika*^$G>e^hi{t(J+BZon-iNVEt8%0(-#Eu} z&Y78`4Msi4YK2n9*laRXD#F$62uh}K{TbG-g+wNJ9Yvm_R0;ayFVG&V1bG?5cJJZN zEqGH4*)~R2CXnkG`6h-?E95dm$y~V&Q1QP9v4UVx&9ZHXU5-3UptdPHStD}hOitlj z_waaktR?a)#+cm-c9xbAY-<76o(SJ)(n>{ca)&UNV-a_kkb*!B`IOZL~Yz;v|Z?C9K>cM5D zDV4C@Ikq)u9$_>bVw=ZQA|WtG$cqp+!(M}4$rV40;Cgec921#%;^*gekE)P|ZQlI$ zmjw0aSdd)Jn~-I1iq*_~X;aV-5ArEl1_6B%W2Z8xC`U}CpxCa+6Q5ZG?fY#H)h>av_)T4B2<&;IM#Xkt z4o7d;j$#-FF3(Tt1Ip+wCs>fk>M_8kO!<+E zObL7&e#Mf21$UrKLWm^7dHWQ`={Y{UZ{hIZ4Yd8%5zaa~PR{hkJcV5Uw|Od08(DST zK!@(DC3k!W$Ddj_+B<|Mvb1rUWaTy!?7*a~CL(W1*YQ2gqEvy!gsbhF@VG?J@rPUc Y7Xw^n1|Z?cC;$Ke07*qoM6N<$f}QSIC;$Ke literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/log_birch_top.png b/src/main/resources/assets/minecraft/textures/blocks/log_birch_top.png new file mode 100644 index 0000000000000000000000000000000000000000..afed5cba75f0b715fff74b58a8844c8ca8638f50 GIT binary patch literal 619 zcmV-x0+juUP)e5ga ztiaM;y41w@e%v$dF3`BiWM{u`cFvqRGb)jaqiZ*?+ihWQuLHZ+#BwHuUe`da{vF%3 z3fkQ^jvhG%pU)>|?d)K;*T%wP4C;^FMmik8YV0z;EKXwet>3d;;wrN7ATp7lclPzu zZ4^J;6yJ0}Ri#?R+MFM+?w`Wz2dDAo;V7QpIWF(n=@HC5y&(ReMIN0Muv)bY#gdpU z`uH5O^JB=zuMAn~<1Im?zn&bIH zQb_zvG$_g_!`wzLxsO^}xh^Q;FHdj19~t zLwy-d6UuU?$^D7h>9difHE29%*;I<^@Voj`hiX}-CtblCoExGDRd8wWPGok}kqR6T zy7l@OWb`~fd9+O4Or$X3pDst~# zN>Tx}bXRptD>}S1Z0VY}y6*jE*;(zn2EDQg_xby~g@0B9*NYwhN!b7Z002ovPDHLk FV1nemCeZ)@ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/log_jungle.png b/src/main/resources/assets/minecraft/textures/blocks/log_jungle.png new file mode 100644 index 0000000000000000000000000000000000000000..0b7120adf0232ad9b0e6ac9d12083ce433d4346a GIT binary patch literal 609 zcmV-n0-pVeP)nKqvZ&+4}2JMPL`E>$T zvzoy1TY*qJmc#NJp)9dcG?Yp8qLISy(Jq#Y9F}tjGj9*eTeG%?u8m&{2bVn?cQ+1J z^8&&j2dcwg@A-zl?`|tg&rQSoWN)GsoMkaOOJmSV;;OxcZ>KgcKiH@gj9}H5hDj|F zkn4DVEqATu=ow;A@p8ea9#9Xd8crNNqoC9C9fW~nFfq{@HIpEC$V+r()Jo}Et&FO2 z@3(FEowSJ}uG+|oj}g;mWZ$%omps}kl;gRn9~xMGcU%2rworY}VeP-rxv0G}w)HnN_sU&pS#nka#!S$LcnZKR+F{jrI|PUK*971O{Iu zLA7Y8P*L`!m!p0syZ7>ljv&!QHWJ&tehW~28qOtowy+gFgk%6eB00000NkvXXu0mjfj))*O literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/log_jungle_top.png b/src/main/resources/assets/minecraft/textures/blocks/log_jungle_top.png new file mode 100644 index 0000000000000000000000000000000000000000..d2ab7d7559e5cdd7458c20add2eb96bcaeb7a677 GIT binary patch literal 556 zcmV+{0@MA8P)I z$4&!54BdYS0zwl)h>qZZ1caJMWJ50jQkH}+xN*z@LhqduqF0FnMWS~&^HpY^SF_3{ z2g{xr&l~$ak5W-+Ay{{9JWcqsXfl{XHUeI`#+C^>nq~ z#c`yaFSXJ0l160(7E}8CrAu(MhPX%ERYIN&;}Xb`d?5bZ z=%?SEVbiOqLdIcDwBWJFGa=agI~X&-WHm4Voh`P~?UdUD#xj=W>LlLm_)RTHsbJWL zLNZ3XsH9TNgyM50Gf9#I5V}9*GO6&hJ!HHJ70@E$Hisb5ttRlGAVIPnt-G{n89SQ< zfK7}lUX^_#29ZcW94RLNkOOtFF3%S&U>xPEU>q-?5)c>JhExOGAQ!|li9Tl%1ME$z zd=RZY_&8l?F=hj!jhu&hFNFg_Mt6-h<^!PuNQRFj_pZb3F?n7`q7D#fNaL?;%hSKE uy(EtOYBHPVN+nc@sngUH&P5)+Is88mA6WihrP@FM0000q z*G@x03`F-Y=w0Li0x3Wmgp$w`dJRZCgx-4(;u8?Pi%&H=M!w?VYByecW;}LWf7~aV z(=DA0T`i~LNXvPX9Fsm-Jms0{<$6Za%eLhsry?ba}`Mxvyt=< z8z6i?OTw2TSZ8WL8&6gw&s81_(vOiub2NPv-I9V>6Lj`Kx9W9oNxoVZW<0R^r$K_hZ#4tFW z3CQzmy?ku7#Kp^6gIYQLbGuc6@E;C$%JLHBele^V(4=X)#{igB18D%o02GS7u@VD7 z1B}jMl@@gk&S-G}G$4-FgZzE7S-yAMty5uPjld6ru=#U7V8ApR0-)n*pIpbPEU>}G z{C^RzmLt{(+A4y59MU=C!o;|MNLm8~-5DveT=?2)GpFJLBN`1l0x9aE(4f`!`mV!k zV^>w$p9Y+&=O#x;8pz#t0zeP$P`CS&Z5L3S6JUaH?lH6*XhSc;8y5iB9xhZLyxyb7 z(Nu-G8(eLA?iND-H_=U#fB}~Ako4YVG!WNkTo{PtC^ViZHR4d~r|u5#Gyesfw`723 SCTe~F0000Yu)!^nos)UGEDkKat2_Hr@s7#1J-fuyUmy6w(;)~zI7^m#vy#oPg< z;Ok*x(_X~^u#kj)HL=UQVe4_ti%3)vtmV53Wr+n^%GyO201)JewcLU3w65H+nYaCe z9f*aa@BOmtaq<`e09gkhkrA-WOb|Bi6ya9~$IUPn0t!JOpqWVixXW#w*Svt_<2H*$ ztE_6>w7BD=JMTa(m7fxyUW7%9gwE7~186xo4$Gds?N8%tlr4UdaN-gr2n5AUyox~B z0f!DGEQ)n^0G?1Skqih46rl}RS@Q4mJmx@{wbDXJ|F?=FH9r=00`T)RizBdT=^^xM z#lm1@L0T$>(g-3`5k6i?3-*73xuu2jv$ADk0MMNP*b(fI`oBOB1}#Yd6uj=TC}X+> sOgeBO!7NssEROH;GfLKo2#ZfZe^vuk@P;^_k^lez07*qoM6N<$f+E_;zW@LL literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/log_spruce_top.png b/src/main/resources/assets/minecraft/textures/blocks/log_spruce_top.png new file mode 100644 index 0000000000000000000000000000000000000000..e68e518f0a9e75ab18f864fdcb385373abd78037 GIT binary patch literal 448 zcmV;x0YCnUP)| zYfC~w5Qfi>=v$xCE(Y3FJ;yRE=tGiJ<|Va@DN1HU7l?=`BBEc=|DAkRW<7iSFzn3k z>^n2>yX%#97UeL%Aj#N_S&ePSO{~TqdH5&02@@X|mgK0A5Rc&P+?SW8Z`Pk7hXQvf7D zj`D$z{dV1|05~HkiERE2Cmm=v7(lm;O?j+k9k9xNYC_^uJLim`Qeojs_>4;@Rs~2> z4j{BwS#eYdGmp=RmV@F}+&mN#lJT5~Vy+4> zP6axFgYX!t2K(ev#Hs*5_jJV^M74*H!P$m=8$4}t=+3^x=m(+$B;zCL-a|Drm1k8b q?=2fNzNq=SBXWrKtA{Q6&Hn-K8tGPY{e2Ap0000X~s3`M7+fdVKX0>lR*rTL(AG_>iE5Cu{sglJ$HwAn_|u^1K-HUJXcN5|3`?(=)0 z@c(aSY>$1%zBA+P$?ovu-L1p<{cRaI zlyz{nyIq1)9H>8-`1$>L2?}X!WE%guJS#(lb!-P8PU=04Rm9kxjf(MfKseo4aa~>W zC(@xZ3JALyQ3A-C7+^RZsHB2<3TO%jrZO>Lz(NAW0t!f;iWspe|Am2*nZMyX*H1-U zm>VkRX$X`~a%b@pkFf<_&pQjsq7tiFiRRt`+;Siu<$%zP0?#NrMpVww)vI1Gzbs*u z924DEMb;@K+NqQ&iMq&}Ci9~oQT9a#)N*HS(awS-Q14G3m2~iIpp}CU`zH(ZUmx8m zNe6G9-YYTH&!^AIuDbF1>S*$T#_S^cX^bJFqfI^##83O(3g8tV@PkJIGDnONlnvMF z1D_QipnznU2_S2vfpbz^@c{}ph&y^3y{t`VQd;ssasl5sU`KSsgVZdvA=(;>iAo3# zG$vx!CLfq<=8h0DiW$)+9|)d1YivdKg0iT@YF1)~&sb%{?|fjyg#jUXOe`1`k`B~C zydQ`CF48#kM3|EclFHq^jxmoU*;!ryZBfT4?~USvJR%iko16FmCl=V`1M5CdVC#Kg zqzeb~f#qvUvs3bcbiQ~W{ErVrKaIh`DqQhFzc@+D?|hjURXMPt2y` zmsUHQCkpw9xQP$!-symyIv)s7a)D*t>!mPYA+M}da3@biu3S8_k~kA6$L?&pUO?r* zQq9w_rTev~vFTO{f|qZ={yymKtnqvwNZEPgByg5`2eTYx|I0L;4=gGol@Hi(z7ISJ zce8XI=XLMc>uvEq@c107m~Ec-#^QZo>t?g$H6~U%ckVA>b*1Ho7c*)A0000NoRH2CcTA92q0I`Irf7U z2Gr|1o1NMs^|}^I%+TfC#t0y0L;#R{?$~rxG$?U5u zswSnga|$38Z12x1z@TRh0Wfc+lQBR$SYrSrfK1+2fcMb+(fFJR$f;;l3ik!zyE^wqO=I+Q q=+-sVI9F@Kk}LNkbEjqSfc*fm%tC;Km_W4v0000JeI}Mdu3Z^MN zui=ZxzOSsgG=1gPZR{2A6MGIyF!yZSYy6J?%RR-VH4ICyRA;PZJ!k2qS*_XEXsJG@ nI6YO!>5t%!-wqr<#eOh$XeEA_WD{l!bPt24tDnm{r-UW|fh|Z^ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/melon_top.png b/src/main/resources/assets/minecraft/textures/blocks/melon_top.png new file mode 100644 index 0000000000000000000000000000000000000000..d4f7b4603367fb32da8424589efd50af074aa081 GIT binary patch literal 323 zcmV-J0lfZ+P)g%=WgTd@?e^bR6yX)AUL;?-7OjcJl}dz^b_Ke_nA^KoBz- zF#^A}R!k1oDKNn{NCdLok7Lgm-qV@eA3#VQCT+16Y!z4nOn_?t_*RU_gR%kxHPMq? zSFycg0q_c2ki!#zfO%9v3=uIU3qb6(SrM&ZwRd6h4lGTvj|h?PgFW&DWDE6V?^l3p z_o=2rat8Imcuk5mt85_&AgTU1f=H^@=RjEpz*nWXmM7Sj1h@`>$*no0YE}Wz*cW!5 VRQ>l=`;`Cy002ovPDHLkV1fXDg}eX& literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/mob_spawner.png b/src/main/resources/assets/minecraft/textures/blocks/mob_spawner.png new file mode 100644 index 0000000000000000000000000000000000000000..7d55217e32d40abab546f659de00d945d8f8b04d GIT binary patch literal 338 zcmV-Y0j>UtP) ziEe^G5Zw>3_VQ#c3xW$m0E@M$Ha7kLpPKrn-E~1}Qo0G5mpypLjF_pIWVRzO)LchV zNlNDwZr*A5l+rxiHqQOxjneAH?g;>KTBf$~wLOEU`kBN?1`P%<>Y}#Hlhuanqo>GQ ze=|e%%_8Ym5LAZ?1@4}?tIGZVEZhe<2_qd90Re|;!PR_V!a0I3jy13`ee|l;93{B=Pk@{hGUNdd6@e)w5cEQL;~yGC->h3H;yaDQGMh$ z0vGW&bigpg+mF9nSmdw$GJu>}Qd@~`pWQi-%Y@+FjJ2Huo~Djbb(d=qIW!csS^ZUZ k#y`_}JCSy8xi0O!FI2(dh*=W(&j0`b07*qoM6N<$f&g)x6951J literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/mushroom_block_inside.png b/src/main/resources/assets/minecraft/textures/blocks/mushroom_block_inside.png new file mode 100644 index 0000000000000000000000000000000000000000..efea671562ce7fa42caff90d34d00f42522c6628 GIT binary patch literal 314 zcmV-A0mc4_P)6(X4vB{u!tKu4DnX}iAwaHqH#1Bd1?__1 z+a6pTc`=$9!SuM7*<4T;0Sy#=ntVmg?`Rre6dDt{a_=Fh77PPA!wE2)Q_G@{C~&;)Set#AjryclJm0~nIggbCCJmP}vVFleB{Q9}czpwt2>V?pGncmJ&N z03~iIKmgv3IG5A literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/mushroom_block_skin_brown.png b/src/main/resources/assets/minecraft/textures/blocks/mushroom_block_skin_brown.png new file mode 100644 index 0000000000000000000000000000000000000000..1f52ba898e64fb90d86a8638a4e1ab350d861f62 GIT binary patch literal 546 zcmV+-0^R+IP)G6fd8kQ~i=ZP0?))6=3?TT|4g1dC15ECI_Z9!qO zuST9rQF&Pz(TpORIl7v&fK&ao>H#yO3UXrJ-=OiaF{MDfQ3AloBr_ufudAavABu3= znxNu78&pEh$j*wm0SG>~5-OSZfteOG!8kgb@npw!K?0cBFbVniz^g>|!eEoG%`f)x zMjsL^Hb1koiCh3&*-E@yzP6L9iak052B#j-oyD}Ls`3Kqf)@}J!yT&3-UB4-;pRUA zWesuzpZxVc7S@C6?fi<=n12E#v<8_{ePx zrlR4d+qUn6m7}V190-uA1Af(R`dNSh8f>UumZcR%VXw1^1F~p|vj91tH)?Lb)=LYz z0CBU~Sem94le>PmN{aQ6PObrc(nd_1L;&zp1s~KYA~phd1`3i6fPyX{0h5d-v`_)i zyHKG8c6?$RQ@5BgPz$XrPfMZPy}iBY@+`Um&5 V|I*UP-gW>0002ovPDHLkV1f-S!|?zB literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/mushroom_block_skin_stem.png b/src/main/resources/assets/minecraft/textures/blocks/mushroom_block_skin_stem.png new file mode 100644 index 0000000000000000000000000000000000000000..09e4ede2625eb26dcaa5e5a066641e6a201688a1 GIT binary patch literal 399 zcmV;A0dW3_P)r%o%42AdopG9R9xs{7_rYKrQlv~x8iTzT}8t_LayJ>QAlAKLdIkMA!ZQsW?`#EiF zUfk#Na^APo?#2IO@#!BvY+6ho?D+ZYm&x$fxW{CHDq&p}7d926p6%W%JAACVq;sGr zodIT(UOxW=fKs&_+J3vTr&-^f*Hs-L0AtJfV+YW*Kd20ls;JlQUVCtJ1psJfKnoE- zLnGUTEh-J5}`j3Iur$qct zv$Yx+OkhbN#b*E)REw@QG&sIuc$a-*DRzk!YA8)m9JJ8}?J(pR<6w(H2cUkT6xS%) zs8aw@=6Q|Nad&_w0HR1D)uPl%!WTuCB%-W^3(eQ=^R>3%Fi;C>)8B%qgDM69s6Bzg tR&4ZE5|yLM7@R9HtWhdOM0(x=`UR~)U0K0zj$Hr%002ovPDHLkV1ftpvlsvX literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/mushroom_brown.png b/src/main/resources/assets/minecraft/textures/blocks/mushroom_brown.png new file mode 100644 index 0000000000000000000000000000000000000000..8351fd47d6a06752e6964a6c4412419145d721fc GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`cAhSdAr_~T6C_v{Cj>Mb8*BeN z{Nc!*3;$Cx*)m%mE;2}e#OrvCOtM@9Wl z{4sIDh5AXR%?uvO9P$%Gf7^S#}2-%-?2_Fu9rcp)~i@QLi+*G1_n=8KbLh*2~7Yq+%Vw) literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/mycelium_side.png b/src/main/resources/assets/minecraft/textures/blocks/mycelium_side.png new file mode 100644 index 0000000000000000000000000000000000000000..5547425881b2d3d0f776ab1812943f5d880f9e96 GIT binary patch literal 441 zcmV;q0Y?6bP)f~HDn~lc0?Y0s}vDIP#_QBqc!Yrn1-=%%gQgw6+r(t2Uv8$5+-IGJ*7<8{}C9BkF zA=IO*YjL&|i1#i#a(1+@#mGIliA>VDPOSpm9VDotm<5QJ!$e1gUECDn>UUg=BLb`#3`PBsEn5j8IMXa(Ldw<--C>44^b7j4s*k8r9yGCK>FVlAalz;Ez22*p)45cW zsr(#1^d9clop0?6@ySHq=Z%naTx~VZo!Xr=(W_IesvO}!># zoB_n#c6I8i^lokyol4hiED^Ir{KPn_x4xBqQEMXT>F7>s-w5F2{y^KYx0iY;%VMLf z6~KCLX1P`;+31>|ikw3hq>kTt1kZ*ena4N>G65hG%pFkrHzT>818!hOp zDnVM&uevjBVQ8_)TS;S8YsJ0_z(pS;6Dq-kBvV{9nJpvzOQIz!fT3Z~D$`m4j?G$I z1H{^Ujc1Fsy>Ll?B-m3O_V0+KotWRo9%@y&ttWauP7>h z#KVWkhw%JAMjqHeqiP`Rz|3EI<;_;wM$h6o+pa2GXaK<^qWb7|(Cxpqp{+!rDT462 z2ewr(@sm{eKTw>7!H*`4ljWfZXJgxK;`M)^>MtKOQCaGG+1@*(AyCTh00000NkvXXu0mjfS{LSG literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/nether_brick.png b/src/main/resources/assets/minecraft/textures/blocks/nether_brick.png new file mode 100644 index 0000000000000000000000000000000000000000..5482be14eb74c3f5b246330008fdefc7562d5127 GIT binary patch literal 326 zcmV-M0lEH(P)C#ouNwc_9RrX9?Xs38th(pf9ONA!1PIRgN^s3f0rM)IggR@w9uXjB0r6^> zMg+RfTnNxa;G>`3^dDm#iFWN3{czM`y?7taksqwno8ZA|R`~sN5sljBRWvGaDQf>% z?>aIZKBf$9=Iu|ydY@Op1Hfw2z5wjA2)kgtu-aMYq`?C{8ppCZ2$)-`fdFeCfjtKu zg1-F)*j#+iL79yGW|T?19nYfs;IKW^%YD}x`A2&fcpriUeZDoUBwOp4Na!up9#9(N Y4?-kdx&=;PIRF3v07*qoM6N<$f~o_MKL7v# literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/nether_wart_block.png b/src/main/resources/assets/minecraft/textures/blocks/nether_wart_block.png new file mode 100644 index 0000000000000000000000000000000000000000..6231f3eb262af74c62ea02a1b9dd7636ccb5fa57 GIT binary patch literal 410 zcmV;L0cHM)P)Y6ntXLVT^hSh#;g;NMR@VKNia~0pW^p2!i60$|6|!2WkomZTh@exZRkgm;s)_p}`13FzhY| z@t%nQ#zMqMe#wXJ^dvpy?3x(>>7$;zy~=T{WM_NHkOd?hNLWjWjS!gqXL~@`RhjNvLBepYL4>@8b;-nl zPO>2rHiSpiNa+OpMy0RCWlu&RF14CiwxVr7-1G?t$v$kY8_a=QGfti*!{#GV@^DTq zXP^Ri)wrK-kQc{Iu~L-IRh#}Wcqk;`j9{L%0{A)5KXF%rEnw4RH~;_u07*qoM6N<$ Ef|V(>jQ{`u literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/nether_wart_stage_0.png b/src/main/resources/assets/minecraft/textures/blocks/nether_wart_stage_0.png new file mode 100644 index 0000000000000000000000000000000000000000..514a95be2a8841cf30a83cadbc763c8ba2697dcb GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`@t!V@Ar-fh6C_v{CwMf*FdqGH z;Im0dpng-^+5dCd;u54*D;l^O$Q)MtB_F%4!TDLeVY5b;46~W5LeDymBgfVHnC?XU zIMC%_qFGe%;J^WfFqTD*e{2d(cd(UMN-!|ge{?BgUM(#Nw2Hyg)z4*}Q$iB}e=0G~ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/nether_wart_stage_1.png b/src/main/resources/assets/minecraft/textures/blocks/nether_wart_stage_1.png new file mode 100644 index 0000000000000000000000000000000000000000..b4ad0d1e05dd741853846efd4dbe6fec0ecdf0ae GIT binary patch literal 271 zcmV+q0r38bP)LKDv1O@VjwkG`?hvczS;k`Y2;|3PBNfePY- z#F5p&Z3Za_7ZU%Upsf5qR)81Gh8X}07Z5){M&^H}xGY=^+;)&62QiWV$w~_ULnTH2 zyYdNuB|$Vu4#o$m$rh7FQ3D393=IFx1bM+O2$mN6Z^Oj_mITot8)1Bq8W0~@4FKYq Vy|9j+D*ylh002ovPDHLkV1maGXm0=j literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/nether_wart_stage_2.png b/src/main/resources/assets/minecraft/textures/blocks/nether_wart_stage_2.png new file mode 100644 index 0000000000000000000000000000000000000000..b9b674315cf0ea3f2f3eacc94d1f1a18f4377949 GIT binary patch literal 480 zcmV<60U!Q}P)iCgnX{nG}7+6N2P*`B0kXVSdFbyQgOj@*Q(V|V!BlHM8K$~_w zLQnH=&dodNOp6v>IGi)*f6nimdq)ud>)g9N;C5qkF#EGkA1|?lZl9$c=G%e*qs}#5 z=i+-dhbOO!yJ@R#RL~pgT#bcR3@j>sf{L5L059Hm~T=W0}NCJm&tka`uv~r6&s@MSHP8a#ri_f3?TB6 zXl1?=4WR0i@a$6b#@nEZUAu(=YRRzq3S~`fh;~+R7!Tn@}mZz9<7uz{hGBM=m4I8X$4@Y*Iin6I|UN@UcG3B|h=a*4Q$B+rDI^YX+ W6+$-Ii*g_U0000NklMQq!J`>VG$KN z6h@0^5d`jP+p0~_qQB$xoiBg0xZL0G-gC}(zQ;93^YeJ;_v_jn9K_K^1oJKzeAU(H zt*X+so|y>?cekZQ&kn}N^~_io-sEI#_VuA8ElmMDCz0RRl9I4JGNSuTN(y3ir!j4} z;~*G>8Iuo2B)K{-4_7KG5)mhaP@a{ALJ?hQZ&!huoE%(lYJy9IwtPOA1&;?Em6a$= zP1TF{Vl65*UrkKlaLx~VQ4zY!%awS(q(mKkiN)|ZI~#$92ADr@S2fyJ{{!OrcZJw_;z!%9^7&|5j?I3qchsCwKc4Eb!i=T zu6i_bzNB>~Hy4I^5zIPJV63(lHi=9!J8?qO z93Iv*nCnHcJLPcTtN8VrZRq82yP9h8_NKbEy`Q5|+!4%xxVa?7 zt}7@&n&6q%@7E7u*dD9zk3?XS)@(K!5&;Or- z^_1zNwX_t0(i12WF^ZD-MhGNdmiO??=Z3Sm7%u6OQ{DyB`UinG*&?hOlnVd=002ov JPDHLkV1nUUNN4~6 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/noteblock.png b/src/main/resources/assets/minecraft/textures/blocks/noteblock.png new file mode 100644 index 0000000000000000000000000000000000000000..a3c27c1899ec70358f3658f1f7b47c7dfbdf69d0 GIT binary patch literal 395 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/observer_front.png b/src/main/resources/assets/minecraft/textures/blocks/observer_front.png new file mode 100644 index 0000000000000000000000000000000000000000..8571ed4c25be8c225eb789b976200801a9e01b41 GIT binary patch literal 416 zcmV;R0bl-!P)ced|8rIL;k|X_~{~a4;C$GAN2dDdoE;HBGZD%PXMKywOKA)#)x?C=|+wFe8<4>p4S6C$Hc_wqc zULTK#C-5U;PnH@8fx`LalcXbk>Fx<~9OrU68bl1L&}PE|hX>#ZrfJgk8jF`pd=|$9 z&v}l2N|HQHNfv3E2kV`Sj)y~Mt@xqq4!fOg8f>dE?To>+Qb0eB$8i`uffP`w3E^$K z1wHnC;OL!m5Wv8Rhy)5wJZK@j_dOY53gL5}J;8JIPkSzo34z9#1oVdRYD~nR9D+6o zMky{s%LbZrOxxIuLDjlP2g{$yf&a?5H|J$XhcSA7$U|%F_|pe^H}1Y6*Dx%n=g4L@J}V|NYw zdRT2}(PS6y>RwBCSSi_(@Js;&xtCI)ObESD~7sd@EBbFKh;er4w{X zvfny!`d?OyB>Jrz++ilH)`4!Rp-IW4uH_a7!`9G@i)Otx z*2%#?7h}o3tbsBZ`7|-gwFFmZ%fbKr)^5X4Ihsx;llG+3u4rA*?)B1)gLXJ^s)hv{IWv?r)<_gJrmK~%>r+AfS?F?Pa zBnml?n$TkDp@{+wVjvD=Lx(=Ls88)y3`Or&W+<8Kp0O~TlW;g!yXbi1@uH=5qrMj+ z$RaK3)FXW=pj&{hBs2lk_rgnAT^ya+ufGx4U#M>N&Oc-y3mxL@q9iIkSK_YMP-zp2L zMe>LO7ge-4Zv><`-vww@?()(3MnsugS6rPEQ#3d%5ODhFV$Fyvz1FyptQ)*6fKV_1 z8|;!Ka&FPVyIDc7@!lG^(;Y6>*4gP1Y``gaU0(MJm)jFfLkx#e`?S%4<3> z_nhB4x#@DpSniZEJ?Xv6@q&4t1q5?T0MSQJY0VES=giuq?>m8+{D^(#8p&=TKWIZ` zQl(WhC()Itk>oY7stc}(Z@1esd8Zl+3;1aB7a%50or+BB)ESywv(snPXC7=ETn%t! ze0mmGA3d!tUpb?1HD@)JNb6TP82F-D^D}Ejy9=#t54NJ+h1R_D*Ro^;9NB6G&4|l9 zeKQBcI(VZ10yS>8)9s@Rn+qLHQVPUcgA&}qy16ddnyja=qo}cMCL_|3HD;y?`AJXD zWTq9~Fu;2iI(M@&b&_*i;Rg=#SM&oXM$?fZC=F~(aA6Ul0)h*rfsF|+EFx4uaG^A? zF~NmJgbD~Qlm<2?xUh&&0l|gRz{Ug@77;2SxKJ9{nBc-9LIngDN&_1cTv$Y?fZ#%D zU}J&{iwG4ETqq4}OmJZlp#p*nrGbqJE-WHcKyaZnura}fMT80nE|dl~Cb+POPyxY( z(!j<97ZwpJAh=K(*qGqLB0>cO7fJ&g6I@tCsDR)?X<%c53yTO95L_q?Y)o)r5upNt z3#EaL2`(%mR6uZ{G_Wzjg++u42riTcHhv(kvi#$JK!(r!CE>$;*Ao18_+X$#XlMyj zRR7N?YTL6Eb@x8}{+OZ?3`KpiiK4i@6!n<0YvVhsDQecOP;gZw_1~9v{p$C(n2P7_ zZCt*i;g!hJx8?bd^&Hy1r+?AE=eEyZ7JvK2tC9B4?em+B11rC>an8|y>_6ezxBm&{ zmRdq>dlkMux_!69{=|E4E(z^g^8DeyO6}UxPzyI~uPFQ7;Zkbb-GTqfC)smDYwAZ5 z*Z&^Ber)|~m18&59qiS_*$(^3c3XY(;FCYU-0dn|^nUcj=*0P+s`Km-!?obb_?=IC z7naPb-BI51+7<28eoLt3_4VVur}u!fqZ6N}20T@so27@|>EtU{AHB?mZx00a{pC*= zL^!PY^}+JXt})LSz8CZ@+;GQ8eX0Mz2j|CbcrMB(e`A07aCOwvP@`8{6-n8QA*N#MU`f^y9^smJgj7HlHC4)i(x@ I)o$AU4U_qgV*mgE literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/obsidian.png b/src/main/resources/assets/minecraft/textures/blocks/obsidian.png new file mode 100644 index 0000000000000000000000000000000000000000..ff0a68363e6f655164d3bbded37ab8cb9fc497a6 GIT binary patch literal 489 zcmVy;)E;*Dcy)NX>ovX_|Sj)A>v_e4wBNq&YiNHMwC3MKwH8Dq234k%i zMbDQ(hY&=iYgS&H$^&oQmzY)pRfSs`$L^{-9kC}*jn*e35HUt8< zd9 zZ~T8g2iVUXD0ZGeCVH~_hH1P#|9E=di70>*VI-M?tjPwyz9rv?Hgkwu(~h5}>6D4R{e)4)J&c^d(y&D5@DD-0@?kEP)#nY@ zno+&Kzr$j&NSMuL7>!043^8rbc2D0R$fwOUxMR+vmCsCZE>ml26XkV>WC za=8!+h0tg;Bs?CET3mwfA1@ zT+QWj!QpTS>~=e>Rx2zP3(RJ-K(E)s zM?4-!x7!s2gF)FZl}ZwM=JWXwi^X09MxzmtNCbny0MTd^#bObM!$B|_jZiL^5e|p3 zSS&D|PLa#yBsUZaNw*qX;v$pDpxticdcC4jsbIZcW3^hzg;uMDWHO0#I*nSbhV6DM zk;P>Mwn|oR4u``xSaHAKOH}J#uZQJwiB6{@`e-JTN!TZoiFClE=ktlj;~`Of-|u%J z8IQ-PR;wba5Kst;!;2(fMJ6j36iC9H`Ft*;@s3WXgGS3ZKj))htit3^0(QbPUS`J> z-tBh32)tge%tUdR#N_`7*g-a%MIaCm&G3Kghr!*%jNQIW53@Q z-xYxZ^-zMcI}+6E^=}*LI|(SFvP?m(8F@~EFB?C>$3wz=K958qAtS0H#FveHAm{TL yyWLJAt0{?32NWgqSeI^O@xc9l$G5}_zNZ}cn)-}R!YW?Hsu2h3c{4hhPw1sAa%P;k!q03r z!_Qp|zb-lPv>($~s2Klg&luxEK&E!P{Z|4_#h%IOi7`%G+3)vgG#b)Y&G!NAv<0P* zQT|n|^(L+K`Vo~cc9eq_bl&7KPFyjY&9K>Q&}y|X7!0slt+3nea5x;$XfzU|8I4Am zOeR~5~cor84PN!3bLg040$v-ch&u1JC2dPdul#xs( z;qiE+3(iQ<>-8dGx7$hbU@(wMJd@~jI$<;#VLTqATrQ(hsR%K<76ML~hfb#>nrR#m z2_}A64WZs#u@NpCX+!V z5|J2-sDvymuRs>QZ>!b9@p!~~y%x_ZDiJ$bE|+qVv!Lgl_gDDWB2m`=7D(+fC0E!B>~6FD{v2W8bMyvh zw8fJ>_Sny3dqP>3v1yw4yj#ZoZe_AqFAVqqIzIW|9;5jWfh?X~ zY+@$ZSLQ)40*#q+DhPrpJFp7WS@3jok$_##k>5{3lM0NYZClGo(+F0hJTr;BjVbhf ze@dV+l7Khor2-O&1le`nX%Aq;sq*q?NP3^nsfkmJ`2_MkNmEdl^*)UdeX1Yw152Pq zQpdF@RK}KKBaw8!OsN7f_$AU=&C934xwu{Yf2MpBk=Tb}ID5AU(r40lrkwZf+(5Y? iedj+WfKT`IoqqvBCv-}#i5;l`0000kw%Tx zm>RonyXn4a;!_zal== z8GHY9e30f$jYTY}zK$ z%DCX&6uZ=u89Y{U`WlSF49xuMPX*Ox8TU@_Ab(d1u1gePIJ zF$_QfYa=}x(TM@7AD@a`J5fe^LKx`I68ED4!P>?Y(woy*SvH00ntBtfG4sDk85~8o z+m(ok{1leGpkzGwR`9dFZ64$0-#zSp$oW&^6#D)CD1aWL_q%}1mlZgwgkn97axE{l z=T%vEm5h^09xX_+UavRWgLv?QbbaU0lCC?7Cc(GHx^f_WYw5B;FO}cK!(Tg+g^fE8 zPmPqF*NxM1vLz${8^Rwh2A8D#Gly&~j%?MEhEm5R;=k5&#FR+@b~3qfRThYJ6A!K- z6bm4dm_*9DG+L^VS~l167mN1J+}IfdMyxg~*!}!SA`{Fk3uXu8%l#n8M6+_PkDnbA zYtsv&kB9QXU?95lj)Z?q`kYB8XO9VZV1$3pDicASw$tbQ4~JNTGrp2%#Q*>R07*qo IM6N<$f_ZEp2mk;8 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/planks_acacia.png b/src/main/resources/assets/minecraft/textures/blocks/planks_acacia.png new file mode 100644 index 0000000000000000000000000000000000000000..ef597514432d6cbd2657773fcc00f40a9ec7fc6b GIT binary patch literal 267 zcmV+m0rdWfP)Vzy(nHZ6kk!%AWEpdqG1OXprfRP0a$?Lf*k3>*>OT~`j6w-x${LnmnpsH zwSmSm&KtXSc%8;1ocuhF`HO>9VHDIHUm!{@MX5=3gWGPIfct)Eg7Y|6dKzd4-e-!q zjr2Bi0geUQh*37+Xc`2QkQPU;Nmm08?dJW!)XWsZdD9_|g9g?=9|Rp*zF_16;1_ZI z=ZB^Spn)ks6Si@g0(eGaf{|Jt&{+5ussgx`>u!9YcpO%RAO1c6>vmx@_yWJUH(SEI RuYv#o002ovPDHLkV1n$&Z`l9< literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/planks_big_oak.png b/src/main/resources/assets/minecraft/textures/blocks/planks_big_oak.png new file mode 100644 index 0000000000000000000000000000000000000000..9a9a3a4b31645536e40ea8e0e72f927fcbe596a8 GIT binary patch literal 240 zcmV&u*2A#dB%5R=seNAeeVc~>w>jR+7``*y zXB@mdFTWEHGhp|#NuYv}l#4VS%#ZU9cyI-d<5=ryfII9=5#3nN$y6$Bj5#TeTtH32 zDvnu`t_B(I$os(5!W7iJ`H`a0XrL-odyxe-@Kap>?L(=7nm>0Erhrz|n0k63nfw=W q0$!?e4;<@sJ^10C`A@e~(BKOLZ+0GTIBrJ(0000w4Ep5bQqf8JkFJ#2HJu5nIdi@ zz0F*JV}UkelnpqV2Einx#nEfh)xbl$c|R~UGlg*8bco}if%VS^L5G$v7`XuWMO^>+ zp{W6AU<%NLZCs`Rp3#_Kq?QLX7QTh50B+^F8y_gH$3@|Xf6sqE&Wr|Mm2mO0=2tdw P00000NkvXXu0mjfW65-m literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/planks_jungle.png b/src/main/resources/assets/minecraft/textures/blocks/planks_jungle.png new file mode 100644 index 0000000000000000000000000000000000000000..22a0fefe6e5e324dbbe2735a7b781903fbf1b0fd GIT binary patch literal 262 zcmV+h0r~!kP)z1Ccuj{Q9Q-)%>WPOQu5CtPC7g=?18@C0};0zqcvC`8(E3ls_q8sTs zH38cqZJGudM=lUeLNbnCldc9H>hSx()XWs3dGjN-g9h$x526a$UNC9`@Qb+q+lN#G z(7+U+2|6)T0MBSlSfp$R)E52=J^}o`dhLMu&6j=Shi}jSG;E9pKdu^89cZohyZ`_I M07*qoM6N<$g3-Nb0{{R3 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/planks_oak.png b/src/main/resources/assets/minecraft/textures/blocks/planks_oak.png new file mode 100644 index 0000000000000000000000000000000000000000..346f77dc1f93d46f238292e8714ef0c92433325b GIT binary patch literal 247 zcmVT3Dox3KvB)duN`J}|W~1vPJeq-Zo6s0!6yWI+x56xVv&&z*!RpcOTy xo*qah|Am}@m#W+Y$74GF_~D-UpAJLNUWUc@J literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/planks_spruce.png b/src/main/resources/assets/minecraft/textures/blocks/planks_spruce.png new file mode 100644 index 0000000000000000000000000000000000000000..f45fa94b0bc1eba667981a4a5aa0610868389164 GIT binary patch literal 254 zcmVJfw6Ds$j^(6bk*6h!*EKPIJWQ3mCt)v=czZ) zGsW^8%(sW$2?xJ!hu?~a9yr&vNDu`hDHka^xSn<^a39+g9LKRz(*S#%KQ8;NGjt=h zOQw=(Bg`q{$OR%NB;)8cscPV%)%-j#HRD3$H$RGK6dFVovbper3iw4_|II_Hf%jhn zxfA08T8V6`>49Y7zu*(_P^ELAn9kkC4|~slJT^vyFWiOWr%Wx}h5!Hn07*qoM6N<$ Eg5?fu2><{9 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/portal.png b/src/main/resources/assets/minecraft/textures/blocks/portal.png new file mode 100644 index 0000000000000000000000000000000000000000..42d4a75698ea9fb955e5a38813638900074fa4de GIT binary patch literal 13586 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 YAM&Xo%|PM?}Md=xy~0{%OFvQS*ozo7sZd z;-N|HKk9cZwD{YXW33@@@n~5`vQz=j$%K>xv(EmSpDD(_$~U{Q>tZaM3BwYx)!Y+Q l9g-64cD;3Ao*2u(5OOTJgkgQfTA*tfJYD@<);T3K0RUipLb(6{ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/potatoes_stage_3.png b/src/main/resources/assets/minecraft/textures/blocks/potatoes_stage_3.png new file mode 100644 index 0000000000000000000000000000000000000000..d7e8185d86daa2933eaacfe2f9fab976da057c3d GIT binary patch literal 236 zcmVt^a`OT7_pj=r10000%) zTwKqiI6p_b+XEqUP}<FmZ{O`+;UKR1N@Lyw@o^erlqPNCqYgi0m+m^`{sh` zdJ#zyhzSW!E?W!?hgzwI<&RP1i0wj_;=&B+Ooq@8(RCHu(y6Re@B=}++o7+SD24nT z4&)?PW}jQbU|^e!#y%4S1E+^KP;rMAmBKRK(hM&zFUaNBuuYBB{1U?MTigsC9K*yg zRm#Nzhg-XxwAxt4fIt3v%Hf?g#*;CIJ3vts(#dHG`7$yJ$}k!+xYbBy(yZt6sKWvN zB&1V+&7(&jlM*rC|MD}_OIZLUDM?>b8L9@m?+DLw_^1AgTD3wH`bb|N{~9;79_O77-RldE_Vzhf8%#+NUZ@a63j38B5Ys$8 zXYc3;*Y`PVUC?bb5xVEl8xBB{7`ZNqOoG~KnXUB-h1@h#=@ebl#uz)i?spNfzzzad zmsbD~s%cO^f5mojg{6fYL=oMAjvocgW~Ql??oh}rGqi02cSwFAizEsB$%H7JpakBC z!`)q4riSN_m_!28_OLaJLLo=wHjxuKlGAgD)D*-qmTeM65fY#Pyf`~$e`lM%u2C)& z35mFMEL6iLibA6Jmifg+;uzXyAIs1I*jQad`uwXe;}`#)Ajtvi|mB!eJ>xKRiP8 zY!rq~99MF%=OHSK80yUw$JD^S@{#LlFjpP~T>>ZD1)6k5AwcR{sEu44Drv~Bl5AAz z+BnlnI4VonmwA{`6W{VYj*2|?b0^?>&npD48#t>NRlg4Fa!43Eh~BPH^D3~W9XN{- z)!ghjApGv_6z05#Vn+iv{CGlXHb9yt9VlW#T75f1wrAk*{1~l88}7>j#%6>QEeB)P zL-l$>5#zWjgVUxy;k$s;Z$fNTNP!9RQHL5@w00WpWgodg9jQ)@V4fx<%YB!K9n*UX zoZ4#;d08B(Iea}AkTna~llbIY%BjI5ID%8ecO?bMtt2qAZjGkrk@X#LgSRczXs4|e z?>xYG2>w1nkGlxoA1F42*$2z_e=TVXAMq#4d*Ga91fiuP6i03&0yC zILnyeIRwe1d>++NE2-C4V~CClj&*9jtWk=3I5i4X&_u@9knd|ms*p@$reeWXuhT$l zdkK-CedhRyMCg@`RNHr7Fh5odq&dvpqNRXY)!`go^+a!Xp)r7FA{OVzW)Qe WXWh7FCl-tV0000S87adFM$ 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/prismarine_rough.png.mcmeta b/src/main/resources/assets/minecraft/textures/blocks/prismarine_rough.png.mcmeta new file mode 100644 index 0000000..410b327 --- /dev/null +++ b/src/main/resources/assets/minecraft/textures/blocks/prismarine_rough.png.mcmeta @@ -0,0 +1,30 @@ +{ + "animation": { + "frametime": 300, + "interpolate": true, + "frames": [ + 0, + 1, + 0, + 2, + 0, + 3, + 0, + 1, + 2, + 1, + 3, + 1, + 0, + 2, + 1, + 2, + 3, + 2, + 0, + 3, + 1, + 3 + ] + } +} diff --git a/src/main/resources/assets/minecraft/textures/blocks/pumpkin_face_off.png b/src/main/resources/assets/minecraft/textures/blocks/pumpkin_face_off.png new file mode 100644 index 0000000000000000000000000000000000000000..ecef0250cbc9c8932e4c766c6beb474aa8d56188 GIT binary patch literal 240 zcmVLOkH#cKvB8U qC@_3zdvTR(k4GPy#_j48j`C(E&gRfAZYrbz0000G^PF>^?t7klQ!^9w#yXp9bn$Mw!Jf}sJXQ@}d00#FsmzU8WvbaVy}q|v z)gpTj7%y6ks6bxsnu@pE%%73#7~dC1rN0zgL%<6k+E`{D%vp;fG_ zhhd-JzKr_(pp@}KUO)pZZb!C%nz56c0lT;#vg@Z2x0wirr%vB${>x@Bpi9KG$xG!y zw~3qxW{~t^sqTpv&?(r!P-&I}8nWDx?KN*fw=1+Yd~6>7ehW#@^uIjBAEJ_4XGmbA QzyJUM07*qoM6N<$f_k>W^#A|> literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/pumpkin_side.png b/src/main/resources/assets/minecraft/textures/blocks/pumpkin_side.png new file mode 100644 index 0000000000000000000000000000000000000000..75dfc47553b2803a6cc757d94bc2e01c7477c940 GIT binary patch literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`i#%N%Ln>}foxD-7L4n8h^6gtz z6QwP>oh_QCe%`^{tniUX+>SG$(f!k5=6#Lla=UEa)%I2OZCox`e`xEm0-c==&ux|j zBwaCfnB+8->Euh^0Bwe<(_zURb)={?M0)8T|Db_TD=lm$9wrVPjN-Rj*y*`ge?>IU&bB Tmj-?Wx|YGy)z4*}Q$iB}Kr2{0 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/pumpkin_stem_connected.png b/src/main/resources/assets/minecraft/textures/blocks/pumpkin_stem_connected.png new file mode 100644 index 0000000000000000000000000000000000000000..6a5c10e12568865928cc9c1653a171dc3768ad68 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ii4<#Ar-fh6C_xh8D#8ge%N!g zx3v6GKix2I-n{=OBvK?c)nsSCuAjuqvXiaFah7M<%_}Q|AFfl3{CsU~^ut*RZ6czg zf7PuU*2nMno5`4de%@dE%1JeI}Mdu3Z^MN zui=ZxzOSsgG=1gPZR{2A6MGIyF!yZSYy6J?%RR-VH4ICyRA;PZJ!k2qS*_XEXsJG@ nI6YO!>5t%!-wqr<#eOh$XeEA_WD{l!bPt24tDnm{r-UW|fh|Z^ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/pumpkin_top.png b/src/main/resources/assets/minecraft/textures/blocks/pumpkin_top.png new file mode 100644 index 0000000000000000000000000000000000000000..1990a03941f4f094645b5f344640c0c72cb69f61 GIT binary patch literal 271 zcmV+q0r38bP)r2q1D5au>iD zYC!;aK3T+`i`)Y#A&4()@7qsA$?SBLz(P)PvWjRkM-#OSxPZu>{jG$4T~#UC8@4}6 zsMPsgAm<*85x`&;q4j;m>!e-A1so3pdifEnda#wGKtszI z+isgs5aeHDJ5u}BDmcEyYWvm;7${crkg7s9K3r_aA~pmkij|jq)|Q!*LnHNJ1&1@c zGrO}`r{5>pf8Wb7Jj%g4$m!-Jbx=#`mNI`gm#3R2DT7i9r;y661o+}xA;s51{BvKd z$LmMQN4c!*mBe-|tNu#VK#96kGV9J*Ecy`X_!vn#Oo>6bXRcUPSP_hirM;ANluBer zlJpZ6fRcQi%XYfe--pRRg3e4VNZ(#<+X7I502=`Lmz->iiv=ScYg{(UNMNBSu%ZAG zQ5g*Q2EcuAFYD=A)I>?#|NovdNCzondC^p!WG$Q9apm9~$c8{NT4-m`+*@^6lO2~v z!COG(Rh-AdUNF>9D~T^-tpHYdU5^J7NMv-~_8s%Uo!8S?lViQ87l8_d*@NT!Nc#YO z{`1W9{>Pr}RDQ)L_Q2^lO$+l{59U?6@%eUo%L4V!TC!m#o5`lNI~gQ=Qo+Noht@_@ zfUY#*_k7L($w)E=qJ&RWG(fL*7o#vUd&%mC(- zoB+&V_jyN*`M$Z@a635zv;cPOf$HnZU^g~mn7dEAwhd!B)H-L5{uj(gEDu0nLZ7e^ ze<4&E*=C4n3q!WT_aQwszM6NQdwM6{?g)~wJHdIt^IwHo#omgRJsAK1002ovPDHLk FV1gG@41xdv literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/purpur_pillar.png b/src/main/resources/assets/minecraft/textures/blocks/purpur_pillar.png new file mode 100644 index 0000000000000000000000000000000000000000..d46f0645578890ec9ef63a208a4db3d4162f28af GIT binary patch literal 575 zcmV-F0>J%=P)X?SiJJ;aWb$G0!_?3~k=oH!QfX<+i%~*~h+5z9?Kd4gchU;FeK={J zq`iC2b)QGMZ{DN3*+nPcK{-{%qxXnw>l)FY2>POq2k!xq6=7tI(8x3}ZjKS;19&+P zYD$F?nGu3q0B6;~&ZixOr4Zdh7wwHUth9xJI)J@wi}ZP2hS@8&X!r9jlzzDnZ`~7d zqW{Z>ow4Ds`KbS><7DduM};F19gS+QPO=TSSyvn@XWE(Ar;0O0RKHe5`kXF*++Wy7 zEnO37vl@D(9u8Lz;pcqpE$l%N28A~U?=wFIPq?k$%9#%C+&lOizA%shWZ^l z%*|bs0ar?CDQ&6;65+zQNY?m228_sab-p^qKqABpC{7e$6S?CKP>gh0yOa`9;(!b~ zn;pqT2a^oUw3#r7nT*{rTKU!+gLC6NaX?FC;A9<9Wws)Bf$`$IK?WQ|u{R&?!l`;H zA2ipSlKDN8=x-!7PO2OhL%EG{56ndq2TKPc_8{&=%!EDQ#yEhEUjX1w(W{*?Fiije N002ovPDHLkV1mLg1v~%% literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/purpur_pillar_top.png b/src/main/resources/assets/minecraft/textures/blocks/purpur_pillar_top.png new file mode 100644 index 0000000000000000000000000000000000000000..2502aed5ba7efdfb2435f45d49a923f0a325f988 GIT binary patch literal 631 zcmV--0*L*IP)gn>N((F)MIJ3kZA^p@{-#;xG$rePn6$S& zch1b*dz4q_6$@>Fg&JYwY!I3uR{9E^FCFlIUqFtlc$y)rVK}Fssg>gx4X| zeHG1g6Z6U(^XeRfivip-7uF{WUfDzIq$Q}Q>Ikh6wPX!?T8{{(wJD4v1HH4J5cGfa zVVzj8vo_ktZHzC+LP*q)>Uc7r&^&Cy$vY82a1-GE_dUkNF-AW}&{KMZZ3h+-Y(QuS znr!+P%EsN`?)x1^7t!Y6I>6)AqxhVZC*t3$dYBfc&{CRY(m(H`SLmT}*oZRd=DPxI zU&B&gVo(^Mo9&8?ZmtXG)Dg+0L`gE>H-d^3Cch(~M0F;`%%qd;NT*h|1vlpk0W+}k zwxFJ_L$M1{SmsAld{R2?!~|49w2oUS?UlfK))I~M)&e~ZzYZnkI0JSi0XI?&E$|x^ z@E)+1Yq8*I9_*Ygs3a!IogDE-^eGiYJ~zC0Ri^Q5Lx|xKWTO?lPcVQNRphjDC$|7GA6unTP(jKHmPk z?bd-FVC}5&Y(B$lc=A+M#!5PyA52V26Fgi!NaB+EwmWBmfzhIqaU=sZsmh6Qpx(^_ z3H-7z#qCU6?tVNQgb>_>Fw%y+&&zWt+{DYo1>ddDmYgra>HB|8>8xdU;xEsx)n!9> RKdt}(002ovPDHLkV1gyhBD??q literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/quartz_block_bottom.png b/src/main/resources/assets/minecraft/textures/blocks/quartz_block_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..0eaa57d7a584234c7013652511c3b4dc6f91d3aa GIT binary patch literal 377 zcmV-<0fzpGP)o7=Okb*-&mKoPaQ29^^|7pQ&q<0v5KO$gB}u}{l1B)sFTNw?vY9*bvT zJ-9mA=8(GjgEd^gcx?(T%go~jAl*ri*|GV)&BJhJlL%%gh9*rT0q|h+Y@d+@0J8>2 zRMxo4AZ4Vk&73|RNdTEqnc-zX@O5TJdScc9`HnGs41ie!q*#!ST4snf_>2s&DCaE! zrCCFaY$yx%9|VQZ0Ok1wuvf(A5$HNi^mL!0%OE9S_a=h6h0$MM0DF??=$T;8D`04- zyKK$9AemsSqvBZ6U;YA6>aII-ixc2GxxQkW?|;~U_I_7+?2|(Gm(OHeTQLAc*B*B( zj+9Y#j1iS@iOldaz#@w+CDcPhBF&MR{-Lms0|UT+mp#$su!=V8MsZ!0bteD-!VK>( X8k?s81R&^q00000NkvXXu0mjfA_S*b literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/quartz_block_chiseled.png b/src/main/resources/assets/minecraft/textures/blocks/quartz_block_chiseled.png new file mode 100644 index 0000000000000000000000000000000000000000..054e4ee6d8ed8c7905e31a2b017f862febac97d3 GIT binary patch literal 359 zcmV-t0hs=YP)H(HV7f5&nw(6eKjMK@QtoAUnaP0B;L2=uyCk|))ck}6gj#(^x zux=fqU9JIxKeox=oD~#!0P3%|1QPArDAo>jdSkrc@(~FT2v#H#@UNy%1i%)m6Ht-} zG?=VgL1iT6v0YvIVh@$qxtByOAIShzkO21ndk7ZOiLW@^bee&=R;dD$NSx0=2rx-X zM>X_{3JlO{I3LdDM4&+es^KhhB!XAd&k48z#BnoETgVB}H^1}hi2#zp$_X=p8-N8E zCqCOhD`4-0``?0o=T_#ai3A9mr&gScX;UDpQ5pQ4k-kh(pjmk=dayWiO+a*2842uo ziIT?Vakk;kiDha}l@SNki9kd5jNcjGUG<)!6!hU=_yZjtr^nu$BQyX2002ovPDHLk FV1mXan`Qt2 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/quartz_block_chiseled_top.png b/src/main/resources/assets/minecraft/textures/blocks/quartz_block_chiseled_top.png new file mode 100644 index 0000000000000000000000000000000000000000..1e3c4ca25e983d08bface4c0f80277adb7e4e3e3 GIT binary patch literal 356 zcmV-q0h|7bP)*-K>4{BeO=%GvA3|V zLwNX6WZ;MkYWGg;w%)}qt`j@n8nMmCi%8yoz9j$-zV|6Zus;K=F*@Gmw*YK09c*xj z=oA0|5kN2?T-&A!rc7On065W+?`CHcVE02JFMc3Ea5#l{9YhlWWbk+cV76ExL zMU1V$2B|_Q7IX$Vbl^9j;X-Eu5COUd8V1{?8n{1cmVmO5hZ^YU8bFY)KT1CF(=U*jY$X=JD2Dk^)#0|) zEXn$whfOqs%tL(`f3Y(#$uG!Xt32`O4UKZfjDqk-3=vU&K;}8ec>xS8t9r^93tkv~ zVEi#PtYPs&S+<08?Tj%D4g5QL0>$eYm+kwDp)P0GU){XyIIiB&x-uFCwBiBBc zL15GA2IdN8ozI$_?o&87`_#vu=F3R&l8tciaMHfCT65BAafJxRc>(v91vfAh-vIiJ N!PC{xWt~$(699ZPV~PL( literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/quartz_block_lines_top.png b/src/main/resources/assets/minecraft/textures/blocks/quartz_block_lines_top.png new file mode 100644 index 0000000000000000000000000000000000000000..37bed2b14d806298a118ac15f8993d66a0b82e01 GIT binary patch literal 358 zcmV-s0h#`ZP)n82upjh$w>^PyQK40Q(ok&P8CU%+V17wOu($L{iRh)w+_aa+C~;%iz90MspvqII#+kA^h$6=|7! z5j^k~XakkBIR|JX6q4YfBjAI!*vReuCgcEO>eCL`!XO(AkjkzT@t)2Dq`)+J111Jc zeJ$;4lU~aVFnO-Z0B0M5@VRrqVFm!?M}S#(!INj00CMs(07DqS>$XZW!2Mfu{sDL< zDMTJM16<>ho+^|75&(WOR9$9(U>@6~3qe+IrK4Ov<>6K0SrY)sAiJR<>1z|Emhm#N z-fyScXHcFV03Hf{5RP#>I!0B9W0`?>CXQVxzw3YEZ&!D#lwSNX8-^I literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/quartz_block_side.png b/src/main/resources/assets/minecraft/textures/blocks/quartz_block_side.png new file mode 100644 index 0000000000000000000000000000000000000000..d49a864d9d20b46d752cd9afe725f3a3747b9dd5 GIT binary patch literal 364 zcmV-y0h9iTP)>2=fvL93gR0AUcHt?GjwZ%NklQI23k^Roj$6|(?f&H;|Hi%>}fpk&Z; za|y_eVurd~#Q>C)n*kJa4%qLH0fY>24^o`L$vPy)^%PPTykJ2QL$&Xf{ibGl~$_K5>Z-^=4RWZ&^F zOM-Yax1p=Q8DQpn-0Pz55whCp&&gYglR>2=fvL93gR0AUcHt?GjwZ%NklQI23k^Roj$6|(?f&H;|Hi%>}fpk&Z; za|y_eVurd~#Q>C)n*kJa4%qLH0fY>24^o`L$vPy)^%PPTykJ2QL$&Xf{ibGl~$_K5>Z-^=4RWZ&^F zOM-Yax1p=Q8DQpn-0Pz55whCp&&gYglRNklR3ks-Ep_M@85(^#o2x_L{tZdW)#@krqST>o`L@?22u0aJuf)|{Z zEX8PLHoAscoOOT(LA<+KA!Cz-$ba$iJzs-AoSbjI=RD8*KF|9c?ag2>Y8A)D(dlr| zf80ewem>jGX11iJ>dP~49{mjsTy;A6sh~jr7kw1w#+eqhfY;5s)n>|O&cs_$LBgCl z`UM40z_x?m^XOI=c`H`1W5x`=oi&SkYchS^KE|F5peeAstV{=+mn>oPs#Q90bfAZG zyQ_K9_Xoe7JxTV`r8&0DuHDIQIZzh>;} z6}H;a(Tl-YNN- z8q49ibGf$PK}6gSp7XN)GaG3#V9jJk7$X>M8qQ+H}TM!jw^JR|FNw z$@FxbU?Ms~YOIkGG0c;mt{XmlCqRZV=3@?q-EKUaHnArwi=oCwnnX^69Nd&vgT8ig z-AJcI{I<)*!{2?py5ECIsyCICkf}O&eEgW6ycDS#sH>w^jQK7%m-Vu%HmBPS9B}Fn zX^nuq8#Z8-DC-hb@}>!jB(gP$2I7QFNl^s8DltyL8|6Km-d0Smc#toTDOb$B?K#8; XaQ7hNwJ^Q1$f#JV55EsUp{$JAI^?yxA(Es*a zSFjjJ4rTyI58QwtXAQUkVn9V2KnxN~@z(-lA6r$hm>7})AbAv5zzn#%LkBLV0d)Kc;6 zAcP4L1|a`~Fep7x6b2wnRyrWs3;5CjvH>LJ1z0+Or3JFWAU9Z_^e`YbI|BeXOjKR* S9V@B;0000P)R!8>&04XA9iWCf% QA^-pY07*qoM6N<$g3%;*o&W#< literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/rail_detector.png b/src/main/resources/assets/minecraft/textures/blocks/rail_detector.png new file mode 100644 index 0000000000000000000000000000000000000000..92c1466eca4e2e0b3ef70eee0a479ec6137c5da7 GIT binary patch literal 309 zcmV-50m}Y~P)Jb>3DR(4)29EMmM!~#V(;Gn{S_5p1Bng;kgXt%D^{!k%; zuuF&z1CR?qw!;jlEi44Pis&!^ITz$?kVcU0ZK)|>1BgloAb&`K5(tU2Q{{Ltx27cemWU(L)2#vnFG4rTz>FaSw{{0UNgHZJ1-o}#?}XOm+7@A2~h8wiqv z8GtnmT8xarf*>0~8dt1X0mfUi(!hq|^a8p8AjQX`L*WMO@O6V508&F#7=WC;IV1W1 zo&c}^yF8u227uB5(P4m&L570T2+Rdo!+@A*#Oei75)$5Y0Lu%YbPr1ZeZ@BLyZ~Yo x3pfCWX``lpt|Iu!$DEWb4Iv^)6005_%SiG`u#WCLJgAWa~fVSHo* zF#Jc60mxwhQUuZj@;Au;eZ@9lZ+N450cRL|J);ZuFUa4~ZmM9-AQ~hFk|P)fAVs*m zfNTKHFhDi{q*;U1FaQ}4!UPEekpDp#lpeg%yg*VIfG}CV1% oh)xF}17Km08>~-y7?7Hs0k+qDqJG029smFU07*qoM6N<$g3PmRj{pDw literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/rail_golden_powered.png b/src/main/resources/assets/minecraft/textures/blocks/rail_golden_powered.png new file mode 100644 index 0000000000000000000000000000000000000000..bd343be8039ac5b8d6893d5db920f0eb036678ee GIT binary patch literal 341 zcmV-b0jmCqP)F4X|3V|V|0(`jVC-Y73Kj#&!3+TDL2(7L0WdL; ztqT~K;Cy5QF#Lzj0FY*o%>)fV4g-)Pkj?G6uK(9`1pV(Tw)tOgqW~5|HUMWBd_JfJ zwiV>>3R4+y7=UPy7)Xv_7=RSP#3nJIh5@nxIKu$h0J6dWWB|y&ptuM5AB5K@T7bon zT|h7la`j~XN4u$l!vGYBWTgX;7eF?Xoen^@PC^PqlJWv53_$4sgy)Cr5}yu02Ef7~ nH&~zaFaQ~VGdlybI=UACC((&L9FaP600000NkvXXu0mjfd@6@^ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/rail_normal.png b/src/main/resources/assets/minecraft/textures/blocks/rail_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..d609236933257ad59daaedbcc92efe47f8a21426 GIT binary patch literal 232 zcmVP)}1CoE9U@G1XsKRoC2 z{2b<{Ii~;gBR8?I3a^!1rl_pU%sP3^#fv^)>wDH8tZ%AowG_XrCLbMo=wZVe$ymLk z@vrSqFg2ZH%Ve_@ot>-TT(FDjX4-^9-(tdfj#k7rzAKrLl)`JltMDX0WxC7ml})kj zrdKxZO+CY_U1gGPZ&I1{an^LB{Ts5+-hC% literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/red_nether_brick.png b/src/main/resources/assets/minecraft/textures/blocks/red_nether_brick.png new file mode 100644 index 0000000000000000000000000000000000000000..ef287dee9e76037315345f02ae30696c3a78da2b GIT binary patch literal 397 zcmV;80doF{P)vBk|{(#<# zA>CyiK?G1ZZKT31^@8R&5dzoE7EKMvK_F1^6}1uZ*f|lvNhn6GHfk;cC{jkouf`+y zzaP)TsTT;n9+ct}d>$Ulx@h$T>}#w&GJ}cFsq$Iib(Xb*tAZOI?tQ1fW5c0YZKzjp zyA{!W5YM8X0f@cDXkCm5SWng~nDa|~bbIv1JeXGreh2pIaSkAzto>&q5QxCx*c z>yE&__XQBb_h%fR^Lmk_5?>}hn2E#l{1zpBvBw|gnNL|6^hC@9{{!&Y-B8b9&5cVg rUhE;ZWT{^PC&i7`7VBBBZ7uu(K7US(W&vJm00000NkvXXu0mjfm4T}d literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/red_sand.png b/src/main/resources/assets/minecraft/textures/blocks/red_sand.png new file mode 100644 index 0000000000000000000000000000000000000000..096ed0ee3bc233361a01b197ec8c46ffad689ffa GIT binary patch literal 738 zcmV<80v-K{P)brDtg$9#W@WM99pGiZ{QTv- zZVF}~ra)mGL!5{yp#_WDiK?(1x{(=>OFxpKm^?f_|HGy8T>V50i7-ttCq5s0N~QVfn=M6QSXU*= z2(`e~!g)0oxRXC0#e||b3^UO6&EUP6=Wf7|sxyf-( zQyW7TGv+y=X5sl|Wb6aqeZQvdBd*Ydn3#aRYw5y>e%W7GRXH*!hAA)uxw5>q1DOJ+ zHIGkwR<)&eicaPB-G-!+6O@$mFanuXndMBc9( zt|@S81NZMM5Fw?664;-5PM3g6GjmM*@vtXXhJ|sY3D&C;X+xkemN+MVdpI$S5sYRS zJwJTduylrH;c(VamKI}YT7PA;Dv?5%17(qcKpzu#U*AyF|EINe)V1ZNbTo?`gE07svesy=*_}H61M4MS Uv4L4L+yDRo07*qoM6N<$f?Wnku>b%7 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/red_sandstone_bottom.png b/src/main/resources/assets/minecraft/textures/blocks/red_sandstone_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..864370fd6f8fc3279cf4a0b00d57a77c0641541f GIT binary patch literal 506 zcmVrImNk+VX8TrU48-!YwnxVf-U9#v0M(Jc+<3{RV`X zmx*j5*F@%oWv$G+vUTs|cY0kr;+h7#LEQ>q1mvJBZ=DD80V9z$Quy(BZ@H|ITI+xV zk`RTJx>`nb?+1#kfTcAAL3vV0W91fVD{%2GjnoqXAdjiAL`=>Vg@gIra2mGKwW zRcxJNMqOzv8%ABo3wAM-(OFEa{`G28K;l+?Vr+vrTeFJ%K=hxzcMCh2s#Qc3q%i(*Vx zrMO~Vh|44wRs7y27dk8j{40rTWZOGRFgZ>OFPoL z*pupM5Nlhk-@8L0W|03~cJYHXL79u9E7xF(yv4e$3P_b;oQr6Glt^??v2nU9b)c5q zg&*+tm`jpTHnJuFQ#I)((vpaN4=oJP))Q6|;N;4>eS7G^{Of;Z(6aD#_vn@DC0R6yu(5o1+9KCUC$q7uy6Kd)&GQ|10> zOD9itRA#_-XqA96cy*6RqEAb7P@R^0567Dr!5FO)tZow84^>c>d5Lu#s6)l$@wT^b z;N_SWx)>Ct)4t%P88Q;QWy9((%L!ba`{24z@LfLG5cGB0woaVMB&eV=QG*i3M%k#| zjM<;zfq4X+I+@$BOwa>R3a6|90000ss1S5IirzT|!9kU918{K)?X{NJ^#9QfNOUfQS%K{HlGq?aaosKPK68+1cIMJ!bFa z<T1b zKi96V$CV=uLg&|RK@2|&WU&Q1(_@XpQbL{fZ5OSxah^p9w*0E5|Mj08Qv&vRjl&2e zValwZbw+8=AlelYL9h<%h0*N72j7?d%3&8S2GBK}oil(1^%aWAeQq50i) zCBhS!zvI#^dOoCZ0G<2z6E7WC9XG8UW~QJp&njN%JcjzLon(=CbUbvARbc8tad)r- z_^{oE3lcDOmcRj-V>YzkOYX~z4gLJx4^!c;K8sx>;mV2bHQkjsI_+**Jz`1 zQXSX{-n}`A>9qE!!OjcQo#^mbcsMCVAAKe%Cz07OGQ}l1-^`#G(^CHe)GQZLFrI1H P00000NkvXXu0mjfeUU8q literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/red_sandstone_smooth.png b/src/main/resources/assets/minecraft/textures/blocks/red_sandstone_smooth.png new file mode 100644 index 0000000000000000000000000000000000000000..79585312993d8478f37ef72c13645348a446b572 GIT binary patch literal 469 zcmV;`0V@89P)03(Y61Af;5 zNQjoT1btOvqU~dnzUv8*@#EsJ8zzR}JAO4rUf!iq(WP<8Sg#PJKCiv!!Za*KXi$jI z$1dMzf5ET?!xptTIh|~X23*w7hpCeZQujVcSnKAlsGSLk|CSBXYwD6(sQ~qIA?iI` zQ!9PNagdzt(=9Cm z4e$=|-~@oHs!0{zgB=5aUH_|d@Pmf}i;DrPve%#Q0{c8HcE{Qu{c;;qSD0+@00000 LNkvXXu0mjfL37T5 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/red_sandstone_top.png b/src/main/resources/assets/minecraft/textures/blocks/red_sandstone_top.png new file mode 100644 index 0000000000000000000000000000000000000000..bf231481f13675395d878ba4ccdd57124bd8daec GIT binary patch literal 517 zcmV+g0{Z=lP)os%CZr<~5rT2(zU?P_;hY zGnmc)w+O_z+H4VEQ#SK5dj`i4A0x2MYnr^*cu#19<@G^GL;wVP!j=p5^D0IxFB$ML z#H$wmNP$5Tv89-80yEpVMJkwWetlh}mJ0-NV*_L?qETKk5y5i=HXK9jPTHnzjOl_s z1^2qXSB|TU1z)q6HW4eHviW-zBi9(?=jT-zILo}Jd1TOSe!nMw&*HHKv2a%{n?D8ng6Se#RIVzhUy%Rf^uB)1 zG$yoZ@jBn-oacP!qUUS4O>Di71f8{8Pf=4!QD4hB<>60t$dreePu}poj2cpb@qWKv z*G``<3js}z2Mj5~<`JSTeH;J}cv+2^avSls{z5Y)GzK zulqQFG9sQw3^{=#)5yVjv|W=qI41m>tc4V)(5uTe0^C6NgD$`=HkmF>@-VmrBop+? zOot}ZE^(g@YI1^9UQiPTs>K_C8vvMV5)reAJ^|x(zxvvmg0^5&3j5^LQuU|}{Q}Tv z+~q_u6?@H>lmR$v0Gt#m034v=sX!~h{TjZ2h2#s^4F|vt0cqqu`75ehENU{KI&#&R z3kSfSvt48DKZRpN!tDK@fCLOER@=^(Vzq7OS!fmQJP7N~)YbvnkjkGIOMcZtM&EEoeI4+Oo)#@NiHDdnUY4=H!?3VmOlt$JWn|lV5wIq}E9RPM@PZ&d z@4`|rx0p9Yo2F5wgAMtNoALqCh$58d6zw>|Eq|u}=o=!6&y8k|6Vm_y002ovPDHLk FV1kt-=jQ+b literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/redstone_dust_dot.png b/src/main/resources/assets/minecraft/textures/blocks/redstone_dust_dot.png new file mode 100644 index 0000000000000000000000000000000000000000..ab8866d84be5f64b40b9e2e3ae82a8b910d7232e GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`uAVNAAr_~T6C_x-F#rGe_c#CI z{Cj(T&R03Bz-!REK7K#j=0r9jUI!^hiJ87z6klwcyhQRQ!wj_)v&h6onH3^OPiP$A aV`zVpH*dv-Gd(~989ZJ6T-G@yGywoO3@Zu% literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/redstone_dust_line0.png b/src/main/resources/assets/minecraft/textures/blocks/redstone_dust_line0.png new file mode 100644 index 0000000000000000000000000000000000000000..064b107b9456ed0c01cbf018ee8280034dd98b90 GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`E}kxqAr_~T6BHQY_SgNLpXhLK zfBpXx<%}nOn&;nJa)v>`ccP+*G(!>V&4&(CHI`_IXFVdQ&MBb@0Nq3=hyVZp literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/redstone_dust_line1.png b/src/main/resources/assets/minecraft/textures/blocks/redstone_dust_line1.png new file mode 100644 index 0000000000000000000000000000000000000000..8e8a700f59cf6b3222ebd3c8d0b0f770f4873673 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`o}Mm_Ar_~PPIBZu;2^;C@x1`= zV@9ooXD>ea@xFz1i8$lcP*uxvhAZFLCM@AJVs4Oo&QP+dFe^bWaFW_feQ%q(qh-%! e-ZAZyv0t1U{CKO@x!lvI6;no-U3d j7J|tVtcw#wdYCkTDg+o9!;ESzfRYTJu6{1-oD!M<)~yk8 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/redstone_lamp_off.png b/src/main/resources/assets/minecraft/textures/blocks/redstone_lamp_off.png new file mode 100644 index 0000000000000000000000000000000000000000..522765beb5b1343b8d44a04455f62a7e29584ccf GIT binary patch literal 616 zcmV-u0+;=XP)2Wf1 z#DtWi5)&2_0rjkmH~JOUW_NdW03h?bY6M3a5qVQcW^GNv$t@YDrA5{P=^}G>2B7#+ z*9HI*G;%V0Q)A4mXA@|uA$)sWz{f{u8xtCyO zicb%-IKH_EuP`>E<$&SPqHgqFsQCOKg%9_xqj#*EQ9`#G#-?ZTubp6kaxMn-s>jT3 z=b!Co!@%3SaeUvu!2p(-W<>8P5eKA{S+q+593@4p^dVcyd1j(^(#jlrw!c1)gXCqr zDk$je1coZ`UV!0uqJ1ZZu9=mlP0yEvGst=z{V#A1t&$(ThROi7#83q!>g#$n3M0KXa)wAA3}Dih=|?Pg{Q&0HY9%DFgt&vew1ZnVomUKL+u zOGqz@0T-$<8O8oWSwn4A!pKMy$S(<_KhyvI&c6Y32aAndQKl9E00007=PjV+3j403MF{S#s8#){@PCm)M?P?oHR20f(Ps4aE!xim`1VOfZ4 z8U#_0glHDcg|G(^7sL#8^mvYL#N$4_HCnw9{S*Z|L!^Gp5M8@%R5?m0A!p# z&PVS3U!xGqBe!Oyh<+Gq_8=K(!Or{;d{!9;9CWth=d>NRrgCfr^eE);av+uw;+;p1 z&CnRqn^D{_2{;fD*c#U(bW;KL{4p@KrJNJ$z$n^_#XcqGoMK9j^s8VNmvIhsr*>m~ zM2qPzG05dL3*l)M&a+l&UcjcW!ne^gn0H9gCeH4$%XkRmm#Y!Z1Zme-(|^yd z)?n5tp@Jk#PQYuf#1JFEOGhmgA!(EUja4PMqRCpd)a}Q{hz7AcYQ*j~Va6fJ3t(lG zT3zUqQ|sxEc*s0;N6vF_L5_4PWWBZELPiuiqfaVsMh#GG4-&;C|walk6)TG`i? z$z*McuKG1YB=beBoCDgm<>+CKVA!Ujty*}P;u8kgH5G836BHk&|2@us0DfWyw@uCh QbpQYW07*qoM6N<$g6nWOVgLXD literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/redstone_ore.png b/src/main/resources/assets/minecraft/textures/blocks/redstone_ore.png new file mode 100644 index 0000000000000000000000000000000000000000..575a48880e3c4675e008b6220835e33fc99d0bab GIT binary patch literal 264 zcmV+j0r&oiP)^x3t(_s}?qQ{r_^$E{j}~M@ zqWS=24gLiHf<*mnTi1mkEV|7ihrY2p0|aEUKgpSXH-ge#*=#&CGDTCG=f3~qNYogN zERASzuH%R#%m{OtmHxm$JFn>Lk~3q|%~JEcb+B5=Y;T>Tkklvg4u`}$P*q4@yXx4c zmqj+}YZ32aSmK-h7=wFIb%sMiKrc^$JryalzcS87=}vj3`D|Ia0b^f_#agI|ftkAi O0000+tSf52bs^Dc{n82?rv|opR8_+fePgg&ebxsLQ E02a+VdjJ3c literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/redstone_torch_on.png b/src/main/resources/assets/minecraft/textures/blocks/redstone_torch_on.png new file mode 100644 index 0000000000000000000000000000000000000000..2983d6ce0ad09586259ccc4a7795471d950fd626 GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`>7Fi*Ar-fh6C_x-u+~dT{A)J2 zIqUy@hDUWqyo}Nx>VMS>EI1+h`s7s}rpev0|8BoHJt6kv74tYMPK`bn*kT%aJ}aHP*d~;w5Uk~-6@S03$RB=~6S=lIJ jpIj_>^JRlp90NmWN<(Of-Lx*CV;DSL{an^LB{Ts5=KDWb literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/repeater_off.png b/src/main/resources/assets/minecraft/textures/blocks/repeater_off.png new file mode 100644 index 0000000000000000000000000000000000000000..8634669840486cb9d17fe168331fbdd18410ada4 GIT binary patch literal 375 zcmV--0f_#IP)a#U1!i;-}jEHs(k&=&h(k4Da`YH7UMW(=i~9{_JT;9K$kKU(ml>vaUz)3sDKMV zl=MC&1sMU605t&T(o=m*dF&<1p>10?5Spe5%d%ujq|z10KqPwt;pNi8tC>ez*EK6P z*&8$-5n*0*Xg1;v6U+3P*GZ9yjM3D>DU<#5Rg0m5-6m55*sW57+5CD`qxG zj4cGiFogS}3|CtkK9QTVBB$;2B2t5NNa!_%5|EwRxq|%@<@tVneEI}}{c~mxegG3s Vyiw%7u*CoX002ovPDHLkV1idVr7r*g literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/repeater_on.png b/src/main/resources/assets/minecraft/textures/blocks/repeater_on.png new file mode 100644 index 0000000000000000000000000000000000000000..d71d0d93d78d1de0768cac65d95192e111d75879 GIT binary patch literal 371 zcmV-(0gV2MP)&KQ3}R!VRWL9bS?g8pyv|DA23;85XyZ;uTBRLtFvW40Zu5kU$({1J-1w zgXu+jI$%1f-40C8pS%3OwNWHIHW-jY8st}yv+=oLV*gCAI#^Vq7@#C&5B4)i;p`kE zh?7GC!SoV6Z7^M4((qqj%@=z*0GSLk02c-s08)oF9e~0B6w1hchlK^qB_IPp>aeB* zWCQTI02Yl{(*ei;P*j0J8x&w54d@tWIzUc|pr``*6%=6DQX)z^0Qm*kB{0dH@J;{Y z-8cS^c3z299wi;X3_+Gej$&N$45Q`2U@i|}X&;s+{Ghp$e&xZ7wJ9hrIfaxP=~Eu8 z@b(1L=c>v_%Y)JKV6;3yDi1oKxs!h7!69gi1XeqrwKAh~dC;V)j1m^3<-urqFw)Bd zSRFZV{RLQg@Hru7fcgutuxN9394!xMRUQBUkM|TwP)(hS00000NkvXXu0mjf1|`>p literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/repeating_command_block_back.png.mcmeta b/src/main/resources/assets/minecraft/textures/blocks/repeating_command_block_back.png.mcmeta new file mode 100644 index 0000000..4894b53 --- /dev/null +++ b/src/main/resources/assets/minecraft/textures/blocks/repeating_command_block_back.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frametime": 10 + } +} diff --git a/src/main/resources/assets/minecraft/textures/blocks/repeating_command_block_conditional.png b/src/main/resources/assets/minecraft/textures/blocks/repeating_command_block_conditional.png new file mode 100644 index 0000000000000000000000000000000000000000..2af3122bc08c496b3ba8ae6031fd6564b20acf15 GIT binary patch literal 471 zcmV;|0Vw{7P)RWOZB9;A-}mu6?1sQ;JF-}=9K!_NOl51j?` z(bcq zmIo(7f(E!efVB^n=xL9(4@TPuqvgQ}?JvAon*yfKRh5sH2gAQS008IgDF>8)j2Qp` N002ovPDHLkV1hi5$vgl6 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/repeating_command_block_conditional.png.mcmeta b/src/main/resources/assets/minecraft/textures/blocks/repeating_command_block_conditional.png.mcmeta new file mode 100644 index 0000000..4894b53 --- /dev/null +++ b/src/main/resources/assets/minecraft/textures/blocks/repeating_command_block_conditional.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frametime": 10 + } +} diff --git a/src/main/resources/assets/minecraft/textures/blocks/repeating_command_block_front.png b/src/main/resources/assets/minecraft/textures/blocks/repeating_command_block_front.png new file mode 100644 index 0000000000000000000000000000000000000000..f3333d3ae42e5d4775ba6b0d37efdf873e93180d GIT binary patch literal 454 zcmV;%0XhDOP)F5Rl??r?36rykRFC&!4*-#SoBYunS;;1TzF(bCaqvoISCBCRiS(8Du#F za!7;x3UW5G&FC0p2uK|)Dp3qjlClT;8KiJ_juDtXS5*$CKPSY1>GG0>|N3ga*wX>X zWS9ZCFvtLqI-KbMP)NklRWOZB9;A-}mu6?1sQ;JF-}=9K!_NOl51j?` z(bcq1~o!66O`Fpvgx z3^M>D9kf?&1xtdkwNWJ4ub=<}(J*mvGy>J3qyvy&kX-_k%n9H0Ki+-g|7hoxSmjaD z0n89&N#rQTCC@Ng9t?%@V3D5A0F?)`bBw_BijY7s{W&3q&gH?0kRX)uzz^!8(ehxl zJQ%6v0W41pTzLR%A1u++9-#67Rw5-qTP&mH!Dx9f+Fzh|dGG?-I)~NH^e+!!eutF@ eqwND4mInY?xh>VyE6&;g00000x$iEP)l(uy5Oqc1D7D{Qfh6F_=@$-IX z(1)Apbk6yr&HcQL6tZg8={X&|vC!;8&#?f*j=v3DMIH;Fr(J1(&o?ut)_fW0! zGWxABe)Z!hXC^e$B+A(dt!73Jo2Y^y-TDS9nOS6x-w4UiFEOZ;@fzh*HhM*BHsOI& zSwQZ@1H0(MhvkPF_^rq#P}f<*Wn)!rMt7b-oi~C~K=gl4o=#;=o>^lYX~Sit3Ntx} z`2HaJ=V2t`FQL*}fn&{US)eqsViq%OyRcfIwX4Y>LV#40|9Tk2a@=Y zEB8LoZrk?XPi-Bg#H@Q4EIm(C%g$)jMj@y_xOd=8@56EIm0q+(>}?PHZ%jr#QcG|} z8ErctA2|^qC!1-++%OpwgQPOvM5pMN@v;814*V}y%1wr3@I-$A0000HPW4i)$%#M-aNrExkTzr@p$+och4N4j0|Mn6nlRrw#21#pwr!ea!Rko zm^w2QWRRfM1^msRw)-Pw{uIu-2ajy-wl8*G55;>Zj9gH*WH)Xfc9dYdJcqq{DR=9( zgYEY-9P=9B@$?Qwq{&$lWL_QoGyf=y&yhXE-qT^NUclX`2&{hV^CO=lv_=Hfg~E=_ zLueTY%-0gc95g&I2ru@jVuLu*31CdzO`vc9JNeWbC*Z{ins$!aoE#~@s;l(Y1M(Td z{HDTL^`NkkTL|ruAozbPV0)FkZQEf~d#(Ogjc{;G=WPrBA~SK;?YW$bP)8nU#L0}7 zhKGD1_S1d=#kp5u-_?!@>0gEhs_2cN1m+NlJ#CXlRQj*uhgx3h-`%QExa8RFOMrFP zp(GPzu7)o+&!~b|LYlkj!Xz0vaQXSE_!iNe+U-*X>yA9IRJ;2ga$lD!*cKB?=1tHL z&8lQHY@DEs=X4&{BsP+j(To@#OM*jObK_FdMo!*&?4<=toVX+-BR2n_jIUajWg@9` zXMNTNC+>j8Sw$XB+xbu`>ZJ^f7DdQ%XtbSCt^2ksj*&A&Oe7bf)~Y6hR3*C1bwGqP zNiu&4K&8ywNx@b6Trcp(qXe_+`T(E_nmSHSwSyrFp^_mGB)iA;Tsrt}hj Y00`SPPCjF|a{vGU07*qoM6N<$g3b#sO#lD@ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/sandstone_carved.png b/src/main/resources/assets/minecraft/textures/blocks/sandstone_carved.png new file mode 100644 index 0000000000000000000000000000000000000000..9bd7fa1422fc6a057bc8c00cb72b6a4b2cf83463 GIT binary patch literal 596 zcmV-a0;~OrP)mGxmS&o*J$%R=gR z-lM&}h=b-LI@TMOEprK0Ero64Irevwu+1c#-87%?HIfLtRRmx2IO?uIGL!^t5oFb$ zVYBoQ)p87*>Lb*Q$Iwf07)l%!WeR2aE;RWD%*r&(>MXS43{-g%()pZ@!iX^uE@7X1dg>N=KF-!&MQV$iD64r^_^unqC0)#9%@=boF&n< z7ZA82wvqZnKuJWfxO+d*Mbb6Hi zKLNE-(;uMp`8u~ml28|GBuQt*+_lI@ARkF4pmqHm6fPlLV`$Ub{^pNH2wUfw8*@Ao z-2vgin&WnDa~4%K&M}qJ6wdm^%LEim$?BI0@hV^N?B(@45s^}uz~SCICZqGdcwiBM zQn+<-DfgobqJ5i{rz2e?R@H>q$ZNJWaaW#LClk<9rOM-=OB%O{;A%`5C((y~6q4aa iLX7*vErm8!C*N literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/sandstone_normal.png b/src/main/resources/assets/minecraft/textures/blocks/sandstone_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..1b79145ff09417564fca4b205abe6ca015153fb0 GIT binary patch literal 777 zcmV+k1NQuhP) z zG8<5GW`37a7UUAENJc)Rcxgl-WrUPn=ly)z2u-y^t9#I{?n8)(vnbF{xr^-8v86+YL2%k}p$?_6&IFCh9&K7lG$+*ZCc^%4BG`kJS%sWkL#<#X zqFspI7ZBv!52VkR7>UR{6I{^zs^mhe>cr`xfeE6dRa4nVP1->zvyNKnoNS0k zb33TyR?t$mkx4Ax`|n01Ff}A7((DbH1gi`oli%T!G4xd@szuwd?XnHU^cuvY5fax9 zRo+I(_Y!p)hejA9w#i2n)5}OkXZTbdow}3W%TP*Y#6vTr!2zOyafW#K48rg35gyQ# zcX3W3I&nWm#Q&V37l(Wkj6wUD3tRFQZaaR4&~G{@7{^?kj4t51?PRhC@$|x*ZkPp@ z^EMK99$i{@C}53>9YU8{)Cr2I6&|6KHk04hq2DySPEgKnQBIcmAMt3E?tz1BCULVC z2&vc?%Kj`g5=+m&lDFWB0#ujm2pmp8KOi2`)45Hp+t^B<^9coP0|C!d>VR6gZXePm zq41PVhy_0|g5#-|zD1?DfNE(0N2Pfj=uc7BAHz6$1LJrJ<-JAh>(8Lw-IPHDVi&i5 z$lq~=p)s$#pV7#K-z(s^n`ghIKM4i;c3Pfq2ko}={{m7;SgTyrHB)Q}VTGcu{RNk9jzuW$G(SR^X(^Pw7vO~EGI#Ur^{~*%W7yk? zCKz3_!t4fE20sOZLBl>?us=www^IOqGqSD=y+5wdDVvjR$MPOZXu8eg9ul-zI+a!K6p8^_t1 z=4@Mm0M&xjTA0I-6wGNX%M`85>HPfp1I?LjE2Narq^JlWXjUSeY^&pL5S8cs&RUCo zZ`4*L@p_JckFf;o+D z3zdwx8Le)VDu@VUbRrbhjo0hJd7iYrkn6_B$A8$IydDp3d*L`v^7HYcl}e96O3>Xo zkAuB6et&*(YmMu4rcG}96Q7-5zdPoW+kHnw6!S!cu%c2*W!rZwE=tLKy}wu(3E{jh zzTXEV=XR?sOXRw3%xO$B_S=SypdXI=q!gvxpR5J9+r}J_RUj#5lYMW9#Y8qxU8J<| zwP-gbsc>D6O~{&=)6k+w4sLrvMRA`lq b!UO&XAeL}M`ryf+00000NkvXXu0mjf(6KOI literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/sapling_acacia.png b/src/main/resources/assets/minecraft/textures/blocks/sapling_acacia.png new file mode 100644 index 0000000000000000000000000000000000000000..840196dd7667c3b061caba8f4eeaf134e2e806ce GIT binary patch literal 305 zcmV-10nYx3P))7v)n?5?TTOmFA= zc{9zd5FysPRm9(hxIeJtLl#a>IG8DCpppBw|i&l~Eu7!~g*qjRXXj zsV$cyOSU_f0s!UPeV&%VJR^ieAP9Glg7VzymW<+H8wk#mPbCPp7dlCc zfiVeyz(XfMsrzS9iM0m?fS5-jK}bG&B4Pme$UC85zs^#A|FO2x-IN6Y$_DUr{-zZM z5}Zct{{VolfcP%}3#B2Eg^giS9X&e4#1(I~x&O8|tCp+80}nR{00000NkvXXu0mjf DMvQ&X literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/sapling_birch.png b/src/main/resources/assets/minecraft/textures/blocks/sapling_birch.png new file mode 100644 index 0000000000000000000000000000000000000000..b5f01ffc25159f639fedddada62eae634c37d019 GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`%ROBjLo7~jo#e>dU?9L!*u?bj z1OvavgGNpt1!nd=0*w%hr(dZMaa30ifja-W$`{%SB$Wp?4! zvU$Hr$y}i0{!VqzpL&AIu|{lhZXSVqllOGKsqf%D@>k*uN5b>Gd#?{mtodO4;3e~0 YCwE3B4%>&SKqoVJy85}Sb4q9e0M}1CnzwSkrw%9Jb~L` zmTqq4|H(NVo7jAV&;8#env~$&VZ@QPx@wt$L^BV=MFqnNjxIYHmIT~yV9pchP`mlx zpx0ozuq@w+F2^l?eJpoOS$G*W*)&-aC){_eaaQmR@@X(R$RyPA)b!@VM22F)K(>Q9 zZpT%Ya?W6zpzYx`^+Y54qRzhhFGpCoeJ1fXsH#OMOqx1z%if9uaSW0SNt2fdE{pW+ meY?NKMq5Ig;pYt=CI+iVohr||mNfu;9>J4%#tm=rhs~PZn8tx+$nfXS{GT!A zpHaU{`x9sgNbT_2*zA<0NmlpV0ev!klb_dJoB%L@{5J00;7w3unkGq-%=0CZdp`Ku!e1yu!+||1zA?)B3y^bQW@ zc1~aowSjw!GOnwRlKlN zIOb179#>t{?9KoG%THC0;arqix=A1?>Rr*!C9CRck7f3p-go5ugAHvSYIYNIisg4N z(_>ejzUrmjmd*qJb|!3k*Py7$bXk28=RF1nwKeSh%RVtiaOpgZWxQ^&N~=4fZbx!x zDYxD6%FM+XQj_#d*Nb^cXZY6aoob|eyF8EEU-TYd1$)ySE%_VeO$!3L^9})B$>8bg K=d#Wzp$Pz0I8fmL literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/sea_lantern.png b/src/main/resources/assets/minecraft/textures/blocks/sea_lantern.png new file mode 100644 index 0000000000000000000000000000000000000000..8909ce8e1506ec778cb7c847488d685cd032637c GIT binary patch literal 2960 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 Xv}V(<`LLT?00000NkvXXu0mjfYQm6$ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/shulker_top_light_blue.png b/src/main/resources/assets/minecraft/textures/blocks/shulker_top_light_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..597f4c5046421596994d049f1dc8bdf52b9424cb GIT binary patch literal 332 zcmV-S0ki&zP)DB#ss|cbSCtbkR)|L_#+*-V25Vinl^HQB*`hliI`h9oDqx%pWXf*4bzO zt$nsT9DSTVqyPeXvlJZNe|B!)jGH~Wd3F5SSI^P)OFa1o5RSDR5b4M*@4;dVbZz{2 z{54$eK%Dp($~uDNf%WWh1LOfPhDY35mrsr$m|06WU;U|?3i<#qC1@#3A08#6ph5Zg z_UFHHQa_d+x9;70rhz+MREc6#RHXOV$N`qsa$7&gIP6=pWS)RP8msnj{n=$Z z=>HAMbEx)UZ}jGex5zOpmM*u5d0Edya86*S%00008anjRhe@Y*dW$fHro}umzpT5(=SF)ZXvzxjQ>yAvxKcnLB@H zcEWlT_D>xE0pE`uuo<6y3~O%w)oqAuF$l{n?C#qj&jP0S(sBHlWXAG&8U6cm3G{6I z^RD&x+5_83i!j>8Bt_u;dA+ l2a58@#c{&fz5GS#{|AfET~m%YLCF9B002ovPDHLkV1h_0mzDqk literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/shulker_top_pink.png b/src/main/resources/assets/minecraft/textures/blocks/shulker_top_pink.png new file mode 100644 index 0000000000000000000000000000000000000000..e817f960b794161a31f07b5015a635a4963b288a GIT binary patch literal 349 zcmV-j0iyniP)snF+7CyU$`50U*osF7lRd&W>*kn|+$S4*Z^z%W-=3UbsglX&qGJ5Iq~7pR~T~Lu7H<#*MOpAbDV2SNe!N5R6{MZFE!)1cA)@OE!%MRa3!j033Wv zKD}2(BXSU9<>R|5_2i^}EIn>7x!cHrH$5Bz#i+<*<{}1IR?BVu{K3ImvSgls0Ar1N z_&DpZ9rXVOE7{af3Tq(!fH^3F@l-B>BhKY#xGx5rI4pe>wb1&--J z+5wDTeg2UEWUTgdaSV}=WIf2(bVxyf`GAN^qN3VSv9-_t->)=2uub(zjke|eOSbkC zvb*iFzJw{edEaoGaPeftsoxq7%b#sIs;L>Lk$8Jr?F1X~cZ(-)^1N->P|hv;>&E4j zd~t!vbDpU99v6Qh?>%dZ=P{?e<-U{6wr+3Pzw7q2oXLAd6>{n{PA*GU{Mu}la%tP| zL%VHFl}#4=&o@>4pY`Ugcx{h`J2TsbP0 Hl+XkKjUSc7 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/shulker_top_red.png b/src/main/resources/assets/minecraft/textures/blocks/shulker_top_red.png new file mode 100644 index 0000000000000000000000000000000000000000..00147c5dc30d965853e17df6c0cd904af0acd5dc GIT binary patch literal 329 zcmV-P0k-~$P)5QX<0noW(GLbmGTRjetLdf|=OYf&Tw@mc$&XESc9g@c}%%-@+Ew<(HKr~m{U zLj|_u$>;OPxcNWw-0}DB{o3c>J{#XnrZ_FR;(Q+Xsz)b4psMX*#9jm)o^7o<;xw002ovPDHLk FV1mHig|+|y literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/shulker_top_white.png b/src/main/resources/assets/minecraft/textures/blocks/shulker_top_white.png new file mode 100644 index 0000000000000000000000000000000000000000..3d87d645489f559a9c0f6f099bcd2bac2791d549 GIT binary patch literal 313 zcmV-90mlA`P)w!1)m9M@Gbf4y(t+V8gw7u{pqA2^<&o))*nZ?2F`TwO_ZY| zrAjqVuv_hJ>*ucqJ1z(i(O91vwud9HgZ*z%Uc>tx?2O+0aD0)xB_(LyHmL8hz7sT7 ztpHlJ8lG#o5IWa8#Fb{KC6h8tzi`Fn(+@S213V3;I8HdTmmfeL_0N$v0>}=I00000 LNkvXXu0mjfD=33` literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/shulker_top_yellow.png b/src/main/resources/assets/minecraft/textures/blocks/shulker_top_yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..671b2c36a74ac9ac55833b923c24cd0bd45c8dcb GIT binary patch literal 342 zcmV-c0jd6pP)_VLD=?V7e?{5&4ez=e>Se zwUN`*b4cqTsRtj6mY3k+1*1`M+xAKhk|#u`8(DWGnp=vD5A#Lv7Y~WNQ%B=NK4SMhCTd#KKboT9}mj* zQ0yW9^R?Mo*(6eu5@g=_pzg<75M-=+0*jWOhQ(pH04fiA;Q0DwJ+jalsyVpy_V{Ff obVE8M3rDVaQ~@)4v1h@41^lzpgl;FE#{d8T07*qoM6N<$g01wI*Z=?k literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/slime.png b/src/main/resources/assets/minecraft/textures/blocks/slime.png new file mode 100644 index 0000000000000000000000000000000000000000..c577a5a9e26eaf2f34187d30ec75003c6eb01242 GIT binary patch literal 716 zcmV;-0yF)IP)F zfB>p3gwq0|v0|~#qBV%sLaKp>n+L>e*0+UYK2WIqe*Kx3_|DDU2NYno4woIl20{pk zQRq1ju!7xKf{k>KTg<3vjAvLTHnKsB0`H*93^MTYyyx`mh}8z&b`2?2PV)&@h3S3a z@?ppB<_hOFEK8uN9`&}6CQVmcl0?SyN-iK$J*Atl*^!5W?KOF{ly`+(CfsT{4>K>r zE4^<~yOx{lJLIyWE$F~6V#@sY^vv_{jT8f=&giZ(zAbodQO*$S%D7ClcnFmkAiRTA zWiU~JGgQ&UbEWAn@FE=36Yu8(cekJTkm<5=`aN(JfJvbdRx&4!Ds9m_Nm z(n^krQXnlAQx&KAgw>WBGsZej&m+YIBva5@aoJv>7Qt$dG@!EP{`!$gMzmvl550TOVk1Cis~y$6v0$F<%nrwl!c-qW@8YGC8!zi zJ>$IKJ)|{Ym8D2wdV6CIGyQdgQ66O!=4|&IJ%`~>d+m>?~Y3ZS_Xeq3>mEJbQsqp&!fN~&l4wz0TQ4w_F y@!=zRgrdM<$vIHhN^A>Vuo$h$6qEtw75@W+r(Z%KOD4Af0000o(WCjU3lS^hSkkGALkYJd}Q(4p%i|`a!zIck~EWyjoEH`T~eZV*Tx$e zY|&s%F#o%Bg0EtO%-&Syr3W0|Ni#=r&3(kDvg*%z=Q-tkiLN0Z|J5wqBBs33Lw0W1 z5!tC>F3(*WG-cVPtgf#8o1I!Ve{-q&JNF~9^>T-9$LJP4%?~@wPy=)zgQu&X%Q~lo FCIA9yP-6f9 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/soul_sand.png b/src/main/resources/assets/minecraft/textures/blocks/soul_sand.png new file mode 100644 index 0000000000000000000000000000000000000000..fca7e8ff4b28a91d13d1feb6eaaa86088dc950c2 GIT binary patch literal 633 zcmV-<0*3vGP)aBGWEr&4}I;QJ-u_~ zF-;%tT=uXn5i|V^J&dM3su@!iB9Q!&u@ikcMOGvIRpqSc3X%-jtJdP4iS_-JGku(wvQx4w*_=SZ-SjRQA}s{Imb*epo*P+#(b z-PwS-UwVa8HzVh_Q6QOsWY~0eaHz8|;N!`lDG!)K?@)fTm=Y+@$e;vho zAr%9MonBi+q|e6PGJf8KB1N%)hit&kMCJEYy98@v8HIFAocTWLOLNXD^7FdsrU0mm zR!KCohz+QdS!7txwN)vM0#DeHML2VVfS-CERCH3spXo>W;2v}fdoa$>GBY$IkHK>~ zMPNlMny+_I*HbnAPoplrhHXJ4pb*>tK_)H4uy^(O;JrmX00000NkvXXu0mjfVO=R) literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/sponge.png b/src/main/resources/assets/minecraft/textures/blocks/sponge.png new file mode 100644 index 0000000000000000000000000000000000000000..487ac433040734a96e832a3c41436a5f9fdce71b GIT binary patch literal 837 zcmV-L1G@Z)P)dXFe(wF@#?|Ij!F1w(p$~B- zi2Fm0$Zv&^+v-P>-m``s87&N9GwQ+kmG*pmtf=_$mYCA zY6KYf(X$_!Y#4)gtxysYgmfm1oNj}vNieb!a@ltJgAdCqHmpT#C=@%PDH1kiCragR zj89k)Rs8sUGC=2o3?P7wm=}63h>_7Vm|t-6=W<2D*tiMBk`Kw02kRSNJQ_A*cHWF= z%mzgzCI(5^Aj(GGiL@3%Wc@PU&zOmY7jm?f4!NO{56deZkQEzJ89TO$T}Wqq`13ai zH6{{+lpkx$%rrMQ&B%)c2OmD2gOJyIiMolS z)@#==`mB+=t|Wt8d$}4!TK7^?kT zGi|}bA~E1vbdejif52KPQ4iWMc*nvW-`%@S;39orMQulfs(A71WDs-nv{ZkhpFO) P00000NkvXXu0mjf{5*J@ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/sponge_wet.png b/src/main/resources/assets/minecraft/textures/blocks/sponge_wet.png new file mode 100644 index 0000000000000000000000000000000000000000..e797208bc3e62a835255ff8462462b32ee7146f9 GIT binary patch literal 876 zcmV-y1C#uTP)$ z`z^ZdI+-T;=DRUMl_Boj`BaItf!oUy5Bh{bn<&+2G!jfRqv{BJFGni+l*=W4+8Sf| z9hVDB&z2Bf%jtK*wOJ~|hZ_vUv6{lteo*!}b$}zTO z5(No%p@-KAh+-36H<_%Ixck7T*Nd<%3v3^0S~)&=yTS9r08L8?6G0q>2o$$|eG#Wx zpxKPr_+y-2KcbK`i26EqP6LLK8hwITCs7(Vf0+Y3vP@De4s-c@lXe^a-k;$7{1c>> zQJc-PxjV)B?+$KzfE30ERz6Rf8hmkepMgJ&W%*p+a3~ccW~OznTxfH8!Js-SIBCUv zb*;{8bBBzLftDXV_x0j}OAvx(84SXZDAqYQe?pQPcwRyrEBakn*{t#EOFqq3j)l_& z6hp|;NKEa8afS*O->+6_HYB=$eyCHaNY=L}>9`;ajpa9=B9-8vGsVhUiIK8~xPSj6 zCGcp~3)EX3dTzkvxT1NIu(dnG>kCgAaf&?ucfjO~O}S!X7-cj)MJXNWx{6j~n6;e} zLL{7B8l~x4%uH4J@Uly7Zjw|`Q z@@yAK5Xrp8Ww0?B)}a6jDz5Sm3r@C%T7;e8YL1N+@fol{wcN}(?re$n5J8JG+Lv~w*5^(?X?30B0~3<7 z_g;Hlj%FR0a9tOf%szh^lu7|ET3r~14$mvWvOF{zO}>BSyNy&ThK-Fc2*N4`gCR6g za!{)uu;>7$nNm&Vu!eg55b=b8bUKUS@De*aNkk$s{QdVEZ*PC#xF!mP95l}haCbK# zvWNS{9NXI|B$FA0VFm4W8?AN^x^D2ijOld3ZEFN;r+#&4@yG-B1-5 z3S2jxQnVHiGY(Cl6pza*yu8To zIh4zXuE6(ivhrzJq4l4%bh>r*K2X?zdv|1xJ8i+=dxSd?#ZrY9Fmgf4QqIH{}?@e}F|o4OPrHA^IR>5|LgC(xugcG2NF12*}H#kN?K z<2GxU&#x)q7{|wF6xdW-NP8W}BdB0)4BC8g!w*#kCC$kh>M@~sOH3v+6)vfPD}2oE zXDVd6uH)$FkTeC_oi4OmO`uY#H0eb2vH z0+*l}Mh4H%KUnM`2xuRN>I~u)!Nlc4L9RU#a-&72Fw>-PX4Gg=yXOz zsxrzIHWtzE_vt{34Q+-dP|6Dt5}>T&E$!5nl@5L5FiYMim^>Z!!Wr1J}s@% zjXg%VK_~LGGs>+@tgfy>^BGThF(lu7zR1;MbU??-$_FeK4|sk3MF5{@y1EnB*HbK) z-+3$dFq=I>Yc`uWKX1{Zv^rQWzws7sGKmi=Ofn;#P7hB{3slNNX;gG5ZtR;wiziv^yaH@LaE;rW64oV9yAKCN+iIfb!W z&k=+nq9{ZV#PB@s!vt~Mf#XK3B^ZwyYgMBRDf}JcgM~lU(^w|Eh5`U5*McF5mk{{ z8(|d7>IXg=4GZnIW*fdYST5&KQ399U9Y>+t%`hB}$RH6!r8;P}JT~aC{)f+$-=(lD zh5h{sjJLNJ9()#kj-XLuoSrphX3vY+D2454>W*k-Sq|B`eCOlz^xHdwqoWI%U&SVo zOj2~v=>|ws50goTe*an+==ojO<7G=gOQjMFZHMbBK~!-n!fC;R&}W^FsDKw->JSpy zMzd+-?CiTZR;yKEXzzPJhqPwQOA$OjkTK5BO@0)}#ZIS>tE-W)==DNjs-JRM7%Yj@ z7F4}zaU#{_UfY(42Cf%LQ{PvTlO*Yo=?FVJJ21A}B{MJ~q7BosU{fT|bI58WZd_cn zBo|sx(MrTkD7v<>2;=oNXSam(TJo~dpxQx4_Bx6BqG@V90qA8C;152)9h zqQPKrP2by$axC%H4Ep_y42O~lt-M~ffU{YK%2yd-!(vMMK4)`~CKl~;VG~i$teNN( z*6XIYq#J5<({!l8XNveZmyp;t=k84;zQ@N6u}TY=Wh2(#DeF|~A4*Z=IL_$80gN>5 z;_$GFN~I!Cxm?8FUWqY1;Q2tpqSda|3aD0hQ7nFB{S)iED10g4Kg$h}7>g+&QUCw| M07*qoM6N<$g3|0;$p8QV literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/stone_diorite.png b/src/main/resources/assets/minecraft/textures/blocks/stone_diorite.png new file mode 100644 index 0000000000000000000000000000000000000000..3d752ddc10f0e931d28827521c1db1892e1aa471 GIT binary patch literal 613 zcmV-r0-F7aP)BM7 zR@dNWeIEB5oP9XC_wIb1IWudPmtV-iL0Q`Ej#MfZ(bsoJZ2P0!-29Q1m9%6suViNC ziDa{H10Mi3Gd?~gdwU=FA(2=h8jUj=kz{MDB=!1No&y8-WNz-c%+5ZO!NDQM7|jG6 z9v%~@1gx#SmRznV(P%92!8gzQE6rx>HUTOk$n(5_nkKls{4S}~s&qPCVt4nwoSf7M z^)bW4_ocu8E(6Qus%&q+V+)|4Or}^JIsu@Mb^!##W_rD!a&^@sJp_lt5lN>r{(VQr z#vaj8=|gBFf^K+&wb5#7h{vDG(NRSrk*G{gK4vn|cO1vRzhq#yd%>dApin5u=xB(v z>h*?fZsw>s=rx;X;<}z#)@=a$*YP zM(3T+=h=c~)%?nB&KWi^8yR`Px8wXKz(#k6Ex=L5R85rC;$qTgaLm4Sgqi@SLH|eq z^+8hu)d>k9q)r0FE~=1wCNH6tHYK_1pFJ59;IZ!7m!7 zr^B+o{zfJyrsVv*E3sIdiO`nPRiHZl2Z+rnz@bnmGC(!K9ZLi~TCHzVt9@o5-uOG` z=M(%Nf-&lDqer}TWW{2M$&dgxy!ZFZ!8ZN_yeS=N(Jx;@00000NkvXXu0mjfs7xI; literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/stone_diorite_smooth.png b/src/main/resources/assets/minecraft/textures/blocks/stone_diorite_smooth.png new file mode 100644 index 0000000000000000000000000000000000000000..daebca4b4921ca110a09b26c3b105d78c444e556 GIT binary patch literal 560 zcmV-00?+-4P)?uHEi12@|}%wK%BNYAcWsptQ%wf>MU;@L_mgT3RLz(i{#a2d2|mX148T zmhbn67%0j>AY_UF&63Pg8-nBU8*(~VC*;4pG!z+puXmp`bQ%Hj07dur848C@3WbjN z4H?Vj%I|lH1EpNXuBftNLLfppGc&W3Q%I%KOeDR4 zWPrs72FY-*6o3FSyWK8lIXyk&`q2y7jlDfD`xqe%INYleWNC291VmLbnWkWHJZ2f8 z5X{ZZlZLeg5E(?KEEPci2~mP<>e|{mY4``mBfOz(HqXt0%;V#ei4_+@x$E^l$S}6Y zdw@&Sj%<+IY_=v=SP1^^0MzRG=D3Lfcs#otAo66LA-`UKr9z>sdQ~b_X<=cJ7fr)2 yiEg4c*woZC`!IYv94kz27(2?}*wDFw!2AFoP$wRMRNAQk0000Nb8x=d> zUt5arl5_kJ* z8k6Qt*cL{N05D4cl*%tK)`HyR5JptcpL&#Z`LvLlh+6{d1k&pMeH&I_oYS_dWm_be zUA! a5q|@(6l|WCQDC+J0000I zJxc>Y5WOE|At;FW0V;}LL=htq5<`$HG+a=S13gjUln{a9>DRpWRDB?5lG@KiMPu5dXM~TyCefO#uQ~ zvqGoqb7bPsS?_q)nfQ?NRNdnI?D~wtrD+NV59jQZWZ9cEc9*g8C2R1t!wQ|O&E^Q; zNDntCZIttb(Pcq}6|r92bWPs7H@p@KNXOSCD!>;sZoJVx+Fam$eSVSxkl{nrU2t}D z+Zc+##|Vbzg{wIt)$HOI^ND5zcq&~T_LkUr?c6@Gf^5uzoe{7#>q4ULid;d`DlO*- zr0Q*XwLqTCk4yX#o;F$sr5pi*T0HHe9d~x{ZFk`XcX$LyRlhw@_@dEdY9g6LAkfe? zQM$9QjekOdG)3>yQL8W6TPf%TMVUnTO!yqW`mp*hp$jvD>f#jtD%k$a1kZ)aFeHe9 damm3d{y(9AbG)FxQfmMJ002ovPDHLkV1nmP#h3s9 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/stone_slab_side.png b/src/main/resources/assets/minecraft/textures/blocks/stone_slab_side.png new file mode 100644 index 0000000000000000000000000000000000000000..fe2a20406a2e130e35fef34bcbd3462e7fefaf6b GIT binary patch literal 271 zcmV+q0r38bP)Ja8)FFW`BZH=DSg z3+$VAXsM5{q}9X+^6z&-0(bZd^SpivoPuH%DiHZ|%(qxgR+S V^auO{bAA8-002ovPDHLkV1lXEaqj>C literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/stone_slab_top.png b/src/main/resources/assets/minecraft/textures/blocks/stone_slab_top.png new file mode 100644 index 0000000000000000000000000000000000000000..090657d35ab2345c4c0c10b69fc3646bf5278d85 GIT binary patch literal 252 zcmVO}OlM>)nY}zfV&-}Tu(twP=S)8(zAln?Tht$HZ^P7)d!8_z~s!a)cFrlz|U|{@sU$8=O}F0000}#7ZZ{4ZhJl{XC*ALN_5eJi{bK&>eY@Rq1|;~Uj?o4Jfhe%w@3~Y|r9B`j zj0DpQ$tF6BQ$emPlxobJ_E`JAKenJv^wq-L1u}sElZQ`qW%_?XoI#)fWy2uQ8NPsQ wMNzQ!X_~V3;tzRaw5}T33(Mtl^uYA)4{lX$H)9>@=Kufz07*qoM6N<$g6uW6;Q#;t literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/stonebrick_carved.png b/src/main/resources/assets/minecraft/textures/blocks/stonebrick_carved.png new file mode 100644 index 0000000000000000000000000000000000000000..b7e88db29ca34aa3de65da910138cfa02c9fa23c GIT binary patch literal 413 zcmV;O0b>4%P)Bl9oKc8-EKE~ zKA+aMt({IMzh19bYntW_kH^FI`@J2HM>`x2HX4o0@p!k}_1J7SHk-|Cxm@<(47S^C zkFqRnJRX}PBOeV0gMR^{EXypM^ww>i-GLc)W;fC44;bD;k~6Bte&*%Z@#RaLJ! zsO#Df3ZAGe(tv!2P#nd)olGX?kTDz%{ehyW_X07+L+Jho<3wYFjfDzE00000NkvXX Hu0mjf+f8=6 zoqoeGlvb-HaU6efxm+ZQBH3=Yve|4TlgWr9dAVGEF&qx1TCFOw*{tOAc^Qw#3S#y@ z8jUpW=t#i8!(y?hT@HtXOs7-zl}e@W<3gbzxm-?yAP`3f3tA%B@Ap520scy*BD2{{ z=JUCv(`j*NqZ?fT4}mYsKr>kJ-|cok3~*509>b*5>HO#h_+Vf*Omqg5$wX4Al zqtQ^?uvjd#8=A4#>$TeLcKcHR8i_xpHnnd#b zewXX@D)o9@bNzd9rk`2(+MCU$c6dAQu6Q&4L#);kQ^|U*zY_(S04o(Z0 zlj__7L2QPJ1X$r`!2VU*hTQ)ZTJ>_dtP+@!trx)bM}l9?f^?+-lefb$W+sd4yYBFO!2dnJ|00000 LNkvXXu0mjf>NMQk literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/stonebrick_mossy.png b/src/main/resources/assets/minecraft/textures/blocks/stonebrick_mossy.png new file mode 100644 index 0000000000000000000000000000000000000000..fc67b4a9bbfbd8b52056ca258410375c85dec062 GIT binary patch literal 544 zcmV+*0^j|KP)}N^)o(uvjb}VZB~sI-R0DK1cih9JN{vX1m>D zGMQNTy|<6f{eB-wk_h5Bw!fX|7?mIgGn>ui4>t14rgUMHl;lp&#OLS@O5PF9+ziZe zxs+ELx9@Bro7!LBTX3KbWu4b5!t1<7`Q{Xc+_ZqurZkN-9j8%{0fWH+)oK-HKA+q5 z^_Bm56M9$i^Kx!BoA5jjhN|{@J&Z;pnfk$dX3^<%4t(>1D2m|wKEg1RI`+r_u8~IJ zDkI_)Yfo?$9--)DvgfN5}XSE@=f-y2HxFsxVKNm`%jIRg8JYDuIpmI-y`T> zVzb#u2I8M($;;i3OE3aPIbK}95PKTq6H&U`?aIr1fCBQ4NDEFFRhS13&@5bk$;-O5 z*@oxf03Z73AO9PW4oLs|h0Ov5Bn3?>T~H^ui8^E{(0dLbcn*TVQb;FL>(zRb{zFsO z8W&^$m1j`g;MxobeP%AI%^bqGB;F5)L-C$9g!UK;MU=`};jG~L^qF7B iacl-ycUFF7bMpru15&~g1Vx|#0000nAwl|Z z<4b(j-8Bg*r8b?Xc08PZ0&;+WPmFPcInQmmE)MXX#tqzO*nr#9e;l@J0IjDi1%Vk>`xuJC!W_VG(g?#{d8T07*qoM6N<$ Eg7i#fnE(I) literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/structure_block_corner.png b/src/main/resources/assets/minecraft/textures/blocks/structure_block_corner.png new file mode 100644 index 0000000000000000000000000000000000000000..418fd05c3b3ca0fb32bb3e941ab5430efd299d8c GIT binary patch literal 281 zcmV+!0p|XRP)ST5Jefm3#3hv)*=HWMLHi;pq<|{Lo7}w8%g;*t74I9? zt-^DO`4EqSlY;{Tv;XQD-|A04(M{kSjFgWCz`S}jG7xtEFh@ZVqv@KFBEee?g0BaT%o(ix7%EwB(+Dby>XuCi&e j(b1Wmliu)L;%10F@nECy)J2nku4nLc^>bP0l+XkK4nI~j literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/structure_block_load.png b/src/main/resources/assets/minecraft/textures/blocks/structure_block_load.png new file mode 100644 index 0000000000000000000000000000000000000000..aca338b1ab1752b415ddc257ee9c93e94157ee7c GIT binary patch literal 231 zcmVoF2@Njgpk`;n;*^d zFF*r0e7yG+=5fyJv=(6gi&G5XhJYi;0AuF3u3U^xi6Hdvz7mmxoK|x%pjhJ+Q-SWR zCY6C!0wEiwCd?1rup6*U&eJDV4a3@*_ccJL=^U4MXrP`KIaUJAeFo+un45UZZ!}+| h%U9X_m@Lm3+6|pe#K~hTA-(_r002ovPDHLkV1jcDVHW@Z literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/structure_block_save.png b/src/main/resources/assets/minecraft/textures/blocks/structure_block_save.png new file mode 100644 index 0000000000000000000000000000000000000000..64709278493493748434f6bca885de7b84dbd5ba GIT binary patch literal 228 zcmVxh#zx47C6~m76cbUsKaxp-J`z* zXaI-Cd*5JAbIq?T!1#{c9%O(u=lET7(K}59A&#*Tk%Kv%=Es0yU6*$e=#{le zV?bw+C?=SU+%%=H0b_DZ(YmYxoka6K1~}F=v- eeoU6<4DANaTlAl7o~OP500008f&kVwMgRblP7+3d%%ZOA-yrgG-}hRxEHkz! ziu8J2SB1L_*ma$9tW<nkA{zH!08p6)QiLLEp680uX_t;x0|`J)1e9fI${EK| z?fb3+0f2I>SD_=xgngDGv#F};0mvGq%4R}~qA>kHiPneMw(Se>2~N{gmuA&3(_5BB zYmy{d@vPAEJT1F<0S;Weu1g)qp=9dQH0fRtfDG7&Fbp4v@B1nU0`pnWl=xJk=U}n$_){^&7`MV!z1cRrm KpUXO@geCx9xFtdW literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/tnt_side.png b/src/main/resources/assets/minecraft/textures/blocks/tnt_side.png new file mode 100644 index 0000000000000000000000000000000000000000..21109fbe9ce80fabb537d132eb99d0179f3fe905 GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`vproLLn>}1?|7^9_5YH&KmNZJ zTl9bWY>xlxQ_nL9S!5{xt8eW*@xOCd(|^yW{M^iW_y6%9etvH5@BTCH;>;T_{^T)W zWMgBqVDom!oFU`G(-z3nkT}CB<>-wgfnOdNGu%~}!?q@Vzg$n^q!T$gY=^Hj|2!d+ zljBsxbGyN_sBz(k|9QEM|3z2TfQ)aSQo(ZKW(wa&agT-&I|ixaK5ODOD5L_N$>8bg K=d#Wzp$PzzURVeK literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/tnt_top.png b/src/main/resources/assets/minecraft/textures/blocks/tnt_top.png new file mode 100644 index 0000000000000000000000000000000000000000..ceb44b6ddd8c3431e8d0e9ac65fe79a862017ab5 GIT binary patch literal 237 zcmV_W0AOpJ2?#INIr5F`3>=*p%==vy_R_0FAaO%&TSWmoLXzQ z$Mw{9@gOLrd;|zbL^t_P;5bx<9GNb_5JKcJ_@e^vNdaVW?A83#fM7Dx64fj647e){9XJ@6U(9=I0E nJ;uWFg2qZXh>${%B*ZcnhorPnlr)MWRzaI2 zO(OUM(uDlX)oKXWV|a|b?w^ZTgfXJRw5ycWmdwtp1vt{RS*C>tCAAHP-b(rehQZ`aN6`((oE z^TJ5@K5kA+zV)GIk`Bok24z?TaUXylv8|CLN+=EG<$h ziYFf{ld9m0^q*h)2P;u4 U7?emv1^@s607*qoM6N<$g5|249smFU literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/trip_wire.png b/src/main/resources/assets/minecraft/textures/blocks/trip_wire.png new file mode 100644 index 0000000000000000000000000000000000000000..5b422eff585d5d3d8e4ccf433bff7cd9a61c1f33 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6DjrNNJ~vT`pEoPfo;y}tj9)=z z!Rh7?4E^j8HVpiaw^uYgY&>PFo_PH0=E4aqFBwHDGj8bq`4}4`_bKX5)b*5Ppu-qE MUHx3vIVCg!0ES;ssQ>@~ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/trip_wire_source.png b/src/main/resources/assets/minecraft/textures/blocks/trip_wire_source.png new file mode 100644 index 0000000000000000000000000000000000000000..fbd464d8d8ab049421cd58c8bb2d37bf6aa78af4 GIT binary patch literal 233 zcmV=p@Q(xCLAE32H*L9zPzVDMwHb4mR1z45^<2dF6>bk}- z4B(uDF@~mT(6((pfVR)`jA@#Zx-lkYvilkjcgE{}L-9Gq^@OLtlmlp(EQ$f7PZq_1 j!x_*Q4rM^we`W9nVD)lma0CXB00000NkvXXu0mjfGrM7e literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/vine.png b/src/main/resources/assets/minecraft/textures/blocks/vine.png new file mode 100644 index 0000000000000000000000000000000000000000..df5e435ab23a41f3b7bec12a1172f682f400b8f6 GIT binary patch literal 235 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/water_still.png b/src/main/resources/assets/minecraft/textures/blocks/water_still.png new file mode 100644 index 0000000000000000000000000000000000000000..4e55799a2d381325439fdea85da649444aaebdb9 GIT binary patch literal 9315 zcmV-pB%IrcP)VNFalOB1NQsL^_Q+DRNovW+vpI-uB!ROci;*A!f&}?Z0)fUu1C0hj2qXkS(7@2Z zW5dSSPMqyGkl*u8-8ywo-S;T_L#suy`z?1lRdwoAy>kDH>#Mz|*W0}(*W0_N*X!M* z>(%aJe2wpSj;{y)9xr_E@VnP9KlJj0jnKEB@I z3wKV&*KvK}Z}<#8@1Mo{s^CNR;pO$92eS9^XB-Syaq#^5;^5=)HNN8{`26@94^WT3 z;umnh4?nxUJRCnbe$l?X|Lpqw-lx}>yxsAH`27Y4FLuv(&b*gwJp9=d|p>R$L;md zUv19qo#VwpE}T>Tf-~a($NS(ba)T@2;gpODkY`5kzP zG3N_8_)$#t5G!@zOIa38T{yVpr#5YySQq1zVTIZ)EZc1sy>~qj?;UFdU&PET{^I6q zOgW~{4nCf&*qnZLedP;gd;fdaua5rm=4Y7N*bh%_3NLKa`8wJ6JyFID^2+gG6T4FJ z03Y=2Z8I?*6!U-b_c!1C0r3D|^1(bKh!6+30=X7+Hf%5WB@I4+c@}^NK%?;r4l5p< z2OjvV;68NvxDR;$1}IMrP|h)!oE^KZ4iDN2Yb$fmDbuU6RVjFIMu@@-XTV0n*|;O| zvkY>KMZwhh^e7(GajD2dJTUAWXW$i3dBlTvh6kJy{DF9Y4`OZD^!imK#Ckmbop|u@ zM>k&qU2p)v7XE+yw>Q58E?~qB)}Gb&^d^7*)RoH?Z5lf@R==&Qi=uiM8*W zDPUW+x8cEfn^=i>7sq3qh4GKQ={E3qUX3pIK9;WA%Pm0$1DyQ>$H0F7n-ijVP!Z~- zEu^q_OIZge)jtqKGB9;0Uu8US8<+54IfDm}>wN?hsCldZVtX+>qZt`5ewX7Lf`>$FviL4sSP53*?XvB zBW+#a{$spO481pj2NUn)c05=m|6u9U7_0DTVwr}tTjl?O2jN&QGNjS+5TyaQ7-YkU zrI|`nj>+P4``q|UJ33yobDEkR7~s_ z5#3wfmWMl=*rD!tG0qc)`Yo%rvzgi?SGPwPec`~|&X_jX1NaBDj}~ya z-P`UpsD3?S!B-FdcnmD7x4Olu#M0#^;_n(B&}`Ld8shB!!SK%f%ebB6zq$Ek#sijF#hb%Ov9UiR1TjwA;9$+A8_APGQ(^+V=$A^)pqynE33HLMSa2}hz0jSv2AafG83elCm!1P@+J`~#U@UtqCE z%ETgj0M^9~BxhnHaieAb;9-gvZu1q+)F~+(n9ft}`GP(mS-I=8vam1V!Jb=o$UjCF6xNZeQFxHp-!g`0D=6#+Qs2f=d%WImJzm2Uvkd3Az(* z3&~cM?=YnW{eEMkk(d+jE#bi+eBw3^xR_m~Ha6z+ojL)LzR*~V%Z?^gJ|$LciLJ`D zzHFd^p9K##8ZUqB>*932(!g!*EZ(aL9&n}6Prwqz2T2RT)x+;F z#co_SB;{-tKuG%$2L(%99(_XzHo|j9Y}xz+;YFN$ektH`HbHL11G@5o`87t|r1^J> z5Y~xHJkkU1A50KgcOUnD*ve***F~*RnDJ#7FLu+*ePCDM24$GAnk}EOPBcl!rxe;a zUEdsszykyy4G)Y@Jo>AfpBo-9q!-ZG&|lowU_=~me2(Uz02D}jBW{4_0ZhQ+0mKKZ z>$wL8q>SK-&i5Rr80&<4!^0pVmy$3OBu>WVC{6LepnVn(Xk2f>gXEMK86=)@Ac%&& zd@mkUJGj=QgDzpx9T+elyshq?qOOY)uYw0Qt=QIB10FA2&>$C5;!Fp^A_3wtt$=(? zALbm8&P{YcuI;qq!JA;{8kb_1hu<3k{b?oP7?k29z=JX0=>CD+Q{+;P^M;y@D<3%t z+J1O?YjA2j8n?9Vw6m8jKU; zOiKw)WnoofTJXTfLGfTchX)TT9#sF}z+=Mwr!759@U(F6xP$vjR#!X#e}E5Tm0@*Z z0fCT4;AwN;2ne$U4=R)Sl{38dox+rt#SML|;5(C>if#_Q8C-oyF~SU&mf{K7WONV9 zocAfY$CTmdwsS*e&b{J-L?!FaqtAG7=#KPU7Q=Vx#y$3zK?zCLZw?P;`2!0Dz7YSQ z;=xeD@<@D4j)<%U3<;*tGvO9|F#lNbpx#Ey_&FjoVGm58k#W#5|KRCA-~6^n-raT= z{)jJ#nBnX_cu=`@X0$pR*?dHIzR9fyWrE#^d!fahFgcO|jNn|@oyu$ri|wW>#gOV; ziW_vn+)NRhpU7AS6tWu=U7CsMF1yjk3%Ga3gAL9ccwpPPE|RTsrH7sx4lj0^yxPD$ zw0z@%+xmkF=T~5_!BAkaNJ7S@7qNmRu)bSS3Nyo7uw~itMByKBEa=)K2K;Nz)tTb@&JBmB@zDDeUkdGzujpVOr$6j^OinmKF~bGbfAdUfB!H@G{$H$(pCm zcu(+P%B6%$$C<+70>k5YFf-WrWLLqrWT267xUQP@j1H!$Agz@;(Z4W zj3t3Y=7{>}8=pAx2T%U#=0AxCfl4H$QWh}B3z<)3fDt6*EqK7l1*_4P{?i)z&`TSH z_C1?R-fG}UKG85y)8L84==dXbG@PutvMUgqA7`f8Ck)F`4uNTvDjo5m;*+5Ud%DeAKg61knQ&GiQ! z`iXl#gp=t;W$$s*BLNqY1u)~9aw*3R4{S>}L1&^wu{r|}%=>VUOP$Pp*Q0R@<8zD` z$U)+>g`{KbxGpXXQtl-1VB-u|6)-4V2_CF^w?FuH2bQK1oyll)JJT4=Ta;7PG9|U! zvguVr+}Wqj1!(FZK1q0R*5iSTy3Uya3y0+Q@DDy8xex#0mX(*+tE z<=DymTg;4%*m&uHwn&{|DdQhq?{i#Hl9>t~)bL;8g^qNKl^N6O0SEIeEndisCK8fc zQv-Rbd`|Q>iw6vUKuA!d$dnNI1IL3ep)#&`@FWs6O$FyRfh?ECRKh2|#%GGh1r&E1 z5hXgc4F!%^SePw1ow$FJ)lG8kTGh1UL`lxkCmvYB;``Tciw@wd@LAIWi^d%^mFUCS z+`>vgWYxL+>QB5dAIaD`Re-o2g{jdAZR%GP`31*=;XQb8PQ4psc4<4L_0>HO7 zb<2m1#JmL$T_#35Ewi@fI!~smd2L8FIVZ{evJnW#j zOpzOgP3-wZ935+$JYi_`g#L1Lvd9HCkrHjQOqNTn{{O6Qy<`1bkWOa1&u;fwZz;`K zYdlHTqx8v$2q>5u?YIq_4mx}#$aRnY=5JgHE zbt*}#{?tXD9w&j6atHLanRoYrH#0hfNwB4!EDK_a!qt1Qpw+cFg|2w;B4s)sB{=8K zTz8&o_!Q=;nsHGd@wll&HIC3N&s1t5gY!QBV6QR08?U0-YP=9?hB-Zwl93pF>_CQt z4G$!XBZPx}5ikxAIr;I;ub6iTJm~aDYYjeJ%<_skX}8GdK4v)ZJLH^7FC#VKE0dU# z#Es3>`vo}ZwwWHz z@QHImhFjR};9lQx& zncOLW!lTlcp;MB8thXD*vfZQK3m+lmG)t*zBNaZbIxE{5ITT;CJIcN7!!wE}*=ak)O#gFG!O_cqE)!fo9s>hGoCc%WT*jm3Z z-ZnOp-NGcRdF&dsr>*>i%bXDnZo%XRVDm6tTtL(zs+3B62gZz-E`oZCD`AG?d`6da zHo*h;pAMYSvI9);pf8Hb{=q;zpl?-XzOb6BV|*VT*nKf|8Y%SehQN0t`KO$R_R6}o z`hx0Ml9Uw1>>vT?Iv2*}g5bc21NUGI4?eM~vv(?jQvV>%<~E_?!Dx7a2S^RNM(JhL z^gQ-@Ca+!H#3lM-a*^XDc?8z7xGv#}y0n%G`PlH_Co~>?5ONzHm>SNq-Cmxn4mfof zxEj}J{>r0Qvr>gce&(s&k{*t-1CQJ&t+P~FsgQRE`m)MCUmChZk#INU>H zvTjD~8vCT^mJJD|)MyAEggy~tK|e|HAX#C$`D!=Rqoc&61bZVH4WD;^3ZAFsFKd6wmo%0XQdipTRQP;&@6Cl#XCX{z0f>n{SXM>RNH#E1wb`eA4RrF!GFKrg-4mJG!y> z0vrlB*l1Ni>5)@|6%Vi&7>#SpKq`Pfp(nC0n7p8$P_)L|@!*|DCRd%~HIE0_)5x2F zu?|tU7#ZTh1GhxTY9MZQDduY{-S-^oHr%+5*=EeFV`J_id}XP$KI_$BTGCDdbf2Rx zeKs%EGja{gm1NZ;Vkp?46k$_eOKFTK= z9*i6z*a$`?Jz0+{Glfj;#PXXF0>1WHdR>5b_yJcig9m4QNd{Bw*i4c6?p5<-bE72J zui`d5SZnJBa>rB)D!V`N59nyBq?)ir9XCgt{(%kfI5Uyq@JpSD{F7R`#{+jfEJCEKobB7XF7$yJV%!pc7B6yDMkCv>&Eoi{m%PR53L$}1-fnLtK>GKQC(L8Of zOJM(~J$U}_6%SY&%@DXS0qK8;ax<(4>`>SZ*Q&i`Zo#Eh9(;SWN~Zx;HMqi70%_414^vUTe>pDCbq5}g1P6bqMGWrJI ziK4bSqQE8P8ygX|(YzxJso=qDEs`@Qi#e79&nL!;9Pb%BkYjp!sI^BNK= z9;}qH(4=HI-x82|boC;x#53k} z*-E;1RXku*HFq%kvWwITj>#Fa7=>l|s=ew<^->A9H(z6lpxi22>zk~2@R6kGGkRsM zoJd6dT+I_J>ozjyiOI$$GX2@}*0FDj2QwX-w2eoH2b<*LC>}`CGO`!c?5A0J(zd+n zm4^_vNxdW1J~j?E68(dYCNK%b1r-iaqfm86=iX2675oJFh18<$x56mb=6SKhVNC&E zc|WMDuvm*Mu~2{6T6rMIV5uF8zN8Za-25%V0w5EpQR0CqWkE1nhSR4hsiFlBSTyZ9 zHrr6Ol}E;dv)k~1a&uKyrz%tN#MiwVV4{R+ZeYTLf$;((bnmoqWxk=ib(-<3nr*hN z$#^hG&x6$VP3bZ_0P%oWpPH+6qy(2U8}u0o!%}ocEpt^vp#Y)v@=Eu+SlTdNDU$wA3GIBJb1u(0YP``n^)Dsyj(gN z?7-FAih%wu4`mF-eP96t{(OyO#);Z@!-FR*2Z9{TntQKQ6&_%;SfvFr}V1q39qcZG*jf>*$+SQYKjNX>TIxL$g%HI_ycoo zyu|sUaNu;Kgnyv1^HLyhX=7q`qr3chb zN>`p()=w%Pq&?qN3}wgasLKc~hzH-X*NZ-0xV6h`#e-pIp`H6AQA1tc5lAX5vX5)z zZiZ)J%lRxe(;NHg2O}Pg ztxNtl1b|{QC?h$)`=q5q$g6Gf z%j{X;q02b%VBGeO2fzIeS^+r#mBo0EJp1mlb2=r0W2{WM<)NQg@j#)xvb+*(lZ3VP zK!{&@>%Xp{S`NCk*^F|}%NhTGynz+`)Ecgr^aTPB##>;wLo@GeU6!PlVudt**0x~m zHCyggCU?umys?;;QrjhQ6JJa#7#h6)ta$=!-CWL@9Or(sHa?5&&6oX}@?yqw6QZqUYKItj zfT~Ke8Tf7iII#3)w~40>}6I(-F5#!A->f+YkO#I1J~oh zBG`+^p93?6G1P^Q>1qwY9>+@*RovRl! ztXi6AInyMfmZ?H9_qAyd{GKr;f(Majn&`07B`@n*pll*=;nZerFi6{VzHE2d)pB|t zjJwj^*dkZm&XcBc)s0rp!6Md0 zYBptAF~5~ak@WqQg9cruw8$V&Lm=li!Gk25xO19Yq;iq%EV8aW^-nY_?QD)KLu<9b z=TkheTPJ^@-Q4L9vH5V{8dxaOjd|-)?_BZV+#6J1q)v7|Hmn1b#+_S}TmxYzc<^XK z1Fl2}8B4p7aV+kT*g&7nF~Ng6psS)Qtm{xT%#jfO*)zgj>05rPXp5C1p@7OYFYX`k z-h28(`f6&~MIW3Qq>(@GHF?AX$$FdBP60>%C=qicoE~<)vNdW4DX(=4aSJfzcb^16 z)E)S^+Q9o>>~e_6)qO}To;`$$wPV+pg*kLvjc$RlE^q)&6<;5W<72Ne!W&=q|JoAP ztLzC=xQ!hG2~7KVMrf8k8uJUIpYYAS&)uJZqlrt|^B-hQ1Rlg}U?!eGnBg1;FXowZ{;-aT);ZEHV!FdW_<-;H61TKFm>)cp&-tx<@TkTM@kjZ; zjkK(~Sa~0a0>t`c`5>KfdUpI$aev^@=oi{TJB~8Wv)$m8PwS$wGvqVX(dR1kK#OP` zbRh2uXNW6#ltu7&9ycHQUTurI;i4)#4J0FG@U?Dd#DaM+VgfeNAr%3qZOI#(C;9Z1 z6vrXBHtQspUKQh>XMz|y`~yN46EZBK-W7s+zJH=;uI@gW^hXK z%rjaCCVv_Nd;#YVqQCNp5mt3<{sBn_ZLGr3CQ8|t(_Rn^3kuI@1(DBd%}Vs*mttxr zuDl+4OYXTOJ#P1W2~DGGm1&Uqr}}uMqf9;v6*~0gNm`Onx=3u$tj3JDk~&>l?p<40 z?aCt}FhEu$!#Hv39}FQg?R8j5d$DW}@{y!on8HH-JempRCjhl#X>X*E^ofyQ$o)dY z-D9PQHO@dI9q;zbrrmZ0_qw*v^w8;Gm~+k2c6UDTGY$-)aNq$=yf3WtG-&U`173E- zK|W}^UGWRt97HIr>9XyQh2(Cnx$?W6NX5nD+-k#v^_|n4e-s2?YrL@5B6)UbB!3VUN8T$6h#Yvp(jt)=2TJ$N>@_ROnJSDA z91l!J@=;}JF7AqE-(5fkUD1%UOwQ7x`6(U{8?|@fOn;>OG^DPje&2h!Ft@}ngctU^ zSpSp0?|$>t&v?)G*{E8aE?VVKK-e~(>)5I!wY&W>fGu8F7fppJpQy;h1g(qz-cI$( z)TUQ^U}q9y`n9#g{ZV~h(;ct8X4Q4kW=U!DNLQYH->v-OLG6+AB_jIZ6C)YtBz3B= zIiA4-c|KFM$fudLO2x5WICY&IHw?{~vG(6xV_SmJ!vO6_aTst0I1s;IS!w12u>Z3IH#JD@BT`Lc* zUwB^W^1^O(e9)ae0m!pBq0^)`#XHsBF21 zpFkK`q+WvtgtGg!HeKpEm9%FMB$@p(J&&cO$lYTz36Zyo4$=2rDZAKJm;R~r3~~bI zP#Dtr0GLv)B6Vr!}H@u#TwAc~&nuy7I2~6%U-v zwR%_J0p=MLxDrfvoC+h9+s0Xncj8Zw+NU1LDk9vFeB|9$$f--uv<*u)$tNO;Ez#d$ zd3#$ErN{KKJ6Zg%c9D#h%CL`fJKQ^`E$cfdf4n1`sYfQQb81h7nd|13rW zMZ$v<_YYKiaHlPp@KElyM~-dSl?X{pF#RPmHf|qSQPmg2bXmYv!UGMk(~K-5S-tUk zzRP{(q+lS*Q8&jYP4 z*U<2Q_r#FSnVO5emc+gAcwxZy2Od12e*nh`?%Ic6w5D_Ngs5oQu)ECJ&_j0zEJ?$z zbqDSrjLE65+4@e~{V}af4T2R&k~2=Y-?cC3+lc4qxh}isxh`6u887K*m}V;gWzlwF z(7=n?rYfq-stks@_j(0g*XyBgF2fU+&|V0O&G1+7U|`mpPe`I6E zeWr=LLUw}FMJIyIMNA#Uo{4;VV3XjlYu&rxLH`WXc>JIPj>nd7P(<_?{gu0Fk<~5F zdmp+MnSl#)&wFpphgCnjrGts$cnfVkxqXW-(emBMkU$Frz=6Gaqe@2b&o`iwX-PLc)sz`2aY1Ao2 zwLPjN_lEqucWL|D;{ofvqBta;-`Ek36AYL>?_C*>8&xRkQzz$+;qO$jNEzOU^@gx87rX jw2R~aA-*G8^;?8*JV%DO68xo7Zn`-)x(<8ycD)K4P(R>y62)EYCh# z`0l;Hzopr0O_Aug8%>k literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/wheat_stage_0.png b/src/main/resources/assets/minecraft/textures/blocks/wheat_stage_0.png new file mode 100644 index 0000000000000000000000000000000000000000..185af6fc0dac2f0709da0771f2dc953f0a6b6b31 GIT binary patch literal 100 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`+MX_sAr-fh6C_v{Cx~2-cq8!N yf2U%$r(sIJ#Ii^3O#dS{M+iPT?qYa_f#Jdju7$=NSF?cH7(8A5T-G@yGywqlY91Z{ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/wheat_stage_1.png b/src/main/resources/assets/minecraft/textures/blocks/wheat_stage_1.png new file mode 100644 index 0000000000000000000000000000000000000000..67588c1ecacf814624d5340be9356ab02eb4cc7e GIT binary patch literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`NuDl_Ar-fh6C_v{Cloa6KKid| zoUrys{WqmDF5XHlhb4^BM>c3}xqI|yd{QsVsyms1GHr3<$0lsJd#3jl?}~1gUmJIv z`6hF?{^3mr=VeMU$$RI#x6d|vUEg+Bz;JbBlY|r_lZ%Q_>*RZjfVMGsy85}Sb4q9e E0O|QU+yDRo literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/wheat_stage_2.png b/src/main/resources/assets/minecraft/textures/blocks/wheat_stage_2.png new file mode 100644 index 0000000000000000000000000000000000000000..3d3379292b4f8312bf8f26a6a3857ececf4d48a0 GIT binary patch literal 257 zcmV+c0sj7pP)0fhdEP)%YVV0U{09$c0_uF?LMxec044<@wK-&xVjV$^mA3 zZsz_k*2(uD-B96rY~iyT$>f>5|3%w*|9kD>{Lh`uiV$B1(THIv2)N7@{4Z1uG~^t_ z*=#`!|2?;I{}(6)x~7d6;-Z~gxWmNj5ZiyYK!*Qr%lQ9GP8I|!tUJK)pC^y)zw2WD z|14Gv|J~Oh*}MtnjU5n%=SH6YLN#3f?I#KTXN!hJU&VTc|7JD({~e|X{b!40_z$uK ztY-=jnC348y4G_G_kY0(&i`o>dH!=}vHs7U$^D-p8OIiQ3xFK9% z+XXbx8=6L}n+5-K=dgke5CLjTo51^D))yiP5)-mx_#fBA|6eJR`G0gRBwfTdK)eKE Z0|233hMytQZn6LX002ovPDHLkV1jf1u_OQh literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/wheat_stage_4.png b/src/main/resources/assets/minecraft/textures/blocks/wheat_stage_4.png new file mode 100644 index 0000000000000000000000000000000000000000..ac04b52c751b078c4fe9890947874ac1d546bca7 GIT binary patch literal 454 zcmV;%0XhDOP)!i91{ zaY2ztiCe$GKY3Ye?QsYt?yQ?{^{#h4-}|ja^naIfPxu?*ARC1n?Dr7mf#8iPKLaRt z-^4x4`lLG_zw%xa0_$G9kIzde?E~v~e7tZ=2&QtrfShN)i5FQSe)L9#tKnV8eW%zL zta?5JBG)Rc869*aL3s%m!Y2lJ&1m6M_xEoSIdj39)zNgwU=GSoBijbdxD(M!U1;2s z@vBdnWJzg`UTMf3RZ+FC0DCXA;H;R)^fgw8=~jh%qgdGv|2j6us`~th>$5H?9e}_+vAId{iHTdJ!eUK*e!&)lp}K710$$bCa}4G6)tC(+43? zA0k0TL<9x#L5MI2|EA;I@6(ZJgDCu7&fIg)cjlfuLv&lmISS*y40;dm;NFD(?DV#I6S_e8^9QzyLW^H5XG=SdR*gV1Cv>>9Ns&(rGFN^=Q; WW8=l4w5e+V0000^QvsQi(%A>C9L*~{T zcrfPtH$cx9{nCs5yPh2Xz~LpTfp^uib4t!-z{heyG&nvTe*5B>nDW!&k7Lx zYQvo+S(RU+s!tJ0*teL@$KP#d8L4AJ%Z!Hk&ko${mJ(S3zeIe?DwHI5^Mt=6?iKs3 zunn}lPhcbRUPEKVjl?$v{>QRX^pjgCU_hk-T}(@GaxV{_`pnR|uexD77B(CxtRc*% zT&U_*OhDN~!t0N!0K_)s^m$%&Lv{&ZS(QB&%&ofMf0B>MxQdE4NuT(jnt zv*39Nz`LXywLu#uVk&O8O9j4+yrC&ws2X{r3qWvEH~rOt%wOQ%OIrv7uQU|a5<+iv zQvoO1%Lz>#9@r}k(DVg>{qh@+$SS>~8k7>k^Kl)HyE54JR27LFGmhvU*0R9z2fj2C zy;7cX(@+vI_97V!ghfR(cX~wZPYYdxngFx?8>-g$!=;cn#277%MWf6Vy+s9 ziA9nT6+|EU68&jU_q=Dj3ue&y@}Bd&&-=X3d(I*H$C{0|gZ_6dB%8^r*&q&eP!pcB z_7N`5w4uAZnY{8exG&b*+svhxdEEgERx9r}KB%}f&>&ZelJhs_tnKfFk?V>qEa>R# zBW&z?5V@lCJ^YNNz%%WjpA9$d9rusk2)^XLr)Ne>gsn=R>!Igy9aZvrN;CN5X&F*i)fL*Zl)rDxwYQ4$ZZ zgSX$LXs)a~&ITW-Qefq^AEP-PA`T@FV*3Z-#F$hsRsBrNuj-r=h5T=x8SG3x-+M25 zMhV$vgQKuHJgaf?`FeoGL}BvJ8kR}1cWH#^SO9K6Au%T%+#1(eSnU4*eNZNn12H0 z*-isN3`Eg>gUr6~3?WjG`2Qc|jEsV01-IKS-|8V1RaZA-UbIEo^~17lXIb@CJ*u8DIPR(rU-zec zoHj?3@?|;1lk9soa z9e}x3atDTlBN)GUthL9t;wLFx58sX$K(pmI&AYMJ_W?;XC{ir4M<_W;0*r(u{Ft=F zD|yM}4>6J={CGinJgD2R+h&16{%1O1$otqp9Z8xb|ANtd{VzEKh>ssUnvj?YbVZ4f zU``~@^8t=mr6Bg2?s$MCJU?B)IFl_{uhwaER+U>wQXcNZk9k+Wj~_#chs{H*00000 LNkvXXu0mjf!*09Z literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/wool_colored_blue.png b/src/main/resources/assets/minecraft/textures/blocks/wool_colored_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..14c5d7103f49322be12e6f81f406fc996dccbe0b GIT binary patch literal 463 zcmV;=0WkiFP)1@@ z*-`>Q429u-AYot@24MuZTc1r3WdOBs-!6SZzn-?JN?o=U-t($ zbc@k0NSdC0h?b*WbMeg|jUOFV^2gI>)?EIO6CoWtC`FRW^0EcS2c{K=rJRUx`Vkaq zxq&F0Fk zfTbKW7%$LZhmZ`du*N>cnu?(S3*EUuA8P;r002ovPDHLk FV1g}B)Gq)4 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/wool_colored_brown.png b/src/main/resources/assets/minecraft/textures/blocks/wool_colored_brown.png new file mode 100644 index 0000000000000000000000000000000000000000..ffaa7509d5deb2fcac2de430b90241ad58cd81bc GIT binary patch literal 456 zcmV;(0XP1MP)1@@ zX-+~>42I#e6PX=w{wp|uID#5=0gAI|&=?6((%1TT4}IT9k!>t_1xu3;c07Ug z4vQK+{G`bs&$1TKiTkvcyKR(=f&@mM*}+p1cWb%pwPL6$jWdwo8*WZ4W2?JnIsLD@ zH%l7~Gmy63Jh_#IsIh~5qQOQf6~RppPwXa%{Nrz*q|Y6IfmZ4bjMas-_24m!Ycyd0nH4QDZ;0XCclo6E1;eSxC02?W?tqO3tyf%hk4x?HbFy zb%QNS`>d@x%Wzgzva++bUp)V0!%aztY~NY+t4fvlZ%12K!u>fVk{07#(cjZzn&j7K zJ-b2vX}}iK6F6bDy?3DWa-GYH7Gm-tcE~vLJx3JAd!mR&`d#_}7`)$0+qdEkCCEga z8J10O}Q;ciFC=67>Xjq*!8*#LPSmZE6eNMs%ei6$3%o{vV zV>ZfA@}_uF5>h~H-_HLa!{~b_Lk)ari`MLF%^vu{qsUqUq?w0jb5YrAKPWD7-A^KL zyQ@#QVFQMYN*JUrvB zfPaxurEclu1bq23pUO{znxIY)p*bAjGz0hZcxcUj2s2~Uj9c6}t6F`;Wm6}q7HcM| lT}oUU3KgopmY65b^dB5cFk{hwQ#}9x002ovPDHLkV1iif%rF1| literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/wool_colored_gray.png b/src/main/resources/assets/minecraft/textures/blocks/wool_colored_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..1d12e2d4694651e8b37744bb8bbf8f8a19d7daf7 GIT binary patch literal 427 zcmV;c0aX5pP)1@@ z3v$9R3T}6O_HH(<$P;~xf%0(yyVmM zs~Ha6G%hD0*|%dF%5mDx$LFtDt`9@qyms>fuMH{R9eTOFeO{BH_4ZWl^R_*H>WdM@yT{E;}rkkXFH>wLBv=VWC znjyzlqj3f+Ua&&m*UOB0H!Ugbmdo94Vgy3FdDC($!eWL8_7Vf)Q!;_dw0-o1H$}>$ zp5WZ!b+v3xj~Lc@AO?mWw0OJ~KNvJt;!HCmeA)-*Z!o*KrIEki0gq6^TRH!QA>juS zi7UBe@)OHctDmX3pncT?ZDUq{Gf#^=z2ufCQRPtybxXWaPhZZ{POVg^S>RT1e7F$_Dt`&YHT7R6K V%8Hk7a<>2g002ovPDHLkV1mWrzCr*1 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/wool_colored_green.png b/src/main/resources/assets/minecraft/textures/blocks/wool_colored_green.png new file mode 100644 index 0000000000000000000000000000000000000000..f8bc1ef41ff9b6043f7e0d9d6740c11add2677dc GIT binary patch literal 454 zcmV;%0XhDOP)1@@ z=Td?}429vn3O=xaf;Xdx*icl84SUCe<+s=EvxZ@2XUJxAPTu4rwN95dFRJUu%dL~; zo!j|?w_@XLseNACf39@L<+Xl8zH>k42%3X>+P$0Kd#a3n^Evt`6m4BCI`K>?UOifA z4(oikuNRV{-lQbEeY4R2E{Qu2bFP%)?n~Jj{FKD-F)*dT$OKN*WQ0j6 z5ozRE)&P{a*Lo}MQ4Kew^7_d-ew7 zXvo`ap6rSsYRq7~#KW1TRA_~jAJ>>o5_#`4=M$Yh00Zsr4Garc-ZXf$75i4^N$~&< z18DPj+k4Ei+4r$=ra_Uo>XrM9a|(|jg8}#`h|NQ(2}qkvezMtP#ff=rkYD8WSN*@} z1`6?X=z!79#|G-kl9K%lMzwj8JAnB31b7r7p$T-57A+QFPAvOh`Qs~+3S!&zW(HeA wW&L~s<4pdsX5cOBE=#5%SFz@vVjg-=fAD?X;8j>wnE(I)07*qoM6N<$f?Oll*Z=?k literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/wool_colored_light_blue.png b/src/main/resources/assets/minecraft/textures/blocks/wool_colored_light_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..529c92a3b91a6f80ef001b054af2c4c08e2964a0 GIT binary patch literal 491 zcmV1@@ zhf17L5QgD%FSb}vV=tJX5xZWP4MY)9Fc?q~i6|l}_J+M+#g6?pe3kwb84COPozZM?b zcD`8s`kSKS$?KwtEB(?s`6=zYKY9=8mi)g7iW)cHMN6k{TDCv=m2>x=I{DR0&#ZMj zAtypQF+uB}m6zC7Fm?%y56mbIi#2*0Hr|6KgQP_*pc8j$$6o%wbKHf7zTxmPdJc5js&M==#C7Y|UTK422GX{hlv@FdHFmIGpuv(M6-HsD zM>Xyyh`ed@Be8=%cK`<3TMmrXJ;CU~W2`y8m3@MQ2RIC=oqN{uteSt&mi#_0PBc;k zs%DwPgz#|85hP)VeRLY)N-i1v5F^Pf1I7jE*+JZV)y~LJ@Pi6<5ymth8>oYl)JZ-G zquM^f8$kT{8t^DWLL#DrbZ9;Yb0FEg^$E_dLXp@t8vAVgdDojimDuI&vJB{?d*q~wq1$)7Q}Y%NjtX&p8WL4$jv-?K+BCxz{*rcg-}_(_VO zmNh)ES74;ROsPOcD?F&_O_K6fufKXwWDbNmws%Gh>Kv#qJ!tW`D}IWUjS3ow=ErvJ zskZ&!kBI|K6$L6TJeEBHf5LkGAdv8*6NxFAWbp$A(qaac3Buzc--zlQw4-`)e(F*T zHkV4MZN4k;|6)|vw`9*~UcLr;6j7olr4wn;VnOww^x$iNxO@ny*fjGkl4KdbPFm1@? z$xcE+5QX7>B^|!r;Q^@w@4Sq?21+U3Ka|bwg?5 z@+p-ojGo<%U(^>%pBwf2$*YH{>*nfnD^tx4ofOB;UzZ;oL4G6~8cX-hbouYF=d`z8 z6jkO5&$D^`o^^_^2afV1r*y0H#h|FO)0C|(6npy}@$1T?t4?uit>XM1bjit(P9|vm zT(8Bpaw-Q*49qBj6KnK*Z@&di26>icKqu~-!Q;p28{ClCOY$3a9y|qbJ{qE`(zpg0 zvElG;hZ8egm1k~4wEMN$pbf?`kT!3g>*Qjyp;z42g6sH~qZ7M%Wc7AtMpgmGG2&+zseZ5h>0R@h$u4Ncp-wn&@Jv8E^+RB>a+|robEbR zU%mBpr}OFN>$$dnlONBfn;#ZCUN`zKWM(*AHPolZ2-y<7N_B-N@F(fft=+TO7J<8rs7O8b}f zuU2h;gq#TJ=%Dm<<9jZ%%F}Bz(70u2gc}*VASBzRv&j|o)kak%iu78Hjm@eN{_Po{ct?Y zEx;00z4Qs=g{qbC8yJACeof4yQWGw5GWifAX%+L7I7rV7;`+-DqsJRi#Kp;wmtmsY z-Y`(d{I1B?VPwZ!at?sv@)d-4OI=9RyrWkujE;xHy_muK*&PCxA3`P$H;cE(rMU9t xZn{`-CS9=77IhX4rTr1AP@{QqCy`S;(>G>&dQKsr#>4;s002ovPDHLkV1g~5_xAt* literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/wool_colored_pink.png b/src/main/resources/assets/minecraft/textures/blocks/wool_colored_pink.png new file mode 100644 index 0000000000000000000000000000000000000000..17ef62bbf569e2d4dc2cd30cd5b859acaec7f1a6 GIT binary patch literal 516 zcmV+f0{i`mP) zi%J4P6o%(%v!V+HLQzCfP(;WkYl)emB^#lnVuU2JK^Q$j8Qq936h*grfWCic3kLS= znREI6bH+R-H{NE7cVp`h$=uKKo-MSVCh{*+1)FKu+`;8w`hGlXQxy)z^{{V#R`#r4 zw~aHMQk$U9h4RPz4*6V@iGAMZ-Hc?Y`?VMt1qC7A@1!+-s|)h+#ubKuE}3$p@Ay{ zTyG%#Jh|zr66(g_Yz*374M_~D-siSWEVp<>ZD2Sw)L77lKhqGHi$Q}|HPndtoQr9~ zUG7j%!;Q4b$s~7=BMk&)n}7+r+~E!wr1J|5Iq=YyKI{rTh6{dxgW)2viYzgtYoz_} zM-ykbk!@6!Ui9JM0>FXcEVZ=|^!Rm}FeN5w_^4RA#z71)8e+DI2K?gm>x{A2zbXnA zM+9*WM&0(ifHF|`u2lXHhG_H{{R7~ZPXaut3M7<>(Swjd%Z64Oct4dB;Npi65o?;! zTVzV2@~ULQ0;l0gN&~gMs&| zJe)fn&7IBH-)^*4#`5PAg^ShZr}dVXfz0tp?rgE~-eC-8Ptroe-AdErLC=q~+5RSJ zrgS}Bx>E02CA+uoa4361ceZqsByD$mh|bmD>~(#yml_|qD%oo-&(41LH#rf~)ecHG zT3@4VvRDSj2BsCmi5xXs?e9sEMy^E-pb~dq=4hgDi5n7_TD)QgSBc-BIU3JjgsRk7 zL)Z*$2eQX1O*K_4r@wLA-e`kyG^A}dS9S#~a?D`7L?iejBtt8#^r*&cg2;Dj@g&I} zfPv<_17mb97&Umb)yG>&OD;IzFn~4|ce&|N+5h|4IMJX;RQ1xw;R6UTK@ysnN2MmV zWRuB<7)hr(PtluH=$WDRk6g;OMh8Xp;bh1Q7~MQJP;UHJ00000NkvXXu0mjf#6{aN literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/wool_colored_red.png b/src/main/resources/assets/minecraft/textures/blocks/wool_colored_red.png new file mode 100644 index 0000000000000000000000000000000000000000..f11cbccbc317a16aae5209b4c8a16d1294435334 GIT binary patch literal 430 zcmV;f0a5;mP)1@@ zS5gBp3}j>or%$&7}`lKvts>9m&1R*q|y+)c{+qC4x# zc~_oi^>yAImV8q4{j>_nQOU{B)2#mNEyd^14BhnQx)peBNcn!wtCI2F_9YowFPo~z zW~Y}wOsglP{AFInW_N;41@))^`nDL`=Hx1J#z;v-%)qRNmVj_;t6Bh(?}MB#y23Y0 ztD4n?9kdd2egJ~iXq-VsPLOOYqkh#&igiDRk(-Dhh}&*jZpB#4*ui=UhuD@(jJ}74 zkDu60k@K&=dV+HY#+Wvz#|#QjW?=XsOUJjePtx#Ujt8dgSz)|r$D3C{`T_f8*oPzuMcsb>dQ;>!8)GR$Y9!Ygi7Z&fgYDCNYpVjp;| YU)F5u?~M!@K>z>%07*qoM6N<$g4nFiCIA2c literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/wool_colored_silver.png b/src/main/resources/assets/minecraft/textures/blocks/wool_colored_silver.png new file mode 100644 index 0000000000000000000000000000000000000000..f7f13534903d4819728955cf76eb100cb52bb7ea GIT binary patch literal 441 zcmV;q0Y?6bP)Xf9(NFl}5s2yxeC`s;c+(IxEYU$K{wfd;* z`F7jx_upAIE6dluUptIEe@e_;m}7~(`3Ndz_emG5hI74Bx&R~F99-fFBXq= zy}%8rC|>v-8vIJ&d{(QEs46tZ5H>^GJb#i&Rnz1tvcbB5M&O(K*v8Yq`QKVgGXC^?24Y`hYL6ipy_cPhK;oU{g}9- zVJB7f(#MIx1sJCin$ROt6H_wDJq>z>VqBaEaRH;er2=)0 zccuJ4jA(k2JAhbz@CZU8C(t!lP6hCYv!GH jnFW}tP-88jC!Xma)PADeOT|#w00000NkvXXu0mjf|76Hk literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/textures/blocks/wool_colored_white.png b/src/main/resources/assets/minecraft/textures/blocks/wool_colored_white.png new file mode 100644 index 0000000000000000000000000000000000000000..fa2c56e80163cb9082ed015d36dadeb785e3ba9a GIT binary patch literal 446 zcmV;v0YUzWP)1@@ ziEhF`3`J4@|JQY8FOU+J6vUDOfds0aFcN449xu<=9%3+=PV>Aw`s$A-tM&R+Rl{jE z{+{j2^7nXp?+!@pHf5*_++YRVBMT9vyyyJfzzWN>Ar=D$DXYFg7r)7(OXS4ed~*kua|TRN{W^ z_Q2rw4W{*1l^KM>{jJv@Wf>)9QqvletvS4p$1tYK=8H(Em#@FNHW_}1k#r0L#s=w`fnR^w*65&MhYWcMMmLWN z)Rm-4@=qAq<_UKI>G2idk%UA|LI-KlYzF3#db{1gnUyOM+oqTqAUW1g7Yoktm&8h& ow|&ceu8ay*sG19rTQz5QX<86h&+WL853hiX_SpUs*-GV!a0fK~adr*PyiAiQnlOlTA9i-8u7}nKi*p zBD{C|m+|0wW%!z&w)TSCM0n>+8o9~)j$exPui~TX28+PISTdux%(%Wa|2bjJz7DuF zcuEc)ljQT8Oyb_@f?r-nclew#T$*(bIUT;N&%4LOqgs|NnZ%RkHf!E3BF72RszB=W zW7npIo(mW;V3Z<|M07_8?Ytq0Lj2|w17yP8J6jAZ4%{I1%gZ`%?a4zaW`Oh0W5MmJ zRpqK}gN+F&Yt7(l@UUjA-Rb8(+Q4W%r_jcmxEndZ>>WH{&!A!X>=8G_-Oi(js`bVp zt*%uZ_WaWvJeRF{aOc27S?Vw={22Y9@egY-0F5oSyp?>lN70DoWwBq)L(b@DZ>k-udOpGa(zB|n}^2hqcW*eVXUX(I~?4NkcCu7#l* z!v>VCeOJi;!zh!tq~SMmcK9+)@2VSmKjcK{K+9J_JilH|<-bOB#7C zOC~IE8mhpGHmB;n=SrztL={xIk7lAf(KG!8VpryH#rCIm00000NkvXXu0mjfGVbzZ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/nnparadisemod/blockstates/bulletproof_glass_pane.json b/src/main/resources/assets/nnparadisemod/blockstates/bulletproof_glass_pane.json new file mode 100644 index 0000000..b0a8703 --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/blockstates/bulletproof_glass_pane.json @@ -0,0 +1 @@ +{"multipart":[{"apply":{"model":"nnparadisemod:bulletproof_glass_pane_post"}},{"when":{"north":true},"apply":{"model":"nnparadisemod:bulletproof_glass_pane_side"}},{"when":{"east":true},"apply":{"model":"nnparadisemod:bulletproof_glass_pane_side","y":90}},{"when":{"south":true},"apply":{"model":"nnparadisemod:bulletproof_glass_pane_side_alt"}},{"when":{"west":true},"apply":{"model":"nnparadisemod:bulletproof_glass_pane_side_alt","y":90}},{"when":{"north":false},"apply":{"model":"nnparadisemod:bulletproof_glass_pane_noside"}},{"when":{"east":false},"apply":{"model":"nnparadisemod:bulletproof_glass_pane_noside_alt"}},{"when":{"south":false},"apply":{"model":"nnparadisemod:bulletproof_glass_pane_noside_alt","y":90}},{"when":{"west":false},"apply":{"model":"nnparadisemod:bulletproof_glass_pane_noside","y":270}}]} diff --git a/src/main/resources/assets/nnparadisemod/blockstates/christmas_sapling.json b/src/main/resources/assets/nnparadisemod/blockstates/christmas_sapling.json index fc05a7a..7cbb119 100644 --- a/src/main/resources/assets/nnparadisemod/blockstates/christmas_sapling.json +++ b/src/main/resources/assets/nnparadisemod/blockstates/christmas_sapling.json @@ -1 +1 @@ -{"variants":{"stage=0,type=christmas":{"model":"nnparadisemod:sapling_christmas"},"stage=1,type=christmas":{"model":"nnparadisemod:sapling_christmas"}}} +{"variants":{"stage=0":{"model":"nnparadisemod:sapling_christmas"},"stage=1":{"model":"nnparadisemod:sapling_christmas"}}} diff --git a/src/main/resources/assets/nnparadisemod/blockstates/glass_button.json b/src/main/resources/assets/nnparadisemod/blockstates/glass_button.json new file mode 100644 index 0000000..40b534c --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/blockstates/glass_button.json @@ -0,0 +1 @@ +{"variants":{"facing=up,powered=false":{"model":"nnparadisemod:glass_button","uvlock":true},"facing=down,powered=false":{"model":"nnparadisemod:glass_button","uvlock":true,"x":180},"facing=east,powered=false":{"model":"nnparadisemod:glass_button","uvlock":true,"x":90,"y":90},"facing=west,powered=false":{"model":"nnparadisemod:glass_button","uvlock":true,"x":90,"y":270},"facing=south,powered=false":{"model":"nnparadisemod:glass_button","uvlock":true,"x":90,"y":180},"facing=north,powered=false":{"model":"nnparadisemod:glass_button","uvlock":true,"x":90},"facing=up,powered=true":{"model":"nnparadisemod:glass_button_pressed","uvlock":true},"facing=down,powered=true":{"model":"nnparadisemod:glass_button_pressed","uvlock":true,"x":180},"facing=east,powered=true":{"model":"nnparadisemod:glass_button_pressed","uvlock":true,"x":90,"y":90},"facing=west,powered=true":{"model":"nnparadisemod:glass_button_pressed","uvlock":true,"x":90,"y":270},"facing=south,powered=true":{"model":"nnparadisemod:glass_button_pressed","uvlock":true,"x":90,"y":180},"facing=north,powered=true":{"model":"nnparadisemod:glass_button_pressed","uvlock":true,"x":90}}} diff --git a/src/main/resources/assets/nnparadisemod/blockstates/glass_pressure_plate.json b/src/main/resources/assets/nnparadisemod/blockstates/glass_pressure_plate.json new file mode 100644 index 0000000..d5ac689 --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/blockstates/glass_pressure_plate.json @@ -0,0 +1 @@ +{"variants":{"powered=false":{"model":"nnparadisemod:glass_pressure_plate_up"},"powered=true":{"model":"nnparadisemod:glass_pressure_plate_down"}}} diff --git a/src/main/resources/assets/nnparadisemod/blockstates/red_sandstone_button.json b/src/main/resources/assets/nnparadisemod/blockstates/red_sandstone_button.json new file mode 100644 index 0000000..cb36d19 --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/blockstates/red_sandstone_button.json @@ -0,0 +1 @@ +{"variants":{"facing=up,powered=false":{"model":"nnparadisemod:red_sandstone_button","uvlock":true},"facing=down,powered=false":{"model":"nnparadisemod:red_sandstone_button","uvlock":true,"x":180},"facing=east,powered=false":{"model":"nnparadisemod:red_sandstone_button","uvlock":true,"x":90,"y":90},"facing=west,powered=false":{"model":"nnparadisemod:red_sandstone_button","uvlock":true,"x":90,"y":270},"facing=south,powered=false":{"model":"nnparadisemod:red_sandstone_button","uvlock":true,"x":90,"y":180},"facing=north,powered=false":{"model":"nnparadisemod:red_sandstone_button","uvlock":true,"x":90},"facing=up,powered=true":{"model":"nnparadisemod:red_sandstone_button_pressed","uvlock":true},"facing=down,powered=true":{"model":"nnparadisemod:red_sandstone_button_pressed","uvlock":true,"x":180},"facing=east,powered=true":{"model":"nnparadisemod:red_sandstone_button_pressed","uvlock":true,"x":90,"y":90},"facing=west,powered=true":{"model":"nnparadisemod:red_sandstone_button_pressed","uvlock":true,"x":90,"y":270},"facing=south,powered=true":{"model":"nnparadisemod:red_sandstone_button_pressed","uvlock":true,"x":90,"y":180},"facing=north,powered=true":{"model":"nnparadisemod:red_sandstone_button_pressed","uvlock":true,"x":90}}} diff --git a/src/main/resources/assets/nnparadisemod/blockstates/red_sandstone_pressure_plate.json b/src/main/resources/assets/nnparadisemod/blockstates/red_sandstone_pressure_plate.json new file mode 100644 index 0000000..cce4256 --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/blockstates/red_sandstone_pressure_plate.json @@ -0,0 +1 @@ +{"variants":{"powered=false":{"model":"nnparadisemod:red_sandstone_pressure_plate_up"},"powered=true":{"model":"nnparadisemod:red_sandstone_pressure_plate_down"}}} diff --git a/src/main/resources/assets/nnparadisemod/blockstates/redstone_door_block.json b/src/main/resources/assets/nnparadisemod/blockstates/redstone_door_block.json index 02f44e2..beafca0 100644 --- a/src/main/resources/assets/nnparadisemod/blockstates/redstone_door_block.json +++ b/src/main/resources/assets/nnparadisemod/blockstates/redstone_door_block.json @@ -1 +1 @@ -{"variants":{"facing=east,half=lower,hinge=left,open=false,powered=true":{"model":"nnparadisemod:redstone_door_bottom"},"facing=south,half=lower,hinge=left,open=false,powered=true":{"model":"nnparadisemod:redstone_door_bottom","y":90},"facing=west,half=lower,hinge=left,open=false,powered=true":{"model":"nnparadisemod:redstone_door_bottom","y":180},"facing=north,half=lower,hinge=left,open=false,powered=true":{"model":"nnparadisemod:redstone_door_bottom","y":270},"facing=east,half=lower,hinge=right,open=false,powered=true":{"model":"nnparadisemod:redstone_door_bottom_rh"},"facing=south,half=lower,hinge=right,open=false,powered=true":{"model":"nnparadisemod:redstone_door_bottom_rh","y":90},"facing=west,half=lower,hinge=right,open=false,powered=true":{"model":"nnparadisemod:redstone_door_bottom_rh","y":180},"facing=north,half=lower,hinge=right,open=false,powered=true":{"model":"nnparadisemod:redstone_door_bottom_rh","y":270},"facing=east,half=lower,hinge=left,open=true,powered=true":{"model":"nnparadisemod:redstone_door_bottom_rh","y":90},"facing=south,half=lower,hinge=left,open=true,powered=true":{"model":"nnparadisemod:redstone_door_bottom_rh","y":180},"facing=west,half=lower,hinge=left,open=true,powered=true":{"model":"nnparadisemod:redstone_door_bottom_rh","y":270},"facing=north,half=lower,hinge=left,open=true,powered=true":{"model":"nnparadisemod:redstone_door_bottom_rh"},"facing=east,half=lower,hinge=right,open=true,powered=true":{"model":"nnparadisemod:redstone_door_bottom","y":270},"facing=south,half=lower,hinge=right,open=true,powered=true":{"model":"nnparadisemod:redstone_door_bottom"},"facing=west,half=lower,hinge=right,open=true,powered=true":{"model":"nnparadisemod:redstone_door_bottom","y":90},"facing=north,half=lower,hinge=right,open=true,powered=true":{"model":"nnparadisemod:redstone_door_bottom","y":180},"facing=east,half=upper,hinge=left,open=false,powered=true":{"model":"nnparadisemod:redstone_door_top"},"facing=south,half=upper,hinge=left,open=false,powered=true":{"model":"nnparadisemod:redstone_door_top","y":90},"facing=west,half=upper,hinge=left,open=false,powered=true":{"model":"nnparadisemod:redstone_door_top","y":180},"facing=north,half=upper,hinge=left,open=false,powered=true":{"model":"nnparadisemod:redstone_door_top","y":270},"facing=east,half=upper,hinge=right,open=false,powered=true":{"model":"nnparadisemod:redstone_door_top_rh"},"facing=south,half=upper,hinge=right,open=false,powered=true":{"model":"nnparadisemod:redstone_door_top_rh","y":90},"facing=west,half=upper,hinge=right,open=false,powered=true":{"model":"nnparadisemod:redstone_door_top_rh","y":180},"facing=north,half=upper,hinge=right,open=false,powered=true":{"model":"nnparadisemod:redstone_door_top_rh","y":270},"facing=east,half=upper,hinge=left,open=true,powered=true":{"model":"nnparadisemod:redstone_door_top_rh","y":90},"facing=south,half=upper,hinge=left,open=true,powered=true":{"model":"nnparadisemod:redstone_door_top_rh","y":180},"facing=west,half=upper,hinge=left,open=true,powered=true":{"model":"nnparadisemod:redstone_door_top_rh","y":270},"facing=north,half=upper,hinge=left,open=true,powered=true":{"model":"nnparadisemod:redstone_door_top_rh"},"facing=east,half=upper,hinge=right,open=true,powered=true":{"model":"nnparadisemod:redstone_door_top","y":270},"facing=south,half=upper,hinge=right,open=true,powered=true":{"model":"nnparadisemod:redstone_door_top"},"facing=west,half=upper,hinge=right,open=true,powered=true":{"model":"nnparadisemod:redstone_door_top","y":90},"facing=north,half=upper,hinge=right,open=true,powered=true":{"model":"nnparadisemod:redstone_door_top","y":180},"facing=east,half=lower,hinge=left,open=false,powered=false":{"model":"nnparadisemod:redstone_door_bottom"},"facing=south,half=lower,hinge=left,open=false,powered=false":{"model":"nnparadisemod:redstone_door_bottom","y":90},"facing=west,half=lower,hinge=left,open=false,powered=false":{"model":"nnparadisemod:redstone_door_bottom","y":180},"facing=north,half=lower,hinge=left,open=false,powered=false":{"model":"nnparadisemod:redstone_door_bottom","y":270},"facing=east,half=lower,hinge=right,open=false,powered=false":{"model":"nnparadisemod:redstone_door_bottom_rh"},"facing=south,half=lower,hinge=right,open=false,powered=false":{"model":"nnparadisemod:redstone_door_bottom_rh","y":90},"facing=west,half=lower,hinge=right,open=false,powered=false":{"model":"nnparadisemod:redstone_door_bottom_rh","y":180},"facing=north,half=lower,hinge=right,open=false,powered=false":{"model":"nnparadisemod:redstone_door_bottom_rh","y":270},"facing=east,half=lower,hinge=left,open=true,powered=false":{"model":"nnparadisemod:redstone_door_bottom_rh","y":90},"facing=south,half=lower,hinge=left,open=true,powered=false":{"model":"nnparadisemod:redstone_door_bottom_rh","y":180},"facing=west,half=lower,hinge=left,open=true,powered=false":{"model":"nnparadisemod:redstone_door_bottom_rh","y":270},"facing=north,half=lower,hinge=left,open=true,powered=false":{"model":"nnparadisemod:redstone_door_bottom_rh"},"facing=east,half=lower,hinge=right,open=true,powered=false":{"model":"nnparadisemod:redstone_door_bottom","y":270},"facing=south,half=lower,hinge=right,open=true,powered=false":{"model":"nnparadisemod:redstone_door_bottom"},"facing=west,half=lower,hinge=right,open=true,powered=false":{"model":"nnparadisemod:redstone_door_bottom","y":90},"facing=north,half=lower,hinge=right,open=true,powered=false":{"model":"nnparadisemod:redstone_door_bottom","y":180},"facing=east,half=upper,hinge=left,open=false,powered=false":{"model":"nnparadisemod:redstone_door_top"},"facing=south,half=upper,hinge=left,open=false,powered=false":{"model":"nnparadisemod:redstone_door_top","y":90},"facing=west,half=upper,hinge=left,open=false,powered=false":{"model":"nnparadisemod:redstone_door_top","y":180},"facing=north,half=upper,hinge=left,open=false,powered=false":{"model":"nnparadisemod:redstone_door_top","y":270},"facing=east,half=upper,hinge=right,open=false,powered=false":{"model":"nnparadisemod:redstone_door_top_rh"},"facing=south,half=upper,hinge=right,open=false,powered=false":{"model":"nnparadisemod:redstone_door_top_rh","y":90},"facing=west,half=upper,hinge=right,open=false,powered=false":{"model":"nnparadisemod:redstone_door_top_rh","y":180},"facing=north,half=upper,hinge=right,open=false,powered=false":{"model":"nnparadisemod:redstone_door_top_rh","y":270},"facing=east,half=upper,hinge=left,open=true,powered=false":{"model":"nnparadisemod:redstone_door_top_rh","y":90},"facing=south,half=upper,hinge=left,open=true,powered=false":{"model":"nnparadisemod:redstone_door_top_rh","y":180},"facing=west,half=upper,hinge=left,open=true,powered=false":{"model":"nnparadisemod:redstone_door_top_rh","y":270},"facing=north,half=upper,hinge=left,open=true,powered=false":{"model":"nnparadisemod:redstone_door_top_rh"},"facing=east,half=upper,hinge=right,open=true,powered=false":{"model":"nnparadisemod:redstone_door_top","y":270},"facing=south,half=upper,hinge=right,open=true,powered=false":{"model":"nnparadisemod:redstone_door_top"},"facing=west,half=upper,hinge=right,open=true,powered=false":{"model":"nnparadisemod:redstone_door_top","y":90},"facing=north,half=upper,hinge=right,open=true,powered=false":{"model":"nnparadisemod:redstone_door_top","y":180}}} +{"variants":{"facing=east,half=lower,hinge=left,open=false":{"model":"nnparadisemod:redstone_door_bottom"},"facing=south,half=lower,hinge=left,open=false":{"model":"nnparadisemod:redstone_door_bottom","y":90},"facing=west,half=lower,hinge=left,open=false":{"model":"nnparadisemod:redstone_door_bottom","y":180},"facing=north,half=lower,hinge=left,open=false":{"model":"nnparadisemod:redstone_door_bottom","y":270},"facing=east,half=lower,hinge=right,open=false":{"model":"nnparadisemod:redstone_door_bottom_rh"},"facing=south,half=lower,hinge=right,open=false":{"model":"nnparadisemod:redstone_door_bottom_rh","y":90},"facing=west,half=lower,hinge=right,open=false":{"model":"nnparadisemod:redstone_door_bottom_rh","y":180},"facing=north,half=lower,hinge=right,open=false":{"model":"nnparadisemod:redstone_door_bottom_rh","y":270},"facing=east,half=lower,hinge=left,open=true":{"model":"nnparadisemod:redstone_door_bottom_rh","y":90},"facing=south,half=lower,hinge=left,open=true":{"model":"nnparadisemod:redstone_door_bottom_rh","y":180},"facing=west,half=lower,hinge=left,open=true":{"model":"nnparadisemod:redstone_door_bottom_rh","y":270},"facing=north,half=lower,hinge=left,open=true":{"model":"nnparadisemod:redstone_door_bottom_rh"},"facing=east,half=lower,hinge=right,open=true":{"model":"nnparadisemod:redstone_door_bottom","y":270},"facing=south,half=lower,hinge=right,open=true":{"model":"nnparadisemod:redstone_door_bottom"},"facing=west,half=lower,hinge=right,open=true":{"model":"nnparadisemod:redstone_door_bottom","y":90},"facing=north,half=lower,hinge=right,open=true":{"model":"nnparadisemod:redstone_door_bottom","y":180},"facing=east,half=upper,hinge=left,open=false":{"model":"nnparadisemod:redstone_door_top"},"facing=south,half=upper,hinge=left,open=false":{"model":"nnparadisemod:redstone_door_top","y":90},"facing=west,half=upper,hinge=left,open=false":{"model":"nnparadisemod:redstone_door_top","y":180},"facing=north,half=upper,hinge=left,open=false":{"model":"nnparadisemod:redstone_door_top","y":270},"facing=east,half=upper,hinge=right,open=false":{"model":"nnparadisemod:redstone_door_top_rh"},"facing=south,half=upper,hinge=right,open=false":{"model":"nnparadisemod:redstone_door_top_rh","y":90},"facing=west,half=upper,hinge=right,open=false":{"model":"nnparadisemod:redstone_door_top_rh","y":180},"facing=north,half=upper,hinge=right,open=false":{"model":"nnparadisemod:redstone_door_top_rh","y":270},"facing=east,half=upper,hinge=left,open=true":{"model":"nnparadisemod:redstone_door_top_rh","y":90},"facing=south,half=upper,hinge=left,open=true":{"model":"nnparadisemod:redstone_door_top_rh","y":180},"facing=west,half=upper,hinge=left,open=true":{"model":"nnparadisemod:redstone_door_top_rh","y":270},"facing=north,half=upper,hinge=left,open=true":{"model":"nnparadisemod:redstone_door_top_rh"},"facing=east,half=upper,hinge=right,open=true":{"model":"nnparadisemod:redstone_door_top","y":270},"facing=south,half=upper,hinge=right,open=true":{"model":"nnparadisemod:redstone_door_top"},"facing=west,half=upper,hinge=right,open=true":{"model":"nnparadisemod:redstone_door_top","y":90},"facing=north,half=upper,hinge=right,open=true":{"model":"nnparadisemod:redstone_door_top","y":180},"facing=east,half=lower,hinge=left,open=false":{"model":"nnparadisemod:redstone_door_bottom"},"facing=south,half=lower,hinge=left,open=false":{"model":"nnparadisemod:redstone_door_bottom","y":90},"facing=west,half=lower,hinge=left,open=false":{"model":"nnparadisemod:redstone_door_bottom","y":180},"facing=north,half=lower,hinge=left,open=false":{"model":"nnparadisemod:redstone_door_bottom","y":270},"facing=east,half=lower,hinge=right,open=false":{"model":"nnparadisemod:redstone_door_bottom_rh"},"facing=south,half=lower,hinge=right,open=false":{"model":"nnparadisemod:redstone_door_bottom_rh","y":90},"facing=west,half=lower,hinge=right,open=false":{"model":"nnparadisemod:redstone_door_bottom_rh","y":180},"facing=north,half=lower,hinge=right,open=false":{"model":"nnparadisemod:redstone_door_bottom_rh","y":270},"facing=east,half=lower,hinge=left,open=true":{"model":"nnparadisemod:redstone_door_bottom_rh","y":90},"facing=south,half=lower,hinge=left,open=true":{"model":"nnparadisemod:redstone_door_bottom_rh","y":180},"facing=west,half=lower,hinge=left,open=true":{"model":"nnparadisemod:redstone_door_bottom_rh","y":270},"facing=north,half=lower,hinge=left,open=true":{"model":"nnparadisemod:redstone_door_bottom_rh"},"facing=east,half=lower,hinge=right,open=true":{"model":"nnparadisemod:redstone_door_bottom","y":270},"facing=south,half=lower,hinge=right,open=true":{"model":"nnparadisemod:redstone_door_bottom"},"facing=west,half=lower,hinge=right,open=true":{"model":"nnparadisemod:redstone_door_bottom","y":90},"facing=north,half=lower,hinge=right,open=true":{"model":"nnparadisemod:redstone_door_bottom","y":180},"facing=east,half=upper,hinge=left,open=false":{"model":"nnparadisemod:redstone_door_top"},"facing=south,half=upper,hinge=left,open=false":{"model":"nnparadisemod:redstone_door_top","y":90},"facing=west,half=upper,hinge=left,open=false":{"model":"nnparadisemod:redstone_door_top","y":180},"facing=north,half=upper,hinge=left,open=false":{"model":"nnparadisemod:redstone_door_top","y":270},"facing=east,half=upper,hinge=right,open=false":{"model":"nnparadisemod:redstone_door_top_rh"},"facing=south,half=upper,hinge=right,open=false":{"model":"nnparadisemod:redstone_door_top_rh","y":90},"facing=west,half=upper,hinge=right,open=false":{"model":"nnparadisemod:redstone_door_top_rh","y":180},"facing=north,half=upper,hinge=right,open=false":{"model":"nnparadisemod:redstone_door_top_rh","y":270},"facing=east,half=upper,hinge=left,open=true":{"model":"nnparadisemod:redstone_door_top_rh","y":90},"facing=south,half=upper,hinge=left,open=true":{"model":"nnparadisemod:redstone_door_top_rh","y":180},"facing=west,half=upper,hinge=left,open=true":{"model":"nnparadisemod:redstone_door_top_rh","y":270},"facing=north,half=upper,hinge=left,open=true":{"model":"nnparadisemod:redstone_door_top_rh"},"facing=east,half=upper,hinge=right,open=true":{"model":"nnparadisemod:redstone_door_top","y":270},"facing=south,half=upper,hinge=right,open=true":{"model":"nnparadisemod:redstone_door_top"},"facing=west,half=upper,hinge=right,open=true":{"model":"nnparadisemod:redstone_door_top","y":90},"facing=north,half=upper,hinge=right,open=true":{"model":"nnparadisemod:redstone_door_top","y":180}}} diff --git a/src/main/resources/assets/nnparadisemod/blockstates/redstone_fence_gate.json b/src/main/resources/assets/nnparadisemod/blockstates/redstone_fence_gate.json index 6a479c1..4d466f2 100644 --- a/src/main/resources/assets/nnparadisemod/blockstates/redstone_fence_gate.json +++ b/src/main/resources/assets/nnparadisemod/blockstates/redstone_fence_gate.json @@ -1 +1 @@ -{"variants":{"facing=south,in_wall=false,open=false,powered=true":{"model":"nnparadisemod:redstone_fence_gate_closed","uvlock":true},"facing=west,in_wall=false,open=false,powered=true":{"model":"nnparadisemod:redstone_fence_gate_closed","uvlock":true,"y":90},"facing=north,in_wall=false,open=false,powered=true":{"model":"nnparadisemod:redstone_fence_gate_closed","uvlock":true,"y":180},"facing=east,in_wall=false,open=false,powered=true":{"model":"nnparadisemod:redstone_fence_gate_closed","uvlock":true,"y":270},"facing=south,in_wall=false,open=true,powered=true":{"model":"nnparadisemod:redstone_fence_gate_open","uvlock":true},"facing=west,in_wall=false,open=true,powered=true":{"model":"nnparadisemod:redstone_fence_gate_open","uvlock":true,"y":90},"facing=north,in_wall=false,open=true,powered=true":{"model":"nnparadisemod:redstone_fence_gate_open","uvlock":true,"y":180},"facing=east,in_wall=false,open=true,powered=true":{"model":"nnparadisemod:redstone_fence_gate_open","uvlock":true,"y":270},"facing=south,in_wall=true,open=false,powered=true":{"model":"nnparadisemod:redstone_wall_gate_closed","uvlock":true},"facing=west,in_wall=true,open=false,powered=true":{"model":"nnparadisemod:redstone_wall_gate_closed","uvlock":true,"y":90},"facing=north,in_wall=true,open=false,powered=true":{"model":"nnparadisemod:redstone_wall_gate_closed","uvlock":true,"y":180},"facing=east,in_wall=true,open=false,powered=true":{"model":"nnparadisemod:redstone_wall_gate_closed","uvlock":true,"y":270},"facing=south,in_wall=true,open=true,powered=true":{"model":"nnparadisemod:redstone_wall_gate_open","uvlock":true},"facing=west,in_wall=true,open=true,powered=true":{"model":"nnparadisemod:redstone_wall_gate_open","uvlock":true,"y":90},"facing=north,in_wall=true,open=true,powered=true":{"model":"nnparadisemod:redstone_wall_gate_open","uvlock":true,"y":180},"facing=east,in_wall=true,open=true,powered=true":{"model":"nnparadisemod:redstone_wall_gate_open","uvlock":true,"y":270},"facing=south,in_wall=false,open=false,powered=false":{"model":"nnparadisemod:redstone_fence_gate_closed","uvlock":true},"facing=west,in_wall=false,open=false,powered=false":{"model":"nnparadisemod:redstone_fence_gate_closed","uvlock":true,"y":90},"facing=north,in_wall=false,open=false,powered=false":{"model":"nnparadisemod:redstone_fence_gate_closed","uvlock":true,"y":180},"facing=east,in_wall=false,open=false,powered=false":{"model":"nnparadisemod:redstone_fence_gate_closed","uvlock":true,"y":270},"facing=south,in_wall=false,open=true,powered=false":{"model":"nnparadisemod:redstone_fence_gate_open","uvlock":true},"facing=west,in_wall=false,open=true,powered=false":{"model":"nnparadisemod:redstone_fence_gate_open","uvlock":true,"y":90},"facing=north,in_wall=false,open=true,powered=false":{"model":"nnparadisemod:redstone_fence_gate_open","uvlock":true,"y":180},"facing=east,in_wall=false,open=true,powered=false":{"model":"nnparadisemod:redstone_fence_gate_open","uvlock":true,"y":270},"facing=south,in_wall=true,open=false,powered=false":{"model":"nnparadisemod:redstone_wall_gate_closed","uvlock":true},"facing=west,in_wall=true,open=false,powered=false":{"model":"nnparadisemod:redstone_wall_gate_closed","uvlock":true,"y":90},"facing=north,in_wall=true,open=false,powered=false":{"model":"nnparadisemod:redstone_wall_gate_closed","uvlock":true,"y":180},"facing=east,in_wall=true,open=false,powered=false":{"model":"nnparadisemod:redstone_wall_gate_closed","uvlock":true,"y":270},"facing=south,in_wall=true,open=true,powered=false":{"model":"nnparadisemod:redstone_wall_gate_open","uvlock":true},"facing=west,in_wall=true,open=true,powered=false":{"model":"nnparadisemod:redstone_wall_gate_open","uvlock":true,"y":90},"facing=north,in_wall=true,open=true,powered=false":{"model":"nnparadisemod:redstone_wall_gate_open","uvlock":true,"y":180},"facing=east,in_wall=true,open=true,powered=false":{"model":"nnparadisemod:redstone_wall_gate_open","uvlock":true,"y":270}}} +{"variants":{"facing=south,in_wall=false,open=false":{"model":"nnparadisemod:redstone_fence_gate_closed","uvlock":true},"facing=west,in_wall=false,open=false":{"model":"nnparadisemod:redstone_fence_gate_closed","uvlock":true,"y":90},"facing=north,in_wall=false,open=false":{"model":"nnparadisemod:redstone_fence_gate_closed","uvlock":true,"y":180},"facing=east,in_wall=false,open=false":{"model":"nnparadisemod:redstone_fence_gate_closed","uvlock":true,"y":270},"facing=south,in_wall=false,open=true":{"model":"nnparadisemod:redstone_fence_gate_open","uvlock":true},"facing=west,in_wall=false,open=true":{"model":"nnparadisemod:redstone_fence_gate_open","uvlock":true,"y":90},"facing=north,in_wall=false,open=true":{"model":"nnparadisemod:redstone_fence_gate_open","uvlock":true,"y":180},"facing=east,in_wall=false,open=true":{"model":"nnparadisemod:redstone_fence_gate_open","uvlock":true,"y":270},"facing=south,in_wall=true,open=false":{"model":"nnparadisemod:redstone_wall_gate_closed","uvlock":true},"facing=west,in_wall=true,open=false":{"model":"nnparadisemod:redstone_wall_gate_closed","uvlock":true,"y":90},"facing=north,in_wall=true,open=false":{"model":"nnparadisemod:redstone_wall_gate_closed","uvlock":true,"y":180},"facing=east,in_wall=true,open=false":{"model":"nnparadisemod:redstone_wall_gate_closed","uvlock":true,"y":270},"facing=south,in_wall=true,open=true":{"model":"nnparadisemod:redstone_wall_gate_open","uvlock":true},"facing=west,in_wall=true,open=true":{"model":"nnparadisemod:redstone_wall_gate_open","uvlock":true,"y":90},"facing=north,in_wall=true,open=true":{"model":"nnparadisemod:redstone_wall_gate_open","uvlock":true,"y":180},"facing=east,in_wall=true,open=true":{"model":"nnparadisemod:redstone_wall_gate_open","uvlock":true,"y":270},"facing=south,in_wall=false,open=false":{"model":"nnparadisemod:redstone_fence_gate_closed","uvlock":true},"facing=west,in_wall=false,open=false":{"model":"nnparadisemod:redstone_fence_gate_closed","uvlock":true,"y":90},"facing=north,in_wall=false,open=false":{"model":"nnparadisemod:redstone_fence_gate_closed","uvlock":true,"y":180},"facing=east,in_wall=false,open=false":{"model":"nnparadisemod:redstone_fence_gate_closed","uvlock":true,"y":270},"facing=south,in_wall=false,open=true":{"model":"nnparadisemod:redstone_fence_gate_open","uvlock":true},"facing=west,in_wall=false,open=true":{"model":"nnparadisemod:redstone_fence_gate_open","uvlock":true,"y":90},"facing=north,in_wall=false,open=true":{"model":"nnparadisemod:redstone_fence_gate_open","uvlock":true,"y":180},"facing=east,in_wall=false,open=true":{"model":"nnparadisemod:redstone_fence_gate_open","uvlock":true,"y":270},"facing=south,in_wall=true,open=false":{"model":"nnparadisemod:redstone_wall_gate_closed","uvlock":true},"facing=west,in_wall=true,open=false":{"model":"nnparadisemod:redstone_wall_gate_closed","uvlock":true,"y":90},"facing=north,in_wall=true,open=false":{"model":"nnparadisemod:redstone_wall_gate_closed","uvlock":true,"y":180},"facing=east,in_wall=true,open=false":{"model":"nnparadisemod:redstone_wall_gate_closed","uvlock":true,"y":270},"facing=south,in_wall=true,open=true":{"model":"nnparadisemod:redstone_wall_gate_open","uvlock":true},"facing=west,in_wall=true,open=true":{"model":"nnparadisemod:redstone_wall_gate_open","uvlock":true,"y":90},"facing=north,in_wall=true,open=true":{"model":"nnparadisemod:redstone_wall_gate_open","uvlock":true,"y":180},"facing=east,in_wall=true,open=true":{"model":"nnparadisemod:redstone_wall_gate_open","uvlock":true,"y":270}}} diff --git a/src/main/resources/assets/nnparadisemod/blockstates/sandstone_button.json b/src/main/resources/assets/nnparadisemod/blockstates/sandstone_button.json new file mode 100644 index 0000000..e885ff4 --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/blockstates/sandstone_button.json @@ -0,0 +1 @@ +{"variants":{"facing=up,powered=false":{"model":"nnparadisemod:sandstone_button","uvlock":true},"facing=down,powered=false":{"model":"nnparadisemod:sandstone_button","uvlock":true,"x":180},"facing=east,powered=false":{"model":"nnparadisemod:sandstone_button","uvlock":true,"x":90,"y":90},"facing=west,powered=false":{"model":"nnparadisemod:sandstone_button","uvlock":true,"x":90,"y":270},"facing=south,powered=false":{"model":"nnparadisemod:sandstone_button","uvlock":true,"x":90,"y":180},"facing=north,powered=false":{"model":"nnparadisemod:sandstone_button","uvlock":true,"x":90},"facing=up,powered=true":{"model":"nnparadisemod:sandstone_button_pressed","uvlock":true},"facing=down,powered=true":{"model":"nnparadisemod:sandstone_button_pressed","uvlock":true,"x":180},"facing=east,powered=true":{"model":"nnparadisemod:sandstone_button_pressed","uvlock":true,"x":90,"y":90},"facing=west,powered=true":{"model":"nnparadisemod:sandstone_button_pressed","uvlock":true,"x":90,"y":270},"facing=south,powered=true":{"model":"nnparadisemod:sandstone_button_pressed","uvlock":true,"x":90,"y":180},"facing=north,powered=true":{"model":"nnparadisemod:sandstone_button_pressed","uvlock":true,"x":90}}} diff --git a/src/main/resources/assets/nnparadisemod/blockstates/sandstone_pressure_plate.json b/src/main/resources/assets/nnparadisemod/blockstates/sandstone_pressure_plate.json new file mode 100644 index 0000000..c85b0d7 --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/blockstates/sandstone_pressure_plate.json @@ -0,0 +1 @@ +{"variants":{"powered=false":{"model":"nnparadisemod:sandstone_pressure_plate_up"},"powered=true":{"model":"nnparadisemod:sandstone_pressure_plate_down"}}} diff --git a/src/main/resources/assets/nnparadisemod/lang/en_US.lang b/src/main/resources/assets/nnparadisemod/lang/en_US.lang index dc50ced..ec4d9c6 100644 --- a/src/main/resources/assets/nnparadisemod/lang/en_US.lang +++ b/src/main/resources/assets/nnparadisemod/lang/en_US.lang @@ -98,7 +98,14 @@ item.CactusStick.name=Cactus Stick item.VoidPearl.name=Void Pearl #Blocks -tile.bulletProofGlass.name=Bulletproof Glass +tile.bulletproofGlassPane.name=Blastproof Glass Pane +tile.SandstonePlate.name=Sandstone Pressure Plate +tile.RedSandstonePlate.name=Red Sandstone Pressure Plate +tile.GlassPlate.name=Glass Pressure Plate +tile.SandstoneButton.name=Sandstone Button +tile.RedSandstoneButton.name=Red Sandstone Button +tile.GlassButton.name=Glass Button +tile.bulletProofGlass.name=Blastproof Glass tile.bedrock_slab.name=Bedrock Slab tile.obsidian_slab.name=Obsidian Slab tile.void_slab.name=Void Stone Slab @@ -305,6 +312,7 @@ tile.prismarineCrystalBlock.name=Prismarine Crystal Block fluid.liquid_redstone=Liquid Redstone #Config +config.blackcross=Black Cross config.cavetypes=Cave Types config.caves=Better Caves config.crystalchance=Crystal Chance diff --git a/src/main/resources/assets/nnparadisemod/models/block/bulletproof_glass_pane_noside.json b/src/main/resources/assets/nnparadisemod/models/block/bulletproof_glass_pane_noside.json new file mode 100644 index 0000000..c3d5ffe --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/models/block/bulletproof_glass_pane_noside.json @@ -0,0 +1 @@ +{"parent":"block/pane_noside","textures":{"pane":"nnparadisemod:blocks/bulletproof_glass"}} diff --git a/src/main/resources/assets/nnparadisemod/models/block/bulletproof_glass_pane_noside_alt.json b/src/main/resources/assets/nnparadisemod/models/block/bulletproof_glass_pane_noside_alt.json new file mode 100644 index 0000000..d52d00f --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/models/block/bulletproof_glass_pane_noside_alt.json @@ -0,0 +1 @@ +{"parent":"block/pane_noside_alt","textures":{"pane":"nnparadisemod:blocks/bulletproof_glass"}} diff --git a/src/main/resources/assets/nnparadisemod/models/block/bulletproof_glass_pane_post.json b/src/main/resources/assets/nnparadisemod/models/block/bulletproof_glass_pane_post.json new file mode 100644 index 0000000..fe27100 --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/models/block/bulletproof_glass_pane_post.json @@ -0,0 +1 @@ +{"parent":"block/pane_post","textures":{"edge":"nnparadisemod:blocks/bulletproof_glass","pane":"nnparadisemod:blocks/bulletproof_glass"}} diff --git a/src/main/resources/assets/nnparadisemod/models/block/bulletproof_glass_pane_side.json b/src/main/resources/assets/nnparadisemod/models/block/bulletproof_glass_pane_side.json new file mode 100644 index 0000000..ed70181 --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/models/block/bulletproof_glass_pane_side.json @@ -0,0 +1 @@ +{"parent":"block/pane_side","textures":{"edge":"nnparadisemod:blocks/bulletproof_glass","pane":"nnparadisemod:blocks/bulletproof_glass"}} diff --git a/src/main/resources/assets/nnparadisemod/models/block/bulletproof_glass_pane_side_alt.json b/src/main/resources/assets/nnparadisemod/models/block/bulletproof_glass_pane_side_alt.json new file mode 100644 index 0000000..619e730 --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/models/block/bulletproof_glass_pane_side_alt.json @@ -0,0 +1 @@ +{"parent":"block/pane_side_alt","textures":{"edge":"nnparadisemod:blocks/bulletproof_glass","pane":"nnparadisemod:blocks/bulletproof_glass"}} diff --git a/src/main/resources/assets/nnparadisemod/models/block/diamond_pressure_plate_down.json b/src/main/resources/assets/nnparadisemod/models/block/diamond_pressure_plate_down.json index e8e0b91..1856a20 100644 --- a/src/main/resources/assets/nnparadisemod/models/block/diamond_pressure_plate_down.json +++ b/src/main/resources/assets/nnparadisemod/models/block/diamond_pressure_plate_down.json @@ -1 +1 @@ -{"parent":"block/pressure_plate_up","textures":{"texture":"blocks/diamond_block"}} +{"parent":"block/pressure_plate_down","textures":{"texture":"blocks/diamond_block"}} diff --git a/src/main/resources/assets/nnparadisemod/models/block/glass_button.json b/src/main/resources/assets/nnparadisemod/models/block/glass_button.json new file mode 100644 index 0000000..e7bea3c --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/models/block/glass_button.json @@ -0,0 +1 @@ +{"parent":"block/button","textures":{"texture":"blocks/glass"}} diff --git a/src/main/resources/assets/nnparadisemod/models/block/glass_button_pressed.json b/src/main/resources/assets/nnparadisemod/models/block/glass_button_pressed.json new file mode 100644 index 0000000..0fd046d --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/models/block/glass_button_pressed.json @@ -0,0 +1 @@ +{"parent":"block/button_pressed","textures":{"texture":"blocks/glass"}} diff --git a/src/main/resources/assets/nnparadisemod/models/block/glass_pressure_plate_down.json b/src/main/resources/assets/nnparadisemod/models/block/glass_pressure_plate_down.json new file mode 100644 index 0000000..ccae9df --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/models/block/glass_pressure_plate_down.json @@ -0,0 +1 @@ +{"parent":"block/pressure_plate_down","textures":{"texture":"blocks/glass"}} diff --git a/src/main/resources/assets/nnparadisemod/models/block/glass_pressure_plate_up.json b/src/main/resources/assets/nnparadisemod/models/block/glass_pressure_plate_up.json new file mode 100644 index 0000000..bc2b8f1 --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/models/block/glass_pressure_plate_up.json @@ -0,0 +1 @@ +{"parent":"block/pressure_plate_up","textures":{"texture":"blocks/glass"}} diff --git a/src/main/resources/assets/nnparadisemod/models/block/jungle_button.json b/src/main/resources/assets/nnparadisemod/models/block/jungle_button.json index 729eb9f..aef435d 100644 --- a/src/main/resources/assets/nnparadisemod/models/block/jungle_button.json +++ b/src/main/resources/assets/nnparadisemod/models/block/jungle_button.json @@ -1 +1 @@ -{"parent":"block/button_pressed","textures":{"texture":"blocks/planks_jungle"}} +{"parent":"block/button","textures":{"texture":"blocks/planks_jungle"}} diff --git a/src/main/resources/assets/nnparadisemod/models/block/red_sandstone_button.json b/src/main/resources/assets/nnparadisemod/models/block/red_sandstone_button.json new file mode 100644 index 0000000..d0f5a3c --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/models/block/red_sandstone_button.json @@ -0,0 +1 @@ +{"parent":"block/button","textures":{"texture":"blocks/red_sandstone_top"}} diff --git a/src/main/resources/assets/nnparadisemod/models/block/red_sandstone_button_pressed.json b/src/main/resources/assets/nnparadisemod/models/block/red_sandstone_button_pressed.json new file mode 100644 index 0000000..698ae78 --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/models/block/red_sandstone_button_pressed.json @@ -0,0 +1 @@ +{"parent":"block/button_pressed","textures":{"texture":"blocks/red_sandstone_top"}} diff --git a/src/main/resources/assets/nnparadisemod/models/block/red_sandstone_pressure_plate_down.json b/src/main/resources/assets/nnparadisemod/models/block/red_sandstone_pressure_plate_down.json new file mode 100644 index 0000000..689b521 --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/models/block/red_sandstone_pressure_plate_down.json @@ -0,0 +1 @@ +{"parent":"block/pressure_plate_down","textures":{"texture":"blocks/red_sandstone_top"}} diff --git a/src/main/resources/assets/nnparadisemod/models/block/red_sandstone_pressure_plate_up.json b/src/main/resources/assets/nnparadisemod/models/block/red_sandstone_pressure_plate_up.json new file mode 100644 index 0000000..e34c039 --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/models/block/red_sandstone_pressure_plate_up.json @@ -0,0 +1 @@ +{"parent":"block/pressure_plate_up","textures":{"texture":"blocks/red_sandstone_top"}} diff --git a/src/main/resources/assets/nnparadisemod/models/block/sandstone_button.json b/src/main/resources/assets/nnparadisemod/models/block/sandstone_button.json new file mode 100644 index 0000000..b6a9525 --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/models/block/sandstone_button.json @@ -0,0 +1 @@ +{"parent":"block/button","textures":{"texture":"blocks/sandstone_top"}} diff --git a/src/main/resources/assets/nnparadisemod/models/block/sandstone_button_pressed.json b/src/main/resources/assets/nnparadisemod/models/block/sandstone_button_pressed.json new file mode 100644 index 0000000..0d5d650 --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/models/block/sandstone_button_pressed.json @@ -0,0 +1 @@ +{"parent":"block/button_pressed","textures":{"texture":"blocks/sandstone_top"}} diff --git a/src/main/resources/assets/nnparadisemod/models/block/sandstone_pressure_plate_down.json b/src/main/resources/assets/nnparadisemod/models/block/sandstone_pressure_plate_down.json new file mode 100644 index 0000000..fdccd74 --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/models/block/sandstone_pressure_plate_down.json @@ -0,0 +1 @@ +{"parent":"block/pressure_plate_down","textures":{"texture":"blocks/sandstone_top"}} diff --git a/src/main/resources/assets/nnparadisemod/models/block/sandstone_pressure_plate_up.json b/src/main/resources/assets/nnparadisemod/models/block/sandstone_pressure_plate_up.json new file mode 100644 index 0000000..8f29aa7 --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/models/block/sandstone_pressure_plate_up.json @@ -0,0 +1 @@ +{"parent":"block/pressure_plate_up","textures":{"texture":"blocks/sandstone_top"}} diff --git a/src/main/resources/assets/nnparadisemod/models/item/bulletproof_glass_pane.json b/src/main/resources/assets/nnparadisemod/models/item/bulletproof_glass_pane.json new file mode 100644 index 0000000..b5b78f9 --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/models/item/bulletproof_glass_pane.json @@ -0,0 +1 @@ +{"parent":"item/generated","textures":{"layer0":"nnparadisemod:blocks/bulletproof_glass"},"display":{"thirdperson":{"rotation":[-90,0,0],"translation":[0,1,-3],"scale":[0.55,0.55,0.55]},"firstperson":{"rotation":[0,-135,25],"translation":[0,4,2],"scale":[1.7,1.7,1.7]}}} diff --git a/src/main/resources/assets/nnparadisemod/models/item/glass_button.json b/src/main/resources/assets/nnparadisemod/models/item/glass_button.json new file mode 100644 index 0000000..be113e1 --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/models/item/glass_button.json @@ -0,0 +1 @@ +{"parent":"block/button_inventory","textures":{"texture":"blocks/glass"}} diff --git a/src/main/resources/assets/nnparadisemod/models/item/glass_pressure_plate.json b/src/main/resources/assets/nnparadisemod/models/item/glass_pressure_plate.json new file mode 100644 index 0000000..bc2b8f1 --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/models/item/glass_pressure_plate.json @@ -0,0 +1 @@ +{"parent":"block/pressure_plate_up","textures":{"texture":"blocks/glass"}} diff --git a/src/main/resources/assets/nnparadisemod/models/item/red_sandstone_button.json b/src/main/resources/assets/nnparadisemod/models/item/red_sandstone_button.json new file mode 100644 index 0000000..4852108 --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/models/item/red_sandstone_button.json @@ -0,0 +1 @@ +{"parent":"block/button_inventory","textures":{"texture":"blocks/red_sandstone_top"}} diff --git a/src/main/resources/assets/nnparadisemod/models/item/red_sandstone_pressure_plate.json b/src/main/resources/assets/nnparadisemod/models/item/red_sandstone_pressure_plate.json new file mode 100644 index 0000000..e34c039 --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/models/item/red_sandstone_pressure_plate.json @@ -0,0 +1 @@ +{"parent":"block/pressure_plate_up","textures":{"texture":"blocks/red_sandstone_top"}} diff --git a/src/main/resources/assets/nnparadisemod/models/item/sandstone_button.json b/src/main/resources/assets/nnparadisemod/models/item/sandstone_button.json new file mode 100644 index 0000000..57559b5 --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/models/item/sandstone_button.json @@ -0,0 +1 @@ +{"parent":"block/button_inventory","textures":{"texture":"blocks/sandstone_top"}} diff --git a/src/main/resources/assets/nnparadisemod/models/item/sandstone_pressure_plate.json b/src/main/resources/assets/nnparadisemod/models/item/sandstone_pressure_plate.json new file mode 100644 index 0000000..8f29aa7 --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/models/item/sandstone_pressure_plate.json @@ -0,0 +1 @@ +{"parent":"block/pressure_plate_up","textures":{"texture":"blocks/sandstone_top"}} diff --git a/src/main/resources/assets/nnparadisemod/recipes/blastproof_glass_pane.json b/src/main/resources/assets/nnparadisemod/recipes/blastproof_glass_pane.json new file mode 100644 index 0000000..36238fb --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/recipes/blastproof_glass_pane.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "###" + ], + "key": { + "#": { + "item": "nnparadisemod:bulletproof_glass" + } + }, + "result": { + "item": "nnparadisemod:bulletproof_glass_pane", + "count": 16 + } +} diff --git a/src/main/resources/assets/nnparadisemod/recipes/buttons/generate.py b/src/main/resources/assets/nnparadisemod/recipes/buttons/generate.py deleted file mode 100644 index e1e81b0..0000000 --- a/src/main/resources/assets/nnparadisemod/recipes/buttons/generate.py +++ /dev/null @@ -1,34 +0,0 @@ -from shutil import copyfile -materials=["nnparadisemod:compressed_cactus","end_stone","obsidian","diamond","emerald","gold","iron","cobblestone","mossy_cobblestone","nnparadisemod:glowing_obsidian"] -types=["cactus","end","obsdidian","diamond","emerald","gold","iron","cobblestone","mossy","glowing_obsidian"] -woodtypes=["spruce","birch","jungle","acacia","dark_oak"] -stonetypes=["andesite","diorite","granite"] -stonemeta=[5,3,1] -master=open("type_button.json","r").read() -i=0 -for Type in types: - output=open(Type+"_button.json","w+") - master2=master.replace("Type",Type) - master3=master2.replace("material",materials[i]) - output.write(master3) - output.close() - i=i+1 -i=0 -for wood in woodtypes: - output=open(wood+"_button.json","w+") - master2=master.replace("Type",wood) - master3=master2.replace("material","planks") - master4=master3.replace("0",str(i+1)) - output.write(master4) - output.close() - i=i+1 -i=0 -for stone in stonetypes: - output=open(stone+"_button.json","w+") - master2=master.replace("Type",stone) - master3=master2.replace("material","stone") - master4=master3.replace("0",str(stonemeta[i])) - output.write(master4) - output.close() - i=i+1 - diff --git a/src/main/resources/assets/nnparadisemod/recipes/buttons/glass_button.json b/src/main/resources/assets/nnparadisemod/recipes/buttons/glass_button.json new file mode 100644 index 0000000..e8cf445 --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/recipes/buttons/glass_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "#" + ], + "key": { + "#": { + "item": "minecraft:glass" + } + }, + "result": { + "item": "nnparadisemod:glass_button" + } +} diff --git a/src/main/resources/assets/nnparadisemod/recipes/buttons/glass_trapdoor.json b/src/main/resources/assets/nnparadisemod/recipes/buttons/glass_trapdoor.json deleted file mode 100644 index 8de2c5c..0000000 --- a/src/main/resources/assets/nnparadisemod/recipes/buttons/glass_trapdoor.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "###", - "###" - ], - "key": { - "#": { - "item": "minecraft:glass" - } - }, - "result": { - "item": "nnparadisemod:glass_trapdoor", - "count": 6 - } -} diff --git a/src/main/resources/assets/nnparadisemod/recipes/buttons/red_sandstone_button.json b/src/main/resources/assets/nnparadisemod/recipes/buttons/red_sandstone_button.json new file mode 100644 index 0000000..bd22b42 --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/recipes/buttons/red_sandstone_button.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [{ + "item": "minecraft:red_sandstone", + "data": 0 + } + ], + "result": { + "item": "nnparadisemod:red_sandstone_button", + "count":1 + } +} diff --git a/src/main/resources/assets/nnparadisemod/recipes/buttons/sandstone_button.json b/src/main/resources/assets/nnparadisemod/recipes/buttons/sandstone_button.json new file mode 100644 index 0000000..9753ebb --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/recipes/buttons/sandstone_button.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [{ + "item": "minecraft:sandstone", + "data": 0 + } + ], + "result": { + "item": "nnparadisemod:sandstone_button", + "count":1 + } +} diff --git a/src/main/resources/assets/nnparadisemod/recipes/buttons/type_button.json b/src/main/resources/assets/nnparadisemod/recipes/buttons/type_button.json deleted file mode 100644 index 2a39cb5..0000000 --- a/src/main/resources/assets/nnparadisemod/recipes/buttons/type_button.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "crafting_shaped", - "pattern": [ - "#" - ], - "key": { - "#": { - "item": "material", - "data":0 - } - }, - "result": { - "item": "nnparadisemod:Type_button" - } -} diff --git a/src/main/resources/assets/nnparadisemod/recipes/fence gates/generate.py b/src/main/resources/assets/nnparadisemod/recipes/fence gates/generate.py deleted file mode 100644 index aedd678..0000000 --- a/src/main/resources/assets/nnparadisemod/recipes/fence gates/generate.py +++ /dev/null @@ -1,15 +0,0 @@ -from shutil import copyfile -types=["emerald","iron","diamond","gold","brick"] -blocks=["emerald_block","iron_block","diamond_block","gold_block","brick_block"] -items=["emerald","iron_ingot","diamond","gold_ingot","brick"] -master=open("type_fence_gate.json","r").read() -i=0 -for Type in types: - output=open(Type+"_fence_gate.json","w+") - master2=master.replace("block",blocks[i]) - master3=master2.replace("items",items[i]) - master4=master3.replace("Type",types[i]) - output.write(master4) - output.close() - i=i+1 - diff --git a/src/main/resources/assets/nnparadisemod/recipes/fence gates/type_fence_gate.json b/src/main/resources/assets/nnparadisemod/recipes/fence gates/type_fence_gate.json deleted file mode 100644 index 27bcb1a..0000000 --- a/src/main/resources/assets/nnparadisemod/recipes/fence gates/type_fence_gate.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "crafting_shaped", - "pattern": [ - "bBb", - "bBb" - ], - "key": { - "B": { - "item": "block" - }, - "b": { - "item": "items" - } - }, - "result": { - "item": "nnparadisemod:Type_fence_gate", - "count":3 - } -} diff --git a/src/main/resources/assets/nnparadisemod/recipes/fences/generate.py b/src/main/resources/assets/nnparadisemod/recipes/fences/generate.py deleted file mode 100644 index 1733150..0000000 --- a/src/main/resources/assets/nnparadisemod/recipes/fences/generate.py +++ /dev/null @@ -1,15 +0,0 @@ -from shutil import copyfile -types=["emerald","iron","diamond","gold","brick","cactus"] -blocks=["emerald_block","iron_block","diamond_block","gold_block","brick_block"] -items=["emerald","iron_ingot","diamond","gold_ingot","brick"] -master=open("type_fence.json","r").read() -i=0 -for Type in types: - output=open(Type+"_fence.json","w+") - master2=master.replace("block",blocks[i]) - master3=master2.replace("items",items[i]) - master4=master3.replace("Type",types[i]) - output.write(master4) - output.close() - i=i+1 - diff --git a/src/main/resources/assets/nnparadisemod/recipes/fences/type_fence.json b/src/main/resources/assets/nnparadisemod/recipes/fences/type_fence.json deleted file mode 100644 index 2c94cc3..0000000 --- a/src/main/resources/assets/nnparadisemod/recipes/fences/type_fence.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "crafting_shaped", - "pattern": [ - "BbB", - "BbB" - ], - "key": { - "B": { - "item": "block" - }, - "b": { - "item": "items" - } - }, - "result": { - "item": "nnparadisemod:Type_fence", - "count":6 - } -} diff --git a/src/main/resources/assets/nnparadisemod/recipes/lamps/color_redstone_lamp.json b/src/main/resources/assets/nnparadisemod/recipes/lamps/color_redstone_lamp.json deleted file mode 100644 index 77c1d51..0000000 --- a/src/main/resources/assets/nnparadisemod/recipes/lamps/color_redstone_lamp.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:ore_shaped", - "pattern": [ - "###", - "#X#", - "###" - ], - "key": { - "#": { - "item": "redstone_lamp" - }, - "X": { - "type": "forge:ore_dict", - "ore": "dyeColor" - } - }, - "result": { - "item": "nnparadisemod:color_redstone_lamp", - "count": 8 - } -} diff --git a/src/main/resources/assets/nnparadisemod/recipes/lamps/generate.py b/src/main/resources/assets/nnparadisemod/recipes/lamps/generate.py deleted file mode 100644 index a3783f8..0000000 --- a/src/main/resources/assets/nnparadisemod/recipes/lamps/generate.py +++ /dev/null @@ -1,15 +0,0 @@ -from shutil import copyfile -oredict_dyes=["Black","Red","Green","Brown","Blue","Purple","Cyan","LightGray","Gray","Pink","Lime","Yellow","LightBlue","Magenta","Orange","White"] -colors=["black","red","green","brown","blue","purple","cyan","silver","gray","pink","lime","yellow","light_blue","magenta","orange","white"] -master=open("color_redstone_lamp.json","r").read() -print(master) -i=0 -for color in colors: - print(color) - output=open(color+"_redstone_lamp.json","w+") - master2=master.replace("color",color) - master3=master2.replace("Color",oredict_dyes[i]) - output.write(master3) - output.close() - i=i+1 - diff --git a/src/main/resources/assets/nnparadisemod/recipes/plates/generate.py b/src/main/resources/assets/nnparadisemod/recipes/plates/generate.py deleted file mode 100644 index 894c0d9..0000000 --- a/src/main/resources/assets/nnparadisemod/recipes/plates/generate.py +++ /dev/null @@ -1,34 +0,0 @@ -from shutil import copyfile -materials=["nnparadisemod:compressed_cactus","diamond","emerald","cobblestone","mossy_cobblestone","end_stone"] -types=["cactus","diamond","emerald","cobblestone","mossy","end"] -woodtypes=["spruce","birch","jungle","acacia","dark_oak"] -stonetypes=["andesite","diorite","granite"] -stonemeta=[5,3,1] -master=open("type_pressure_plate.json","r").read() -i=0 -for Type in types: - output=open(Type+"_pressure_plate.json","w+") - master2=master.replace("Type",Type) - master3=master2.replace("material",materials[i]) - output.write(master3) - output.close() - i=i+1 -i=0 -for wood in woodtypes: - output=open(wood+"_pressure_plate.json","w+") - master2=master.replace("Type",wood) - master3=master2.replace("material","planks") - master4=master3.replace("0",str(i+1)) - output.write(master4) - output.close() - i=i+1 -i=0 -for stone in stonetypes: - output=open(stone+"_pressure_plate.json","w+") - master2=master.replace("Type",stone) - master3=master2.replace("material","stone") - master4=master3.replace("0",str(stonemeta[i])) - output.write(master4) - output.close() - i=i+1 - diff --git a/src/main/resources/assets/nnparadisemod/recipes/plates/glass_pressure_plate.json b/src/main/resources/assets/nnparadisemod/recipes/plates/glass_pressure_plate.json new file mode 100644 index 0000000..203d6aa --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/recipes/plates/glass_pressure_plate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "##" + ], + "key": { + "#": { + "item": "minecraft:glass" + } + }, + "result": { + "item": "nnparadisemod:glass_pressure_plate" + } +} diff --git a/src/main/resources/assets/nnparadisemod/recipes/plates/red_sandstone_pressure_plate.json b/src/main/resources/assets/nnparadisemod/recipes/plates/red_sandstone_pressure_plate.json new file mode 100644 index 0000000..6529e42 --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/recipes/plates/red_sandstone_pressure_plate.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "##" + ], + "key": { + "#": { + "item": "minecraft:red_sandstone", + "data":0 + } + }, + "result": { + "item": "nnparadisemod:red_sandstone_pressure_plate" + } +} diff --git a/src/main/resources/assets/nnparadisemod/recipes/plates/sandstone_pressure_plate.json b/src/main/resources/assets/nnparadisemod/recipes/plates/sandstone_pressure_plate.json new file mode 100644 index 0000000..386083f --- /dev/null +++ b/src/main/resources/assets/nnparadisemod/recipes/plates/sandstone_pressure_plate.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "##" + ], + "key": { + "#": { + "item": "minecraft:sandstone", + "data":0 + } + }, + "result": { + "item": "nnparadisemod:sandstone_pressure_plate" + } +} diff --git a/src/main/resources/assets/nnparadisemod/recipes/plates/type_pressure_plate.json b/src/main/resources/assets/nnparadisemod/recipes/plates/type_pressure_plate.json deleted file mode 100644 index 35a46f4..0000000 --- a/src/main/resources/assets/nnparadisemod/recipes/plates/type_pressure_plate.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "crafting_shaped", - "pattern": [ - "##" - ], - "key": { - "#": { - "item": "material", - "data":0 - } - }, - "result": { - "item": "nnparadisemod:Type_pressure_plate" - } -} diff --git a/src/main/resources/assets/nnparadisemod/structures/black_cross.nbt b/src/main/resources/assets/nnparadisemod/structures/black_cross.nbt new file mode 100644 index 0000000000000000000000000000000000000000..d2853cc1354830eb5305c33da98967cf698d1c48 GIT binary patch literal 3262 zcmbVO4^WbM8b;mha&>R79q)uPx4qOgH)T!Jol9wJt|m3x#BfDaJR?`MOd0=#B6*eW zR;HC6c4z2Lq3bH2nwsH1C|fWB+|iWGjEWO8!y*O$AaWmw@?&SNnLB2j;q~{;?|a_o zeV*sV<^1mu%b%iA+4*PzlCM&AVlrKi1y^yt`|vFLN5)y-17E5Sqy}&HKkl`=!ESG? z=dE76&*gsKZS&C!4MPcvdhx_pwqn-am7w@gM zP9S=%bvw16SU_!QRP5tL5bd4Ty19u68rOktXkWGD^}#jLy=%11z8CY;HkKpY@{!DM zGUDlES&wVNCw#Z`OKG^f_M~UjTW6bp;yIN+$X`cXU;ez)zCwDrY2Eg$SaL-fde2t@ z4X)UHxSoC7am2d(gQEf7YsXuUq}&x zI3pSu9drf>?eUX562%mfD;&|u#2t6-%brmsXOpl0J#88BlgYmRfY!v2rox2n8P(*9 z$J~d6gzbI|RLw^@2qo=a{Gn^GSqZ6#~Dju^GuhBTWwdLvlSVxxs-PN4Dyv-X8}D$5!=Jye@WaZa^!6( zPwvfh)ihcs@B+|Qq1F^v(OUveenI?%5>?b}ebhm;xBN%wjyl%?8fO`xQ`Vr@DNqs} zszPgIY|6+O`;Rv<*6?(Ab7!tjZf5Y|0Zrrcr|~{J;uVsRqUQBSfAY)DW8XQs4QazS zaX$2{^B)%ulyj!T<@INfWE*DOzs_!F6F1t(1DxDX?MF)+`!+OU{GU-{eKPKflzo@e z(23B1OB(pJ|ggjSKi%g>7?MXms_mm*(|AI>Bh z#0*0hzFo8epPmQ&4(|=n3d#@$P~2-N5FMwjHz6GQlwqDHZbJzGsm`LB7!C#If?a5b-@n=@ z>DxcOECK+bT`bDR;wpc*z142iR@4L-ok>MFdE4ziHGh>*7-AmekDELM58N+ra*2>y zuZc3X!v5OJ{MPr=%K_CelTimKRfu*6@%=`)1x>qB>u-9l=(r%zx~mB!S9wNZgl{4@ zHO5!E!9=diEeS^c|B$=eK<={1CX&NBrL`s(6{vO{tV{PWolMsnv}W{z2kncp5LiD( zp^;8h^+j+>P3D@zouUNZ5VA}o=C?UlOl}^emhLCwi&E19qVs7tmo zOj<_Cg3}?4`6h>6mf5s3DISV&w|oy;@k4@e3!2newJ+Q-Bo7?{zTB{g`UQr67@{DH z94IsdMxE-I?>H6Fx{0*D94C)HCebNPgY9-6e;W%xtjwYJh{L2!mvdUM-z6e{Vs_e6pd`LuS@A z_b9qze6f!KHM?Yd!KJlNXpFJ}a;{dv2?`zyUtujetWTY=%38aXVP2+Gf^!J}-;Kh; z{0!*uH^O^wV$R7wR#5R~Ph+U@P>qSQrSd`!6Q^umNu<+YA|2ZW7?ph-tXPTBKY(!J z+Q5*8DFxDCV!9T5)FlK+NNhV62(K0tedZx-+MAxss;yHA2x2uKRs@`ge3x23*e<7Gm98C6ns}S?vF4%4ZE)yj5*I(=4 zcdW?!f1uXWVw)seRF*#gP=I3w$Tr~0&j2cSamIb+EJG^5M$u?oU0N3PT@3~j4vr{w zQ|ZH9TtRPpJvYc%HWkLuP36WwOPoMuTVY64rMIAG>X#(?>}W^);;=>x~!MtYtrH7zs_=FQWMaY0?OI41YD>?v(_u_b4oiQ&q+ zPilE|Rea;xw=b6F^dCM*ZOhX3)V;vGmM{wA^z-mvd=6c|*h$aGo_p@@l6QNw@~Okz uL|k!AWCu6JdxZNYY+R=zlGMbf%DGCJGhcDtg{vRZBcj)@L+q|aApQf`3euba literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/nnparadisemod/structures/black_cross_void.nbt b/src/main/resources/assets/nnparadisemod/structures/black_cross_void.nbt new file mode 100644 index 0000000000000000000000000000000000000000..7acddbd874ed83c20620605312a6f2649b7404f7 GIT binary patch literal 3189 zcmbVOYfw{X8YV%opvZcuTa1EiFC#@Dl?Kukh*PI^I|Lb_B?ytr(uff-#*|wkH@7xB z5(Znj1f@VLt_A?BnSx!dq_g^<;U*qnqN8ReCPe1 z?|Gl+d5=%&8%~yAnfzF3BJ`$sZbldKHaW(9=9Abxcn`teYvc<}6nd;XpGw6z@4l_z1UE6D}2jl#K(d?X8@6s<$M z;Ss?Pw_Y@U_d&`|w$pnhekpoL_e)rf)W_LCyZ07)6W-~PXd7C&bs%uM+=G#KZ_z6) z{mi%2?LV`gJ?ahgau%1krEFm%kB0@VpUQ@x2InT7tUHfRbHTPpii@c!NcK8TvDb*d zDF4{LLh<1D)jQIC2jks_HTE6FnSKkut}W$nIo`Wz3>zDqyQ`VHU9`94s9SJciDt>Z zJo9ecUp*UD6E)4$%*7a5)DWLPiVc}XaAn$z|$78>jkb zF3WcpK@kNN!h(*E1oE9p(-5UToUx!a1p9GTe%Gnpia?hlEc7Zt#8ODQf7hcXEx>Xqe4|0)E5PP(+&Ujx~WRRxU;}}JTC+*1! zZf<%XeuX@f9@yy<*ieqIX)qE;RCq#8~#>{NyJm04yzx1o%^aL@SJDENQi;=d%=3`p+lhOydq4B@(Ip95$oGJb7=H?-=TH@5>R=pNv% zk%_8D{Xif{E3IZ$V+zK{i0#}P{#LHliM=ZQ=}vDFd=yF7r6JwO$@)rjDsZ4JPh)H# z)SXD6w{&?iNatPEp8)Dn58Hqy@uZyvmqL%CT>20` zNI{%cHjx)2?QVeFfp)92ok9A16ECd7Glv&1HR}E9eXf@BSvx(oJowW3B%%^7Xel1T zYFL$>MS`EM*W)WAYs}*TM&W{m4mK0l)}v8+ zh1ofh@e{*3C;0g`G)$GOjxiIbIl?JcV+6aVCNjDb%HfLb>VW-INwhT%H6Oi7XnJ@R z-Xep(;Q=4|2_91xv3h83Z&~fXSqtR8+RpJoDb4K2ihPp>F)lX2OgOcU#FD3m#b!fG^w=9n|r$z z3IXG%1J%j97JNdOk{sIEcx9-jXJ$64bV#2^U)I$d7d48u7cY{%yC^y3xaFt)KHM%Q w6H%nEHa;Fwjc6o#%H=+4k0L)Ytd_|xqW`O5>=4fMIB~@p;Y-4fUw3l)H~xB;S^xk5 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/nnparadisemod/textures/blocks/.directory b/src/main/resources/assets/nnparadisemod/textures/blocks/.directory index 137b0a0..5c7304d 100644 --- a/src/main/resources/assets/nnparadisemod/textures/blocks/.directory +++ b/src/main/resources/assets/nnparadisemod/textures/blocks/.directory @@ -1,4 +1,4 @@ [Dolphin] PreviewsShown=true -Timestamp=2018,1,2,21,52,30 -Version=3 +Timestamp=2018,12,29,12,38,45 +Version=4 diff --git a/src/main/resources/assets/nnparadisemod/textures/entity/crates/acacia_crate.png b/src/main/resources/assets/nnparadisemod/textures/entity/crates/acacia_crate.png new file mode 100644 index 0000000000000000000000000000000000000000..913025b494131213810b1fcb20e91bec7373df0a GIT binary patch literal 6726 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/nnparadisemod/textures/entity/crates/birch_crate.png b/src/main/resources/assets/nnparadisemod/textures/entity/crates/birch_crate.png new file mode 100644 index 0000000000000000000000000000000000000000..d5b5da4f312393c7238ac11b473581447886f086 GIT binary patch literal 6977 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 DJ-K>9 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/nnparadisemod/textures/entity/crates/dark_oak_crate.png b/src/main/resources/assets/nnparadisemod/textures/entity/crates/dark_oak_crate.png new file mode 100644 index 0000000000000000000000000000000000000000..40908e79fd141edb822cde6ae83101480e841908 GIT binary patch literal 5172 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 iFsPjs+5F>|%>N79tBsB28o%N}8pS?(V++|9!ZR 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 Tx<}rBhXnxqtRhn(Z5s4HpwSh_i_*S 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