diff --git a/src/main/java/biomesoplenty/api/block/BOPBlocks.java b/src/main/java/biomesoplenty/api/block/BOPBlocks.java index 6a032d2a0..645084e30 100644 --- a/src/main/java/biomesoplenty/api/block/BOPBlocks.java +++ b/src/main/java/biomesoplenty/api/block/BOPBlocks.java @@ -138,7 +138,7 @@ public class BOPBlocks public static Block double_plant; public static Block honey_block; - public static Block jar_block; + public static Block terrarium; public static Block honey; public static Fluid honey_fluid; diff --git a/src/main/java/biomesoplenty/common/biome/overworld/BiomeGenWetland.java b/src/main/java/biomesoplenty/common/biome/overworld/BiomeGenWetland.java index 3e3b38ffc..9a3bb8ad8 100644 --- a/src/main/java/biomesoplenty/common/biome/overworld/BiomeGenWetland.java +++ b/src/main/java/biomesoplenty/common/biome/overworld/BiomeGenWetland.java @@ -21,6 +21,7 @@ import biomesoplenty.api.block.BOPBlocks; import biomesoplenty.api.block.BlockQueries; import biomesoplenty.common.block.BlockBOPCoral; import biomesoplenty.common.block.BlockBOPDoublePlant; +import biomesoplenty.common.block.BlockBOPLeaves; import biomesoplenty.common.block.BlockBOPLilypad; import biomesoplenty.common.block.BlockBOPMushroom; import biomesoplenty.common.block.BlockBOPPlant; @@ -71,7 +72,7 @@ public class BiomeGenWetland extends BOPBiome // trees & logs GeneratorWeighted treeGenerator = new GeneratorWeighted(9); this.addGenerator("trees", GeneratorStage.TREE, treeGenerator); - treeGenerator.add("willow", 5, (new GeneratorBasicTree.Builder()).log(BOPWoods.WILLOW).leaves(BOPTrees.WILLOW).minHeight(8).maxHeight(12).minLeavesRadius(2).vine(Blocks.vine.getDefaultState()).create()); + treeGenerator.add("willow", 5, (new GeneratorBasicTree.Builder()).log(BOPWoods.WILLOW).leaves(BOPTrees.WILLOW).minHeight(8).maxHeight(12).minLeavesRadius(2).vine(BlockBOPLeaves.paging.getVariantState(BOPTrees.WILLOW)).create()); treeGenerator.add("spruce", 4, (new GeneratorTaigaTree.Builder()).maxHeight(13).create()); // TODO: implement pine cones // grasses diff --git a/src/main/java/biomesoplenty/common/biome/vanilla/BiomeExtExtremeHills.java b/src/main/java/biomesoplenty/common/biome/vanilla/BiomeExtExtremeHills.java index 3bd3faad1..6b5ac41de 100644 --- a/src/main/java/biomesoplenty/common/biome/vanilla/BiomeExtExtremeHills.java +++ b/src/main/java/biomesoplenty/common/biome/vanilla/BiomeExtExtremeHills.java @@ -22,7 +22,8 @@ public class BiomeExtExtremeHills extends ExtendedBiomeWrapper super(BiomeGenBase.extremeHills); // trees - GeneratorWeighted treeGenerator = new GeneratorWeighted(1); + GeneratorWeighted treeGenerator = new GeneratorWeighted(2); + this.addGenerator("trees", GeneratorStage.TREE, treeGenerator); treeGenerator.add("jacaranda", 3, (new GeneratorBasicTree.Builder()).minHeight(4).maxHeight(7).log(BOPWoods.JACARANDA).leaves(BOPTrees.JACARANDA).create()); // grasses diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPJar.java b/src/main/java/biomesoplenty/common/block/BlockBOPJar.java deleted file mode 100644 index f93813905..000000000 --- a/src/main/java/biomesoplenty/common/block/BlockBOPJar.java +++ /dev/null @@ -1,95 +0,0 @@ -/******************************************************************************* - * Copyright 2014-2016, the Biomes O' Plenty Team - * - * This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License. - * - * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. - ******************************************************************************/ - -package biomesoplenty.common.block; - -import java.util.ArrayList; -import java.util.List; -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.block.properties.IProperty; -import net.minecraft.block.state.IBlockState; -import net.minecraft.item.Item; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.util.BlockPos; -import net.minecraft.util.EnumWorldBlockLayer; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import biomesoplenty.api.block.BOPBlocks; -import biomesoplenty.api.block.IBOPBlock; -import biomesoplenty.api.item.BOPItems; -import biomesoplenty.common.block.BlockBOPHalfOtherSlab.SlabType; -import biomesoplenty.common.item.ItemBOPBlock; -import biomesoplenty.common.item.ItemJarFilled; - -public class BlockBOPJar extends Block implements IBOPBlock -{ - - // implement IBOPBlock - @Override - public Class getItemClass() { return ItemBOPBlock.class; } - @Override - public int getItemRenderColor(IBlockState state, int tintIndex) { return this.getRenderColor(state); } - @Override - public IProperty[] getPresetProperties() { return new IProperty[] {}; } - @Override - public IProperty[] getNonRenderingProperties() { return null; } - @Override - public String getStateName(IBlockState state) {return "";} - - - public BlockBOPJar() { - // use rock as default material - this(Material.glass); - } - - public BlockBOPJar(Material material) - { - super(material); - // set some defaults - this.setHardness(1.0F); - this.setStepSound(Block.soundTypeGlass); - this.setCreativeTab(null); - } - - @Override - public boolean isOpaqueCube() - { - return false; - } - - // not full cube - @Override - public boolean isFullCube() - { - return false; - } - - @Override - public List getDrops(IBlockAccess world, BlockPos pos, IBlockState state, int fortune) - { - List ret = new ArrayList(); - - //Drop two of the corresponding half slab for this block - ret.add(new ItemStack(BOPItems.jar_filled, 1, ItemJarFilled.JarContents.TERRARIUM.ordinal())); - - return ret; - } - - @Override - public EnumWorldBlockLayer getBlockLayer() - { - return EnumWorldBlockLayer.CUTOUT; - } - -} \ No newline at end of file diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPTerrarium.java b/src/main/java/biomesoplenty/common/block/BlockBOPTerrarium.java new file mode 100644 index 000000000..8f330218e --- /dev/null +++ b/src/main/java/biomesoplenty/common/block/BlockBOPTerrarium.java @@ -0,0 +1,130 @@ +/******************************************************************************* + * Copyright 2014-2016, the Biomes O' Plenty Team + * + * This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License. + * + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + ******************************************************************************/ + +package biomesoplenty.common.block; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.block.properties.IProperty; +import net.minecraft.block.properties.PropertyEnum; +import net.minecraft.block.state.BlockState; +import net.minecraft.block.state.IBlockState; +import net.minecraft.item.ItemBlock; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumWorldBlockLayer; +import net.minecraft.util.IStringSerializable; +import net.minecraft.world.IBlockAccess; +import biomesoplenty.api.block.IBOPBlock; +import biomesoplenty.common.item.ItemBOPBlock; + +public class BlockBOPTerrarium extends Block implements IBOPBlock +{ + + // add properties + public static enum TerrariumType implements IStringSerializable + { + FERN, MUSHROOM; + @Override + public String getName() + { + return this.name().toLowerCase(); + } + @Override + public String toString() + { + return this.getName(); + } + }; + public static final PropertyEnum VARIANT = PropertyEnum.create("variant", TerrariumType.class); + @Override + protected BlockState createBlockState() {return new BlockState(this, new IProperty[] { VARIANT });} + + + // implement IBOPBlock + // need to use a custom item class because of the unique way lilies are placed + @Override + public Class getItemClass() { return ItemBOPBlock.class; } + @Override + public int getItemRenderColor(IBlockState state, int tintIndex) { return this.getRenderColor(state); } + @Override + public IProperty[] getPresetProperties() { return new IProperty[] {VARIANT}; } + @Override + public IProperty[] getNonRenderingProperties() { return null; } + @Override + public String getStateName(IBlockState state) { + TerrariumType type = (TerrariumType) state.getValue(VARIANT); + switch (type) + { + default: + return "terrarium_"+type.getName(); + } + } + + + public BlockBOPTerrarium() + { + super(Material.glass); + this.setHardness(1.0F); + this.setDefaultState(this.blockState.getBaseState().withProperty(VARIANT, TerrariumType.FERN)); + this.setBlockBoundsByRadiusAndHeight(0.8F , 0.8F); + } + + public void setBlockBoundsByRadiusAndHeight(float radius, float height) + { + this.setBlockBoundsByRadiusAndHeight(radius, height, false); + } + public void setBlockBoundsByRadiusAndHeight(float radius, float height, boolean fromTop) + { + this.setBlockBounds(0.5F - radius, (fromTop ? 1.0F - height : 0.0F), 0.5F - radius, 0.5F + radius, (fromTop ? 1.0F : height), 0.5F + radius); + } + + @Override + public IBlockState getStateFromMeta(int meta) + { + // only one property to worry about, the variant, so just map [0 => MEDIUM, 1 => SMALL, 2 => TINY] + return this.getDefaultState().withProperty(VARIANT, TerrariumType.values()[meta]); + } + + @Override + public int getMetaFromState(IBlockState state) + { + // only one property to worry about, the variant, so just map [0 => MEDIUM, 1 => SMALL, 2 => TINY] + return ((TerrariumType) state.getValue(VARIANT)).ordinal(); + } + + // our blocks usually drop their current state as opposed to a single 'default' state + @Override + public int damageDropped(IBlockState state) + { + return this.getMetaFromState(state); + } + + @Override + public boolean isOpaqueCube() + { + return false; + } + + @Override + public boolean isFullCube() + { + return false; + } + + @Override + public EnumWorldBlockLayer getBlockLayer() + { + return EnumWorldBlockLayer.CUTOUT; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess worldIn, BlockPos pos) { + this.setBlockBoundsByRadiusAndHeight(0.2F, 1.0F); + } + +} \ No newline at end of file diff --git a/src/main/java/biomesoplenty/common/init/ModBlocks.java b/src/main/java/biomesoplenty/common/init/ModBlocks.java index a7f290b3d..8096a33b4 100644 --- a/src/main/java/biomesoplenty/common/init/ModBlocks.java +++ b/src/main/java/biomesoplenty/common/init/ModBlocks.java @@ -221,7 +221,7 @@ public class ModBlocks double_plant = registerBlock( new BlockBOPDoublePlant(), "double_plant" ); honey_block = registerBlock( new BlockBOPHoney(), "honey_block" ); - jar_block = registerBlock( new BlockBOPJar(), "jar_block" ); + terrarium = registerBlock( new BlockBOPTerrarium(), "terrarium" ); // fluids diff --git a/src/main/java/biomesoplenty/common/init/ModCrafting.java b/src/main/java/biomesoplenty/common/init/ModCrafting.java index f7b948a0b..f60e7ffc1 100644 --- a/src/main/java/biomesoplenty/common/init/ModCrafting.java +++ b/src/main/java/biomesoplenty/common/init/ModCrafting.java @@ -8,16 +8,6 @@ package biomesoplenty.common.init; -import com.google.common.base.CaseFormat; - -import biomesoplenty.api.block.BOPBlocks; -import biomesoplenty.api.item.BOPItems; -import biomesoplenty.common.block.*; -import biomesoplenty.common.crafting.BiomeEssenceRecipe; -import biomesoplenty.common.enums.*; -import biomesoplenty.common.handler.FurnaceFuelHandler; -import biomesoplenty.common.item.ItemDart; -import biomesoplenty.common.item.ItemJarFilled; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.EnumDyeColor; @@ -25,6 +15,39 @@ import net.minecraft.item.ItemStack; import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.ShapedOreRecipe; +import net.minecraftforge.oredict.ShapelessOreRecipe; +import biomesoplenty.api.block.BOPBlocks; +import biomesoplenty.api.item.BOPItems; +import biomesoplenty.common.block.BlockBOPBones; +import biomesoplenty.common.block.BlockBOPDoor; +import biomesoplenty.common.block.BlockBOPDoublePlant; +import biomesoplenty.common.block.BlockBOPFence; +import biomesoplenty.common.block.BlockBOPFenceGate; +import biomesoplenty.common.block.BlockBOPFlower; +import biomesoplenty.common.block.BlockBOPGrass; +import biomesoplenty.common.block.BlockBOPHalfOtherSlab; +import biomesoplenty.common.block.BlockBOPHalfWoodSlab; +import biomesoplenty.common.block.BlockBOPHive; +import biomesoplenty.common.block.BlockBOPLeaves; +import biomesoplenty.common.block.BlockBOPLog; +import biomesoplenty.common.block.BlockBOPMushroom; +import biomesoplenty.common.block.BlockBOPPlanks; +import biomesoplenty.common.block.BlockBOPPlant; +import biomesoplenty.common.block.BlockBOPSapling; +import biomesoplenty.common.block.BlockBOPSeaweed; +import biomesoplenty.common.block.BlockBOPTerrarium; +import biomesoplenty.common.block.BlockBOPWoodStairs; +import biomesoplenty.common.crafting.BiomeEssenceRecipe; +import biomesoplenty.common.enums.BOPFlowers; +import biomesoplenty.common.enums.BOPGems; +import biomesoplenty.common.enums.BOPPlants; +import biomesoplenty.common.enums.BOPTrees; +import biomesoplenty.common.enums.BOPWoods; +import biomesoplenty.common.handler.FurnaceFuelHandler; +import biomesoplenty.common.item.ItemDart; +import biomesoplenty.common.item.ItemJarFilled; + +import com.google.common.base.CaseFormat; public class ModCrafting { @@ -212,13 +235,14 @@ public class ModCrafting //Plants GameRegistry.addShapelessRecipe(new ItemStack(BOPItems.shroompowder), new Object[] {new ItemStack(BOPBlocks.mushroom, 1, BlockBOPMushroom.MushroomType.TOADSTOOL.ordinal())}); GameRegistry.addShapelessRecipe(new ItemStack(BOPItems.jar_filled, 1, ItemJarFilled.JarContents.POISON.ordinal()), new Object[] {BlockBOPPlant.paging.getVariantItem(BOPPlants.POISONIVY), new ItemStack(BOPItems.jar_empty)}); - GameRegistry.addShapelessRecipe(new ItemStack(BOPItems.jar_filled, 1, ItemJarFilled.JarContents.TERRARIUM.ordinal()), new Object[] {new ItemStack(BOPBlocks.moss), new ItemStack(BOPItems.jar_empty)}); GameRegistry.addShapelessRecipe(new ItemStack(BOPItems.ricebowl), new Object[] {Items.bowl, BlockBOPPlant.paging.getVariantItem(BOPPlants.WILDRICE)}); GameRegistry.addShapelessRecipe(new ItemStack(BOPItems.saladfruit), new Object[] {Items.bowl, BOPItems.berries, Items.apple, Items.melon}); GameRegistry.addShapelessRecipe(new ItemStack(BOPItems.saladveggie), new Object[] {Items.bowl, BOPItems.wildcarrots, Items.carrot, Items.potato}); GameRegistry.addShapelessRecipe(new ItemStack(BOPItems.saladshroom), new Object[] {Items.bowl, new ItemStack(BOPBlocks.mushroom, 1, BlockBOPMushroom.MushroomType.TOADSTOOL.ordinal()), new ItemStack(BOPBlocks.mushroom, 1, BlockBOPMushroom.MushroomType.PORTOBELLO.ordinal()), new ItemStack(BOPBlocks.mushroom, 1, BlockBOPMushroom.MushroomType.BLUE_MILK_CAP.ordinal())}); - + //Terrariums + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(BOPBlocks.terrarium, 1, BlockBOPTerrarium.TerrariumType.FERN.ordinal()), new Object[] {"blockGrass", new ItemStack(Blocks.tallgrass, 1, 2), new ItemStack(BOPItems.jar_empty)})); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(BOPBlocks.terrarium, 1, BlockBOPTerrarium.TerrariumType.MUSHROOM.ordinal()), new Object[] {"blockGrass", new ItemStack(Blocks.red_mushroom), new ItemStack(BOPItems.jar_empty)})); } @@ -263,6 +287,13 @@ public class ModCrafting OreDictionary.registerOre("blockMeatRaw", new ItemStack(BOPBlocks.flesh, 1, 0)); + OreDictionary.registerOre("blockGrass", new ItemStack(BOPBlocks.grass, 1, BlockBOPGrass.BOPGrassType.LOAMY.ordinal())); + OreDictionary.registerOre("blockGrass", new ItemStack(BOPBlocks.grass, 1, BlockBOPGrass.BOPGrassType.SILTY.ordinal())); + OreDictionary.registerOre("blockGrass", new ItemStack(BOPBlocks.grass, 1, BlockBOPGrass.BOPGrassType.SANDY.ordinal())); + OreDictionary.registerOre("blockGrass", new ItemStack(BOPBlocks.grass, 1, BlockBOPGrass.BOPGrassType.DAISY.ordinal())); + OreDictionary.registerOre("blockGrass", new ItemStack(BOPBlocks.grass, 1, BlockBOPGrass.BOPGrassType.ORIGIN.ordinal())); + OreDictionary.registerOre("blockGrass", new ItemStack(Blocks.grass)); + OreDictionary.registerOre("foodMushroompowder", new ItemStack(BOPItems.shroompowder)); OreDictionary.registerOre("foodFruitsalad", new ItemStack(BOPItems.saladfruit)); OreDictionary.registerOre("foodVeggiesalad", new ItemStack(BOPItems.saladveggie)); @@ -295,7 +326,6 @@ public class ModCrafting OreDictionary.registerOre("record", new ItemStack(BOPItems.record_corruption)); OreDictionary.registerOre("record", new ItemStack(BOPItems.record_wanderer)); - for (BOPGems gem : BOPGems.values()) { // TODO: for some reason, Amethyst was not included in these sections in the 1.7 code - check this is correct, deliberate behavior diff --git a/src/main/java/biomesoplenty/common/item/ItemJarFilled.java b/src/main/java/biomesoplenty/common/item/ItemJarFilled.java index 10a0c8333..7b803c52a 100644 --- a/src/main/java/biomesoplenty/common/item/ItemJarFilled.java +++ b/src/main/java/biomesoplenty/common/item/ItemJarFilled.java @@ -31,7 +31,7 @@ public class ItemJarFilled extends Item public enum JarContents implements IStringSerializable { - HONEY, POISON, PIXIE, TERRARIUM; + HONEY, POISON, PIXIE; @Override public String getName() @@ -151,7 +151,7 @@ public class ItemJarFilled extends Item } return stack; - case HONEY: case POISON: case TERRARIUM: default: + case HONEY: case POISON: default: return stack; } } @@ -173,7 +173,7 @@ public class ItemJarFilled extends Item return this.releasePixie(stack, world, player, releasePoint); // TODO: are you supposed to be able to pour out honey? How much should you get? Why don't we just use buckets? - case HONEY: case POISON: case TERRARIUM: default: + case HONEY: case POISON: default: return false; } } diff --git a/src/main/resources/assets/biomesoplenty/blockstates/jar_block.json b/src/main/resources/assets/biomesoplenty/blockstates/jar_block.json deleted file mode 100644 index 7e1e9dd75..000000000 --- a/src/main/resources/assets/biomesoplenty/blockstates/jar_block.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "variants": { - "normal": { "model": "biomesoplenty:jar" } - } -} diff --git a/src/main/resources/assets/biomesoplenty/blockstates/terrarium.json b/src/main/resources/assets/biomesoplenty/blockstates/terrarium.json new file mode 100644 index 000000000..a5ecea15f --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/blockstates/terrarium.json @@ -0,0 +1,6 @@ +{ + "variants": { + "variant=fern": { "model": "biomesoplenty:terrarium_fern" }, + "variant=mushroom": { "model": "biomesoplenty:terrarium_mushroom" } + } +} diff --git a/src/main/resources/assets/biomesoplenty/lang/en_US.lang b/src/main/resources/assets/biomesoplenty/lang/en_US.lang index cc4b0c58d..5e594d1a5 100644 --- a/src/main/resources/assets/biomesoplenty/lang/en_US.lang +++ b/src/main/resources/assets/biomesoplenty/lang/en_US.lang @@ -125,7 +125,6 @@ item.jar_empty.name=Empty Jar item.jar_filled_honey.name=Honey Jar item.jar_filled_pixie.name=Pixie Jar item.jar_filled_poison.name=Poison Extract Jar -item.jar_filled_terrarium.name=Terrarium Jar item.lush_flower_band.name=Lush Flower Band item.magic_door.name=Magic Door item.mahogany_door.name=Mahogany Door @@ -438,6 +437,8 @@ tile.stone.shale.name=Shale tile.stone.polished_shale.name=Polished Shale tile.stone_formations.stalagmite.name=Stalagmite tile.stone_formations.stalactite.name=Stalactite +tile.terrarium.terrarium_fern.name=Fern Terrarium +tile.terrarium.terrarium_mushroom.name=Mushroom Terrarium tile.tree_moss.name=Tree Moss tile.turnip_block.name=Turnip tile.umbran_fence.name=Umbran Fence diff --git a/src/main/resources/assets/biomesoplenty/models/block/jar.json b/src/main/resources/assets/biomesoplenty/models/block/terrarium_fern.json similarity index 63% rename from src/main/resources/assets/biomesoplenty/models/block/jar.json rename to src/main/resources/assets/biomesoplenty/models/block/terrarium_fern.json index 95966d3e4..5b56edd51 100644 --- a/src/main/resources/assets/biomesoplenty/models/block/jar.json +++ b/src/main/resources/assets/biomesoplenty/models/block/terrarium_fern.json @@ -10,7 +10,11 @@ "5": "biomesoplenty:blocks/jar_bottom_side", "6": "biomesoplenty:blocks/jar_bottom", "7": "biomesoplenty:blocks/jar_stopper_side", - "8": "biomesoplenty:blocks/jar_stopper_top" + "8": "biomesoplenty:blocks/jar_stopper_top", + "9": "biomesoplenty:blocks/jar_fern_grass_side", + "10": "biomesoplenty:blocks/jar_fern_grass_top", + "11": "biomesoplenty:blocks/jar_fern_grass_bottom", + "12": "biomesoplenty:blocks/jar_fern" }, "elements": [ { @@ -62,6 +66,39 @@ "up": { "texture": "#8", "uv": [ 6.0, 5.0, 11.0, 10.0 ] }, "down": { "texture": "#8", "uv": [ 6.0, 5.0, 11.0, 10.0 ] } } + }, + { + "name": "Plant Base", + "from": [ 5.0, 1.0, 5.0 ], + "to": [ 12.0, 5.0, 12.0 ], + "faces": { + "north": { "texture": "#9", "uv": [ 5.0, 10.0, 12.0, 14.0 ] }, + "east": { "texture": "#9", "uv": [ 5.0, 10.0, 12.0, 14.0 ] }, + "south": { "texture": "#9", "uv": [ 5.0, 10.0, 12.0, 14.0 ] }, + "west": { "texture": "#9", "uv": [ 5.0, 10.0, 12.0, 14.0 ] }, + "up": { "texture": "#10", "uv": [ 5.0, 5.0, 12.0, 12.0 ] }, + "down": { "texture": "#11", "uv": [ 5.0, 5.0, 12.0, 12.0 ] } + } + }, + { + "name": "Plant Cross 1", + "from": [ 5.0, 5.0, 8.0 ], + "to": [ 12.0, 10.0, 8.0 ], + "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": -45.0 }, + "faces": { + "north": { "texture": "#12", "uv": [ 5.0, 5.0, 12.0, 10.0 ] }, + "south": { "texture": "#12", "uv": [ 5.0, 5.0, 12.0, 10.0 ] } + } + }, + { + "name": "Plant Cross 2", + "from": [ 5.0, 5.0, 8.0 ], + "to": [ 12.0, 10.0, 8.0 ], + "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 45.0 }, + "faces": { + "north": { "texture": "#12", "uv": [ 5.0, 5.0, 12.0, 10.0 ] }, + "south": { "texture": "#12", "uv": [ 5.0, 5.0, 12.0, 10.0 ] } + } } ] } \ No newline at end of file diff --git a/src/main/resources/assets/biomesoplenty/models/block/terrarium_mushroom.json b/src/main/resources/assets/biomesoplenty/models/block/terrarium_mushroom.json new file mode 100644 index 000000000..82d8209a1 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/terrarium_mushroom.json @@ -0,0 +1,104 @@ +{ + "__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)", + "ambientocclusion": false, + "textures": { + "0": "biomesoplenty:blocks/jar_main_side", + "1": "biomesoplenty:blocks/jar_main_top", + "2": "biomesoplenty:blocks/jar_main_bottom", + "3": "biomesoplenty:blocks/jar_opening_side", + "4": "biomesoplenty:blocks/jar_opening_top", + "5": "biomesoplenty:blocks/jar_bottom_side", + "6": "biomesoplenty:blocks/jar_bottom", + "7": "biomesoplenty:blocks/jar_stopper_side", + "8": "biomesoplenty:blocks/jar_stopper_top", + "9": "biomesoplenty:blocks/jar_mushroom_grass_side", + "10": "biomesoplenty:blocks/jar_mushroom_grass_top", + "11": "biomesoplenty:blocks/jar_mushroom_grass_bottom", + "12": "biomesoplenty:blocks/jar_mushroom" + }, + "elements": [ + { + "name": "Jar", + "from": [ 4.0, 1.0, 4.0 ], + "to": [ 13.0, 9.0, 13.0 ], + "faces": { + "north": { "texture": "#0", "uv": [ 4.0, 7.0, 13.0, 15.0 ] }, + "east": { "texture": "#0", "uv": [ 4.0, 7.0, 13.0, 15.0 ] }, + "south": { "texture": "#0", "uv": [ 4.0, 7.0, 13.0, 15.0 ] }, + "west": { "texture": "#0", "uv": [ 4.0, 7.0, 13.0, 15.0 ] }, + "up": { "texture": "#1", "uv": [ 4.0, 4.0, 13.0, 13.0 ] }, + "down": { "texture": "#2", "uv": [ 4.0, 4.0, 13.0, 13.0 ] } + } + }, + { + "name": "Opening", + "from": [ 5.0, 9.0, 5.0 ], + "to": [ 12.0, 12.0, 12.0 ], + "faces": { + "north": { "texture": "#3", "uv": [ 5.0, 4.0, 12.0, 7.0 ] }, + "east": { "texture": "#3", "uv": [ 5.0, 4.0, 12.0, 7.0 ] }, + "south": { "texture": "#3", "uv": [ 5.0, 4.0, 12.0, 7.0 ] }, + "west": { "texture": "#3", "uv": [ 5.0, 4.0, 12.0, 7.0 ] }, + "up": { "texture": "#4", "uv": [ 5.0, 5.0, 12.0, 12.0 ] } + } + }, + { + "name": "Bottom", + "from": [ 5.0, 0.0, 5.0 ], + "to": [ 12.0, 1.0, 12.0 ], + "faces": { + "north": { "texture": "#5", "uv": [ 5.0, 16.0, 12.0, 15.0 ] }, + "east": { "texture": "#5", "uv": [ 5.0, 16.0, 12.0, 15.0 ] }, + "south": { "texture": "#5", "uv": [ 5.0, 16.0, 12.0, 15.0 ] }, + "west": { "texture": "#5", "uv": [ 5.0, 16.0, 12.0, 15.0 ] }, + "down": { "texture": "#6", "uv": [ 5.0, 5.0, 12.0, 12.0 ] } + } + }, + { + "name": "Stopper", + "from": [ 6.0, 10.0, 6.0 ], + "to": [ 11.0, 13.0, 11.0 ], + "faces": { + "north": { "texture": "#7", "uv": [ 6.0, 3.0, 11.0, 6.0 ] }, + "east": { "texture": "#7", "uv": [ 6.0, 3.0, 11.0, 6.0 ] }, + "south": { "texture": "#7", "uv": [ 6.0, 3.0, 11.0, 6.0 ] }, + "west": { "texture": "#7", "uv": [ 6.0, 3.0, 11.0, 6.0 ] }, + "up": { "texture": "#8", "uv": [ 6.0, 5.0, 11.0, 10.0 ] }, + "down": { "texture": "#8", "uv": [ 6.0, 5.0, 11.0, 10.0 ] } + } + }, + { + "name": "Plant Base", + "from": [ 5.0, 1.0, 5.0 ], + "to": [ 12.0, 5.0, 12.0 ], + "faces": { + "north": { "texture": "#9", "uv": [ 5.0, 10.0, 12.0, 14.0 ] }, + "east": { "texture": "#9", "uv": [ 5.0, 10.0, 12.0, 14.0 ] }, + "south": { "texture": "#9", "uv": [ 5.0, 10.0, 12.0, 14.0 ] }, + "west": { "texture": "#9", "uv": [ 5.0, 10.0, 12.0, 14.0 ] }, + "up": { "texture": "#10", "uv": [ 5.0, 5.0, 12.0, 12.0 ] }, + "down": { "texture": "#11", "uv": [ 5.0, 5.0, 12.0, 12.0 ] } + } + }, + { + "name": "Plant Cross 1", + "from": [ 5.0, 5.0, 8.0 ], + "to": [ 12.0, 10.0, 8.0 ], + "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": -45.0 }, + "faces": { + "north": { "texture": "#12", "uv": [ 5.0, 5.0, 12.0, 10.0 ] }, + "south": { "texture": "#12", "uv": [ 5.0, 5.0, 12.0, 10.0 ] } + } + }, + { + "name": "Plant Cross 2", + "from": [ 5.0, 5.0, 8.0 ], + "to": [ 12.0, 10.0, 8.0 ], + "rotation": { "origin": [ 8.0, 8.0, 8.0 ], "axis": "y", "angle": 45.0 }, + "faces": { + "north": { "texture": "#12", "uv": [ 5.0, 5.0, 12.0, 10.0 ] }, + "south": { "texture": "#12", "uv": [ 5.0, 5.0, 12.0, 10.0 ] } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/biomesoplenty/models/item/jar_block.json b/src/main/resources/assets/biomesoplenty/models/item/jar_block.json deleted file mode 100644 index 89780e016..000000000 --- a/src/main/resources/assets/biomesoplenty/models/item/jar_block.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "parent": "biomesoplenty:block/jar_block", - "display": { - "thirdperson": { - "rotation": [ 10, -45, 170 ], - "translation": [ 0, 1.5, -2.75 ], - "scale": [ 0.375, 0.375, 0.375 ] - } - } -} diff --git a/src/main/resources/assets/biomesoplenty/models/item/jar_filled_terrarium.json b/src/main/resources/assets/biomesoplenty/models/item/terrarium_fern.json similarity index 86% rename from src/main/resources/assets/biomesoplenty/models/item/jar_filled_terrarium.json rename to src/main/resources/assets/biomesoplenty/models/item/terrarium_fern.json index 37d55e9c9..1b8e44bab 100644 --- a/src/main/resources/assets/biomesoplenty/models/item/jar_filled_terrarium.json +++ b/src/main/resources/assets/biomesoplenty/models/item/terrarium_fern.json @@ -1,7 +1,7 @@ { "parent": "builtin/generated", "textures": { - "layer0": "biomesoplenty:items/jar_filled_terrarium" + "layer0": "biomesoplenty:items/terrarium_fern" }, "display": { "thirdperson": { diff --git a/src/main/resources/assets/biomesoplenty/models/item/terrarium_mushroom.json b/src/main/resources/assets/biomesoplenty/models/item/terrarium_mushroom.json new file mode 100644 index 000000000..7e7929996 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/terrarium_mushroom.json @@ -0,0 +1,18 @@ +{ + "parent": "builtin/generated", + "textures": { + "layer0": "biomesoplenty:items/terrarium_mushroom" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/jar_fern.png b/src/main/resources/assets/biomesoplenty/textures/blocks/jar_fern.png new file mode 100644 index 000000000..4572dcb97 Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/jar_fern.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/jar_fern_grass_bottom.png b/src/main/resources/assets/biomesoplenty/textures/blocks/jar_fern_grass_bottom.png new file mode 100644 index 000000000..5ee1cc8c8 Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/jar_fern_grass_bottom.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/jar_fern_grass_side.png b/src/main/resources/assets/biomesoplenty/textures/blocks/jar_fern_grass_side.png new file mode 100644 index 000000000..ab2c2db81 Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/jar_fern_grass_side.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/jar_fern_grass_top.png b/src/main/resources/assets/biomesoplenty/textures/blocks/jar_fern_grass_top.png new file mode 100644 index 000000000..01283954f Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/jar_fern_grass_top.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/jar_mushroom.png b/src/main/resources/assets/biomesoplenty/textures/blocks/jar_mushroom.png new file mode 100644 index 000000000..6c27e2a9d Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/jar_mushroom.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/jar_mushroom_grass_bottom.png b/src/main/resources/assets/biomesoplenty/textures/blocks/jar_mushroom_grass_bottom.png new file mode 100644 index 000000000..a48eac77e Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/jar_mushroom_grass_bottom.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/jar_mushroom_grass_side.png b/src/main/resources/assets/biomesoplenty/textures/blocks/jar_mushroom_grass_side.png new file mode 100644 index 000000000..d3d47214b Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/jar_mushroom_grass_side.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/jar_mushroom_grass_top.png b/src/main/resources/assets/biomesoplenty/textures/blocks/jar_mushroom_grass_top.png new file mode 100644 index 000000000..5d6b45102 Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/blocks/jar_mushroom_grass_top.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/items/jar_filled_terrarium.png b/src/main/resources/assets/biomesoplenty/textures/items/jar_filled_terrarium.png deleted file mode 100644 index 22b6f647d..000000000 Binary files a/src/main/resources/assets/biomesoplenty/textures/items/jar_filled_terrarium.png and /dev/null differ diff --git a/src/main/resources/assets/biomesoplenty/textures/items/terrarium_fern.png b/src/main/resources/assets/biomesoplenty/textures/items/terrarium_fern.png new file mode 100644 index 000000000..07dbe5826 Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/items/terrarium_fern.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/items/terrarium_mushroom.png b/src/main/resources/assets/biomesoplenty/textures/items/terrarium_mushroom.png new file mode 100644 index 000000000..46d59222b Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/items/terrarium_mushroom.png differ