From 909a59cde86ebd84476de75d36d6aea1872bbc02 Mon Sep 17 00:00:00 2001 From: alexbegt Date: Fri, 2 Sep 2016 15:34:02 -0400 Subject: [PATCH] Split code up into Nether, Worldgen, and Overworld. Add Stairs (unlocalized currently), slabs, tainted soil, and glass. --- build.properties | 12 +- src/main/java/com/progwml6/natura/Natura.java | 5 + .../progwml6/natura/common/NaturaPulse.java | 12 + .../logs => common/block}/BlockEnumLog.java | 2 +- .../client}/GrassColorizer.java | 7 +- .../client}/LeavesColorizer.java | 11 +- .../item/ItemBlockLeaves.java | 2 +- .../natura/library/NaturaRegistry.java | 9 - .../progwml6/natura/nether/NaturaNether.java | 97 +++++++ .../natura/nether/NetherClientProxy.java | 135 +++++++++ .../nether/block/glass/BlockNetherGlass.java | 140 ++++++++++ .../block/leaves}/BlockNetherLeaves.java | 6 +- .../block/leaves}/BlockNetherLeaves2.java | 6 +- .../block/logs}/BlockNetherLog.java | 4 +- .../block/planks}/BlockNetherPlanks.java | 2 +- .../nether/block/sand/BlockHeatSand.java | 56 ++++ .../block/saplings}/BlockNetherSapling.java | 2 +- .../nether/block/slabs/BlockNetherSlab.java | 83 ++++++ .../nether/block/soil/BlockTaintedSoil.java | 82 ++++++ .../natura/overworld/NaturaOverworld.java | 129 +++++++++ .../overworld/OverworldClientProxy.java | 239 ++++++++++++++++ .../block/grass/BlockColoredGrass.java | 2 +- .../block/leaves}/BlockOverworldLeaves.java | 10 +- .../block/leaves}/BlockOverworldLeaves2.java | 12 +- .../block/leaves}/BlockRedwoodLeaves.java | 6 +- .../block/logs}/BlockOverworldLog.java | 5 +- .../block/logs}/BlockOverworldLog2.java | 5 +- .../block/logs}/BlockRedwoodLog.java | 2 +- .../block/planks}/BlockOverworldPlanks.java | 2 +- .../saplings}/BlockOverworldSapling.java | 22 +- .../saplings}/BlockOverworldSapling2.java | 10 +- .../block/saplings}/BlockRedwoodSapling.java | 6 +- .../block/slabs}/BlockColoredGrassSlab.java | 12 +- .../block/slabs/BlockOverworldSlab.java | 86 ++++++ .../block/slabs/BlockOverworldSlab2.java | 84 ++++++ .../plugin/waila/BlocksDataProvider.java | 50 ++-- .../natura/plugin/waila/WailaRegistrar.java | 34 ++- .../progwml6/natura/world/NaturaWorld.java | 73 ----- .../natura/world/WorldClientProxy.java | 261 ------------------ .../natura/world/material/CloudMaterial.java | 50 ---- .../worldgen/OverworldTreeGenerator.java | 4 +- .../world/worldgen/WillowTreeGenerator.java | 4 +- .../natura/blockstates/nether_glass.json | 21 ++ .../natura/blockstates/nether_heat_sand.json | 15 + .../natura/blockstates/nether_slab.json | 35 +++ .../blockstates/nether_stairs_bloodwood.json | 56 ++++ .../blockstates/nether_stairs_darkwood.json | 56 ++++ .../blockstates/nether_stairs_fusewood.json | 56 ++++ .../blockstates/nether_stairs_ghostwood.json | 56 ++++ .../blockstates/nether_tainted_soil.json | 26 ++ .../natura/blockstates/overworld_slab.json | 38 +++ .../natura/blockstates/overworld_slab2.json | 35 +++ .../overworld_stairs_amaranth.json | 56 ++++ .../overworld_stairs_eucalyptus.json | 56 ++++ .../blockstates/overworld_stairs_hopseed.json | 56 ++++ .../blockstates/overworld_stairs_maple.json | 56 ++++ .../blockstates/overworld_stairs_redwood.json | 56 ++++ .../blockstates/overworld_stairs_sakura.json | 56 ++++ .../overworld_stairs_silverbell.json | 56 ++++ .../blockstates/overworld_stairs_tiger.json | 56 ++++ .../blockstates/overworld_stairs_willow.json | 56 ++++ .../resources/assets/natura/lang/en_US.lang | 40 ++- .../textures/blocks/glass/glass_heat.png | Bin 0 -> 914 bytes .../textures/blocks/glass/glass_soul.png | Bin 0 -> 557 bytes .../natura/textures/blocks/sand/heat_sand.png | Bin 0 -> 772 bytes .../blocks/soil/tainted_farmland_dry.png | Bin 0 -> 542 bytes .../blocks/soil/tainted_farmland_heated.png | Bin 0 -> 254 bytes .../textures/blocks/soil/tainted_soil.png | Bin 0 -> 263 bytes 68 files changed, 2218 insertions(+), 501 deletions(-) rename src/main/java/com/progwml6/natura/{world/block/logs => common/block}/BlockEnumLog.java (98%) rename src/main/java/com/progwml6/natura/{world/client/colorizers => common/client}/GrassColorizer.java (94%) rename src/main/java/com/progwml6/natura/{world/client/colorizers => common/client}/LeavesColorizer.java (90%) rename src/main/java/com/progwml6/natura/{world => common}/item/ItemBlockLeaves.java (90%) create mode 100644 src/main/java/com/progwml6/natura/nether/NaturaNether.java create mode 100644 src/main/java/com/progwml6/natura/nether/NetherClientProxy.java create mode 100644 src/main/java/com/progwml6/natura/nether/block/glass/BlockNetherGlass.java rename src/main/java/com/progwml6/natura/{world/block/leaves/nether => nether/block/leaves}/BlockNetherLeaves.java (96%) rename src/main/java/com/progwml6/natura/{world/block/leaves/nether => nether/block/leaves}/BlockNetherLeaves2.java (96%) rename src/main/java/com/progwml6/natura/{world/block/logs/nether => nether/block/logs}/BlockNetherLog.java (97%) rename src/main/java/com/progwml6/natura/{world/block/planks/nether => nether/block/planks}/BlockNetherPlanks.java (96%) create mode 100644 src/main/java/com/progwml6/natura/nether/block/sand/BlockHeatSand.java rename src/main/java/com/progwml6/natura/{world/block/saplings/nether => nether/block/saplings}/BlockNetherSapling.java (98%) create mode 100644 src/main/java/com/progwml6/natura/nether/block/slabs/BlockNetherSlab.java create mode 100644 src/main/java/com/progwml6/natura/nether/block/soil/BlockTaintedSoil.java create mode 100644 src/main/java/com/progwml6/natura/overworld/NaturaOverworld.java create mode 100644 src/main/java/com/progwml6/natura/overworld/OverworldClientProxy.java rename src/main/java/com/progwml6/natura/{world => overworld}/block/grass/BlockColoredGrass.java (95%) rename src/main/java/com/progwml6/natura/{world/block/leaves/overworld => overworld/block/leaves}/BlockOverworldLeaves.java (94%) rename src/main/java/com/progwml6/natura/{world/block/leaves/overworld => overworld/block/leaves}/BlockOverworldLeaves2.java (94%) rename src/main/java/com/progwml6/natura/{world/block/leaves/overworld => overworld/block/leaves}/BlockRedwoodLeaves.java (97%) rename src/main/java/com/progwml6/natura/{world/block/logs/overworld => overworld/block/logs}/BlockOverworldLog.java (94%) rename src/main/java/com/progwml6/natura/{world/block/logs/overworld => overworld/block/logs}/BlockOverworldLog2.java (94%) rename src/main/java/com/progwml6/natura/{world/block/logs/overworld => overworld/block/logs}/BlockRedwoodLog.java (96%) rename src/main/java/com/progwml6/natura/{world/block/planks/overworld => overworld/block/planks}/BlockOverworldPlanks.java (95%) rename src/main/java/com/progwml6/natura/{world/block/saplings/overworld => overworld/block/saplings}/BlockOverworldSapling.java (80%) rename src/main/java/com/progwml6/natura/{world/block/saplings/overworld => overworld/block/saplings}/BlockOverworldSapling2.java (91%) rename src/main/java/com/progwml6/natura/{world/block/saplings/overworld => overworld/block/saplings}/BlockRedwoodSapling.java (97%) rename src/main/java/com/progwml6/natura/{world/block/grass => overworld/block/slabs}/BlockColoredGrassSlab.java (55%) create mode 100644 src/main/java/com/progwml6/natura/overworld/block/slabs/BlockOverworldSlab.java create mode 100644 src/main/java/com/progwml6/natura/overworld/block/slabs/BlockOverworldSlab2.java delete mode 100644 src/main/java/com/progwml6/natura/world/material/CloudMaterial.java create mode 100644 src/main/resources/assets/natura/blockstates/nether_glass.json create mode 100644 src/main/resources/assets/natura/blockstates/nether_heat_sand.json create mode 100644 src/main/resources/assets/natura/blockstates/nether_slab.json create mode 100644 src/main/resources/assets/natura/blockstates/nether_stairs_bloodwood.json create mode 100644 src/main/resources/assets/natura/blockstates/nether_stairs_darkwood.json create mode 100644 src/main/resources/assets/natura/blockstates/nether_stairs_fusewood.json create mode 100644 src/main/resources/assets/natura/blockstates/nether_stairs_ghostwood.json create mode 100644 src/main/resources/assets/natura/blockstates/nether_tainted_soil.json create mode 100644 src/main/resources/assets/natura/blockstates/overworld_slab.json create mode 100644 src/main/resources/assets/natura/blockstates/overworld_slab2.json create mode 100644 src/main/resources/assets/natura/blockstates/overworld_stairs_amaranth.json create mode 100644 src/main/resources/assets/natura/blockstates/overworld_stairs_eucalyptus.json create mode 100644 src/main/resources/assets/natura/blockstates/overworld_stairs_hopseed.json create mode 100644 src/main/resources/assets/natura/blockstates/overworld_stairs_maple.json create mode 100644 src/main/resources/assets/natura/blockstates/overworld_stairs_redwood.json create mode 100644 src/main/resources/assets/natura/blockstates/overworld_stairs_sakura.json create mode 100644 src/main/resources/assets/natura/blockstates/overworld_stairs_silverbell.json create mode 100644 src/main/resources/assets/natura/blockstates/overworld_stairs_tiger.json create mode 100644 src/main/resources/assets/natura/blockstates/overworld_stairs_willow.json create mode 100644 src/main/resources/assets/natura/textures/blocks/glass/glass_heat.png create mode 100644 src/main/resources/assets/natura/textures/blocks/glass/glass_soul.png create mode 100644 src/main/resources/assets/natura/textures/blocks/sand/heat_sand.png create mode 100644 src/main/resources/assets/natura/textures/blocks/soil/tainted_farmland_dry.png create mode 100644 src/main/resources/assets/natura/textures/blocks/soil/tainted_farmland_heated.png create mode 100644 src/main/resources/assets/natura/textures/blocks/soil/tainted_soil.png diff --git a/build.properties b/build.properties index 6c89936d..5cc2266d 100644 --- a/build.properties +++ b/build.properties @@ -2,12 +2,12 @@ mod_version=4.0.0 minecraft_version=1.10.2 -forge_version=12.18.1.2056 -mappings=snapshot_20160812 +forge_version=12.18.1.2075 +mappings=snapshot_20160828 -mantle_version=0.10.4.jenkins163 -tconstruct_version=2.4.0.jenkins322 +mantle_version=0.10.4.jenkins165 +tconstruct_version=2.4.0.jenkins330 -jei_version=3.8.0.241 +jei_version=3.9.0.246 waila_version=1.7.0-B3 -mcmultipart_version=1.2.1_77 \ No newline at end of file +mcmultipart_version=1.3.0_82 \ No newline at end of file diff --git a/src/main/java/com/progwml6/natura/Natura.java b/src/main/java/com/progwml6/natura/Natura.java index 480a3e8d..5adf43ba 100644 --- a/src/main/java/com/progwml6/natura/Natura.java +++ b/src/main/java/com/progwml6/natura/Natura.java @@ -7,6 +7,8 @@ import com.progwml6.natura.common.config.Config; import com.progwml6.natura.entities.NaturaEntities; import com.progwml6.natura.library.Util; +import com.progwml6.natura.nether.NaturaNether; +import com.progwml6.natura.overworld.NaturaOverworld; import com.progwml6.natura.plugin.waila.Waila; import com.progwml6.natura.shared.NaturaCommons; import com.progwml6.natura.world.NaturaWorld; @@ -40,7 +42,10 @@ public class Natura static { pulseManager.registerPulse(new NaturaCommons()); + pulseManager.registerPulse(new NaturaOverworld()); + pulseManager.registerPulse(new NaturaNether()); pulseManager.registerPulse(new NaturaEntities()); + pulseManager.registerPulse(new NaturaWorld()); pulseManager.registerPulse(new Waila()); diff --git a/src/main/java/com/progwml6/natura/common/NaturaPulse.java b/src/main/java/com/progwml6/natura/common/NaturaPulse.java index 35103188..a1170672 100644 --- a/src/main/java/com/progwml6/natura/common/NaturaPulse.java +++ b/src/main/java/com/progwml6/natura/common/NaturaPulse.java @@ -5,6 +5,8 @@ import com.progwml6.natura.Natura; import com.progwml6.natura.entities.NaturaEntities; import com.progwml6.natura.library.Util; +import com.progwml6.natura.nether.NaturaNether; +import com.progwml6.natura.overworld.NaturaOverworld; import com.progwml6.natura.world.NaturaWorld; import net.minecraft.block.Block; @@ -41,6 +43,16 @@ protected static boolean isWorldLoaded() return Natura.pulseManager.isPulseLoaded(NaturaWorld.PulseId); } + protected static boolean isOverworldLoaded() + { + return Natura.pulseManager.isPulseLoaded(NaturaOverworld.PulseId); + } + + protected static boolean isNetherLoaded() + { + return Natura.pulseManager.isPulseLoaded(NaturaNether.PulseId); + } + /** * Sets the correct unlocalized name and registers the item. */ diff --git a/src/main/java/com/progwml6/natura/world/block/logs/BlockEnumLog.java b/src/main/java/com/progwml6/natura/common/block/BlockEnumLog.java similarity index 98% rename from src/main/java/com/progwml6/natura/world/block/logs/BlockEnumLog.java rename to src/main/java/com/progwml6/natura/common/block/BlockEnumLog.java index ba78d4b8..35511493 100644 --- a/src/main/java/com/progwml6/natura/world/block/logs/BlockEnumLog.java +++ b/src/main/java/com/progwml6/natura/common/block/BlockEnumLog.java @@ -1,4 +1,4 @@ -package com.progwml6.natura.world.block.logs; +package com.progwml6.natura.common.block; import com.progwml6.natura.library.NaturaRegistry; diff --git a/src/main/java/com/progwml6/natura/world/client/colorizers/GrassColorizer.java b/src/main/java/com/progwml6/natura/common/client/GrassColorizer.java similarity index 94% rename from src/main/java/com/progwml6/natura/world/client/colorizers/GrassColorizer.java rename to src/main/java/com/progwml6/natura/common/client/GrassColorizer.java index a64dfd34..151488a7 100644 --- a/src/main/java/com/progwml6/natura/world/client/colorizers/GrassColorizer.java +++ b/src/main/java/com/progwml6/natura/common/client/GrassColorizer.java @@ -1,4 +1,4 @@ -package com.progwml6.natura.world.client.colorizers; +package com.progwml6.natura.common.client; import java.io.IOException; @@ -6,7 +6,7 @@ import com.progwml6.natura.Natura; import com.progwml6.natura.library.Util; -import com.progwml6.natura.world.block.grass.BlockColoredGrass; +import com.progwml6.natura.overworld.block.grass.BlockColoredGrass; import net.minecraft.client.renderer.texture.TextureUtil; import net.minecraft.client.resources.IResourceManager; @@ -17,7 +17,10 @@ import net.minecraft.world.ColorizerGrass; import net.minecraft.world.IBlockAccess; import net.minecraft.world.biome.Biome; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +@SideOnly(Side.CLIENT) public class GrassColorizer implements IResourceManagerReloadListener { private static int[] colorBufferBlue = new int[65536]; diff --git a/src/main/java/com/progwml6/natura/world/client/colorizers/LeavesColorizer.java b/src/main/java/com/progwml6/natura/common/client/LeavesColorizer.java similarity index 90% rename from src/main/java/com/progwml6/natura/world/client/colorizers/LeavesColorizer.java rename to src/main/java/com/progwml6/natura/common/client/LeavesColorizer.java index 8f5a92a0..d9873ee1 100644 --- a/src/main/java/com/progwml6/natura/world/client/colorizers/LeavesColorizer.java +++ b/src/main/java/com/progwml6/natura/common/client/LeavesColorizer.java @@ -1,13 +1,16 @@ -package com.progwml6.natura.world.client.colorizers; +package com.progwml6.natura.common.client; -import com.progwml6.natura.world.block.leaves.overworld.BlockRedwoodLeaves; -import com.progwml6.natura.world.block.logs.overworld.BlockOverworldLog; -import com.progwml6.natura.world.block.logs.overworld.BlockOverworldLog2; +import com.progwml6.natura.overworld.block.leaves.BlockRedwoodLeaves; +import com.progwml6.natura.overworld.block.logs.BlockOverworldLog; +import com.progwml6.natura.overworld.block.logs.BlockOverworldLog2; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.biome.BiomeColorHelper; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +@SideOnly(Side.CLIENT) public class LeavesColorizer { public static int mapleColor = 0xcc5718; diff --git a/src/main/java/com/progwml6/natura/world/item/ItemBlockLeaves.java b/src/main/java/com/progwml6/natura/common/item/ItemBlockLeaves.java similarity index 90% rename from src/main/java/com/progwml6/natura/world/item/ItemBlockLeaves.java rename to src/main/java/com/progwml6/natura/common/item/ItemBlockLeaves.java index a5544f75..f9b876fa 100644 --- a/src/main/java/com/progwml6/natura/world/item/ItemBlockLeaves.java +++ b/src/main/java/com/progwml6/natura/common/item/ItemBlockLeaves.java @@ -1,4 +1,4 @@ -package com.progwml6.natura.world.item; +package com.progwml6.natura.common.item; import net.minecraft.block.Block; import slimeknights.mantle.item.ItemBlockMeta; diff --git a/src/main/java/com/progwml6/natura/library/NaturaRegistry.java b/src/main/java/com/progwml6/natura/library/NaturaRegistry.java index cdb515ea..57a0f54f 100644 --- a/src/main/java/com/progwml6/natura/library/NaturaRegistry.java +++ b/src/main/java/com/progwml6/natura/library/NaturaRegistry.java @@ -1,8 +1,5 @@ package com.progwml6.natura.library; -import com.progwml6.natura.world.material.CloudMaterial; - -import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -21,10 +18,4 @@ private NaturaRegistry() public static CreativeTab tabGeneral = new CreativeTab("NaturaGeneral", new ItemStack(Item.getItemFromBlock(Blocks.SLIME_BLOCK))); public static CreativeTab tabWorld = new CreativeTab("NaturaWorld", new ItemStack(Item.getItemFromBlock(Blocks.SLIME_BLOCK))); - - /*--------------------------------------------------------------------------- - | MATERIALS | - ---------------------------------------------------------------------------*/ - - public static Material cloud = new CloudMaterial(); } diff --git a/src/main/java/com/progwml6/natura/nether/NaturaNether.java b/src/main/java/com/progwml6/natura/nether/NaturaNether.java new file mode 100644 index 00000000..20e27814 --- /dev/null +++ b/src/main/java/com/progwml6/natura/nether/NaturaNether.java @@ -0,0 +1,97 @@ +package com.progwml6.natura.nether; + +import org.apache.logging.log4j.Logger; + +import com.google.common.eventbus.Subscribe; +import com.progwml6.natura.common.CommonProxy; +import com.progwml6.natura.common.NaturaPulse; +import com.progwml6.natura.common.item.ItemBlockLeaves; +import com.progwml6.natura.library.Util; +import com.progwml6.natura.nether.block.glass.BlockNetherGlass; +import com.progwml6.natura.nether.block.leaves.BlockNetherLeaves; +import com.progwml6.natura.nether.block.leaves.BlockNetherLeaves2; +import com.progwml6.natura.nether.block.logs.BlockNetherLog; +import com.progwml6.natura.nether.block.planks.BlockNetherPlanks; +import com.progwml6.natura.nether.block.sand.BlockHeatSand; +import com.progwml6.natura.nether.block.saplings.BlockNetherSapling; +import com.progwml6.natura.nether.block.slabs.BlockNetherSlab; +import com.progwml6.natura.nether.block.soil.BlockTaintedSoil; + +import net.minecraft.block.Block; +import net.minecraftforge.fml.common.SidedProxy; +import net.minecraftforge.fml.common.event.FMLInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; +import slimeknights.mantle.item.ItemBlockMeta; +import slimeknights.mantle.pulsar.pulse.Pulse; + +@Pulse(id = NaturaNether.PulseId, description = "All of the nether blocks including trees") +public class NaturaNether extends NaturaPulse +{ + public static final String PulseId = "NaturaNether"; + + static final Logger log = Util.getLogger(PulseId); + + @SidedProxy(clientSide = "com.progwml6.natura.nether.NetherClientProxy", serverSide = "com.progwml6.natura.common.CommonProxy") + public static CommonProxy proxy; + + //@formatter:off + public static BlockNetherLog netherLog; + public static BlockNetherLeaves netherLeaves; + public static BlockNetherLeaves2 netherLeaves2; + public static BlockNetherSapling netherSapling; + public static BlockNetherPlanks netherPlanks; + public static Block netherSlab; + + public static BlockHeatSand netherHeatSand; + public static BlockTaintedSoil netherTaintedSoil; + + public static BlockNetherGlass netherGlass; + + public static Block netherStairsGhostwood; + public static Block netherStairsBloodwood; + public static Block netherStairsDarkwood; + public static Block netherStairsFusewood; + //@formatter:on + + @Subscribe + public void preInit(FMLPreInitializationEvent event) + { + netherLog = registerEnumBlock(new BlockNetherLog(), "nether_logs"); + + netherLeaves = registerBlock(new ItemBlockLeaves(new BlockNetherLeaves()), "nether_leaves"); + ItemBlockMeta.setMappingProperty(netherLeaves, BlockNetherLeaves.TYPE); + netherLeaves2 = registerBlock(new ItemBlockLeaves(new BlockNetherLeaves2()), "nether_leaves2"); + ItemBlockMeta.setMappingProperty(netherLeaves2, BlockNetherLeaves2.TYPE); + + netherSapling = registerBlock(new BlockNetherSapling(), "nether_sapling", BlockNetherSapling.FOLIAGE); + + netherPlanks = registerEnumBlock(new BlockNetherPlanks(), "nether_planks"); + + netherSlab = registerEnumBlockSlab(new BlockNetherSlab(), "nether_slab"); + + netherHeatSand = registerBlock(new BlockHeatSand(), "nether_heat_sand"); + netherTaintedSoil = registerEnumBlock(new BlockTaintedSoil(), "nether_tainted_soil"); + + netherGlass = registerEnumBlock(new BlockNetherGlass(), "nether_glass"); + + netherStairsGhostwood = registerBlockStairsFrom(netherPlanks, BlockNetherPlanks.PlankType.GHOSTWOOD, "nether_stairs_ghostwood"); + netherStairsBloodwood = registerBlockStairsFrom(netherPlanks, BlockNetherPlanks.PlankType.BLOODWOOD, "nether_stairs_bloodwood"); + netherStairsDarkwood = registerBlockStairsFrom(netherPlanks, BlockNetherPlanks.PlankType.DARKWOOD, "nether_stairs_darkwood"); + netherStairsFusewood = registerBlockStairsFrom(netherPlanks, BlockNetherPlanks.PlankType.FUSEWOOD, "nether_stairs_fusewood"); + + proxy.preInit(); + } + + @Subscribe + public void init(FMLInitializationEvent event) + { + proxy.init(); + } + + @Subscribe + public void postInit(FMLPostInitializationEvent event) + { + proxy.postInit(); + } +} diff --git a/src/main/java/com/progwml6/natura/nether/NetherClientProxy.java b/src/main/java/com/progwml6/natura/nether/NetherClientProxy.java new file mode 100644 index 00000000..bf6a9d51 --- /dev/null +++ b/src/main/java/com/progwml6/natura/nether/NetherClientProxy.java @@ -0,0 +1,135 @@ +package com.progwml6.natura.nether; + +import javax.annotation.Nonnull; + +import com.progwml6.natura.common.ClientProxy; +import com.progwml6.natura.common.client.LeavesColorizer; +import com.progwml6.natura.library.Util; +import com.progwml6.natura.nether.block.leaves.BlockNetherLeaves; +import com.progwml6.natura.nether.block.leaves.BlockNetherLeaves2; +import com.progwml6.natura.nether.block.logs.BlockNetherLog; +import com.progwml6.natura.nether.block.saplings.BlockNetherSapling; + +import net.minecraft.block.BlockLeaves; +import net.minecraft.block.BlockSapling; +import net.minecraft.block.state.IBlockState; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.block.model.ModelResourceLocation; +import net.minecraft.client.renderer.block.statemap.StateMap; +import net.minecraft.client.renderer.color.BlockColors; +import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; +import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.model.ModelLoader; + +public class NetherClientProxy extends ClientProxy +{ + public static Minecraft minecraft = Minecraft.getMinecraft(); + + @Override + public void preInit() + { + super.preInit(); + } + + @Override + public void init() + { + final BlockColors blockColors = minecraft.getBlockColors(); + + blockColors.registerBlockColorHandler(new IBlockColor() + { + @Override + public int colorMultiplier(@Nonnull IBlockState state, IBlockAccess access, BlockPos pos, int tintIndex) + { + return LeavesColorizer.noColor; + } + }, NaturaNether.netherLeaves); + + blockColors.registerBlockColorHandler(new IBlockColor() + { + @Override + public int colorMultiplier(@Nonnull IBlockState state, IBlockAccess access, BlockPos pos, int tintIndex) + { + return LeavesColorizer.noColor; + } + }, NaturaNether.netherLeaves2); + + minecraft.getItemColors().registerItemColorHandler(new IItemColor() + { + @Override + public int getColorFromItemstack(@Nonnull ItemStack stack, int tintIndex) + { + @SuppressWarnings("deprecation") + IBlockState iblockstate = ((ItemBlock) stack.getItem()).getBlock().getStateFromMeta(stack.getMetadata()); + return blockColors.colorMultiplier(iblockstate, null, null, tintIndex); + } + }, NaturaNether.netherLeaves, NaturaNether.netherLeaves2); + + super.init(); + } + + @Override + protected void registerModels() + { + // blocks + ModelLoader.setCustomStateMapper(NaturaNether.netherLeaves, (new StateMap.Builder()).ignore(BlockLeaves.CHECK_DECAY, BlockLeaves.DECAYABLE).build()); + ModelLoader.setCustomStateMapper(NaturaNether.netherLeaves2, (new StateMap.Builder()).ignore(BlockLeaves.CHECK_DECAY, BlockLeaves.DECAYABLE).build()); + + ModelLoader.setCustomStateMapper(NaturaNether.netherSapling, (new StateMap.Builder()).ignore(BlockNetherSapling.STAGE, BlockSapling.TYPE).build()); + + this.registerItemBlockMeta(NaturaNether.netherPlanks); + this.registerItemBlockMeta(NaturaNether.netherTaintedSoil); + + this.registerItemBlockMeta(NaturaNether.netherGlass); + + this.registerItemBlockMeta(NaturaNether.netherSlab); + + this.registerItemModel(NaturaNether.netherStairsGhostwood); + this.registerItemModel(NaturaNether.netherStairsBloodwood); + this.registerItemModel(NaturaNether.netherStairsDarkwood); + this.registerItemModel(NaturaNether.netherStairsFusewood); + + Item heatSandItem = Item.getItemFromBlock(NaturaNether.netherHeatSand); + ModelLoader.setCustomModelResourceLocation(heatSandItem, 0, new ModelResourceLocation(Util.resource("nether_heat_sand"), "normal")); + + Item nether_log = Item.getItemFromBlock(NaturaNether.netherLog); + for (BlockNetherLog.LogType type : BlockNetherLog.LogType.values()) + { + String variant = String.format("%s=%s,%s=%s", BlockNetherLog.LOG_AXIS.getName(), + BlockNetherLog.LOG_AXIS.getName(BlockNetherLog.EnumAxis.Y), BlockNetherLog.TYPE.getName(), + BlockNetherLog.TYPE.getName(type)); + ModelLoader.setCustomModelResourceLocation(nether_log, type.meta, new ModelResourceLocation(nether_log.getRegistryName(), variant)); + } + + // leaves + Item nether_leaves = Item.getItemFromBlock(NaturaNether.netherLeaves); + for (BlockNetherLeaves.LeavesType type : BlockNetherLeaves.LeavesType.values()) + { + String variant = String.format("%s=%s", BlockNetherLeaves.TYPE.getName(), BlockNetherLeaves.TYPE.getName(type)); + ModelLoader.setCustomModelResourceLocation(nether_leaves, type.getMeta(), new ModelResourceLocation(nether_leaves.getRegistryName(), variant)); + } + + Item nether_leaves2 = Item.getItemFromBlock(NaturaNether.netherLeaves2); + for (BlockNetherLeaves2.LeavesType type : BlockNetherLeaves2.LeavesType.values()) + { + String variant = String.format("%s=%s", BlockNetherLeaves2.TYPE.getName(), BlockNetherLeaves2.TYPE.getName(type)); + ModelLoader.setCustomModelResourceLocation(nether_leaves2, type.getMeta(), new ModelResourceLocation(nether_leaves2.getRegistryName(), variant)); + } + + // saplings + + ItemStack stack = new ItemStack(Item.getItemFromBlock(NaturaNether.netherSapling), 1, NaturaNether.netherSapling.getMetaFromState(NaturaNether.netherSapling.getDefaultState().withProperty(BlockNetherSapling.FOLIAGE, BlockNetherSapling.SaplingType.GHOSTWOOD))); + this.registerItemModel(stack, "nether_sapling_ghostwood"); + stack = new ItemStack(Item.getItemFromBlock(NaturaNether.netherSapling), 1, NaturaNether.netherSapling.getMetaFromState(NaturaNether.netherSapling.getDefaultState().withProperty(BlockNetherSapling.FOLIAGE, BlockNetherSapling.SaplingType.BLOODWOOD))); + this.registerItemModel(stack, "nether_sapling_bloodwood"); + stack = new ItemStack(Item.getItemFromBlock(NaturaNether.netherSapling), 1, NaturaNether.netherSapling.getMetaFromState(NaturaNether.netherSapling.getDefaultState().withProperty(BlockNetherSapling.FOLIAGE, BlockNetherSapling.SaplingType.FUSEWOOD))); + this.registerItemModel(stack, "nether_sapling_fusewood"); + stack = new ItemStack(Item.getItemFromBlock(NaturaNether.netherSapling), 1, NaturaNether.netherSapling.getMetaFromState(NaturaNether.netherSapling.getDefaultState().withProperty(BlockNetherSapling.FOLIAGE, BlockNetherSapling.SaplingType.DARKWOOD))); + this.registerItemModel(stack, "nether_sapling_darkwood"); + } +} diff --git a/src/main/java/com/progwml6/natura/nether/block/glass/BlockNetherGlass.java b/src/main/java/com/progwml6/natura/nether/block/glass/BlockNetherGlass.java new file mode 100644 index 00000000..8bc65654 --- /dev/null +++ b/src/main/java/com/progwml6/natura/nether/block/glass/BlockNetherGlass.java @@ -0,0 +1,140 @@ +package com.progwml6.natura.nether.block.glass; + +import java.util.Locale; +import java.util.Random; + +import javax.annotation.Nullable; + +import com.progwml6.natura.library.NaturaRegistry; +import com.progwml6.natura.nether.NaturaNether; + +import net.minecraft.block.Block; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; +import net.minecraft.block.properties.PropertyEnum; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.init.MobEffects; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.BlockRenderLayer; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.IStringSerializable; +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; +import slimeknights.mantle.block.EnumBlock; + +public class BlockNetherGlass extends EnumBlock +{ + public static PropertyEnum TYPE = PropertyEnum.create("type", GlassType.class); + + protected static final AxisAlignedBB HEAT_SAND_AABB = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 0.875D, 1.0D); + + public BlockNetherGlass() + { + super(Material.GLASS, TYPE, GlassType.class); + + this.setHardness(1.0F); + this.setResistance(3000F); + this.setSoundType(SoundType.GLASS); + this.setCreativeTab(NaturaRegistry.tabWorld); + } + + /** + * Returns the quantity of items to drop on block destruction. + */ + @Override + public int quantityDropped(Random random) + { + return 0; + } + + @Override + public boolean isOpaqueCube(IBlockState state) + { + return false; + } + + @Override + public boolean isFullCube(IBlockState state) + { + return false; + } + + @Override + protected boolean canSilkHarvest() + { + return true; + } + + @Override + @SideOnly(Side.CLIENT) + public BlockRenderLayer getBlockLayer() + { + return BlockRenderLayer.TRANSLUCENT; + } + + @SuppressWarnings("deprecation") + @Override + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side) + { + Block block = blockAccess.getBlockState(pos.offset(side)).getBlock(); + + return block == this ? false : super.shouldSideBeRendered(blockState, blockAccess, pos, side); + } + + @Override + @Nullable + public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, World worldIn, BlockPos pos) + { + if (blockState.getValue(TYPE) == GlassType.SOUL) + return NULL_AABB; + else + return HEAT_SAND_AABB; + } + + @Override + public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState state, Entity entityIn) + { + if (entityIn instanceof EntityLivingBase) + { + if (state.getValue(TYPE) == GlassType.SOUL) + { + ((EntityLivingBase) entityIn).addPotionEffect(new PotionEffect(MobEffects.SLOWNESS, 20, 1)); + } + else if (state.getValue(TYPE) == GlassType.HEAT) + { + NaturaNether.netherHeatSand.onEntityCollidedWithBlock(worldIn, pos, state, entityIn); + } + } + } + + public enum GlassType implements IStringSerializable, EnumBlock.IEnumMeta + { + SOUL, HEAT; + + public final int meta; + + GlassType() + { + this.meta = this.ordinal(); + } + + @Override + public String getName() + { + return this.toString().toLowerCase(Locale.US); + } + + @Override + public int getMeta() + { + return this.meta; + } + } +} diff --git a/src/main/java/com/progwml6/natura/world/block/leaves/nether/BlockNetherLeaves.java b/src/main/java/com/progwml6/natura/nether/block/leaves/BlockNetherLeaves.java similarity index 96% rename from src/main/java/com/progwml6/natura/world/block/leaves/nether/BlockNetherLeaves.java rename to src/main/java/com/progwml6/natura/nether/block/leaves/BlockNetherLeaves.java index 6e06b2ab..02940aa9 100644 --- a/src/main/java/com/progwml6/natura/world/block/leaves/nether/BlockNetherLeaves.java +++ b/src/main/java/com/progwml6/natura/nether/block/leaves/BlockNetherLeaves.java @@ -1,4 +1,4 @@ -package com.progwml6.natura.world.block.leaves.nether; +package com.progwml6.natura.nether.block.leaves; import java.util.List; import java.util.Locale; @@ -8,7 +8,7 @@ import com.google.common.collect.Lists; import com.progwml6.natura.library.NaturaRegistry; -import com.progwml6.natura.world.NaturaWorld; +import com.progwml6.natura.nether.NaturaNether; import net.minecraft.block.BlockLeaves; import net.minecraft.block.BlockPlanks; @@ -91,7 +91,7 @@ protected int getSaplingDropChance(IBlockState state) @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(NaturaWorld.netherSapling); + return Item.getItemFromBlock(NaturaNether.netherSapling); } // sapling meta diff --git a/src/main/java/com/progwml6/natura/world/block/leaves/nether/BlockNetherLeaves2.java b/src/main/java/com/progwml6/natura/nether/block/leaves/BlockNetherLeaves2.java similarity index 96% rename from src/main/java/com/progwml6/natura/world/block/leaves/nether/BlockNetherLeaves2.java rename to src/main/java/com/progwml6/natura/nether/block/leaves/BlockNetherLeaves2.java index ccd8f7b8..151e5868 100644 --- a/src/main/java/com/progwml6/natura/world/block/leaves/nether/BlockNetherLeaves2.java +++ b/src/main/java/com/progwml6/natura/nether/block/leaves/BlockNetherLeaves2.java @@ -1,4 +1,4 @@ -package com.progwml6.natura.world.block.leaves.nether; +package com.progwml6.natura.nether.block.leaves; import java.util.List; import java.util.Locale; @@ -8,7 +8,7 @@ import com.google.common.collect.Lists; import com.progwml6.natura.library.NaturaRegistry; -import com.progwml6.natura.world.NaturaWorld; +import com.progwml6.natura.nether.NaturaNether; import net.minecraft.block.BlockLeaves; import net.minecraft.block.BlockPlanks; @@ -91,7 +91,7 @@ protected int getSaplingDropChance(IBlockState state) @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(NaturaWorld.netherSapling); + return Item.getItemFromBlock(NaturaNether.netherSapling); } // sapling meta diff --git a/src/main/java/com/progwml6/natura/world/block/logs/nether/BlockNetherLog.java b/src/main/java/com/progwml6/natura/nether/block/logs/BlockNetherLog.java similarity index 97% rename from src/main/java/com/progwml6/natura/world/block/logs/nether/BlockNetherLog.java rename to src/main/java/com/progwml6/natura/nether/block/logs/BlockNetherLog.java index 26e48b4c..995148ea 100644 --- a/src/main/java/com/progwml6/natura/world/block/logs/nether/BlockNetherLog.java +++ b/src/main/java/com/progwml6/natura/nether/block/logs/BlockNetherLog.java @@ -1,8 +1,8 @@ -package com.progwml6.natura.world.block.logs.nether; +package com.progwml6.natura.nether.block.logs; import java.util.Locale; -import com.progwml6.natura.world.block.logs.BlockEnumLog; +import com.progwml6.natura.common.block.BlockEnumLog; import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyEnum; diff --git a/src/main/java/com/progwml6/natura/world/block/planks/nether/BlockNetherPlanks.java b/src/main/java/com/progwml6/natura/nether/block/planks/BlockNetherPlanks.java similarity index 96% rename from src/main/java/com/progwml6/natura/world/block/planks/nether/BlockNetherPlanks.java rename to src/main/java/com/progwml6/natura/nether/block/planks/BlockNetherPlanks.java index c6ec3aa5..489787e2 100644 --- a/src/main/java/com/progwml6/natura/world/block/planks/nether/BlockNetherPlanks.java +++ b/src/main/java/com/progwml6/natura/nether/block/planks/BlockNetherPlanks.java @@ -1,4 +1,4 @@ -package com.progwml6.natura.world.block.planks.nether; +package com.progwml6.natura.nether.block.planks; import java.util.Locale; diff --git a/src/main/java/com/progwml6/natura/nether/block/sand/BlockHeatSand.java b/src/main/java/com/progwml6/natura/nether/block/sand/BlockHeatSand.java new file mode 100644 index 00000000..dddfcccb --- /dev/null +++ b/src/main/java/com/progwml6/natura/nether/block/sand/BlockHeatSand.java @@ -0,0 +1,56 @@ +package com.progwml6.natura.nether.block.sand; + +import javax.annotation.Nullable; + +import com.progwml6.natura.library.NaturaRegistry; + +import net.minecraft.block.BlockFalling; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.DamageSource; +import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; + +public class BlockHeatSand extends BlockFalling +{ + protected static final AxisAlignedBB HEAT_SAND_AABB = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 0.875D, 1.0D); + + public BlockHeatSand() + { + super(Material.SAND); + + this.setHardness(3f); + this.setSoundType(SoundType.SAND); + this.setCreativeTab(NaturaRegistry.tabWorld); + this.setHarvestLevel("shovel", 0); + } + + @Override + @Nullable + public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, World worldIn, BlockPos pos) + { + return HEAT_SAND_AABB; + } + + @Override + public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState state, Entity entityIn) + { + if (entityIn instanceof EntityPlayer) + { + ItemStack stack = ((EntityPlayer) entityIn).inventory.getStackInSlot(36); + + if (stack == null) + entityIn.attackEntityFrom(DamageSource.inFire, 1); + } + else if (entityIn instanceof EntityLiving && !entityIn.isImmuneToFire()) + { + entityIn.attackEntityFrom(DamageSource.inFire, 1); + } + } +} diff --git a/src/main/java/com/progwml6/natura/world/block/saplings/nether/BlockNetherSapling.java b/src/main/java/com/progwml6/natura/nether/block/saplings/BlockNetherSapling.java similarity index 98% rename from src/main/java/com/progwml6/natura/world/block/saplings/nether/BlockNetherSapling.java rename to src/main/java/com/progwml6/natura/nether/block/saplings/BlockNetherSapling.java index 4714c493..ea775cde 100644 --- a/src/main/java/com/progwml6/natura/world/block/saplings/nether/BlockNetherSapling.java +++ b/src/main/java/com/progwml6/natura/nether/block/saplings/BlockNetherSapling.java @@ -1,4 +1,4 @@ -package com.progwml6.natura.world.block.saplings.nether; +package com.progwml6.natura.nether.block.saplings; import java.util.List; import java.util.Locale; diff --git a/src/main/java/com/progwml6/natura/nether/block/slabs/BlockNetherSlab.java b/src/main/java/com/progwml6/natura/nether/block/slabs/BlockNetherSlab.java new file mode 100644 index 00000000..d30d7dc8 --- /dev/null +++ b/src/main/java/com/progwml6/natura/nether/block/slabs/BlockNetherSlab.java @@ -0,0 +1,83 @@ +package com.progwml6.natura.nether.block.slabs; + +import java.util.Locale; + +import com.progwml6.natura.library.NaturaRegistry; +import com.progwml6.natura.nether.NaturaNether; +import com.progwml6.natura.nether.block.planks.BlockNetherPlanks; + +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; +import net.minecraft.block.properties.PropertyEnum; +import net.minecraft.block.state.IBlockState; +import net.minecraft.init.Blocks; +import net.minecraft.util.IStringSerializable; +import slimeknights.mantle.block.EnumBlock; +import slimeknights.mantle.block.EnumBlockSlab; + +public class BlockNetherSlab extends EnumBlockSlab +{ + public final static PropertyEnum TYPE = PropertyEnum.create("type", PlankType.class); + + public BlockNetherSlab() + { + super(Material.WOOD, TYPE, PlankType.class); + + Blocks.FIRE.setFireInfo(this, 5, 20); + + this.setHardness(2.0F); + this.setSoundType(SoundType.WOOD); + this.setCreativeTab(NaturaRegistry.tabWorld); + } + + @Override + public IBlockState getFullBlock(IBlockState state) + { + if (NaturaNether.netherPlanks == null) + { + return null; + } + return NaturaNether.netherPlanks.getDefaultState().withProperty(BlockNetherPlanks.TYPE, state.getValue(TYPE).asFullBlock()); + } + + public enum PlankType implements IStringSerializable, EnumBlock.IEnumMeta + { + GHOSTWOOD, BLOODWOOD, DARKWOOD, FUSEWOOD; + + public final int meta; + + PlankType() + { + this.meta = this.ordinal(); + } + + @Override + public String getName() + { + return this.toString().toLowerCase(Locale.US); + } + + public BlockNetherPlanks.PlankType asFullBlock() + { + switch (this) + { + case GHOSTWOOD: + return BlockNetherPlanks.PlankType.GHOSTWOOD; + case BLOODWOOD: + return BlockNetherPlanks.PlankType.BLOODWOOD; + case DARKWOOD: + return BlockNetherPlanks.PlankType.DARKWOOD; + case FUSEWOOD: + return BlockNetherPlanks.PlankType.FUSEWOOD; + default: + return null; + } + } + + @Override + public int getMeta() + { + return this.meta; + } + } +} diff --git a/src/main/java/com/progwml6/natura/nether/block/soil/BlockTaintedSoil.java b/src/main/java/com/progwml6/natura/nether/block/soil/BlockTaintedSoil.java new file mode 100644 index 00000000..21661174 --- /dev/null +++ b/src/main/java/com/progwml6/natura/nether/block/soil/BlockTaintedSoil.java @@ -0,0 +1,82 @@ +package com.progwml6.natura.nether.block.soil; + +import java.util.Locale; + +import com.progwml6.natura.library.NaturaRegistry; + +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; +import net.minecraft.block.properties.PropertyEnum; +import net.minecraft.block.state.IBlockState; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.IStringSerializable; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.EnumPlantType; +import slimeknights.mantle.block.EnumBlock; + +public class BlockTaintedSoil extends EnumBlock +{ + public static PropertyEnum TYPE = PropertyEnum.create("type", SoilType.class); + + public BlockTaintedSoil() + { + super(Material.GROUND, TYPE, SoilType.class); + + this.setCreativeTab(NaturaRegistry.tabWorld); + this.setHardness(2.2f); + this.setResistance(25F); + this.setSoundType(SoundType.GROUND); + } + + @Override + public boolean isFertile(World world, BlockPos pos) + { + if (world.getBlockState(pos).getValue(TYPE) == SoilType.TAINTED_FARMLAND_HEATED) + return true; + + return false; + } + + @Override + public boolean canSustainPlant(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing direction, net.minecraftforge.common.IPlantable plantable) + { + EnumPlantType plantType = plantable.getPlantType(world, pos.add(0, 1, 0)); + + if (plantType == EnumPlantType.Nether) + return true; + + return super.canSustainPlant(state, world, pos, direction, plantable); + } + + @Override + public boolean isFireSource(World world, BlockPos pos, EnumFacing side) + { + return true; + } + + public enum SoilType implements IStringSerializable, EnumBlock.IEnumMeta + { + TAINTED_SOIL, TAINTED_FARMLAND_DRY, TAINTED_FARMLAND_HEATED; + + public final int meta; + + SoilType() + { + this.meta = this.ordinal(); + } + + @Override + public String getName() + { + return this.toString().toLowerCase(Locale.US); + } + + @Override + public int getMeta() + { + return this.meta; + } + } +} diff --git a/src/main/java/com/progwml6/natura/overworld/NaturaOverworld.java b/src/main/java/com/progwml6/natura/overworld/NaturaOverworld.java new file mode 100644 index 00000000..71c30285 --- /dev/null +++ b/src/main/java/com/progwml6/natura/overworld/NaturaOverworld.java @@ -0,0 +1,129 @@ +package com.progwml6.natura.overworld; + +import org.apache.logging.log4j.Logger; + +import com.google.common.eventbus.Subscribe; +import com.progwml6.natura.common.CommonProxy; +import com.progwml6.natura.common.NaturaPulse; +import com.progwml6.natura.common.item.ItemBlockLeaves; +import com.progwml6.natura.library.NaturaRegistry; +import com.progwml6.natura.library.Util; +import com.progwml6.natura.overworld.block.grass.BlockColoredGrass; +import com.progwml6.natura.overworld.block.leaves.BlockOverworldLeaves; +import com.progwml6.natura.overworld.block.leaves.BlockOverworldLeaves2; +import com.progwml6.natura.overworld.block.leaves.BlockRedwoodLeaves; +import com.progwml6.natura.overworld.block.logs.BlockOverworldLog; +import com.progwml6.natura.overworld.block.logs.BlockOverworldLog2; +import com.progwml6.natura.overworld.block.logs.BlockRedwoodLog; +import com.progwml6.natura.overworld.block.planks.BlockOverworldPlanks; +import com.progwml6.natura.overworld.block.saplings.BlockOverworldSapling; +import com.progwml6.natura.overworld.block.saplings.BlockOverworldSapling2; +import com.progwml6.natura.overworld.block.saplings.BlockRedwoodSapling; +import com.progwml6.natura.overworld.block.slabs.BlockColoredGrassSlab; +import com.progwml6.natura.overworld.block.slabs.BlockOverworldSlab; +import com.progwml6.natura.overworld.block.slabs.BlockOverworldSlab2; + +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fml.common.SidedProxy; +import net.minecraftforge.fml.common.event.FMLInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; +import slimeknights.mantle.item.ItemBlockMeta; +import slimeknights.mantle.pulsar.pulse.Pulse; + +@Pulse(id = NaturaOverworld.PulseId, description = "All of the overworld blocks including trees") +public class NaturaOverworld extends NaturaPulse +{ + public static final String PulseId = "NaturaOverworld"; + + static final Logger log = Util.getLogger(PulseId); + + @SidedProxy(clientSide = "com.progwml6.natura.overworld.OverworldClientProxy", serverSide = "com.progwml6.natura.common.CommonProxy") + public static CommonProxy proxy; + + //@formatter:off + public static BlockColoredGrass coloredGrass; + public static BlockColoredGrassSlab coloredGrassSlab; + + public static BlockOverworldLog overworldLog; + public static BlockOverworldLeaves overworldLeaves; + public static BlockOverworldSapling overworldSapling; + + public static BlockOverworldLog2 overworldLog2; + public static BlockOverworldLeaves2 overworldLeaves2; + public static BlockOverworldSapling2 overworldSapling2; + + public static BlockOverworldPlanks overworldPlanks; + + public static BlockRedwoodLog redwoodLog; + public static BlockRedwoodSapling redwoodSapling; //TODO: FIX REDWOOD + public static BlockRedwoodLeaves redwoodLeaves; + + public static Block overworldSlab; + public static Block overworldSlab2; + + public static Block overworldStairsMaple; + public static Block overworldStairsSilverbell; + public static Block overworldStairsAmaranth; + public static Block overworldStairsTiger; + public static Block overworldStairsWillow; + public static Block overworldStairsEucalyptus; + public static Block overworldStairsHopseed; + public static Block overworldStairsSakura; + public static Block overworldStairsRedwood; + //@formatter:on + + @Subscribe + public void preInit(FMLPreInitializationEvent event) + { + coloredGrass = registerEnumBlock(new BlockColoredGrass(), "colored_grass"); + coloredGrassSlab = registerEnumBlockSlab(new BlockColoredGrassSlab(), "colored_grass_slab"); + + overworldLog = registerEnumBlock(new BlockOverworldLog(), "overworld_logs"); + overworldLog2 = registerEnumBlock(new BlockOverworldLog2(), "overworld_logs2"); + redwoodLog = registerEnumBlock(new BlockRedwoodLog(), "redwood_logs"); + + overworldLeaves = registerBlock(new ItemBlockLeaves(new BlockOverworldLeaves()), "overworld_leaves"); + ItemBlockMeta.setMappingProperty(overworldLeaves, BlockOverworldLog.TYPE); + overworldLeaves2 = registerBlock(new ItemBlockLeaves(new BlockOverworldLeaves2()), "overworld_leaves2"); + ItemBlockMeta.setMappingProperty(overworldLeaves2, BlockOverworldLog2.TYPE); + redwoodLeaves = registerBlock(new ItemBlockLeaves(new BlockRedwoodLeaves()), "redwood_leaves"); + ItemBlockMeta.setMappingProperty(redwoodLeaves, BlockRedwoodLeaves.TYPE); + + overworldSapling = registerBlock(new BlockOverworldSapling(), "overworld_sapling", BlockOverworldSapling.FOLIAGE); + overworldSapling2 = registerBlock(new BlockOverworldSapling2(), "overworld_sapling2", BlockOverworldSapling2.FOLIAGE); + redwoodSapling = registerBlock(new BlockRedwoodSapling(), "redwood_sapling", BlockRedwoodSapling.FOLIAGE);// TODO: FIX REDWOOD + + overworldPlanks = registerEnumBlock(new BlockOverworldPlanks(), "overworld_planks"); + + overworldSlab = registerEnumBlockSlab(new BlockOverworldSlab(), "overworld_slab"); + overworldSlab2 = registerEnumBlockSlab(new BlockOverworldSlab2(), "overworld_slab2"); + + overworldStairsMaple = registerBlockStairsFrom(overworldPlanks, BlockOverworldPlanks.PlankType.MAPLE, "overworld_stairs_maple"); + overworldStairsSilverbell = registerBlockStairsFrom(overworldPlanks, BlockOverworldPlanks.PlankType.SILVERBELL, "overworld_stairs_silverbell"); + overworldStairsAmaranth = registerBlockStairsFrom(overworldPlanks, BlockOverworldPlanks.PlankType.AMARANTH, "overworld_stairs_amaranth"); + overworldStairsTiger = registerBlockStairsFrom(overworldPlanks, BlockOverworldPlanks.PlankType.TIGER, "overworld_stairs_tiger"); + overworldStairsWillow = registerBlockStairsFrom(overworldPlanks, BlockOverworldPlanks.PlankType.WILLOW, "overworld_stairs_willow"); + overworldStairsEucalyptus = registerBlockStairsFrom(overworldPlanks, BlockOverworldPlanks.PlankType.EUCALYPTUS, "overworld_stairs_eucalyptus"); + overworldStairsHopseed = registerBlockStairsFrom(overworldPlanks, BlockOverworldPlanks.PlankType.HOPSEED, "overworld_stairs_hopseed"); + overworldStairsSakura = registerBlockStairsFrom(overworldPlanks, BlockOverworldPlanks.PlankType.SAKURA, "overworld_stairs_sakura"); + overworldStairsRedwood = registerBlockStairsFrom(overworldPlanks, BlockOverworldPlanks.PlankType.REDWOOD, "overworld_stairs_redwood"); + + proxy.preInit(); + + NaturaRegistry.tabWorld.setDisplayIcon(new ItemStack(coloredGrass)); + } + + @Subscribe + public void init(FMLInitializationEvent event) + { + proxy.init(); + } + + @Subscribe + public void postInit(FMLPostInitializationEvent event) + { + proxy.postInit(); + } +} diff --git a/src/main/java/com/progwml6/natura/overworld/OverworldClientProxy.java b/src/main/java/com/progwml6/natura/overworld/OverworldClientProxy.java new file mode 100644 index 00000000..22d2f0aa --- /dev/null +++ b/src/main/java/com/progwml6/natura/overworld/OverworldClientProxy.java @@ -0,0 +1,239 @@ +package com.progwml6.natura.overworld; + +import javax.annotation.Nonnull; + +import com.progwml6.natura.common.ClientProxy; +import com.progwml6.natura.common.client.GrassColorizer; +import com.progwml6.natura.common.client.LeavesColorizer; +import com.progwml6.natura.overworld.block.grass.BlockColoredGrass; +import com.progwml6.natura.overworld.block.leaves.BlockRedwoodLeaves; +import com.progwml6.natura.overworld.block.logs.BlockOverworldLog; +import com.progwml6.natura.overworld.block.logs.BlockOverworldLog2; +import com.progwml6.natura.overworld.block.saplings.BlockOverworldSapling; +import com.progwml6.natura.overworld.block.saplings.BlockOverworldSapling2; +import com.progwml6.natura.overworld.block.saplings.BlockRedwoodSapling; + +import net.minecraft.block.BlockLeaves; +import net.minecraft.block.BlockSapling; +import net.minecraft.block.state.IBlockState; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.block.model.ModelResourceLocation; +import net.minecraft.client.renderer.block.statemap.StateMap; +import net.minecraft.client.renderer.color.BlockColors; +import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; +import net.minecraft.client.resources.IReloadableResourceManager; +import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.model.ModelLoader; + +public class OverworldClientProxy extends ClientProxy +{ + public static GrassColorizer grassColorizer = new GrassColorizer(); + + public static Minecraft minecraft = Minecraft.getMinecraft(); + + @Override + public void preInit() + { + ((IReloadableResourceManager) minecraft.getResourceManager()).registerReloadListener(grassColorizer); + + super.preInit(); + } + + @Override + public void init() + { + final BlockColors blockColors = minecraft.getBlockColors(); + + blockColors.registerBlockColorHandler(new IBlockColor() + { + @Override + public int colorMultiplier(@Nonnull IBlockState state, IBlockAccess access, BlockPos pos, int tintIndex) + { + BlockColoredGrass.GrassType type = state.getValue(BlockColoredGrass.TYPE); + + if (pos == null) + { + return GrassColorizer.getGrassColorStatic(type); + } + + return GrassColorizer.getGrassColorForPos(access, pos, type); + } + }, NaturaOverworld.coloredGrass, NaturaOverworld.coloredGrassSlab); + + blockColors.registerBlockColorHandler(new IBlockColor() + { + @Override + public int colorMultiplier(@Nonnull IBlockState state, IBlockAccess access, BlockPos pos, int tintIndex) + { + BlockColoredGrass.GrassType type = state.getValue(BlockColoredGrass.TYPE); + + if (pos == null) + { + return GrassColorizer.getGrassColorStatic(type); + } + + return GrassColorizer.getGrassColorForPos(access, pos, type); + } + }, NaturaOverworld.coloredGrass, NaturaOverworld.coloredGrassSlab); + + blockColors.registerBlockColorHandler(new IBlockColor() + { + @Override + public int colorMultiplier(@Nonnull IBlockState state, IBlockAccess access, BlockPos pos, int tintIndex) + { + BlockOverworldLog.LogType type = state.getValue(BlockOverworldLog.TYPE); + + if (pos == null) + { + return LeavesColorizer.getOverworldLeavesColorStatic(type); + } + + return LeavesColorizer.getOverworldLeavesColorForPos(access, pos, type); + } + }, NaturaOverworld.overworldLeaves); + + blockColors.registerBlockColorHandler(new IBlockColor() + { + @Override + public int colorMultiplier(@Nonnull IBlockState state, IBlockAccess access, BlockPos pos, int tintIndex) + { + BlockOverworldLog2.LogType type = state.getValue(BlockOverworldLog2.TYPE); + + if (pos == null) + { + return LeavesColorizer.getSecondOverworldLeavesColorStatic(type); + } + + return LeavesColorizer.getSecondOverworldLeavesColorForPos(access, pos, type); + } + }, NaturaOverworld.overworldLeaves2); + + blockColors.registerBlockColorHandler(new IBlockColor() + { + @Override + public int colorMultiplier(@Nonnull IBlockState state, IBlockAccess access, BlockPos pos, int tintIndex) + { + BlockRedwoodLeaves.RedwoodType type = state.getValue(BlockRedwoodLeaves.TYPE); + + if (pos == null) + { + return LeavesColorizer.getRedwoodLeavesColorStatic(type); + } + + return LeavesColorizer.getRedwoodLeavesColorForPos(access, pos, type); + } + }, NaturaOverworld.redwoodLeaves); + + minecraft.getItemColors().registerItemColorHandler(new IItemColor() + { + @Override + public int getColorFromItemstack(@Nonnull ItemStack stack, int tintIndex) + { + @SuppressWarnings("deprecation") + IBlockState iblockstate = ((ItemBlock) stack.getItem()).getBlock().getStateFromMeta(stack.getMetadata()); + return blockColors.colorMultiplier(iblockstate, null, null, tintIndex); + } + }, NaturaOverworld.overworldLeaves, NaturaOverworld.overworldLeaves2, NaturaOverworld.redwoodLeaves, NaturaOverworld.coloredGrass, NaturaOverworld.coloredGrassSlab); + + super.init(); + } + + @Override + protected void registerModels() + { + // blocks + ModelLoader.setCustomStateMapper(NaturaOverworld.overworldLeaves, (new StateMap.Builder()).ignore(BlockLeaves.CHECK_DECAY, BlockLeaves.DECAYABLE).build()); + ModelLoader.setCustomStateMapper(NaturaOverworld.overworldLeaves2, (new StateMap.Builder()).ignore(BlockLeaves.CHECK_DECAY, BlockLeaves.DECAYABLE).build()); + ModelLoader.setCustomStateMapper(NaturaOverworld.redwoodLeaves, (new StateMap.Builder()).ignore(BlockLeaves.CHECK_DECAY, BlockLeaves.DECAYABLE).build()); + + ModelLoader.setCustomStateMapper(NaturaOverworld.overworldSapling, (new StateMap.Builder()).ignore(BlockOverworldSapling.STAGE, BlockSapling.TYPE).build()); + ModelLoader.setCustomStateMapper(NaturaOverworld.overworldSapling2, (new StateMap.Builder()).ignore(BlockOverworldSapling2.STAGE, BlockSapling.TYPE).build()); + ModelLoader.setCustomStateMapper(NaturaOverworld.redwoodSapling, (new StateMap.Builder()).ignore(BlockRedwoodSapling.STAGE, BlockSapling.TYPE).build()); + + this.registerItemBlockMeta(NaturaOverworld.redwoodLog); + this.registerItemBlockMeta(NaturaOverworld.overworldPlanks); + this.registerItemBlockMeta(NaturaOverworld.coloredGrass); + this.registerItemBlockMeta(NaturaOverworld.coloredGrassSlab); + + // slabs + this.registerItemBlockMeta(NaturaOverworld.overworldSlab); + this.registerItemBlockMeta(NaturaOverworld.overworldSlab2); + + // stairs + this.registerItemModel(NaturaOverworld.overworldStairsMaple); + this.registerItemModel(NaturaOverworld.overworldStairsSilverbell); + this.registerItemModel(NaturaOverworld.overworldStairsAmaranth); + this.registerItemModel(NaturaOverworld.overworldStairsTiger); + this.registerItemModel(NaturaOverworld.overworldStairsWillow); + this.registerItemModel(NaturaOverworld.overworldStairsEucalyptus); + this.registerItemModel(NaturaOverworld.overworldStairsHopseed); + this.registerItemModel(NaturaOverworld.overworldStairsSakura); + this.registerItemModel(NaturaOverworld.overworldStairsRedwood); + + Item overworld_log = Item.getItemFromBlock(NaturaOverworld.overworldLog); + for (BlockOverworldLog.LogType type : BlockOverworldLog.LogType.values()) + { + String variant = String.format("%s=%s,%s=%s", BlockOverworldLog.LOG_AXIS.getName(), + BlockOverworldLog.LOG_AXIS.getName(BlockOverworldLog.EnumAxis.Y), BlockOverworldLog.TYPE.getName(), BlockOverworldLog.TYPE.getName(type)); + ModelLoader.setCustomModelResourceLocation(overworld_log, type.meta, new ModelResourceLocation(overworld_log.getRegistryName(), variant)); + } + + Item overworld_log2 = Item.getItemFromBlock(NaturaOverworld.overworldLog2); + for (BlockOverworldLog2.LogType type : BlockOverworldLog2.LogType.values()) + { + String variant = String.format("%s=%s,%s=%s", BlockOverworldLog2.LOG_AXIS.getName(), + BlockOverworldLog2.LOG_AXIS.getName(BlockOverworldLog2.EnumAxis.Y), BlockOverworldLog2.TYPE.getName(), + BlockOverworldLog2.TYPE.getName(type)); + ModelLoader.setCustomModelResourceLocation(overworld_log2, type.meta, new ModelResourceLocation(overworld_log2.getRegistryName(), variant)); + } + + // leaves + Item overworld_leaves = Item.getItemFromBlock(NaturaOverworld.overworldLeaves); + for (BlockOverworldLog.LogType type : BlockOverworldLog.LogType.values()) + { + String variant = String.format("%s=%s", BlockOverworldLog.TYPE.getName(), BlockOverworldLog.TYPE.getName(type)); + ModelLoader.setCustomModelResourceLocation(overworld_leaves, type.getMeta(), new ModelResourceLocation(overworld_leaves.getRegistryName(), variant)); + } + + Item overworld_leaves2 = Item.getItemFromBlock(NaturaOverworld.overworldLeaves2); + for (BlockOverworldLog2.LogType type : BlockOverworldLog2.LogType.values()) + { + String variant = String.format("%s=%s", BlockOverworldLog2.TYPE.getName(), BlockOverworldLog2.TYPE.getName(type)); + ModelLoader.setCustomModelResourceLocation(overworld_leaves2, type.getMeta(), new ModelResourceLocation(overworld_leaves2.getRegistryName(), variant)); + } + + Item redwood_leaves = Item.getItemFromBlock(NaturaOverworld.redwoodLeaves); + for (BlockRedwoodLeaves.RedwoodType type : BlockRedwoodLeaves.RedwoodType.values()) + { + String variant = String.format("%s=%s", BlockRedwoodLeaves.TYPE.getName(), BlockRedwoodLeaves.TYPE.getName(type)); + ModelLoader.setCustomModelResourceLocation(redwood_leaves, type.getMeta(), new ModelResourceLocation(redwood_leaves.getRegistryName(), variant)); + } + + // saplings + ItemStack stack = new ItemStack(Item.getItemFromBlock(NaturaOverworld.overworldSapling), 1, NaturaOverworld.overworldSapling.getMetaFromState(NaturaOverworld.overworldSapling.getDefaultState().withProperty(BlockOverworldSapling.FOLIAGE, BlockOverworldSapling.SaplingType.MAPLE))); + this.registerItemModel(stack, "overworld_sapling_maple"); + stack = new ItemStack(Item.getItemFromBlock(NaturaOverworld.overworldSapling), 1, NaturaOverworld.overworldSapling.getMetaFromState(NaturaOverworld.overworldSapling.getDefaultState().withProperty(BlockOverworldSapling.FOLIAGE, BlockOverworldSapling.SaplingType.SILVERBELL))); + this.registerItemModel(stack, "overworld_sapling_silverbell"); + stack = new ItemStack(Item.getItemFromBlock(NaturaOverworld.overworldSapling), 1, NaturaOverworld.overworldSapling.getMetaFromState(NaturaOverworld.overworldSapling.getDefaultState().withProperty(BlockOverworldSapling.FOLIAGE, BlockOverworldSapling.SaplingType.AMARANTH))); + this.registerItemModel(stack, "overworld_sapling_amaranth"); + stack = new ItemStack(Item.getItemFromBlock(NaturaOverworld.overworldSapling), 1, NaturaOverworld.overworldSapling.getMetaFromState(NaturaOverworld.overworldSapling.getDefaultState().withProperty(BlockOverworldSapling.FOLIAGE, BlockOverworldSapling.SaplingType.TIGER))); + this.registerItemModel(stack, "overworld_sapling_tiger"); + + stack = new ItemStack(Item.getItemFromBlock(NaturaOverworld.overworldSapling2), 1, NaturaOverworld.overworldSapling2.getMetaFromState(NaturaOverworld.overworldSapling2.getDefaultState().withProperty(BlockOverworldSapling2.FOLIAGE, BlockOverworldSapling2.SaplingType.WILLOW))); + this.registerItemModel(stack, "overworld_sapling_willow"); + stack = new ItemStack(Item.getItemFromBlock(NaturaOverworld.overworldSapling2), 1, NaturaOverworld.overworldSapling2.getMetaFromState(NaturaOverworld.overworldSapling2.getDefaultState().withProperty(BlockOverworldSapling2.FOLIAGE, BlockOverworldSapling2.SaplingType.EUCALYPTUS))); + this.registerItemModel(stack, "overworld_sapling_eucalyptus"); + stack = new ItemStack(Item.getItemFromBlock(NaturaOverworld.overworldSapling2), 1, NaturaOverworld.overworldSapling2.getMetaFromState(NaturaOverworld.overworldSapling2.getDefaultState().withProperty(BlockOverworldSapling2.FOLIAGE, BlockOverworldSapling2.SaplingType.HOPSEED))); + this.registerItemModel(stack, "overworld_sapling_hopseed"); + stack = new ItemStack(Item.getItemFromBlock(NaturaOverworld.overworldSapling2), 1, NaturaOverworld.overworldSapling2.getMetaFromState(NaturaOverworld.overworldSapling2.getDefaultState().withProperty(BlockOverworldSapling2.FOLIAGE, BlockOverworldSapling2.SaplingType.SAKURA))); + this.registerItemModel(stack, "overworld_sapling_sakura"); + + stack = new ItemStack(Item.getItemFromBlock(NaturaOverworld.redwoodSapling), 1, NaturaOverworld.redwoodSapling.getMetaFromState(NaturaOverworld.redwoodSapling.getDefaultState().withProperty(BlockRedwoodSapling.FOLIAGE, BlockRedwoodSapling.SaplingType.REDWOOD))); + this.registerItemModel(stack, "overworld_sapling_redwood"); + } +} diff --git a/src/main/java/com/progwml6/natura/world/block/grass/BlockColoredGrass.java b/src/main/java/com/progwml6/natura/overworld/block/grass/BlockColoredGrass.java similarity index 95% rename from src/main/java/com/progwml6/natura/world/block/grass/BlockColoredGrass.java rename to src/main/java/com/progwml6/natura/overworld/block/grass/BlockColoredGrass.java index 989f4651..167324e5 100644 --- a/src/main/java/com/progwml6/natura/world/block/grass/BlockColoredGrass.java +++ b/src/main/java/com/progwml6/natura/overworld/block/grass/BlockColoredGrass.java @@ -1,4 +1,4 @@ -package com.progwml6.natura.world.block.grass; +package com.progwml6.natura.overworld.block.grass; import java.util.Locale; diff --git a/src/main/java/com/progwml6/natura/world/block/leaves/overworld/BlockOverworldLeaves.java b/src/main/java/com/progwml6/natura/overworld/block/leaves/BlockOverworldLeaves.java similarity index 94% rename from src/main/java/com/progwml6/natura/world/block/leaves/overworld/BlockOverworldLeaves.java rename to src/main/java/com/progwml6/natura/overworld/block/leaves/BlockOverworldLeaves.java index 82deda34..7ee9d246 100644 --- a/src/main/java/com/progwml6/natura/world/block/leaves/overworld/BlockOverworldLeaves.java +++ b/src/main/java/com/progwml6/natura/overworld/block/leaves/BlockOverworldLeaves.java @@ -1,4 +1,4 @@ -package com.progwml6.natura.world.block.leaves.overworld; +package com.progwml6.natura.overworld.block.leaves; import java.util.List; import java.util.Random; @@ -7,9 +7,9 @@ import com.google.common.collect.Lists; import com.progwml6.natura.library.NaturaRegistry; -import com.progwml6.natura.world.NaturaWorld; -import com.progwml6.natura.world.block.logs.overworld.BlockOverworldLog; -import com.progwml6.natura.world.block.logs.overworld.BlockOverworldLog.LogType; +import com.progwml6.natura.overworld.NaturaOverworld; +import com.progwml6.natura.overworld.block.logs.BlockOverworldLog; +import com.progwml6.natura.overworld.block.logs.BlockOverworldLog.LogType; import net.minecraft.block.BlockLeaves; import net.minecraft.block.BlockPlanks; @@ -87,7 +87,7 @@ protected int getSaplingDropChance(IBlockState state) @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(NaturaWorld.overworldSapling); + return Item.getItemFromBlock(NaturaOverworld.overworldSapling); } @Override diff --git a/src/main/java/com/progwml6/natura/world/block/leaves/overworld/BlockOverworldLeaves2.java b/src/main/java/com/progwml6/natura/overworld/block/leaves/BlockOverworldLeaves2.java similarity index 94% rename from src/main/java/com/progwml6/natura/world/block/leaves/overworld/BlockOverworldLeaves2.java rename to src/main/java/com/progwml6/natura/overworld/block/leaves/BlockOverworldLeaves2.java index 1095b2ba..2afbe5a2 100644 --- a/src/main/java/com/progwml6/natura/world/block/leaves/overworld/BlockOverworldLeaves2.java +++ b/src/main/java/com/progwml6/natura/overworld/block/leaves/BlockOverworldLeaves2.java @@ -1,4 +1,4 @@ -package com.progwml6.natura.world.block.leaves.overworld; +package com.progwml6.natura.overworld.block.leaves; import java.util.List; import java.util.Random; @@ -7,9 +7,9 @@ import com.google.common.collect.Lists; import com.progwml6.natura.library.NaturaRegistry; -import com.progwml6.natura.world.NaturaWorld; -import com.progwml6.natura.world.block.logs.overworld.BlockOverworldLog2; -import com.progwml6.natura.world.block.logs.overworld.BlockOverworldLog2.LogType; +import com.progwml6.natura.overworld.NaturaOverworld; +import com.progwml6.natura.overworld.block.logs.BlockOverworldLog2; +import com.progwml6.natura.overworld.block.logs.BlockOverworldLog2.LogType; import net.minecraft.block.BlockLeaves; import net.minecraft.block.BlockPlanks; @@ -87,7 +87,7 @@ protected int getSaplingDropChance(IBlockState state) @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(NaturaWorld.overworldSapling2); + return Item.getItemFromBlock(NaturaOverworld.overworldSapling2); } @Override @@ -111,7 +111,7 @@ else if (state.getValue(BlockOverworldLog.TYPE) == FoliageType.BLUE) stack = new ItemStack(Items.SLIME_BALL); } } - + if (stack != null) { spawnAsEntity(worldIn, pos, stack); diff --git a/src/main/java/com/progwml6/natura/world/block/leaves/overworld/BlockRedwoodLeaves.java b/src/main/java/com/progwml6/natura/overworld/block/leaves/BlockRedwoodLeaves.java similarity index 97% rename from src/main/java/com/progwml6/natura/world/block/leaves/overworld/BlockRedwoodLeaves.java rename to src/main/java/com/progwml6/natura/overworld/block/leaves/BlockRedwoodLeaves.java index 64b001cb..47d91ab3 100644 --- a/src/main/java/com/progwml6/natura/world/block/leaves/overworld/BlockRedwoodLeaves.java +++ b/src/main/java/com/progwml6/natura/overworld/block/leaves/BlockRedwoodLeaves.java @@ -1,4 +1,4 @@ -package com.progwml6.natura.world.block.leaves.overworld; +package com.progwml6.natura.overworld.block.leaves; import java.util.List; import java.util.Locale; @@ -8,7 +8,7 @@ import com.google.common.collect.Lists; import com.progwml6.natura.library.NaturaRegistry; -import com.progwml6.natura.world.NaturaWorld; +import com.progwml6.natura.overworld.NaturaOverworld; import net.minecraft.block.Block; import net.minecraft.block.BlockLeaves; @@ -126,7 +126,7 @@ protected int getSaplingDropChance(IBlockState state) @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { - return Item.getItemFromBlock(NaturaWorld.redwoodSapling); + return Item.getItemFromBlock(NaturaOverworld.redwoodSapling); } @Override diff --git a/src/main/java/com/progwml6/natura/world/block/logs/overworld/BlockOverworldLog.java b/src/main/java/com/progwml6/natura/overworld/block/logs/BlockOverworldLog.java similarity index 94% rename from src/main/java/com/progwml6/natura/world/block/logs/overworld/BlockOverworldLog.java rename to src/main/java/com/progwml6/natura/overworld/block/logs/BlockOverworldLog.java index 6feeec0b..bb2fec81 100644 --- a/src/main/java/com/progwml6/natura/world/block/logs/overworld/BlockOverworldLog.java +++ b/src/main/java/com/progwml6/natura/overworld/block/logs/BlockOverworldLog.java @@ -1,9 +1,8 @@ -package com.progwml6.natura.world.block.logs.overworld; +package com.progwml6.natura.overworld.block.logs; import java.util.Locale; -import com.progwml6.natura.world.block.logs.BlockEnumLog; -import com.progwml6.natura.world.block.logs.BlockEnumLog.EnumAxis; +import com.progwml6.natura.common.block.BlockEnumLog; import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyEnum; diff --git a/src/main/java/com/progwml6/natura/world/block/logs/overworld/BlockOverworldLog2.java b/src/main/java/com/progwml6/natura/overworld/block/logs/BlockOverworldLog2.java similarity index 94% rename from src/main/java/com/progwml6/natura/world/block/logs/overworld/BlockOverworldLog2.java rename to src/main/java/com/progwml6/natura/overworld/block/logs/BlockOverworldLog2.java index 1747d5b4..0c79de3f 100644 --- a/src/main/java/com/progwml6/natura/world/block/logs/overworld/BlockOverworldLog2.java +++ b/src/main/java/com/progwml6/natura/overworld/block/logs/BlockOverworldLog2.java @@ -1,9 +1,8 @@ -package com.progwml6.natura.world.block.logs.overworld; +package com.progwml6.natura.overworld.block.logs; import java.util.Locale; -import com.progwml6.natura.world.block.logs.BlockEnumLog; -import com.progwml6.natura.world.block.logs.BlockEnumLog.EnumAxis; +import com.progwml6.natura.common.block.BlockEnumLog; import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyEnum; diff --git a/src/main/java/com/progwml6/natura/world/block/logs/overworld/BlockRedwoodLog.java b/src/main/java/com/progwml6/natura/overworld/block/logs/BlockRedwoodLog.java similarity index 96% rename from src/main/java/com/progwml6/natura/world/block/logs/overworld/BlockRedwoodLog.java rename to src/main/java/com/progwml6/natura/overworld/block/logs/BlockRedwoodLog.java index f7c58bc3..f1b22906 100644 --- a/src/main/java/com/progwml6/natura/world/block/logs/overworld/BlockRedwoodLog.java +++ b/src/main/java/com/progwml6/natura/overworld/block/logs/BlockRedwoodLog.java @@ -1,4 +1,4 @@ -package com.progwml6.natura.world.block.logs.overworld; +package com.progwml6.natura.overworld.block.logs; import java.util.Locale; diff --git a/src/main/java/com/progwml6/natura/world/block/planks/overworld/BlockOverworldPlanks.java b/src/main/java/com/progwml6/natura/overworld/block/planks/BlockOverworldPlanks.java similarity index 95% rename from src/main/java/com/progwml6/natura/world/block/planks/overworld/BlockOverworldPlanks.java rename to src/main/java/com/progwml6/natura/overworld/block/planks/BlockOverworldPlanks.java index f385542c..9431814a 100644 --- a/src/main/java/com/progwml6/natura/world/block/planks/overworld/BlockOverworldPlanks.java +++ b/src/main/java/com/progwml6/natura/overworld/block/planks/BlockOverworldPlanks.java @@ -1,4 +1,4 @@ -package com.progwml6.natura.world.block.planks.overworld; +package com.progwml6.natura.overworld.block.planks; import java.util.Locale; diff --git a/src/main/java/com/progwml6/natura/world/block/saplings/overworld/BlockOverworldSapling.java b/src/main/java/com/progwml6/natura/overworld/block/saplings/BlockOverworldSapling.java similarity index 80% rename from src/main/java/com/progwml6/natura/world/block/saplings/overworld/BlockOverworldSapling.java rename to src/main/java/com/progwml6/natura/overworld/block/saplings/BlockOverworldSapling.java index ad0b5651..d778975b 100644 --- a/src/main/java/com/progwml6/natura/world/block/saplings/overworld/BlockOverworldSapling.java +++ b/src/main/java/com/progwml6/natura/overworld/block/saplings/BlockOverworldSapling.java @@ -1,4 +1,4 @@ -package com.progwml6.natura.world.block.saplings.overworld; +package com.progwml6.natura.overworld.block.saplings; import java.util.List; import java.util.Locale; @@ -8,8 +8,8 @@ import com.progwml6.natura.Natura; import com.progwml6.natura.library.NaturaRegistry; -import com.progwml6.natura.world.NaturaWorld; -import com.progwml6.natura.world.block.logs.overworld.BlockOverworldLog; +import com.progwml6.natura.overworld.NaturaOverworld; +import com.progwml6.natura.overworld.block.logs.BlockOverworldLog; import com.progwml6.natura.world.worldgen.BaseTreeGenerator; import com.progwml6.natura.world.worldgen.OverworldTreeGenerator; @@ -127,29 +127,29 @@ public void generateTree(@Nonnull World worldIn, @Nonnull BlockPos pos, @Nonnull switch (state.getValue(FOLIAGE)) { case MAPLE: - log = NaturaWorld.overworldLog.getDefaultState().withProperty(BlockOverworldLog.TYPE, BlockOverworldLog.LogType.MAPLE); - leaves = NaturaWorld.overworldLeaves.getDefaultState().withProperty(BlockOverworldLog.TYPE, BlockOverworldLog.LogType.MAPLE); + log = NaturaOverworld.overworldLog.getDefaultState().withProperty(BlockOverworldLog.TYPE, BlockOverworldLog.LogType.MAPLE); + leaves = NaturaOverworld.overworldLeaves.getDefaultState().withProperty(BlockOverworldLog.TYPE, BlockOverworldLog.LogType.MAPLE); gen = new OverworldTreeGenerator(4, 2, log, leaves); break; case SILVERBELL: - log = NaturaWorld.overworldLog.getDefaultState().withProperty(BlockOverworldLog.TYPE, BlockOverworldLog.LogType.SILVERBELL); - leaves = NaturaWorld.overworldLeaves.getDefaultState().withProperty(BlockOverworldLog.TYPE, BlockOverworldLog.LogType.SILVERBELL); + log = NaturaOverworld.overworldLog.getDefaultState().withProperty(BlockOverworldLog.TYPE, BlockOverworldLog.LogType.SILVERBELL); + leaves = NaturaOverworld.overworldLeaves.getDefaultState().withProperty(BlockOverworldLog.TYPE, BlockOverworldLog.LogType.SILVERBELL); gen = new OverworldTreeGenerator(4, 2, log, leaves); break; case AMARANTH: - log = NaturaWorld.overworldLog.getDefaultState().withProperty(BlockOverworldLog.TYPE, BlockOverworldLog.LogType.AMARANTH); - leaves = NaturaWorld.overworldLeaves.getDefaultState().withProperty(BlockOverworldLog.TYPE, BlockOverworldLog.LogType.AMARANTH); + log = NaturaOverworld.overworldLog.getDefaultState().withProperty(BlockOverworldLog.TYPE, BlockOverworldLog.LogType.AMARANTH); + leaves = NaturaOverworld.overworldLeaves.getDefaultState().withProperty(BlockOverworldLog.TYPE, BlockOverworldLog.LogType.AMARANTH); gen = new OverworldTreeGenerator(9, 8, log, leaves); break; case TIGER: - log = NaturaWorld.overworldLog.getDefaultState().withProperty(BlockOverworldLog.TYPE, BlockOverworldLog.LogType.TIGER); - leaves = NaturaWorld.overworldLeaves.getDefaultState().withProperty(BlockOverworldLog.TYPE, BlockOverworldLog.LogType.TIGER); + log = NaturaOverworld.overworldLog.getDefaultState().withProperty(BlockOverworldLog.TYPE, BlockOverworldLog.LogType.TIGER); + leaves = NaturaOverworld.overworldLeaves.getDefaultState().withProperty(BlockOverworldLog.TYPE, BlockOverworldLog.LogType.TIGER); gen = new OverworldTreeGenerator(6, 4, log, leaves); diff --git a/src/main/java/com/progwml6/natura/world/block/saplings/overworld/BlockOverworldSapling2.java b/src/main/java/com/progwml6/natura/overworld/block/saplings/BlockOverworldSapling2.java similarity index 91% rename from src/main/java/com/progwml6/natura/world/block/saplings/overworld/BlockOverworldSapling2.java rename to src/main/java/com/progwml6/natura/overworld/block/saplings/BlockOverworldSapling2.java index 6835b74f..193e3157 100644 --- a/src/main/java/com/progwml6/natura/world/block/saplings/overworld/BlockOverworldSapling2.java +++ b/src/main/java/com/progwml6/natura/overworld/block/saplings/BlockOverworldSapling2.java @@ -1,4 +1,4 @@ -package com.progwml6.natura.world.block.saplings.overworld; +package com.progwml6.natura.overworld.block.saplings; import java.util.List; import java.util.Locale; @@ -8,8 +8,8 @@ import com.progwml6.natura.Natura; import com.progwml6.natura.library.NaturaRegistry; -import com.progwml6.natura.world.NaturaWorld; -import com.progwml6.natura.world.block.logs.overworld.BlockOverworldLog2; +import com.progwml6.natura.overworld.NaturaOverworld; +import com.progwml6.natura.overworld.block.logs.BlockOverworldLog2; import com.progwml6.natura.world.worldgen.BaseTreeGenerator; import com.progwml6.natura.world.worldgen.WillowTreeGenerator; @@ -127,8 +127,8 @@ public void generateTree(@Nonnull World worldIn, @Nonnull BlockPos pos, @Nonnull switch (state.getValue(FOLIAGE)) { case WILLOW: - log = NaturaWorld.overworldLog2.getDefaultState().withProperty(BlockOverworldLog2.TYPE, BlockOverworldLog2.LogType.WILLOW); - leaves = NaturaWorld.overworldLeaves2.getDefaultState().withProperty(BlockOverworldLog2.TYPE, BlockOverworldLog2.LogType.WILLOW); + log = NaturaOverworld.overworldLog2.getDefaultState().withProperty(BlockOverworldLog2.TYPE, BlockOverworldLog2.LogType.WILLOW); + leaves = NaturaOverworld.overworldLeaves2.getDefaultState().withProperty(BlockOverworldLog2.TYPE, BlockOverworldLog2.LogType.WILLOW); gen = new WillowTreeGenerator(4, 5, log, leaves); diff --git a/src/main/java/com/progwml6/natura/world/block/saplings/overworld/BlockRedwoodSapling.java b/src/main/java/com/progwml6/natura/overworld/block/saplings/BlockRedwoodSapling.java similarity index 97% rename from src/main/java/com/progwml6/natura/world/block/saplings/overworld/BlockRedwoodSapling.java rename to src/main/java/com/progwml6/natura/overworld/block/saplings/BlockRedwoodSapling.java index aacf1cf2..b8778dc9 100644 --- a/src/main/java/com/progwml6/natura/world/block/saplings/overworld/BlockRedwoodSapling.java +++ b/src/main/java/com/progwml6/natura/overworld/block/saplings/BlockRedwoodSapling.java @@ -1,4 +1,4 @@ -package com.progwml6.natura.world.block.saplings.overworld; +package com.progwml6.natura.overworld.block.saplings; import java.util.List; import java.util.Locale; @@ -111,7 +111,9 @@ public ItemStack getPickBlock(@Nonnull IBlockState state, RayTraceResult target, @Override public void generateTree(@Nonnull World worldIn, @Nonnull BlockPos pos, @Nonnull IBlockState state, @Nonnull Random rand) { - /**if (!net.minecraftforge.event.terraingen.TerrainGen.saplingGrowTree(worldIn, rand, pos)) + /* + TODO: FIX REDWOOD + if (!net.minecraftforge.event.terraingen.TerrainGen.saplingGrowTree(worldIn, rand, pos)) { return; } diff --git a/src/main/java/com/progwml6/natura/world/block/grass/BlockColoredGrassSlab.java b/src/main/java/com/progwml6/natura/overworld/block/slabs/BlockColoredGrassSlab.java similarity index 55% rename from src/main/java/com/progwml6/natura/world/block/grass/BlockColoredGrassSlab.java rename to src/main/java/com/progwml6/natura/overworld/block/slabs/BlockColoredGrassSlab.java index 02e78379..85a86589 100644 --- a/src/main/java/com/progwml6/natura/world/block/grass/BlockColoredGrassSlab.java +++ b/src/main/java/com/progwml6/natura/overworld/block/slabs/BlockColoredGrassSlab.java @@ -1,21 +1,19 @@ -package com.progwml6.natura.world.block.grass; +package com.progwml6.natura.overworld.block.slabs; import com.progwml6.natura.library.NaturaRegistry; -import com.progwml6.natura.world.NaturaWorld; +import com.progwml6.natura.overworld.NaturaOverworld; +import com.progwml6.natura.overworld.block.grass.BlockColoredGrass; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; -import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.IBlockState; import slimeknights.mantle.block.EnumBlockSlab; public class BlockColoredGrassSlab extends EnumBlockSlab { - public final static PropertyEnum TYPE = PropertyEnum.create("type", BlockColoredGrass.GrassType.class); - public BlockColoredGrassSlab() { - super(Material.GROUND, TYPE, BlockColoredGrass.GrassType.class); + super(Material.GROUND, BlockColoredGrass.TYPE, BlockColoredGrass.GrassType.class); this.setHardness(0.6F); this.setSoundType(SoundType.PLANT); @@ -25,6 +23,6 @@ public BlockColoredGrassSlab() @Override public IBlockState getFullBlock(IBlockState state) { - return NaturaWorld.coloredGrass.getDefaultState().withProperty(BlockColoredGrass.TYPE, state.getValue(TYPE)); + return NaturaOverworld.coloredGrass.getDefaultState().withProperty(BlockColoredGrass.TYPE, state.getValue(BlockColoredGrass.TYPE)); } } diff --git a/src/main/java/com/progwml6/natura/overworld/block/slabs/BlockOverworldSlab.java b/src/main/java/com/progwml6/natura/overworld/block/slabs/BlockOverworldSlab.java new file mode 100644 index 00000000..5ec884fc --- /dev/null +++ b/src/main/java/com/progwml6/natura/overworld/block/slabs/BlockOverworldSlab.java @@ -0,0 +1,86 @@ +package com.progwml6.natura.overworld.block.slabs; + +import java.util.Locale; + +import com.progwml6.natura.library.NaturaRegistry; +import com.progwml6.natura.overworld.NaturaOverworld; +import com.progwml6.natura.overworld.block.planks.BlockOverworldPlanks; + +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; +import net.minecraft.block.properties.PropertyEnum; +import net.minecraft.block.state.IBlockState; +import net.minecraft.init.Blocks; +import net.minecraft.util.IStringSerializable; +import slimeknights.mantle.block.EnumBlock; +import slimeknights.mantle.block.EnumBlockSlab; + +public class BlockOverworldSlab extends EnumBlockSlab +{ + public final static PropertyEnum TYPE = PropertyEnum.create("type", PlankType.class); + + public BlockOverworldSlab() + { + super(Material.WOOD, TYPE, PlankType.class); + + Blocks.FIRE.setFireInfo(this, 5, 20); + + this.setHardness(2.0F); + this.setSoundType(SoundType.WOOD); + this.setCreativeTab(NaturaRegistry.tabWorld); + } + + @Override + public IBlockState getFullBlock(IBlockState state) + { + if (NaturaOverworld.overworldPlanks == null) + { + return null; + } + return NaturaOverworld.overworldPlanks.getDefaultState().withProperty(BlockOverworldPlanks.TYPE, state.getValue(TYPE).asFullBlock()); + } + + // using a separate Enum than BlockOverworldPlanks since there are more variants than the 8 types slabs support + public enum PlankType implements IStringSerializable, EnumBlock.IEnumMeta + { + MAPLE, SILVERBELL, AMARANTH, TIGER, WILLOW; + + public final int meta; + + PlankType() + { + meta = ordinal(); + } + + @Override + public String getName() + { + return this.toString().toLowerCase(Locale.US); + } + + public BlockOverworldPlanks.PlankType asFullBlock() + { + switch (this) + { + case MAPLE: + return BlockOverworldPlanks.PlankType.MAPLE; + case SILVERBELL: + return BlockOverworldPlanks.PlankType.SILVERBELL; + case AMARANTH: + return BlockOverworldPlanks.PlankType.AMARANTH; + case TIGER: + return BlockOverworldPlanks.PlankType.TIGER; + case WILLOW: + return BlockOverworldPlanks.PlankType.WILLOW; + default: + return null; + } + } + + @Override + public int getMeta() + { + return meta; + } + } +} diff --git a/src/main/java/com/progwml6/natura/overworld/block/slabs/BlockOverworldSlab2.java b/src/main/java/com/progwml6/natura/overworld/block/slabs/BlockOverworldSlab2.java new file mode 100644 index 00000000..4519a24b --- /dev/null +++ b/src/main/java/com/progwml6/natura/overworld/block/slabs/BlockOverworldSlab2.java @@ -0,0 +1,84 @@ +package com.progwml6.natura.overworld.block.slabs; + +import java.util.Locale; + +import com.progwml6.natura.library.NaturaRegistry; +import com.progwml6.natura.overworld.NaturaOverworld; +import com.progwml6.natura.overworld.block.planks.BlockOverworldPlanks; + +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; +import net.minecraft.block.properties.PropertyEnum; +import net.minecraft.block.state.IBlockState; +import net.minecraft.init.Blocks; +import net.minecraft.util.IStringSerializable; +import slimeknights.mantle.block.EnumBlock; +import slimeknights.mantle.block.EnumBlockSlab; + +public class BlockOverworldSlab2 extends EnumBlockSlab +{ + public final static PropertyEnum TYPE = PropertyEnum.create("type", PlankType.class); + + public BlockOverworldSlab2() + { + super(Material.WOOD, TYPE, PlankType.class); + + Blocks.FIRE.setFireInfo(this, 5, 20); + + this.setHardness(2.0F); + this.setSoundType(SoundType.WOOD); + this.setCreativeTab(NaturaRegistry.tabWorld); + } + + @Override + public IBlockState getFullBlock(IBlockState state) + { + if (NaturaOverworld.overworldPlanks == null) + { + return null; + } + return NaturaOverworld.overworldPlanks.getDefaultState().withProperty(BlockOverworldPlanks.TYPE, state.getValue(TYPE).asFullBlock()); + } + + // using a separate Enum than BlockOverworldPlanks since there are more variants than the 8 types slabs support + public enum PlankType implements IStringSerializable, EnumBlock.IEnumMeta + { + EUCALYPTUS, HOPSEED, SAKURA, REDWOOD; + + public final int meta; + + PlankType() + { + meta = ordinal(); + } + + @Override + public String getName() + { + return this.toString().toLowerCase(Locale.US); + } + + public BlockOverworldPlanks.PlankType asFullBlock() + { + switch (this) + { + case EUCALYPTUS: + return BlockOverworldPlanks.PlankType.EUCALYPTUS; + case HOPSEED: + return BlockOverworldPlanks.PlankType.HOPSEED; + case SAKURA: + return BlockOverworldPlanks.PlankType.SAKURA; + case REDWOOD: + return BlockOverworldPlanks.PlankType.REDWOOD; + default: + return null; + } + } + + @Override + public int getMeta() + { + return meta; + } + } +} diff --git a/src/main/java/com/progwml6/natura/plugin/waila/BlocksDataProvider.java b/src/main/java/com/progwml6/natura/plugin/waila/BlocksDataProvider.java index 68dea7aa..59241cf7 100644 --- a/src/main/java/com/progwml6/natura/plugin/waila/BlocksDataProvider.java +++ b/src/main/java/com/progwml6/natura/plugin/waila/BlocksDataProvider.java @@ -1,17 +1,17 @@ package com.progwml6.natura.plugin.waila; -import static com.progwml6.natura.world.NaturaWorld.netherLeaves; -import static com.progwml6.natura.world.NaturaWorld.netherLeaves2; -import static com.progwml6.natura.world.NaturaWorld.netherLog; -import static com.progwml6.natura.world.NaturaWorld.netherSapling; -import static com.progwml6.natura.world.NaturaWorld.overworldLeaves; -import static com.progwml6.natura.world.NaturaWorld.overworldLeaves2; -import static com.progwml6.natura.world.NaturaWorld.overworldLog; -import static com.progwml6.natura.world.NaturaWorld.overworldLog2; -import static com.progwml6.natura.world.NaturaWorld.overworldSapling; -import static com.progwml6.natura.world.NaturaWorld.overworldSapling2; -import static com.progwml6.natura.world.NaturaWorld.redwoodLeaves; -import static com.progwml6.natura.world.NaturaWorld.redwoodSapling; +import static com.progwml6.natura.nether.NaturaNether.netherLeaves; +import static com.progwml6.natura.nether.NaturaNether.netherLeaves2; +import static com.progwml6.natura.nether.NaturaNether.netherLog; +import static com.progwml6.natura.nether.NaturaNether.netherSapling; +import static com.progwml6.natura.overworld.NaturaOverworld.overworldLeaves; +import static com.progwml6.natura.overworld.NaturaOverworld.overworldLeaves2; +import static com.progwml6.natura.overworld.NaturaOverworld.overworldLog; +import static com.progwml6.natura.overworld.NaturaOverworld.overworldLog2; +import static com.progwml6.natura.overworld.NaturaOverworld.overworldSapling; +import static com.progwml6.natura.overworld.NaturaOverworld.overworldSapling2; +import static com.progwml6.natura.overworld.NaturaOverworld.redwoodLeaves; +import static com.progwml6.natura.overworld.NaturaOverworld.redwoodSapling; import java.util.List; @@ -35,19 +35,37 @@ public ItemStack getWailaStack(IWailaDataAccessor accessor, IWailaConfigHandler { Block block = accessor.getBlock(); - if (isWorldLoaded()) + if (isOverworldLoaded()) { - if (block == overworldLog || block == overworldLog2 || block == overworldLeaves || block == netherLog) + if (block == overworldLog || block == overworldLog2 || block == overworldLeaves) { return new ItemStack(block, 1, accessor.getMetadata() % 4); } - if (block == overworldLeaves || block == overworldLeaves2 || block == redwoodLeaves || block == netherLeaves || block == netherLeaves2) + if (block == overworldLeaves || block == overworldLeaves2 || block == redwoodLeaves) { return new ItemStack(block, 1, accessor.getMetadata() % 4); } - if (block == overworldSapling || block == overworldSapling2 || block == redwoodSapling || block == netherSapling) + if (block == overworldSapling || block == overworldSapling2 || block == redwoodSapling) + { + return new ItemStack(block, 1, accessor.getMetadata() % 8); + } + } + + if (isNetherLoaded()) + { + if (block == netherLog) + { + return new ItemStack(block, 1, accessor.getMetadata() % 4); + } + + if (block == netherLeaves || block == netherLeaves2) + { + return new ItemStack(block, 1, accessor.getMetadata() % 4); + } + + if (block == netherSapling) { return new ItemStack(block, 1, accessor.getMetadata() % 8); } diff --git a/src/main/java/com/progwml6/natura/plugin/waila/WailaRegistrar.java b/src/main/java/com/progwml6/natura/plugin/waila/WailaRegistrar.java index a9190d37..1fbd5631 100644 --- a/src/main/java/com/progwml6/natura/plugin/waila/WailaRegistrar.java +++ b/src/main/java/com/progwml6/natura/plugin/waila/WailaRegistrar.java @@ -1,17 +1,17 @@ package com.progwml6.natura.plugin.waila; -import static com.progwml6.natura.world.NaturaWorld.netherLeaves; -import static com.progwml6.natura.world.NaturaWorld.netherLeaves2; -import static com.progwml6.natura.world.NaturaWorld.netherLog; -import static com.progwml6.natura.world.NaturaWorld.netherSapling; -import static com.progwml6.natura.world.NaturaWorld.overworldLeaves; -import static com.progwml6.natura.world.NaturaWorld.overworldLeaves2; -import static com.progwml6.natura.world.NaturaWorld.overworldLog; -import static com.progwml6.natura.world.NaturaWorld.overworldLog2; -import static com.progwml6.natura.world.NaturaWorld.overworldSapling; -import static com.progwml6.natura.world.NaturaWorld.overworldSapling2; -import static com.progwml6.natura.world.NaturaWorld.redwoodLeaves; -import static com.progwml6.natura.world.NaturaWorld.redwoodSapling; +import static com.progwml6.natura.nether.NaturaNether.netherLeaves; +import static com.progwml6.natura.nether.NaturaNether.netherLeaves2; +import static com.progwml6.natura.nether.NaturaNether.netherLog; +import static com.progwml6.natura.nether.NaturaNether.netherSapling; +import static com.progwml6.natura.overworld.NaturaOverworld.overworldLeaves; +import static com.progwml6.natura.overworld.NaturaOverworld.overworldLeaves2; +import static com.progwml6.natura.overworld.NaturaOverworld.overworldLog; +import static com.progwml6.natura.overworld.NaturaOverworld.overworldLog2; +import static com.progwml6.natura.overworld.NaturaOverworld.overworldSapling; +import static com.progwml6.natura.overworld.NaturaOverworld.overworldSapling2; +import static com.progwml6.natura.overworld.NaturaOverworld.redwoodLeaves; +import static com.progwml6.natura.overworld.NaturaOverworld.redwoodSapling; import com.progwml6.natura.common.NaturaPulse; @@ -23,7 +23,7 @@ public static void wailaCallback(IWailaRegistrar registrar) { BlocksDataProvider blockDataProvider = new BlocksDataProvider(); - if (isWorldLoaded()) + if (isOverworldLoaded()) { registrar.registerStackProvider(blockDataProvider, overworldLog.getClass()); registrar.registerStackProvider(blockDataProvider, overworldLeaves.getClass()); @@ -35,12 +35,16 @@ public static void wailaCallback(IWailaRegistrar registrar) registrar.registerStackProvider(blockDataProvider, redwoodLeaves.getClass()); registrar.registerStackProvider(blockDataProvider, redwoodSapling.getClass()); + } + if (isNetherLoaded()) + { registrar.registerStackProvider(blockDataProvider, netherLog.getClass()); - registrar.registerStackProvider(blockDataProvider, netherLeaves.getClass()); - registrar.registerStackProvider(blockDataProvider, netherSapling.getClass()); + registrar.registerStackProvider(blockDataProvider, netherLeaves.getClass()); registrar.registerStackProvider(blockDataProvider, netherLeaves2.getClass()); + + registrar.registerStackProvider(blockDataProvider, netherSapling.getClass()); } } diff --git a/src/main/java/com/progwml6/natura/world/NaturaWorld.java b/src/main/java/com/progwml6/natura/world/NaturaWorld.java index 9eacdea2..e4f45c9c 100644 --- a/src/main/java/com/progwml6/natura/world/NaturaWorld.java +++ b/src/main/java/com/progwml6/natura/world/NaturaWorld.java @@ -5,34 +5,13 @@ import com.google.common.eventbus.Subscribe; import com.progwml6.natura.common.CommonProxy; import com.progwml6.natura.common.NaturaPulse; -import com.progwml6.natura.library.NaturaRegistry; import com.progwml6.natura.library.Util; -import com.progwml6.natura.world.block.grass.BlockColoredGrass; -import com.progwml6.natura.world.block.grass.BlockColoredGrassSlab; -import com.progwml6.natura.world.block.leaves.nether.BlockNetherLeaves; -import com.progwml6.natura.world.block.leaves.nether.BlockNetherLeaves2; -import com.progwml6.natura.world.block.leaves.overworld.BlockOverworldLeaves; -import com.progwml6.natura.world.block.leaves.overworld.BlockOverworldLeaves2; -import com.progwml6.natura.world.block.leaves.overworld.BlockRedwoodLeaves; -import com.progwml6.natura.world.block.logs.nether.BlockNetherLog; -import com.progwml6.natura.world.block.logs.overworld.BlockOverworldLog; -import com.progwml6.natura.world.block.logs.overworld.BlockOverworldLog2; -import com.progwml6.natura.world.block.logs.overworld.BlockRedwoodLog; -import com.progwml6.natura.world.block.planks.nether.BlockNetherPlanks; -import com.progwml6.natura.world.block.planks.overworld.BlockOverworldPlanks; -import com.progwml6.natura.world.block.saplings.nether.BlockNetherSapling; -import com.progwml6.natura.world.block.saplings.overworld.BlockOverworldSapling; -import com.progwml6.natura.world.block.saplings.overworld.BlockOverworldSapling2; -import com.progwml6.natura.world.block.saplings.overworld.BlockRedwoodSapling; -import com.progwml6.natura.world.item.ItemBlockLeaves; -import net.minecraft.item.ItemStack; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.SidedProxy; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; -import slimeknights.mantle.item.ItemBlockMeta; import slimeknights.mantle.pulsar.pulse.Pulse; @Pulse(id = NaturaWorld.PulseId, description = "Everything that's found in the world and worldgen") @@ -45,62 +24,10 @@ public class NaturaWorld extends NaturaPulse @SidedProxy(clientSide = "com.progwml6.natura.world.WorldClientProxy", serverSide = "com.progwml6.natura.common.CommonProxy") public static CommonProxy proxy; - //@formatter:off - public static BlockColoredGrass coloredGrass; - public static BlockColoredGrassSlab coloredGrassSlab; - - public static BlockOverworldLog overworldLog; - public static BlockOverworldLeaves overworldLeaves; - public static BlockOverworldSapling overworldSapling; - public static BlockOverworldLog2 overworldLog2; - public static BlockOverworldLeaves2 overworldLeaves2; - public static BlockOverworldSapling2 overworldSapling2; - public static BlockOverworldPlanks overworldPlanks; - - public static BlockRedwoodLog redwoodLog; - public static BlockRedwoodSapling redwoodSapling; //TODO: FIX REDWOOD - public static BlockRedwoodLeaves redwoodLeaves; - - public static BlockNetherLog netherLog; - public static BlockNetherLeaves netherLeaves; - public static BlockNetherLeaves2 netherLeaves2; - public static BlockNetherSapling netherSapling; - public static BlockNetherPlanks netherPlanks; - //@formatter:on - @Subscribe public void preInit(FMLPreInitializationEvent event) { - coloredGrass = registerEnumBlock(new BlockColoredGrass(), "colored_grass"); - coloredGrassSlab = registerEnumBlockSlab(new BlockColoredGrassSlab(), "colored_grass_slab"); - - overworldLog = registerEnumBlock(new BlockOverworldLog(), "overworld_logs"); - overworldLog2 = registerEnumBlock(new BlockOverworldLog2(), "overworld_logs2"); - redwoodLog = registerEnumBlock(new BlockRedwoodLog(), "redwood_logs"); - netherLog = registerEnumBlock(new BlockNetherLog(), "nether_logs"); - - overworldLeaves = registerBlock(new ItemBlockLeaves(new BlockOverworldLeaves()), "overworld_leaves"); - ItemBlockMeta.setMappingProperty(overworldLeaves, BlockOverworldLog.TYPE); - overworldLeaves2 = registerBlock(new ItemBlockLeaves(new BlockOverworldLeaves2()), "overworld_leaves2"); - ItemBlockMeta.setMappingProperty(overworldLeaves2, BlockOverworldLog2.TYPE); - redwoodLeaves = registerBlock(new ItemBlockLeaves(new BlockRedwoodLeaves()), "redwood_leaves"); - ItemBlockMeta.setMappingProperty(redwoodLeaves, BlockRedwoodLeaves.TYPE); - netherLeaves = registerBlock(new ItemBlockLeaves(new BlockNetherLeaves()), "nether_leaves"); - ItemBlockMeta.setMappingProperty(netherLeaves, BlockNetherLeaves.TYPE); - netherLeaves2 = registerBlock(new ItemBlockLeaves(new BlockNetherLeaves2()), "nether_leaves2"); - ItemBlockMeta.setMappingProperty(netherLeaves2, BlockNetherLeaves2.TYPE); - - overworldSapling = registerBlock(new BlockOverworldSapling(), "overworld_sapling", BlockOverworldSapling.FOLIAGE); - overworldSapling2 = registerBlock(new BlockOverworldSapling2(), "overworld_sapling2", BlockOverworldSapling2.FOLIAGE); - redwoodSapling = registerBlock(new BlockRedwoodSapling(), "redwood_sapling", BlockRedwoodSapling.FOLIAGE);// TODO: FIX REDWOOD - netherSapling = registerBlock(new BlockNetherSapling(), "nether_sapling", BlockNetherSapling.FOLIAGE); - - overworldPlanks = registerEnumBlock(new BlockOverworldPlanks(), "overworld_planks"); - netherPlanks = registerEnumBlock(new BlockNetherPlanks(), "nether_planks"); - proxy.preInit(); - - NaturaRegistry.tabWorld.setDisplayIcon(new ItemStack(coloredGrass)); } @Subscribe diff --git a/src/main/java/com/progwml6/natura/world/WorldClientProxy.java b/src/main/java/com/progwml6/natura/world/WorldClientProxy.java index 4df63164..3f676023 100644 --- a/src/main/java/com/progwml6/natura/world/WorldClientProxy.java +++ b/src/main/java/com/progwml6/natura/world/WorldClientProxy.java @@ -1,285 +1,24 @@ package com.progwml6.natura.world; -import javax.annotation.Nonnull; - import com.progwml6.natura.common.ClientProxy; -import com.progwml6.natura.world.block.grass.BlockColoredGrass; -import com.progwml6.natura.world.block.grass.BlockColoredGrassSlab; -import com.progwml6.natura.world.block.leaves.nether.BlockNetherLeaves; -import com.progwml6.natura.world.block.leaves.nether.BlockNetherLeaves2; -import com.progwml6.natura.world.block.leaves.overworld.BlockRedwoodLeaves; -import com.progwml6.natura.world.block.logs.nether.BlockNetherLog; -import com.progwml6.natura.world.block.logs.overworld.BlockOverworldLog; -import com.progwml6.natura.world.block.logs.overworld.BlockOverworldLog2; -import com.progwml6.natura.world.block.saplings.nether.BlockNetherSapling; -import com.progwml6.natura.world.block.saplings.overworld.BlockOverworldSapling; -import com.progwml6.natura.world.block.saplings.overworld.BlockOverworldSapling2; -import com.progwml6.natura.world.block.saplings.overworld.BlockRedwoodSapling; -import com.progwml6.natura.world.client.colorizers.GrassColorizer; -import com.progwml6.natura.world.client.colorizers.LeavesColorizer; - -import net.minecraft.block.BlockLeaves; -import net.minecraft.block.BlockSapling; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.block.model.ModelResourceLocation; -import net.minecraft.client.renderer.block.statemap.StateMap; -import net.minecraft.client.renderer.color.BlockColors; -import net.minecraft.client.renderer.color.IBlockColor; -import net.minecraft.client.renderer.color.IItemColor; -import net.minecraft.client.resources.IReloadableResourceManager; -import net.minecraft.item.Item; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.ModelLoader; public class WorldClientProxy extends ClientProxy { - public static GrassColorizer grassColorizer = new GrassColorizer(); - - public static Minecraft minecraft = Minecraft.getMinecraft(); - @Override public void preInit() { - ((IReloadableResourceManager) minecraft.getResourceManager()).registerReloadListener(grassColorizer); - super.preInit(); } @Override public void init() { - final BlockColors blockColors = minecraft.getBlockColors(); - - blockColors.registerBlockColorHandler(new IBlockColor() - { - @Override - public int colorMultiplier(@Nonnull IBlockState state, IBlockAccess access, BlockPos pos, int tintIndex) - { - BlockColoredGrass.GrassType type = state.getValue(BlockColoredGrass.TYPE); - - if (pos == null) - { - return GrassColorizer.getGrassColorStatic(type); - } - - return GrassColorizer.getGrassColorForPos(access, pos, type); - } - }, NaturaWorld.coloredGrass); - - blockColors.registerBlockColorHandler(new IBlockColor() - { - @Override - public int colorMultiplier(@Nonnull IBlockState state, IBlockAccess access, BlockPos pos, int tintIndex) - { - BlockColoredGrass.GrassType type = state.getValue(BlockColoredGrassSlab.TYPE); - - if (pos == null) - { - return GrassColorizer.getGrassColorStatic(type); - } - - return GrassColorizer.getGrassColorForPos(access, pos, type); - } - }, NaturaWorld.coloredGrassSlab); - - blockColors.registerBlockColorHandler(new IBlockColor() - { - @Override - public int colorMultiplier(@Nonnull IBlockState state, IBlockAccess access, BlockPos pos, int tintIndex) - { - BlockOverworldLog.LogType type = state.getValue(BlockOverworldLog.TYPE); - - if (pos == null) - { - return LeavesColorizer.getOverworldLeavesColorStatic(type); - } - - return LeavesColorizer.getOverworldLeavesColorForPos(access, pos, type); - } - }, NaturaWorld.overworldLeaves); - - blockColors.registerBlockColorHandler(new IBlockColor() - { - @Override - public int colorMultiplier(@Nonnull IBlockState state, IBlockAccess access, BlockPos pos, int tintIndex) - { - BlockOverworldLog2.LogType type = state.getValue(BlockOverworldLog2.TYPE); - - if (pos == null) - { - return LeavesColorizer.getSecondOverworldLeavesColorStatic(type); - } - - return LeavesColorizer.getSecondOverworldLeavesColorForPos(access, pos, type); - } - }, NaturaWorld.overworldLeaves2); - - blockColors.registerBlockColorHandler(new IBlockColor() - { - @Override - public int colorMultiplier(@Nonnull IBlockState state, IBlockAccess access, BlockPos pos, int tintIndex) - { - BlockRedwoodLeaves.RedwoodType type = state.getValue(BlockRedwoodLeaves.TYPE); - - if (pos == null) - { - return LeavesColorizer.getRedwoodLeavesColorStatic(type); - } - - return LeavesColorizer.getRedwoodLeavesColorForPos(access, pos, type); - } - }, NaturaWorld.redwoodLeaves); - - blockColors.registerBlockColorHandler(new IBlockColor() - { - @Override - public int colorMultiplier(@Nonnull IBlockState state, IBlockAccess access, BlockPos pos, int tintIndex) - { - return LeavesColorizer.noColor; - } - }, NaturaWorld.netherLeaves); - - blockColors.registerBlockColorHandler(new IBlockColor() - { - @Override - public int colorMultiplier(@Nonnull IBlockState state, IBlockAccess access, BlockPos pos, int tintIndex) - { - return LeavesColorizer.noColor; - } - }, NaturaWorld.netherLeaves2); - - minecraft.getItemColors().registerItemColorHandler(new IItemColor() - { - @Override - public int getColorFromItemstack(@Nonnull ItemStack stack, int tintIndex) - { - @SuppressWarnings("deprecation") - IBlockState iblockstate = ((ItemBlock) stack.getItem()).getBlock().getStateFromMeta(stack.getMetadata()); - return blockColors.colorMultiplier(iblockstate, null, null, tintIndex); - } - }, NaturaWorld.overworldLeaves, NaturaWorld.overworldLeaves2, NaturaWorld.redwoodLeaves, NaturaWorld.netherLeaves, NaturaWorld.netherLeaves2, NaturaWorld.coloredGrass, NaturaWorld.coloredGrassSlab); - super.init(); } @Override protected void registerModels() { - // blocks - ModelLoader.setCustomStateMapper(NaturaWorld.overworldLeaves, (new StateMap.Builder()).ignore(BlockLeaves.CHECK_DECAY, BlockLeaves.DECAYABLE).build()); - ModelLoader.setCustomStateMapper(NaturaWorld.overworldLeaves2, (new StateMap.Builder()).ignore(BlockLeaves.CHECK_DECAY, BlockLeaves.DECAYABLE).build()); - ModelLoader.setCustomStateMapper(NaturaWorld.redwoodLeaves, (new StateMap.Builder()).ignore(BlockLeaves.CHECK_DECAY, BlockLeaves.DECAYABLE).build()); - ModelLoader.setCustomStateMapper(NaturaWorld.netherLeaves, (new StateMap.Builder()).ignore(BlockLeaves.CHECK_DECAY, BlockLeaves.DECAYABLE).build()); - ModelLoader.setCustomStateMapper(NaturaWorld.netherLeaves2, (new StateMap.Builder()).ignore(BlockLeaves.CHECK_DECAY, BlockLeaves.DECAYABLE).build()); - - ModelLoader.setCustomStateMapper(NaturaWorld.overworldSapling, (new StateMap.Builder()).ignore(BlockOverworldSapling.STAGE, BlockSapling.TYPE).build()); - ModelLoader.setCustomStateMapper(NaturaWorld.overworldSapling2, (new StateMap.Builder()).ignore(BlockOverworldSapling2.STAGE, BlockSapling.TYPE).build()); - ModelLoader.setCustomStateMapper(NaturaWorld.redwoodSapling, (new StateMap.Builder()).ignore(BlockRedwoodSapling.STAGE, BlockSapling.TYPE).build()); - ModelLoader.setCustomStateMapper(NaturaWorld.netherSapling, (new StateMap.Builder()).ignore(BlockNetherSapling.STAGE, BlockSapling.TYPE).build()); - - this.registerItemBlockMeta(NaturaWorld.redwoodLog); - this.registerItemBlockMeta(NaturaWorld.overworldPlanks); - this.registerItemBlockMeta(NaturaWorld.netherPlanks); - this.registerItemBlockMeta(NaturaWorld.coloredGrass); - this.registerItemBlockMeta(NaturaWorld.coloredGrassSlab); - - Item overworld_log = Item.getItemFromBlock(NaturaWorld.overworldLog); - for (BlockOverworldLog.LogType type : BlockOverworldLog.LogType.values()) - { - String variant = String.format("%s=%s,%s=%s", BlockOverworldLog.LOG_AXIS.getName(), - BlockOverworldLog.LOG_AXIS.getName(BlockOverworldLog.EnumAxis.Y), BlockOverworldLog.TYPE.getName(), BlockOverworldLog.TYPE.getName(type)); - ModelLoader.setCustomModelResourceLocation(overworld_log, type.meta, new ModelResourceLocation(overworld_log.getRegistryName(), variant)); - } - - Item overworld_log2 = Item.getItemFromBlock(NaturaWorld.overworldLog2); - for (BlockOverworldLog2.LogType type : BlockOverworldLog2.LogType.values()) - { - String variant = String.format("%s=%s,%s=%s", BlockOverworldLog2.LOG_AXIS.getName(), - BlockOverworldLog2.LOG_AXIS.getName(BlockOverworldLog2.EnumAxis.Y), BlockOverworldLog2.TYPE.getName(), - BlockOverworldLog2.TYPE.getName(type)); - ModelLoader.setCustomModelResourceLocation(overworld_log2, type.meta, new ModelResourceLocation(overworld_log2.getRegistryName(), variant)); - } - - Item nether_log = Item.getItemFromBlock(NaturaWorld.netherLog); - for (BlockNetherLog.LogType type : BlockNetherLog.LogType.values()) - { - String variant = String.format("%s=%s,%s=%s", BlockNetherLog.LOG_AXIS.getName(), - BlockNetherLog.LOG_AXIS.getName(BlockNetherLog.EnumAxis.Y), BlockNetherLog.TYPE.getName(), - BlockNetherLog.TYPE.getName(type)); - ModelLoader.setCustomModelResourceLocation(nether_log, type.meta, new ModelResourceLocation(nether_log.getRegistryName(), variant)); - } - - // leaves - Item overworld_leaves = Item.getItemFromBlock(NaturaWorld.overworldLeaves); - for (BlockOverworldLog.LogType type : BlockOverworldLog.LogType.values()) - { - String variant = String.format("%s=%s", BlockOverworldLog.TYPE.getName(), BlockOverworldLog.TYPE.getName(type)); - ModelLoader.setCustomModelResourceLocation(overworld_leaves, type.getMeta(), new ModelResourceLocation(overworld_leaves.getRegistryName(), variant)); - } - - Item overworld_leaves2 = Item.getItemFromBlock(NaturaWorld.overworldLeaves2); - for (BlockOverworldLog2.LogType type : BlockOverworldLog2.LogType.values()) - { - String variant = String.format("%s=%s", BlockOverworldLog2.TYPE.getName(), BlockOverworldLog2.TYPE.getName(type)); - ModelLoader.setCustomModelResourceLocation(overworld_leaves2, type.getMeta(), new ModelResourceLocation(overworld_leaves2.getRegistryName(), variant)); - } - - Item redwood_leaves = Item.getItemFromBlock(NaturaWorld.redwoodLeaves); - for (BlockRedwoodLeaves.RedwoodType type : BlockRedwoodLeaves.RedwoodType.values()) - { - String variant = String.format("%s=%s", BlockRedwoodLeaves.TYPE.getName(), BlockRedwoodLeaves.TYPE.getName(type)); - ModelLoader.setCustomModelResourceLocation(redwood_leaves, type.getMeta(), new ModelResourceLocation(redwood_leaves.getRegistryName(), variant)); - } - - Item nether_leaves = Item.getItemFromBlock(NaturaWorld.netherLeaves); - for (BlockNetherLeaves.LeavesType type : BlockNetherLeaves.LeavesType.values()) - { - String variant = String.format("%s=%s", BlockNetherLeaves.TYPE.getName(), BlockNetherLeaves.TYPE.getName(type)); - ModelLoader.setCustomModelResourceLocation(nether_leaves, type.getMeta(), new ModelResourceLocation(nether_leaves.getRegistryName(), variant)); - } - - Item nether_leaves2 = Item.getItemFromBlock(NaturaWorld.netherLeaves2); - for (BlockNetherLeaves2.LeavesType type : BlockNetherLeaves2.LeavesType.values()) - { - String variant = String.format("%s=%s", BlockNetherLeaves2.TYPE.getName(), BlockNetherLeaves2.TYPE.getName(type)); - ModelLoader.setCustomModelResourceLocation(nether_leaves2, type.getMeta(), new ModelResourceLocation(nether_leaves2.getRegistryName(), variant)); - } - - // saplings - - ItemStack stack = new ItemStack(Item.getItemFromBlock(NaturaWorld.overworldSapling), 1, NaturaWorld.overworldSapling.getMetaFromState(NaturaWorld.overworldSapling.getDefaultState().withProperty(BlockOverworldSapling.FOLIAGE, BlockOverworldSapling.SaplingType.MAPLE))); - this.registerItemModel(stack, "overworld_sapling_maple"); - stack = new ItemStack(Item.getItemFromBlock(NaturaWorld.overworldSapling), 1, NaturaWorld.overworldSapling.getMetaFromState(NaturaWorld.overworldSapling.getDefaultState().withProperty(BlockOverworldSapling.FOLIAGE, BlockOverworldSapling.SaplingType.SILVERBELL))); - this.registerItemModel(stack, "overworld_sapling_silverbell"); - stack = new ItemStack(Item.getItemFromBlock(NaturaWorld.overworldSapling), 1, NaturaWorld.overworldSapling.getMetaFromState(NaturaWorld.overworldSapling.getDefaultState().withProperty(BlockOverworldSapling.FOLIAGE, BlockOverworldSapling.SaplingType.AMARANTH))); - this.registerItemModel(stack, "overworld_sapling_amaranth"); - stack = new ItemStack(Item.getItemFromBlock(NaturaWorld.overworldSapling), 1, NaturaWorld.overworldSapling.getMetaFromState(NaturaWorld.overworldSapling.getDefaultState().withProperty(BlockOverworldSapling.FOLIAGE, BlockOverworldSapling.SaplingType.TIGER))); - this.registerItemModel(stack, "overworld_sapling_tiger"); - - stack = new ItemStack(Item.getItemFromBlock(NaturaWorld.overworldSapling2), 1, NaturaWorld.overworldSapling2.getMetaFromState(NaturaWorld.overworldSapling2.getDefaultState().withProperty(BlockOverworldSapling2.FOLIAGE, BlockOverworldSapling2.SaplingType.WILLOW))); - this.registerItemModel(stack, "overworld_sapling_willow"); - stack = new ItemStack(Item.getItemFromBlock(NaturaWorld.overworldSapling2), 1, NaturaWorld.overworldSapling2.getMetaFromState(NaturaWorld.overworldSapling2.getDefaultState().withProperty(BlockOverworldSapling2.FOLIAGE, BlockOverworldSapling2.SaplingType.EUCALYPTUS))); - this.registerItemModel(stack, "overworld_sapling_eucalyptus"); - stack = new ItemStack(Item.getItemFromBlock(NaturaWorld.overworldSapling2), 1, NaturaWorld.overworldSapling2.getMetaFromState(NaturaWorld.overworldSapling2.getDefaultState().withProperty(BlockOverworldSapling2.FOLIAGE, BlockOverworldSapling2.SaplingType.HOPSEED))); - this.registerItemModel(stack, "overworld_sapling_hopseed"); - stack = new ItemStack(Item.getItemFromBlock(NaturaWorld.overworldSapling2), 1, NaturaWorld.overworldSapling2.getMetaFromState(NaturaWorld.overworldSapling2.getDefaultState().withProperty(BlockOverworldSapling2.FOLIAGE, BlockOverworldSapling2.SaplingType.SAKURA))); - this.registerItemModel(stack, "overworld_sapling_sakura"); - - stack = new ItemStack(Item.getItemFromBlock(NaturaWorld.redwoodSapling), 1, NaturaWorld.redwoodSapling.getMetaFromState(NaturaWorld.redwoodSapling.getDefaultState().withProperty(BlockRedwoodSapling.FOLIAGE, BlockRedwoodSapling.SaplingType.REDWOOD))); - this.registerItemModel(stack, "overworld_sapling_redwood"); - - stack = new ItemStack(Item.getItemFromBlock(NaturaWorld.netherSapling), 1, NaturaWorld.netherSapling.getMetaFromState(NaturaWorld.netherSapling.getDefaultState().withProperty(BlockNetherSapling.FOLIAGE, BlockNetherSapling.SaplingType.GHOSTWOOD))); - this.registerItemModel(stack, "nether_sapling_ghostwood"); - stack = new ItemStack(Item.getItemFromBlock(NaturaWorld.netherSapling), 1, NaturaWorld.netherSapling.getMetaFromState(NaturaWorld.netherSapling.getDefaultState().withProperty(BlockNetherSapling.FOLIAGE, BlockNetherSapling.SaplingType.BLOODWOOD))); - this.registerItemModel(stack, "nether_sapling_bloodwood"); - stack = new ItemStack(Item.getItemFromBlock(NaturaWorld.netherSapling), 1, NaturaWorld.netherSapling.getMetaFromState(NaturaWorld.netherSapling.getDefaultState().withProperty(BlockNetherSapling.FOLIAGE, BlockNetherSapling.SaplingType.FUSEWOOD))); - this.registerItemModel(stack, "nether_sapling_fusewood"); - stack = new ItemStack(Item.getItemFromBlock(NaturaWorld.netherSapling), 1, NaturaWorld.netherSapling.getMetaFromState(NaturaWorld.netherSapling.getDefaultState().withProperty(BlockNetherSapling.FOLIAGE, BlockNetherSapling.SaplingType.DARKWOOD))); - this.registerItemModel(stack, "nether_sapling_darkwood"); } } diff --git a/src/main/java/com/progwml6/natura/world/material/CloudMaterial.java b/src/main/java/com/progwml6/natura/world/material/CloudMaterial.java deleted file mode 100644 index 0fd924fe..00000000 --- a/src/main/java/com/progwml6/natura/world/material/CloudMaterial.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.progwml6.natura.world.material; - -import net.minecraft.block.material.MapColor; -import net.minecraft.block.material.Material; - -public class CloudMaterial extends Material -{ - public CloudMaterial() - { - super(MapColor.SNOW); - this.setReplaceable(); - this.setNoPushMobility(); - } - - /** - * Returns if blocks of these materials are liquids. - */ - @Override - public boolean isLiquid() - { - return false; - } - - /** - * Returns if this material is considered solid or not - */ - @Override - public boolean blocksMovement() - { - return false; - } - - /** - * Returns true if the block is a considered solid. This is true by default. - */ - @Override - public boolean isSolid() - { - return false; - } - - /** - * Will prevent grass from growing on dirt underneath and kill any grass below it if it returns true - */ - @Override - public boolean blocksLight() - { - return false; - } -} diff --git a/src/main/java/com/progwml6/natura/world/worldgen/OverworldTreeGenerator.java b/src/main/java/com/progwml6/natura/world/worldgen/OverworldTreeGenerator.java index d0dd5000..a6f6c212 100644 --- a/src/main/java/com/progwml6/natura/world/worldgen/OverworldTreeGenerator.java +++ b/src/main/java/com/progwml6/natura/world/worldgen/OverworldTreeGenerator.java @@ -2,7 +2,7 @@ import java.util.Random; -import com.progwml6.natura.world.NaturaWorld; +import com.progwml6.natura.overworld.NaturaOverworld; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -64,7 +64,7 @@ public void generateTree(Random random, World world, BlockPos pos) { IBlockState state = world.getBlockState(pos.down()); Block soil = state.getBlock(); - boolean isSoil = (soil != null && soil.canSustainPlant(state, world, pos.down(), EnumFacing.UP, NaturaWorld.overworldSapling)); + boolean isSoil = (soil != null && soil.canSustainPlant(state, world, pos.down(), EnumFacing.UP, NaturaOverworld.overworldSapling)); if (isSoil) { diff --git a/src/main/java/com/progwml6/natura/world/worldgen/WillowTreeGenerator.java b/src/main/java/com/progwml6/natura/world/worldgen/WillowTreeGenerator.java index 86233daa..59cf6f91 100644 --- a/src/main/java/com/progwml6/natura/world/worldgen/WillowTreeGenerator.java +++ b/src/main/java/com/progwml6/natura/world/worldgen/WillowTreeGenerator.java @@ -2,7 +2,7 @@ import java.util.Random; -import com.progwml6.natura.world.NaturaWorld; +import com.progwml6.natura.overworld.NaturaOverworld; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -64,7 +64,7 @@ public void generateTree(Random random, World world, BlockPos pos) { IBlockState state = world.getBlockState(pos.down()); Block soil = state.getBlock(); - boolean isSoil = (soil != null && soil.canSustainPlant(state, world, pos.down(), EnumFacing.UP, NaturaWorld.overworldSapling)); + boolean isSoil = (soil != null && soil.canSustainPlant(state, world, pos.down(), EnumFacing.UP, NaturaOverworld.overworldSapling)); if (isSoil) { diff --git a/src/main/resources/assets/natura/blockstates/nether_glass.json b/src/main/resources/assets/natura/blockstates/nether_glass.json new file mode 100644 index 00000000..209363a6 --- /dev/null +++ b/src/main/resources/assets/natura/blockstates/nether_glass.json @@ -0,0 +1,21 @@ +{ + "forge_marker": 1, + "defaults": { + "transform": "forge:default-block", + "model": "cube_all" + }, + "variants": { + "type": { + "soul": { + "textures": { + "all": "natura:blocks/glass/glass_soul" + } + }, + "heat": { + "textures": { + "all": "natura:blocks/glass/glass_heat" + } + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/natura/blockstates/nether_heat_sand.json b/src/main/resources/assets/natura/blockstates/nether_heat_sand.json new file mode 100644 index 00000000..016f2ebe --- /dev/null +++ b/src/main/resources/assets/natura/blockstates/nether_heat_sand.json @@ -0,0 +1,15 @@ +{ + "forge_marker": 1, + "defaults": { + "transform": "forge:default-block" + }, + "variants": { + "normal": { + "model": "cube_all", + "textures": { + "all": "natura:blocks/sand/heat_sand", + "particle": "#all" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/natura/blockstates/nether_slab.json b/src/main/resources/assets/natura/blockstates/nether_slab.json new file mode 100644 index 00000000..e5890b2f --- /dev/null +++ b/src/main/resources/assets/natura/blockstates/nether_slab.json @@ -0,0 +1,35 @@ +{ + "forge_marker": 1, + "defaults": { + "transform": "forge:default-block", + "model": "half_slab", + "textures": { + "bottom": "#all", + "top": "#all", + "side": "#all", + "particle": "#all" + } + }, + "variants": { + "type": { + "ghostwood": { + "textures": { "all": "natura:blocks/planks/nether/ghostwood_planks" } + }, + "bloodwood": { + "textures": { "all": "natura:blocks/planks/nether/bloodwood_planks" } + }, + "darkwood": { + "textures": { "all": "natura:blocks/planks/nether/darkwood_planks" } + }, + "fusewood": { + "textures": { "all": "natura:blocks/planks/nether/fusewood_planks" } + } + }, + "half": { + "bottom": {}, + "top": { + "model": "upper_slab" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/natura/blockstates/nether_stairs_bloodwood.json b/src/main/resources/assets/natura/blockstates/nether_stairs_bloodwood.json new file mode 100644 index 00000000..b4a788ec --- /dev/null +++ b/src/main/resources/assets/natura/blockstates/nether_stairs_bloodwood.json @@ -0,0 +1,56 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "stairs", + "uvlock": true, + "textures": { + "all": "natura:blocks/planks/nether/bloodwood_planks", + "bottom": "#all", + "top": "#all", + "side": "#all" + } + }, + "variants": { + "inventory": [{}], + "facing=east,half=bottom,shape=straight": [{}], + "facing=west,half=bottom,shape=straight": { "y": 180 }, + "facing=south,half=bottom,shape=straight": { "y": 90 }, + "facing=north,half=bottom,shape=straight": { "y": 270 }, + "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, + "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180 }, + "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90 }, + "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270 }, + "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270 }, + "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90 }, + "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, + "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180 }, + "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, + "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180 }, + "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90 }, + "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270 }, + "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270 }, + "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90 }, + "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, + "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180 }, + "facing=east,half=top,shape=straight": { "x": 180 }, + "facing=west,half=top,shape=straight": { "x": 180, "y": 180 }, + "facing=south,half=top,shape=straight": { "x": 180, "y": 90 }, + "facing=north,half=top,shape=straight": { "x": 180, "y": 270 }, + "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90 }, + "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270 }, + "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180 }, + "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180 }, + "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180 }, + "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180 }, + "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90 }, + "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270 }, + "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90 }, + "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270 }, + "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180 }, + "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180 }, + "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180 }, + "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180 }, + "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90 }, + "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/natura/blockstates/nether_stairs_darkwood.json b/src/main/resources/assets/natura/blockstates/nether_stairs_darkwood.json new file mode 100644 index 00000000..3be9f7b7 --- /dev/null +++ b/src/main/resources/assets/natura/blockstates/nether_stairs_darkwood.json @@ -0,0 +1,56 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "stairs", + "uvlock": true, + "textures": { + "all": "natura:blocks/planks/nether/darkwood_planks", + "bottom": "#all", + "top": "#all", + "side": "#all" + } + }, + "variants": { + "inventory": [{}], + "facing=east,half=bottom,shape=straight": [{}], + "facing=west,half=bottom,shape=straight": { "y": 180 }, + "facing=south,half=bottom,shape=straight": { "y": 90 }, + "facing=north,half=bottom,shape=straight": { "y": 270 }, + "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, + "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180 }, + "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90 }, + "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270 }, + "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270 }, + "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90 }, + "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, + "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180 }, + "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, + "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180 }, + "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90 }, + "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270 }, + "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270 }, + "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90 }, + "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, + "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180 }, + "facing=east,half=top,shape=straight": { "x": 180 }, + "facing=west,half=top,shape=straight": { "x": 180, "y": 180 }, + "facing=south,half=top,shape=straight": { "x": 180, "y": 90 }, + "facing=north,half=top,shape=straight": { "x": 180, "y": 270 }, + "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90 }, + "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270 }, + "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180 }, + "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180 }, + "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180 }, + "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180 }, + "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90 }, + "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270 }, + "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90 }, + "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270 }, + "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180 }, + "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180 }, + "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180 }, + "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180 }, + "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90 }, + "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/natura/blockstates/nether_stairs_fusewood.json b/src/main/resources/assets/natura/blockstates/nether_stairs_fusewood.json new file mode 100644 index 00000000..3dacbf03 --- /dev/null +++ b/src/main/resources/assets/natura/blockstates/nether_stairs_fusewood.json @@ -0,0 +1,56 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "stairs", + "uvlock": true, + "textures": { + "all": "natura:blocks/planks/nether/fusewood_planks", + "bottom": "#all", + "top": "#all", + "side": "#all" + } + }, + "variants": { + "inventory": [{}], + "facing=east,half=bottom,shape=straight": [{}], + "facing=west,half=bottom,shape=straight": { "y": 180 }, + "facing=south,half=bottom,shape=straight": { "y": 90 }, + "facing=north,half=bottom,shape=straight": { "y": 270 }, + "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, + "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180 }, + "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90 }, + "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270 }, + "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270 }, + "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90 }, + "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, + "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180 }, + "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, + "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180 }, + "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90 }, + "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270 }, + "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270 }, + "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90 }, + "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, + "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180 }, + "facing=east,half=top,shape=straight": { "x": 180 }, + "facing=west,half=top,shape=straight": { "x": 180, "y": 180 }, + "facing=south,half=top,shape=straight": { "x": 180, "y": 90 }, + "facing=north,half=top,shape=straight": { "x": 180, "y": 270 }, + "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90 }, + "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270 }, + "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180 }, + "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180 }, + "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180 }, + "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180 }, + "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90 }, + "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270 }, + "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90 }, + "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270 }, + "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180 }, + "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180 }, + "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180 }, + "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180 }, + "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90 }, + "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/natura/blockstates/nether_stairs_ghostwood.json b/src/main/resources/assets/natura/blockstates/nether_stairs_ghostwood.json new file mode 100644 index 00000000..041b992e --- /dev/null +++ b/src/main/resources/assets/natura/blockstates/nether_stairs_ghostwood.json @@ -0,0 +1,56 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "stairs", + "uvlock": true, + "textures": { + "all": "natura:blocks/planks/nether/ghostwood_planks", + "bottom": "#all", + "top": "#all", + "side": "#all" + } + }, + "variants": { + "inventory": [{}], + "facing=east,half=bottom,shape=straight": [{}], + "facing=west,half=bottom,shape=straight": { "y": 180 }, + "facing=south,half=bottom,shape=straight": { "y": 90 }, + "facing=north,half=bottom,shape=straight": { "y": 270 }, + "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, + "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180 }, + "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90 }, + "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270 }, + "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270 }, + "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90 }, + "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, + "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180 }, + "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, + "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180 }, + "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90 }, + "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270 }, + "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270 }, + "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90 }, + "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, + "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180 }, + "facing=east,half=top,shape=straight": { "x": 180 }, + "facing=west,half=top,shape=straight": { "x": 180, "y": 180 }, + "facing=south,half=top,shape=straight": { "x": 180, "y": 90 }, + "facing=north,half=top,shape=straight": { "x": 180, "y": 270 }, + "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90 }, + "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270 }, + "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180 }, + "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180 }, + "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180 }, + "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180 }, + "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90 }, + "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270 }, + "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90 }, + "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270 }, + "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180 }, + "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180 }, + "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180 }, + "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180 }, + "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90 }, + "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/natura/blockstates/nether_tainted_soil.json b/src/main/resources/assets/natura/blockstates/nether_tainted_soil.json new file mode 100644 index 00000000..cd49a99e --- /dev/null +++ b/src/main/resources/assets/natura/blockstates/nether_tainted_soil.json @@ -0,0 +1,26 @@ +{ + "forge_marker": 1, + "defaults": { + "transform": "forge:default-block", + "model": "cube_all" + }, + "variants": { + "type": { + "tainted_soil": { + "textures": { + "all": "natura:blocks/soil/tainted_soil" + } + }, + "tainted_farmland_dry": { + "textures": { + "all": "natura:blocks/soil/tainted_farmland_dry" + } + }, + "tainted_farmland_heated": { + "textures": { + "all": "natura:blocks/soil/tainted_farmland_heated" + } + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/natura/blockstates/overworld_slab.json b/src/main/resources/assets/natura/blockstates/overworld_slab.json new file mode 100644 index 00000000..f7e2f6a7 --- /dev/null +++ b/src/main/resources/assets/natura/blockstates/overworld_slab.json @@ -0,0 +1,38 @@ +{ + "forge_marker": 1, + "defaults": { + "transform": "forge:default-block", + "model": "half_slab", + "textures": { + "bottom": "#all", + "top": "#all", + "side": "#all", + "particle": "#all" + } + }, + "variants": { + "type": { + "maple": { + "textures": { "all": "natura:blocks/planks/overworld/maple_planks" } + }, + "silverbell": { + "textures": { "all": "natura:blocks/planks/overworld/silverbell_planks" } + }, + "amaranth": { + "textures": { "all": "natura:blocks/planks/overworld/amaranth_planks" } + }, + "tiger": { + "textures": { "all": "natura:blocks/planks/overworld/tiger_planks" } + }, + "willow": { + "textures": { "all": "natura:blocks/planks/overworld/willow_planks" } + } + }, + "half": { + "bottom": {}, + "top": { + "model": "upper_slab" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/natura/blockstates/overworld_slab2.json b/src/main/resources/assets/natura/blockstates/overworld_slab2.json new file mode 100644 index 00000000..e2fadec5 --- /dev/null +++ b/src/main/resources/assets/natura/blockstates/overworld_slab2.json @@ -0,0 +1,35 @@ +{ + "forge_marker": 1, + "defaults": { + "transform": "forge:default-block", + "model": "half_slab", + "textures": { + "bottom": "#all", + "top": "#all", + "side": "#all", + "particle": "#all" + } + }, + "variants": { + "type": { + "eucalyptus": { + "textures": { "all": "natura:blocks/planks/overworld/eucalyptus_planks" } + }, + "hopseed": { + "textures": { "all": "natura:blocks/planks/overworld/hopseed_planks" } + }, + "sakura": { + "textures": { "all": "natura:blocks/planks/overworld/sakura_planks" } + }, + "redwood": { + "textures": { "all": "natura:blocks/planks/overworld/redwood_planks" } + } + }, + "half": { + "bottom": {}, + "top": { + "model": "upper_slab" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/natura/blockstates/overworld_stairs_amaranth.json b/src/main/resources/assets/natura/blockstates/overworld_stairs_amaranth.json new file mode 100644 index 00000000..e299305b --- /dev/null +++ b/src/main/resources/assets/natura/blockstates/overworld_stairs_amaranth.json @@ -0,0 +1,56 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "stairs", + "uvlock": true, + "textures": { + "all": "natura:blocks/planks/overworld/amaranth_planks", + "bottom": "#all", + "top": "#all", + "side": "#all" + } + }, + "variants": { + "inventory": [{}], + "facing=east,half=bottom,shape=straight": [{}], + "facing=west,half=bottom,shape=straight": { "y": 180 }, + "facing=south,half=bottom,shape=straight": { "y": 90 }, + "facing=north,half=bottom,shape=straight": { "y": 270 }, + "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, + "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180 }, + "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90 }, + "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270 }, + "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270 }, + "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90 }, + "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, + "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180 }, + "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, + "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180 }, + "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90 }, + "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270 }, + "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270 }, + "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90 }, + "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, + "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180 }, + "facing=east,half=top,shape=straight": { "x": 180 }, + "facing=west,half=top,shape=straight": { "x": 180, "y": 180 }, + "facing=south,half=top,shape=straight": { "x": 180, "y": 90 }, + "facing=north,half=top,shape=straight": { "x": 180, "y": 270 }, + "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90 }, + "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270 }, + "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180 }, + "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180 }, + "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180 }, + "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180 }, + "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90 }, + "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270 }, + "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90 }, + "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270 }, + "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180 }, + "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180 }, + "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180 }, + "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180 }, + "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90 }, + "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/natura/blockstates/overworld_stairs_eucalyptus.json b/src/main/resources/assets/natura/blockstates/overworld_stairs_eucalyptus.json new file mode 100644 index 00000000..3b08919d --- /dev/null +++ b/src/main/resources/assets/natura/blockstates/overworld_stairs_eucalyptus.json @@ -0,0 +1,56 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "stairs", + "uvlock": true, + "textures": { + "all": "natura:blocks/planks/overworld/eucalyptus_planks", + "bottom": "#all", + "top": "#all", + "side": "#all" + } + }, + "variants": { + "inventory": [{}], + "facing=east,half=bottom,shape=straight": [{}], + "facing=west,half=bottom,shape=straight": { "y": 180 }, + "facing=south,half=bottom,shape=straight": { "y": 90 }, + "facing=north,half=bottom,shape=straight": { "y": 270 }, + "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, + "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180 }, + "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90 }, + "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270 }, + "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270 }, + "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90 }, + "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, + "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180 }, + "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, + "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180 }, + "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90 }, + "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270 }, + "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270 }, + "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90 }, + "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, + "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180 }, + "facing=east,half=top,shape=straight": { "x": 180 }, + "facing=west,half=top,shape=straight": { "x": 180, "y": 180 }, + "facing=south,half=top,shape=straight": { "x": 180, "y": 90 }, + "facing=north,half=top,shape=straight": { "x": 180, "y": 270 }, + "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90 }, + "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270 }, + "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180 }, + "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180 }, + "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180 }, + "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180 }, + "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90 }, + "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270 }, + "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90 }, + "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270 }, + "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180 }, + "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180 }, + "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180 }, + "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180 }, + "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90 }, + "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/natura/blockstates/overworld_stairs_hopseed.json b/src/main/resources/assets/natura/blockstates/overworld_stairs_hopseed.json new file mode 100644 index 00000000..7403f8f0 --- /dev/null +++ b/src/main/resources/assets/natura/blockstates/overworld_stairs_hopseed.json @@ -0,0 +1,56 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "stairs", + "uvlock": true, + "textures": { + "all": "natura:blocks/planks/overworld/hopseed_planks", + "bottom": "#all", + "top": "#all", + "side": "#all" + } + }, + "variants": { + "inventory": [{}], + "facing=east,half=bottom,shape=straight": [{}], + "facing=west,half=bottom,shape=straight": { "y": 180 }, + "facing=south,half=bottom,shape=straight": { "y": 90 }, + "facing=north,half=bottom,shape=straight": { "y": 270 }, + "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, + "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180 }, + "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90 }, + "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270 }, + "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270 }, + "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90 }, + "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, + "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180 }, + "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, + "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180 }, + "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90 }, + "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270 }, + "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270 }, + "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90 }, + "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, + "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180 }, + "facing=east,half=top,shape=straight": { "x": 180 }, + "facing=west,half=top,shape=straight": { "x": 180, "y": 180 }, + "facing=south,half=top,shape=straight": { "x": 180, "y": 90 }, + "facing=north,half=top,shape=straight": { "x": 180, "y": 270 }, + "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90 }, + "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270 }, + "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180 }, + "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180 }, + "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180 }, + "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180 }, + "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90 }, + "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270 }, + "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90 }, + "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270 }, + "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180 }, + "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180 }, + "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180 }, + "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180 }, + "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90 }, + "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/natura/blockstates/overworld_stairs_maple.json b/src/main/resources/assets/natura/blockstates/overworld_stairs_maple.json new file mode 100644 index 00000000..5fdc297a --- /dev/null +++ b/src/main/resources/assets/natura/blockstates/overworld_stairs_maple.json @@ -0,0 +1,56 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "stairs", + "uvlock": true, + "textures": { + "all": "natura:blocks/planks/overworld/maple_planks", + "bottom": "#all", + "top": "#all", + "side": "#all" + } + }, + "variants": { + "inventory": [{}], + "facing=east,half=bottom,shape=straight": [{}], + "facing=west,half=bottom,shape=straight": { "y": 180 }, + "facing=south,half=bottom,shape=straight": { "y": 90 }, + "facing=north,half=bottom,shape=straight": { "y": 270 }, + "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, + "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180 }, + "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90 }, + "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270 }, + "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270 }, + "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90 }, + "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, + "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180 }, + "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, + "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180 }, + "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90 }, + "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270 }, + "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270 }, + "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90 }, + "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, + "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180 }, + "facing=east,half=top,shape=straight": { "x": 180 }, + "facing=west,half=top,shape=straight": { "x": 180, "y": 180 }, + "facing=south,half=top,shape=straight": { "x": 180, "y": 90 }, + "facing=north,half=top,shape=straight": { "x": 180, "y": 270 }, + "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90 }, + "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270 }, + "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180 }, + "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180 }, + "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180 }, + "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180 }, + "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90 }, + "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270 }, + "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90 }, + "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270 }, + "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180 }, + "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180 }, + "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180 }, + "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180 }, + "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90 }, + "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/natura/blockstates/overworld_stairs_redwood.json b/src/main/resources/assets/natura/blockstates/overworld_stairs_redwood.json new file mode 100644 index 00000000..2a777dcb --- /dev/null +++ b/src/main/resources/assets/natura/blockstates/overworld_stairs_redwood.json @@ -0,0 +1,56 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "stairs", + "uvlock": true, + "textures": { + "all": "natura:blocks/planks/overworld/redwood_planks", + "bottom": "#all", + "top": "#all", + "side": "#all" + } + }, + "variants": { + "inventory": [{}], + "facing=east,half=bottom,shape=straight": [{}], + "facing=west,half=bottom,shape=straight": { "y": 180 }, + "facing=south,half=bottom,shape=straight": { "y": 90 }, + "facing=north,half=bottom,shape=straight": { "y": 270 }, + "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, + "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180 }, + "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90 }, + "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270 }, + "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270 }, + "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90 }, + "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, + "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180 }, + "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, + "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180 }, + "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90 }, + "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270 }, + "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270 }, + "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90 }, + "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, + "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180 }, + "facing=east,half=top,shape=straight": { "x": 180 }, + "facing=west,half=top,shape=straight": { "x": 180, "y": 180 }, + "facing=south,half=top,shape=straight": { "x": 180, "y": 90 }, + "facing=north,half=top,shape=straight": { "x": 180, "y": 270 }, + "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90 }, + "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270 }, + "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180 }, + "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180 }, + "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180 }, + "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180 }, + "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90 }, + "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270 }, + "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90 }, + "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270 }, + "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180 }, + "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180 }, + "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180 }, + "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180 }, + "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90 }, + "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/natura/blockstates/overworld_stairs_sakura.json b/src/main/resources/assets/natura/blockstates/overworld_stairs_sakura.json new file mode 100644 index 00000000..f8157e4f --- /dev/null +++ b/src/main/resources/assets/natura/blockstates/overworld_stairs_sakura.json @@ -0,0 +1,56 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "stairs", + "uvlock": true, + "textures": { + "all": "natura:blocks/planks/overworld/sakura_planks", + "bottom": "#all", + "top": "#all", + "side": "#all" + } + }, + "variants": { + "inventory": [{}], + "facing=east,half=bottom,shape=straight": [{}], + "facing=west,half=bottom,shape=straight": { "y": 180 }, + "facing=south,half=bottom,shape=straight": { "y": 90 }, + "facing=north,half=bottom,shape=straight": { "y": 270 }, + "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, + "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180 }, + "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90 }, + "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270 }, + "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270 }, + "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90 }, + "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, + "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180 }, + "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, + "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180 }, + "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90 }, + "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270 }, + "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270 }, + "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90 }, + "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, + "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180 }, + "facing=east,half=top,shape=straight": { "x": 180 }, + "facing=west,half=top,shape=straight": { "x": 180, "y": 180 }, + "facing=south,half=top,shape=straight": { "x": 180, "y": 90 }, + "facing=north,half=top,shape=straight": { "x": 180, "y": 270 }, + "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90 }, + "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270 }, + "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180 }, + "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180 }, + "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180 }, + "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180 }, + "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90 }, + "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270 }, + "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90 }, + "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270 }, + "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180 }, + "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180 }, + "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180 }, + "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180 }, + "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90 }, + "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/natura/blockstates/overworld_stairs_silverbell.json b/src/main/resources/assets/natura/blockstates/overworld_stairs_silverbell.json new file mode 100644 index 00000000..17aa9575 --- /dev/null +++ b/src/main/resources/assets/natura/blockstates/overworld_stairs_silverbell.json @@ -0,0 +1,56 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "stairs", + "uvlock": true, + "textures": { + "all": "natura:blocks/planks/overworld/silverbell_planks", + "bottom": "#all", + "top": "#all", + "side": "#all" + } + }, + "variants": { + "inventory": [{}], + "facing=east,half=bottom,shape=straight": [{}], + "facing=west,half=bottom,shape=straight": { "y": 180 }, + "facing=south,half=bottom,shape=straight": { "y": 90 }, + "facing=north,half=bottom,shape=straight": { "y": 270 }, + "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, + "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180 }, + "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90 }, + "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270 }, + "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270 }, + "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90 }, + "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, + "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180 }, + "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, + "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180 }, + "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90 }, + "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270 }, + "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270 }, + "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90 }, + "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, + "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180 }, + "facing=east,half=top,shape=straight": { "x": 180 }, + "facing=west,half=top,shape=straight": { "x": 180, "y": 180 }, + "facing=south,half=top,shape=straight": { "x": 180, "y": 90 }, + "facing=north,half=top,shape=straight": { "x": 180, "y": 270 }, + "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90 }, + "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270 }, + "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180 }, + "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180 }, + "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180 }, + "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180 }, + "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90 }, + "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270 }, + "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90 }, + "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270 }, + "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180 }, + "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180 }, + "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180 }, + "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180 }, + "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90 }, + "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/natura/blockstates/overworld_stairs_tiger.json b/src/main/resources/assets/natura/blockstates/overworld_stairs_tiger.json new file mode 100644 index 00000000..d05faf12 --- /dev/null +++ b/src/main/resources/assets/natura/blockstates/overworld_stairs_tiger.json @@ -0,0 +1,56 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "stairs", + "uvlock": true, + "textures": { + "all": "natura:blocks/planks/overworld/tiger_planks", + "bottom": "#all", + "top": "#all", + "side": "#all" + } + }, + "variants": { + "inventory": [{}], + "facing=east,half=bottom,shape=straight": [{}], + "facing=west,half=bottom,shape=straight": { "y": 180 }, + "facing=south,half=bottom,shape=straight": { "y": 90 }, + "facing=north,half=bottom,shape=straight": { "y": 270 }, + "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, + "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180 }, + "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90 }, + "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270 }, + "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270 }, + "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90 }, + "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, + "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180 }, + "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, + "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180 }, + "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90 }, + "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270 }, + "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270 }, + "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90 }, + "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, + "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180 }, + "facing=east,half=top,shape=straight": { "x": 180 }, + "facing=west,half=top,shape=straight": { "x": 180, "y": 180 }, + "facing=south,half=top,shape=straight": { "x": 180, "y": 90 }, + "facing=north,half=top,shape=straight": { "x": 180, "y": 270 }, + "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90 }, + "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270 }, + "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180 }, + "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180 }, + "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180 }, + "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180 }, + "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90 }, + "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270 }, + "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90 }, + "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270 }, + "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180 }, + "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180 }, + "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180 }, + "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180 }, + "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90 }, + "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/natura/blockstates/overworld_stairs_willow.json b/src/main/resources/assets/natura/blockstates/overworld_stairs_willow.json new file mode 100644 index 00000000..01b1e78e --- /dev/null +++ b/src/main/resources/assets/natura/blockstates/overworld_stairs_willow.json @@ -0,0 +1,56 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "stairs", + "uvlock": true, + "textures": { + "all": "natura:blocks/planks/overworld/willow_planks", + "bottom": "#all", + "top": "#all", + "side": "#all" + } + }, + "variants": { + "inventory": [{}], + "facing=east,half=bottom,shape=straight": [{}], + "facing=west,half=bottom,shape=straight": { "y": 180 }, + "facing=south,half=bottom,shape=straight": { "y": 90 }, + "facing=north,half=bottom,shape=straight": { "y": 270 }, + "facing=east,half=bottom,shape=outer_right": { "model": "outer_stairs" }, + "facing=west,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 180 }, + "facing=south,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 90 }, + "facing=north,half=bottom,shape=outer_right": { "model": "outer_stairs", "y": 270 }, + "facing=east,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 270 }, + "facing=west,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 90 }, + "facing=south,half=bottom,shape=outer_left": { "model": "outer_stairs" }, + "facing=north,half=bottom,shape=outer_left": { "model": "outer_stairs", "y": 180 }, + "facing=east,half=bottom,shape=inner_right": { "model": "inner_stairs" }, + "facing=west,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 180 }, + "facing=south,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 90 }, + "facing=north,half=bottom,shape=inner_right": { "model": "inner_stairs", "y": 270 }, + "facing=east,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 270 }, + "facing=west,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 90 }, + "facing=south,half=bottom,shape=inner_left": { "model": "inner_stairs" }, + "facing=north,half=bottom,shape=inner_left": { "model": "inner_stairs", "y": 180 }, + "facing=east,half=top,shape=straight": { "x": 180 }, + "facing=west,half=top,shape=straight": { "x": 180, "y": 180 }, + "facing=south,half=top,shape=straight": { "x": 180, "y": 90 }, + "facing=north,half=top,shape=straight": { "x": 180, "y": 270 }, + "facing=east,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 90 }, + "facing=west,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 270 }, + "facing=south,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180, "y": 180 }, + "facing=north,half=top,shape=outer_right": { "model": "outer_stairs", "x": 180 }, + "facing=east,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180 }, + "facing=west,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 180 }, + "facing=south,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 90 }, + "facing=north,half=top,shape=outer_left": { "model": "outer_stairs", "x": 180, "y": 270 }, + "facing=east,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 90 }, + "facing=west,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 270 }, + "facing=south,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180, "y": 180 }, + "facing=north,half=top,shape=inner_right": { "model": "inner_stairs", "x": 180 }, + "facing=east,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180 }, + "facing=west,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 180 }, + "facing=south,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 90 }, + "facing=north,half=top,shape=inner_left": { "model": "inner_stairs", "x": 180, "y": 270 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/natura/lang/en_US.lang b/src/main/resources/assets/natura/lang/en_US.lang index eedc692b..29ef86f7 100644 --- a/src/main/resources/assets/natura/lang/en_US.lang +++ b/src/main/resources/assets/natura/lang/en_US.lang @@ -107,6 +107,25 @@ tile.natura.overworld_planks.hopseed.tooltip=Ascended Glitch tile.natura.overworld_planks.redwood.name=Redwood Planks tile.natura.overworld_planks.redwood.tooltip=Giant Sequoia +tile.natura.overworld_slab.maple.name=Maple Slab +tile.natura.overworld_slab.maple.tooltip=Somewhat Sweet +tile.natura.overworld_slab.silverbell.name=Silverbell Slab +tile.natura.overworld_slab.silverbell.tooltip=Silver Bells +tile.natura.overworld_slab.amaranth.name=Amaranth Slab +tile.natura.overworld_slab.amaranth.tooltip=Heart of Wood +tile.natura.overworld_slab.tiger.name=Tigerwood Slab +tile.natura.overworld_slab.tiger.tooltip=Wild Grain +tile.natura.overworld_slab.willow.name=Willow Slab +tile.natura.overworld_slab.willow.tooltip=The Weeper +tile.natura.overworld_slab2.eucalyptus.name=Eucalyptus Slab +tile.natura.overworld_slab2.eucalyptus.tooltip=The pink wood +tile.natura.overworld_slab2.sakura.name=Sakura Slab +tile.natura.overworld_slab2.sakura.tooltip=Flowering Cherry +tile.natura.overworld_slab2.hopseed.name=Hopseed Slab +tile.natura.overworld_slab2.hopseed.tooltip=Ascended Glitch +tile.natura.overworld_slab2.redwood.name=Redwood Slab +tile.natura.overworld_slab2.redwood.tooltip=Giant Sequoia + tile.natura.nether_logs.ghostwood.name=Ghostwood tile.natura.nether_logs.ghostwood.tooltip=Nether Tree\nPale as a ghost tile.natura.nether_logs.darkwood.name=Darkwood @@ -140,12 +159,31 @@ tile.natura.nether_sapling.darkwood.tooltip=Produces chalky apples tile.natura.nether_planks.ghostwood.name=Ghostwood Planks tile.natura.nether_planks.ghostwood.tooltip=Pale as a ghost tile.natura.nether_planks.bloodwood.name=Bloodwood Planks -tile.natura.nether_planks.bloodwood.tooltip=Lava-resistant\nGrows on the ceiling +tile.natura.nether_planks.bloodwood.tooltip=Fire-resistant planks tile.natura.nether_planks.fusewood.name=Fusewood Planks tile.natura.nether_planks.fusewood.tooltip=Nether Tree\nExplosive Personality tile.natura.nether_planks.darkwood.name=Darkwood Planks tile.natura.nether_planks.darkwood.tooltip=Nether Tree +tile.natura.nether_slab.ghostwood.name=Ghostwood Slab +tile.natura.nether_slab.ghostwood.tooltip=Pale as a ghost +tile.natura.nether_slab.bloodwood.name=Blood Slab +tile.natura.nether_slab.bloodwood.tooltip=Fire-resistant planks +tile.natura.nether_slab.fusewood.name=Fusewood Slab +tile.natura.nether_slab.fusewood.tooltip=Nether Tree\nExplosive Personality +tile.natura.nether_slab.darkwood.name=Darkwood Slab +tile.natura.nether_slab.darkwood.tooltip=Nether Tree + +tile.natura.nether_glass.soul.name=Soul Glass +tile.natura.nether_glass.soul.tooltip=Ghostly +tile.natura.nether_glass.heat.name=Heat Glass + +tile.natura.nether_tainted_soil.tainted_soil.name=Tainted Soil +tile.natura.nether_tainted_soil.tainted_farmland_dry.name=Tainted Soil +tile.natura.nether_tainted_soil.tainted_farmland_heated.name=Tainted Soil + +tile.natura.nether_heat_sand.name=Heat Sand + ################ # Items # ################ diff --git a/src/main/resources/assets/natura/textures/blocks/glass/glass_heat.png b/src/main/resources/assets/natura/textures/blocks/glass/glass_heat.png new file mode 100644 index 0000000000000000000000000000000000000000..c21b062bcf75ef7b99f6f76e1e5753237c1793d3 GIT binary patch literal 914 zcmV;D18w|?P)cde`gqt9DG1CQT?w+lW5YMkT-jkdTnz$Z;+lxa7iL!zJQ| zg!YKIA))pZaYI5?p>=3VRPuh-UVGPTdv}KK6W>2B9d;a7K8%z2zg8ICHA8(IL#m+W z!i*2290oa@Dp~F%W_151{PqeKDj@bhXXlSAKaxP$aCy2nWuXMFE4ZGHbbY=Or3O|z z9xqSFB$)waXaOFp5LP9sq;O6W-8CTZ zRN-2GsAInp^`?gPS%<)pG^8MuaHl4iG`-E#2*wsJES#Jrx^lf5^&90-zUV{RtVVyG z=X|gfayXJy%MOlmxyWGgEYn{t+O3=I5`Slc@m{8Fy&N4(3w$YmP>&XaR?P_Z2L;mR z>?MM^(BX72!9O4A!HgH3Cx(_M`Dotb67js|fK`H}VXEbAfBJ1NGklp(^t6EY0?Vu3 znD=|BUR$X|4PP+KEk|k2@5fVoPf!S$FDy$gh!+po**Cb#@qeTuC^Fa|!@DKRQDP8| z;In%Te*HIQE_X<6f$LiG%rYypZ`3`*cd_(;awS|O7Aq`vVz`omiGjPtSnp-_`HZVr zSu7F9;7LO=h4wY?nY?i$h#DR|i4AoJj&oQlE8HpEo{V*=U5OS0LDQG)^$V=b`Jy(` zt}p2$5I--m6U+utpy1EgvK9yq;(|=c&C=Lx1wxP`@j}7J%O!q!GufPT%@#@!pQc)N z+FrCgNcFj+__U?)0>yA*=}>I#P6}RTIm*cqMb2*btzIjct%eIpVtEjP*q&o2T_{Ic z)1iBkvl_aL#|4-1ln)93?I_?Pvv^lID^)>V7913Y zcS6N(A6}=19Ko~1kM1j|xq|Z?dU?Ty56(!!y3F*OBj^s{>qoGC2~TmNPi9@c;k-07*qoM6N<$g1S+icK`qY literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/natura/textures/blocks/glass/glass_soul.png b/src/main/resources/assets/natura/textures/blocks/glass/glass_soul.png new file mode 100644 index 0000000000000000000000000000000000000000..283382ae01a8babead3decc3f6e1f314ab9dae7e GIT binary patch literal 557 zcmV+|0@D47P)KgGZwgGgWQf>)~*{pmAJ6U6KF{wi@n5T2Suqfs#H^}4y+?cjF1!Llq)rxSRdM?4-k vZlB7sEHoMoLs1lZJRV`&Hqz-dSeC^%#h|tyU+*�NkvXXu0mjfSkCK- literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/natura/textures/blocks/sand/heat_sand.png b/src/main/resources/assets/natura/textures/blocks/sand/heat_sand.png new file mode 100644 index 0000000000000000000000000000000000000000..e7bb797bd672a805ab5a2c68209d2270cfca687a GIT binary patch literal 772 zcmV+f1N;1mP)Y}j6oBFPoO{P(PiA79BqV8pd^9a76$q&kLPZD(i66m#W5d2HwsZqRNUTt*04ZuI zEzSqE6KuzJW;}E6;d$iSN15$7BQ#)%BX7gy+$a@RywGbYRWKF-(ikb5$cMKwei$s+ zXbXC$pYY$zn3aY&;k!Q@UJV0RSCKd4NSFnd^T_?xgsOtY9Dez0#MO5qLtdmdSJ%JHz_lbxK?8>Q%Yyh|9B&c8U7}SB<1idID z)zTPO#_{Ql!HrRhayhSASR`#JPfu%dXMFvBhwYZq1pqdDM85yBuzyE^HH|bKK@lba zwutN%j%TyLd1>TcD5GPeWr!NL1m=lHZ5i+ai9pAJuZ_ixVF7+Rtr^XYuRiE8_CjBk zX$^}ACv#)c1oUWROlOf<4QH2;>pGIwfmaROh_IRoPhVcMpEwTp5>}ii6KD*2EkPfw z2)z`ZOe0+n=MC(197zqm%(0U=-pz!5TX{JNm^K`4v`E^@1VO&}IJ0+B$Q=ASHSTA^ zU>aC)a9u$rLW7d#!lT_5KmJpZIs+#RDnk!lz>8<-9bc?D(#$bi8V=+6GVn*);CzFG zhM&($HoehHU_LkQbUgC-LCcEFQT9D27Y%pwgsKW$PHR5x3ugpTLVnq(L~E2R>R;Ruf^^z_`sDg3Z8JSmJm+(JYt6PbiI5u+t0000IN-cXNiA34f?4Ok97T3-X<)QU0j^s?LE`!RQ z9Uhf#B+{h){gRAp&k|<)_TMi~Z66Rw(#g+IrX$1ZLJkV&5|8KX3z!ERwXMVzGpE007Sa0noZ#fI_Ni06p!< zwgUD!rz^x$x&h$mwg)X`DyR=6!R$T28_oeB-W2#QFau-lH7W?A4BrKqS<}{){G|*A ztBKvr0Si#K=K#ZKou7qK_+-WsM?B>@4*3COcM?eejEC~5n;{~O$>mPiT|fnw13yTn zZUS-o-+j=UVa78`w^6=S7Js2Yq^&*(mto_}8iMVMbWwd2harFfz$U1m69|}3;(>s3 g%3id7B&X*70fEP3{^irgS^xk507*qoM6N<$f-vRpk^lez literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/natura/textures/blocks/soil/tainted_farmland_heated.png b/src/main/resources/assets/natura/textures/blocks/soil/tainted_farmland_heated.png new file mode 100644 index 0000000000000000000000000000000000000000..fca49bd5fbe29c74b69994efbc79770d20c2ae12 GIT binary patch literal 254 zcmVWvFrfonUc@-THI9Dp&`SXbs9?G}1{QQeRef|Kpn`od;73nju`iYJ`Zbwg%93X&vIF=nB#HPpq$Ee#AzhQx^ckrn_)wA$oJGIK7;gryOPTQM9Dtz9 z$_|j+=WLe`)J*%ie*REN9=xL#INjt6xLuQ3(v0Yz1MxoCv(aEk)c^nh07*qoM6N<$ Ef?zOfujP)x{f)A`|jmYwbP(@}9A@5Sps+&1%eHUNq!Vx`W*~74PB?@C#-jKa=}FZ!hG&P+ML} ztx_A_yNJ#)#bW{$CrzE<$v!@HGxIk9ck)!r{+Y4q9yoXBO)BBzA!h;0Pb$(XX1oTm z_R*07$J{p2oepwl>S~~n_Pj3#;Y4G$q2WnXnEbua0l;@aBAv}&1vV6gk^IfP-Nyg` N002ovPDHLkV1hSkbmIU3 literal 0 HcmV?d00001