From f759408d3865b341d5406604c3082bb6b4773c11 Mon Sep 17 00:00:00 2001 From: Cheeserolls Date: Fri, 27 Mar 2015 09:56:20 +0000 Subject: [PATCH 01/10] Correct grass burning values --- .../biomesoplenty/common/block/BlockBOPGrass.java | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java b/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java index 93e4b5105..5cf13a3f8 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java @@ -163,21 +163,14 @@ public class BlockBOPGrass extends BOPBlock implements IGrowable { IBlockState state = world.getBlockState(pos); switch ((BOPGrassType) state.getValue(VARIANT_PROP)) - { - // spectral moss burns from below in the end - // TODO: 1.7 code had dimension=-1 here - check -1 corresponds to end - case SPECTRALMOSS: - if ((world.provider instanceof net.minecraft.world.WorldProviderEnd) && side == EnumFacing.UP) {return true;} - break; - - // smoldering grass always burns + { + // smoldering grass is a fire source case SMOLDERING: - return false; + return true; default: - break; + return false; } - return super.isFireSource(world, pos, side); } @Override From 8eefe072c6b5e9c4616ae15b9a9f8e28e55d4c0b Mon Sep 17 00:00:00 2001 From: Cheeserolls Date: Fri, 27 Mar 2015 12:46:10 +0000 Subject: [PATCH 02/10] Add stalagmites and stalactites --- .../biomesoplenty/api/block/BOPBlocks.java | 1 + .../common/block/BlockStoneFormations.java | 119 ++++++++++++++++++ .../biomesoplenty/common/init/ModBlocks.java | 2 + .../blockstates/stone_formations.json | 6 + .../assets/biomesoplenty/lang/en_US.lang | 3 + .../models/block/stalactite.json | 6 + .../models/block/stalagmite.json | 6 + .../biomesoplenty/models/item/stalactite.json | 18 +++ .../biomesoplenty/models/item/stalagmite.json | 18 +++ .../textures/blocks/stalactite.png | Bin 0 -> 273 bytes .../textures/blocks/stalagmite.png | Bin 0 -> 281 bytes 11 files changed, 179 insertions(+) create mode 100644 src/main/java/biomesoplenty/common/block/BlockStoneFormations.java create mode 100644 src/main/resources/assets/biomesoplenty/blockstates/stone_formations.json create mode 100644 src/main/resources/assets/biomesoplenty/models/block/stalactite.json create mode 100644 src/main/resources/assets/biomesoplenty/models/block/stalagmite.json create mode 100644 src/main/resources/assets/biomesoplenty/models/item/stalactite.json create mode 100644 src/main/resources/assets/biomesoplenty/models/item/stalagmite.json create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/stalactite.png create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/stalagmite.png diff --git a/src/main/java/biomesoplenty/api/block/BOPBlocks.java b/src/main/java/biomesoplenty/api/block/BOPBlocks.java index bb2efd089..ebcfa5d36 100644 --- a/src/main/java/biomesoplenty/api/block/BOPBlocks.java +++ b/src/main/java/biomesoplenty/api/block/BOPBlocks.java @@ -34,4 +34,5 @@ public class BOPBlocks public static Block grass; public static Block waterlily; public static Block dirt; + public static Block stone_formations; } diff --git a/src/main/java/biomesoplenty/common/block/BlockStoneFormations.java b/src/main/java/biomesoplenty/common/block/BlockStoneFormations.java new file mode 100644 index 000000000..9f29d4609 --- /dev/null +++ b/src/main/java/biomesoplenty/common/block/BlockStoneFormations.java @@ -0,0 +1,119 @@ +/******************************************************************************* + * Copyright 2014, 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.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.init.Blocks; +import net.minecraft.util.BlockPos; +import net.minecraft.util.IStringSerializable; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import biomesoplenty.api.block.BOPPlant; + +public class BlockStoneFormations extends BOPPlant +{ + public static final PropertyEnum VARIANT_PROP = PropertyEnum.create("variant", StoneFormationType.class); + + public BlockStoneFormations() + { + super(Material.vine); + this.setHardness(0.5F); + this.setStepSound(soundTypePiston); + } + + // bounding box is not full size + @Override + public void setBlockBoundsBasedOnState(IBlockAccess worldIn, BlockPos pos) { + float radius = 0.3F; + float height = 0.6F; + switch ((StoneFormationType) worldIn.getBlockState(pos).getValue(VARIANT_PROP)) + { + case STALACTITE: + // against top of block for stalactites + this.setBlockBounds(0.5F - radius, 1.0F - height, 0.5F - radius, 0.5F + radius, 1.0F, 0.5F + radius); + break; + case STALAGMITE: + // against bottom of block for stalagmites + this.setBlockBounds(0.5F - radius, 0.0F, 0.5F - radius, 0.5F + radius, height, 0.5F + radius); + break; + } + } + + @Override + public IBlockState getStateFromMeta(int meta) + { + // only one property to worry about, the variant, so just map [0 => STALAGMITE, 1 => STALACTITE] + return this.getDefaultState().withProperty(VARIANT_PROP, StoneFormationType.values()[meta]); + } + + @Override + public int getMetaFromState(IBlockState state) + { + // only one property to worry about, the variant, so just map [0 => STALAGMITE, 1 => STALACTITE] + return ((StoneFormationType) state.getValue(VARIANT_PROP)).ordinal(); + } + + @Override + protected BlockState createBlockState() + { + return new BlockState(this, new IProperty[] { VARIANT_PROP }); + } + + @Override + public IProperty[] getPresetProperties() + { + return new IProperty[] { VARIANT_PROP }; + } + + @Override + public String getStateName(IBlockState state, boolean fullName) + { + return ((StoneFormationType) state.getValue(VARIANT_PROP)).getName(); + } + + // only allow stalactites hanging from stone, and only allow stalagmites on top of stone + @Override + public boolean canBlockStay(World world, BlockPos pos, IBlockState state) + { + IBlockState touching; + switch ((StoneFormationType)state.getValue(VARIANT_PROP)) + { + case STALACTITE: + touching = world.getBlockState(pos.up()); + break; + case STALAGMITE: default: + touching = world.getBlockState(pos.down()); + break; + } + return touching.getBlock() == Blocks.stone; + } + + // enum representing the 2 variants of stone formations + public static enum StoneFormationType implements IStringSerializable + { + STALAGMITE, STALACTITE; + + @Override + public String getName() + { + return this.name().toLowerCase(); + } + + @Override + public String toString() + { + return getName(); + } + } + +} diff --git a/src/main/java/biomesoplenty/common/init/ModBlocks.java b/src/main/java/biomesoplenty/common/init/ModBlocks.java index 40852e3da..8a1209e3c 100644 --- a/src/main/java/biomesoplenty/common/init/ModBlocks.java +++ b/src/main/java/biomesoplenty/common/init/ModBlocks.java @@ -34,6 +34,7 @@ import biomesoplenty.common.block.BlockGem; import biomesoplenty.common.block.BlockGemOre; import biomesoplenty.common.block.BlockHive; import biomesoplenty.common.block.BlockMud; +import biomesoplenty.common.block.BlockStoneFormations; import biomesoplenty.common.block.BlockTurnip; import biomesoplenty.common.block.BlockFlesh; import biomesoplenty.common.handler.GuiEventHandler; @@ -66,6 +67,7 @@ public class ModBlocks grass = registerBlock(new BlockBOPGrass(), "grass"); waterlily = registerBlock(new BlockBOPLilypad(), "waterlily"); dirt = registerBlock(new BlockBOPDirt(), "dirt"); + stone_formations = registerBlock(new BlockStoneFormations(),"stone_formations"); } diff --git a/src/main/resources/assets/biomesoplenty/blockstates/stone_formations.json b/src/main/resources/assets/biomesoplenty/blockstates/stone_formations.json new file mode 100644 index 000000000..e05c40182 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/blockstates/stone_formations.json @@ -0,0 +1,6 @@ +{ + "variants": { + "variant=stalagmite": { "model": "biomesoplenty:stalagmite" }, + "variant=stalactite": { "model": "biomesoplenty:stalactite" } + } +} diff --git a/src/main/resources/assets/biomesoplenty/lang/en_US.lang b/src/main/resources/assets/biomesoplenty/lang/en_US.lang index 8b3a364ea..59cd98ea3 100644 --- a/src/main/resources/assets/biomesoplenty/lang/en_US.lang +++ b/src/main/resources/assets/biomesoplenty/lang/en_US.lang @@ -140,6 +140,9 @@ tile.dirt.coarse_loamy_dirt.name=Coarse Loamy Dirt tile.dirt.coarse_sandy_dirt.name=Coarse Sandy Dirt tile.dirt.coarse_silty_dirt.name=Coarse Silty Dirt +tile.stone_formations.stalagmite.name=Stalagmite +tile.stone_formations.stalactite.name=Stalactite + item.fleshchunk.name=Chunk of Flesh item.mudball.name=Mud Ball item.turnip.name=Turnip diff --git a/src/main/resources/assets/biomesoplenty/models/block/stalactite.json b/src/main/resources/assets/biomesoplenty/models/block/stalactite.json new file mode 100644 index 000000000..b4fde795b --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/stalactite.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "biomesoplenty:blocks/stalactite" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/biomesoplenty/models/block/stalagmite.json b/src/main/resources/assets/biomesoplenty/models/block/stalagmite.json new file mode 100644 index 000000000..d22609fac --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/stalagmite.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "biomesoplenty:blocks/stalagmite" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/biomesoplenty/models/item/stalactite.json b/src/main/resources/assets/biomesoplenty/models/item/stalactite.json new file mode 100644 index 000000000..b2dc21e0e --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/stalactite.json @@ -0,0 +1,18 @@ +{ + "parent": "builtin/generated", + "textures": { + "layer0": "biomesoplenty:blocks/stalactite" + }, + "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/models/item/stalagmite.json b/src/main/resources/assets/biomesoplenty/models/item/stalagmite.json new file mode 100644 index 000000000..e26e5c37a --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/stalagmite.json @@ -0,0 +1,18 @@ +{ + "parent": "builtin/generated", + "textures": { + "layer0": "biomesoplenty:blocks/stalagmite" + }, + "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/stalactite.png b/src/main/resources/assets/biomesoplenty/textures/blocks/stalactite.png new file mode 100644 index 0000000000000000000000000000000000000000..ee8c0e4dbdc30cbe1da6b861de47072be66b9c3f GIT binary patch literal 273 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{^MbQ4*Y=R#Ki=l*$m0n3-3i=jR%tP-d)Ws%L2E{@KYKsH)e~ z#WBRf|L6oqz6J#W=AQ!Qelb7)&%V~<>Dzks#L2@c-rGfzU+#6!)}0ZMz4xr)u}#J6 zU5-RDiELC^A#i!CkE7p({={$a&U!atmi3Zn<%?wGPqtrt!?*h< P&|wUou6{1-oD!Mq|Kvf-{E{-7<{!1qYay1z6INQGCyYOE&(S2RFKt@_>n7y2-Z-*;?`G414 zYbNMvFFDQia#ItB@oZ;iYnLzgo?ke?C#bO^PBE#+u$`@}qoVlWtL}?YzvCFLabGj| zlFY~>_96d)WVqqs*gs+0nP$vrNj$fO!Ep~KTS5n`4*SL3Tp2D&8cow(a?|RVgqm(` UIW8=~19TIEr>mdKI;Vst0RD?zA^-pY literal 0 HcmV?d00001 From e19ee3bfa8c8decf5b24c16206d6bc7864bab605 Mon Sep 17 00:00:00 2001 From: Cheeserolls Date: Fri, 27 Mar 2015 14:42:07 +0000 Subject: [PATCH 03/10] Add fruit_block and variants apple/persimmon/peach/pear --- .../biomesoplenty/api/block/BOPBlocks.java | 1 + .../java/biomesoplenty/api/item/BOPItems.java | 3 + .../common/block/BlockFruit.java | 141 ++++++++++++++++++ .../biomesoplenty/common/init/ModBlocks.java | 2 + .../biomesoplenty/common/init/ModItems.java | 3 + .../blockstates/fruit_block.json | 8 + .../assets/biomesoplenty/lang/en_US.lang | 10 +- .../models/block/apple_block.json | 6 + .../models/block/peach_block.json | 6 + .../models/block/pear_block.json | 6 + .../models/block/persimmon_block.json | 6 + .../biomesoplenty/models/item/peach.json | 18 +++ .../biomesoplenty/models/item/pear.json | 18 +++ .../biomesoplenty/models/item/persimmon.json | 18 +++ .../textures/blocks/apple_block.png | Bin 0 -> 329 bytes .../textures/blocks/peach_block.png | Bin 0 -> 308 bytes .../textures/blocks/pear_block.png | Bin 0 -> 317 bytes .../textures/blocks/persimmon_block.png | Bin 0 -> 312 bytes .../biomesoplenty/textures/items/peach.png | Bin 0 -> 355 bytes .../biomesoplenty/textures/items/pear.png | Bin 0 -> 364 bytes .../textures/items/persimmon.png | Bin 0 -> 351 bytes 21 files changed, 245 insertions(+), 1 deletion(-) create mode 100644 src/main/java/biomesoplenty/common/block/BlockFruit.java create mode 100644 src/main/resources/assets/biomesoplenty/blockstates/fruit_block.json create mode 100644 src/main/resources/assets/biomesoplenty/models/block/apple_block.json create mode 100644 src/main/resources/assets/biomesoplenty/models/block/peach_block.json create mode 100644 src/main/resources/assets/biomesoplenty/models/block/pear_block.json create mode 100644 src/main/resources/assets/biomesoplenty/models/block/persimmon_block.json create mode 100644 src/main/resources/assets/biomesoplenty/models/item/peach.json create mode 100644 src/main/resources/assets/biomesoplenty/models/item/pear.json create mode 100644 src/main/resources/assets/biomesoplenty/models/item/persimmon.json create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/apple_block.png create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/peach_block.png create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/pear_block.png create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/persimmon_block.png create mode 100644 src/main/resources/assets/biomesoplenty/textures/items/peach.png create mode 100644 src/main/resources/assets/biomesoplenty/textures/items/pear.png create mode 100644 src/main/resources/assets/biomesoplenty/textures/items/persimmon.png diff --git a/src/main/java/biomesoplenty/api/block/BOPBlocks.java b/src/main/java/biomesoplenty/api/block/BOPBlocks.java index ebcfa5d36..fe60699f4 100644 --- a/src/main/java/biomesoplenty/api/block/BOPBlocks.java +++ b/src/main/java/biomesoplenty/api/block/BOPBlocks.java @@ -35,4 +35,5 @@ public class BOPBlocks public static Block waterlily; public static Block dirt; public static Block stone_formations; + public static Block fruit_block; } diff --git a/src/main/java/biomesoplenty/api/item/BOPItems.java b/src/main/java/biomesoplenty/api/item/BOPItems.java index ea78daa9e..ee649bae7 100644 --- a/src/main/java/biomesoplenty/api/item/BOPItems.java +++ b/src/main/java/biomesoplenty/api/item/BOPItems.java @@ -16,4 +16,7 @@ public class BOPItems public static Item mudball; public static Item turnip; public static Item turnip_seeds; + public static Item persimmon; + public static Item peach; + public static Item pear; } \ No newline at end of file diff --git a/src/main/java/biomesoplenty/common/block/BlockFruit.java b/src/main/java/biomesoplenty/common/block/BlockFruit.java new file mode 100644 index 000000000..7d847e186 --- /dev/null +++ b/src/main/java/biomesoplenty/common/block/BlockFruit.java @@ -0,0 +1,141 @@ +/******************************************************************************* + * Copyright 2014, 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.Random; + +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.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; +import net.minecraft.util.IStringSerializable; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; +import biomesoplenty.api.block.BOPPlant; +import biomesoplenty.api.item.BOPItems; + +public class BlockFruit extends BOPPlant +{ + public static final PropertyEnum VARIANT_PROP = PropertyEnum.create("variant", FruitType.class); + + public BlockFruit() + { + super(Material.plants); + this.setStepSound(soundTypeGrass); + this.setBlockBounds(0.25F, 0.25F, 0.25F, 0.75F, 1.0F, 0.75F); + //this.setCreativeTab(null); + } + + @Override + public IBlockState getStateFromMeta(int meta) + { + // only one property to worry about, the variant, so just map [0 => STALAGMITE, 1 => STALACTITE] + return this.getDefaultState().withProperty(VARIANT_PROP, FruitType.values()[meta]); + } + + @Override + public int getMetaFromState(IBlockState state) + { + // only one property to worry about, the variant, so just map [0 => STALAGMITE, 1 => STALACTITE] + return ((FruitType) state.getValue(VARIANT_PROP)).ordinal(); + } + + @Override + protected BlockState createBlockState() + { + return new BlockState(this, new IProperty[] { VARIANT_PROP }); + } + + @Override + public IProperty[] getPresetProperties() + { + return new IProperty[] { VARIANT_PROP }; + } + + @Override + public String getStateName(IBlockState state, boolean fullName) + { + return ((FruitType) state.getValue(VARIANT_PROP)).getName() + "_block"; + } + + // only allow fruit to hang from leaves + @Override + public boolean canBlockStay(World world, BlockPos pos, IBlockState state) + { + Block blockAbove = world.getBlockState(pos.up()).getBlock(); + return blockAbove == Blocks.leaves || blockAbove == Blocks.leaves2; /* TODO: add BOP leave types - maybe check the material instead? */ + } + + // In creative mode, pick block to get the fruit item + @Override + public ItemStack getPickBlock(MovingObjectPosition target, World world, BlockPos pos) + { + IBlockState state = world.getBlockState(pos); + Item item = ((FruitType) state.getValue(VARIANT_PROP)).getItem(); + int meta = damageDropped(state); + return new ItemStack(item, 1, meta); + } + + // fruit blocks drop the corresponding fruit item when broken + @Override + public Item getItemDropped(IBlockState state, Random rand, int fortune) + { + return ((FruitType) state.getValue(VARIANT_PROP)).getItem(); + } + + // prevent fruit block meta value affecting fruit item dropped + @Override + public int damageDropped(IBlockState state) + { + return 0; + } + + // enum representing the fruit variants + // TODO: take outside the class so it can be reused in leaves? + public static enum FruitType implements IStringSerializable + { + + APPLE, PERSIMMON, PEACH, PEAR; + + @Override + public String getName() + { + return this.name().toLowerCase(); + } + + @Override + public String toString() + { + return getName(); + } + + // get the item dropped when this type of fruit block is broken/picked + public Item getItem() { + switch (this) + { + case PERSIMMON: + return BOPItems.persimmon; + case PEACH: + return BOPItems.peach; + case PEAR: + return BOPItems.pear; + case APPLE: default: + return Items.apple; + } + } + } + +} diff --git a/src/main/java/biomesoplenty/common/init/ModBlocks.java b/src/main/java/biomesoplenty/common/init/ModBlocks.java index 8a1209e3c..22658279b 100644 --- a/src/main/java/biomesoplenty/common/init/ModBlocks.java +++ b/src/main/java/biomesoplenty/common/init/ModBlocks.java @@ -30,6 +30,7 @@ import biomesoplenty.common.block.BlockBOPStone; import biomesoplenty.common.block.BlockBamboo; import biomesoplenty.common.block.BlockBones; import biomesoplenty.common.block.BlockCoral; +import biomesoplenty.common.block.BlockFruit; import biomesoplenty.common.block.BlockGem; import biomesoplenty.common.block.BlockGemOre; import biomesoplenty.common.block.BlockHive; @@ -68,6 +69,7 @@ public class ModBlocks waterlily = registerBlock(new BlockBOPLilypad(), "waterlily"); dirt = registerBlock(new BlockBOPDirt(), "dirt"); stone_formations = registerBlock(new BlockStoneFormations(),"stone_formations"); + fruit_block = registerBlock(new BlockFruit(), "fruit_block"); } diff --git a/src/main/java/biomesoplenty/common/init/ModItems.java b/src/main/java/biomesoplenty/common/init/ModItems.java index 05f7c9841..c757bac57 100644 --- a/src/main/java/biomesoplenty/common/init/ModItems.java +++ b/src/main/java/biomesoplenty/common/init/ModItems.java @@ -28,6 +28,9 @@ public class ModItems mudball = registerItem(new ItemMudball(),"mudball"); turnip_seeds = registerItem(new ItemSeeds(BOPBlocks.turnip_block, Blocks.farmland),"turnip_seeds"); turnip = registerItem(new ItemFood(3, 0.4F, false),"turnip"); + persimmon = registerItem(new ItemFood(5, 0.2F, false),"persimmon"); + peach = registerItem(new ItemFood(5, 0.5F, false),"peach"); + pear = registerItem(new ItemFood(5, 0.3F, false),"pear"); } private static Item registerItem(Item item, String name) diff --git a/src/main/resources/assets/biomesoplenty/blockstates/fruit_block.json b/src/main/resources/assets/biomesoplenty/blockstates/fruit_block.json new file mode 100644 index 000000000..031c122f1 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/blockstates/fruit_block.json @@ -0,0 +1,8 @@ +{ + "variants": { + "variant=apple": { "model": "biomesoplenty:apple_block" }, + "variant=persimmon": { "model": "biomesoplenty:persimmon_block" }, + "variant=peach": { "model": "biomesoplenty:peach_block" }, + "variant=pear": { "model": "biomesoplenty:pear_block" } + } +} diff --git a/src/main/resources/assets/biomesoplenty/lang/en_US.lang b/src/main/resources/assets/biomesoplenty/lang/en_US.lang index 59cd98ea3..4f8f9bc42 100644 --- a/src/main/resources/assets/biomesoplenty/lang/en_US.lang +++ b/src/main/resources/assets/biomesoplenty/lang/en_US.lang @@ -143,7 +143,15 @@ tile.dirt.coarse_silty_dirt.name=Coarse Silty Dirt tile.stone_formations.stalagmite.name=Stalagmite tile.stone_formations.stalactite.name=Stalactite +tile.fruit_block.apple_block.name=Apple Block +tile.fruit_block.persimmon_block.name=Persimmon Block +tile.fruit_block.peach_block.name=Peach Block +tile.fruit_block.pear_block.name=Pear Block + item.fleshchunk.name=Chunk of Flesh item.mudball.name=Mud Ball item.turnip.name=Turnip -item.turnip_seeds.name=Turnip Seeds \ No newline at end of file +item.turnip_seeds.name=Turnip Seeds +item.persimmon.name=Persimmon +item.peach.name=Peach +item.pear.name=Pear diff --git a/src/main/resources/assets/biomesoplenty/models/block/apple_block.json b/src/main/resources/assets/biomesoplenty/models/block/apple_block.json new file mode 100644 index 000000000..64facfea3 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/apple_block.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "biomesoplenty:blocks/apple_block" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/block/peach_block.json b/src/main/resources/assets/biomesoplenty/models/block/peach_block.json new file mode 100644 index 000000000..1f1d33f3c --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/peach_block.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "biomesoplenty:blocks/peach_block" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/block/pear_block.json b/src/main/resources/assets/biomesoplenty/models/block/pear_block.json new file mode 100644 index 000000000..d77a2c57b --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/pear_block.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "biomesoplenty:blocks/pear_block" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/block/persimmon_block.json b/src/main/resources/assets/biomesoplenty/models/block/persimmon_block.json new file mode 100644 index 000000000..775822e23 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/persimmon_block.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cross", + "textures": { + "cross": "biomesoplenty:blocks/persimmon_block" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/item/peach.json b/src/main/resources/assets/biomesoplenty/models/item/peach.json new file mode 100644 index 000000000..7d20d3cfc --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/peach.json @@ -0,0 +1,18 @@ +{ + "parent": "builtin/generated", + "textures": { + "layer0": "biomesoplenty:items/peach" + }, + "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/models/item/pear.json b/src/main/resources/assets/biomesoplenty/models/item/pear.json new file mode 100644 index 000000000..5c8ae32b2 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/pear.json @@ -0,0 +1,18 @@ +{ + "parent": "builtin/generated", + "textures": { + "layer0": "biomesoplenty:items/pear" + }, + "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/models/item/persimmon.json b/src/main/resources/assets/biomesoplenty/models/item/persimmon.json new file mode 100644 index 000000000..f8c06b030 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/persimmon.json @@ -0,0 +1,18 @@ +{ + "parent": "builtin/generated", + "textures": { + "layer0": "biomesoplenty:items/persimmon" + }, + "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/apple_block.png b/src/main/resources/assets/biomesoplenty/textures/blocks/apple_block.png new file mode 100644 index 0000000000000000000000000000000000000000..4cbb125cb4c4cf190caaf659e1d032e419a601c2 GIT binary patch literal 329 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=Dh+L6~vJ#O${~L5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt33J=4@yqg0@p# zAr}5qCm3=aau9I|&X}mwB*ELov8X8_d7-&y?t9KPd)ns89dHv^|A2GN-ez-&aN68x<-X0WTAasPnC$K5Hr~D0uPNdvS03|reuFdDof|q2`jaEujOvzM zPGc&1*;h03@Ge76xh9SiX4&H3k1-wE#8dY^RjX0dbjyM^u`3svq@n^2KU4U{q~f^C UIwfeI3D8Rnp00i_>zopr0L~D29{>OV literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/peach_block.png b/src/main/resources/assets/biomesoplenty/textures/blocks/peach_block.png new file mode 100644 index 0000000000000000000000000000000000000000..e8af494cfaf0307b1abd391ec344adf44ec07116 GIT binary patch literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{f}XQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXPVk-lnPX{$!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{f}XQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXPVk-lnPX{+tbA{ z#KJ%M$N&HKaWQ#^xR-1=-DnWzn3AJ#iV4b=n78xx$Nk+hzyF^R^HmVvEw!def#=em zk8St=ubSDG&~sXVhf#t}a>IuexBvguKjdM~kY?>+%+btqD3ybYy(Mv$eXT9?b)H9u zc{YBZ%BZEBz~J%uum0r&5=&;PFlVJn95ns1W*f_81G7N327?pp6^_1;h&AR|Trk1V u!_dktocWLh(~_h$O-m9G_{ih`JPg^JZ_YX$EV&uz4F*qFKbLh*2~7ZFlXO)8 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/persimmon_block.png b/src/main/resources/assets/biomesoplenty/textures/blocks/persimmon_block.png new file mode 100644 index 0000000000000000000000000000000000000000..b2b007b512cefad35389d8226ca4d4ab6c959dfa GIT binary patch literal 312 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{f}XQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXPVk-lnPX{&C|s( z#KJ%M$N&HKVL8(>Kgr83Ud@=u!#E>JQ(V))Eq$?c%Oc4($FBZmjs{lJvASIBZSf%| z{{P>984R&3QmC)#2CDzJ(sNigV*`NRQTSV4Kw%A|OOfY3}HRfpMWyo~8 zTx07mmE+LEs2?CH$IQ3fyUFx`iBh)ODFy*HOW|dVl8dw15=Hoo*fiaazsPcsaBc|c i37sH<1y}r;&&Xgca%?}JT`&*O2MnIBelF{r5}E*Wqhv_{ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/biomesoplenty/textures/items/peach.png b/src/main/resources/assets/biomesoplenty/textures/items/peach.png new file mode 100644 index 0000000000000000000000000000000000000000..bc78e023b449dcfd6fba369578d885e17c4b698c GIT binary patch literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DkxL735kHCP2GC{f}XQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXPVk-lnPYy(9^{+ z#KM2+gtc6U0wmh}1&$74$k{eRy zZ5FhhFmdi2C&`H4Z{?YOl)5(lPJ1Rca}&c3Klf|@15}u`8@y-zn0UD$RE|N5sq^H- x# literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/biomesoplenty/textures/items/pear.png b/src/main/resources/assets/biomesoplenty/textures/items/pear.png new file mode 100644 index 0000000000000000000000000000000000000000..8333f50dcefdc5ee108b7750fbc28b8b1dff3932 GIT binary patch literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt33 zJ=4@yqg0@pyPhtNAr}5qCv4Z7de(jz2;U~6te2*w5+L7 z3ord-m>Z_MtnORiowGA)k7@a(eSf?6xv!bfM1{{~nwDSk9b|>3{N9@MX+=Hzs|kN@ z@fk5E_o&)^TN0@Er=EEl|MiW!`j3|JEEipP!lvI6;>1s;*b z3=Dh+K$tP>S|=w^P@=>&q9iy!t)x7$D3zfgF*C13FE6!3!9>qM&os5wC>5yYuBVG* zh=qT$1nZ5)$Ym$%1=@-vbGX<1mtOYb@K1}z!dVaN&q{p#ZooG@E9z zWj7sl_@uxS+9!LW^2A^JS!%4uyzIRGUuC{}@Qq*j!~a@!T0czpub9BD{cr!7|NsBH z%KiU;-hlnH{WZ-7!!rsiib5DJ{n_vR^8bI;dH?_Kzxnb1|BFEe@=FAD_);I6u;d-s zr_;e0Y^ork!nQP#?TEyOB&h<6SfQh4I~YA?t$*(M*o=YY+EFJSN5hVYvjz-CEK3B^ t1U!^Ic$Q3Dke0%5*`K0h*|&u literal 0 HcmV?d00001 From 6b9882c05bbe386bb90708a7b648762924b40971 Mon Sep 17 00:00:00 2001 From: Cheeserolls Date: Fri, 27 Mar 2015 15:23:27 +0000 Subject: [PATCH 04/10] Allow BOPDirt to support plants --- .../common/block/BlockBOPDirt.java | 33 ++++++++++++++++--- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPDirt.java b/src/main/java/biomesoplenty/common/block/BlockBOPDirt.java index e24a0a813..6ad807ca9 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPDirt.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPDirt.java @@ -8,8 +8,6 @@ package biomesoplenty.common.block; -import java.util.List; - import net.minecraft.block.Block; import net.minecraft.block.BlockDirt; import net.minecraft.block.material.Material; @@ -18,11 +16,11 @@ import net.minecraft.block.properties.PropertyBool; import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.BlockState; import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.util.IStringSerializable; +import net.minecraft.world.IBlockAccess; import biomesoplenty.api.block.BOPBlock; import biomesoplenty.api.block.BOPBlocks; @@ -72,6 +70,31 @@ public class BlockBOPDirt extends BOPBlock return (Boolean.TRUE.equals(state.getValue(COARSE)) ? "coarse_" : "") + ((BOPDirtType) state.getValue(VARIANT_PROP)).getName() + "_dirt"; } + @Override + public boolean canSustainPlant(IBlockAccess world, BlockPos pos, EnumFacing direction, net.minecraftforge.common.IPlantable plantable) + { + net.minecraftforge.common.EnumPlantType plantType = plantable.getPlantType(world, pos.offset(direction)); + + switch (plantType) + { + // support desert and plains plants + case Desert: case Plains: return true; + // support cave plants + case Cave: return isSideSolid(world, pos, EnumFacing.UP); + // support beach plants if there's water alongside + case Beach: + return ( + world.getBlockState(pos.east()).getBlock().getMaterial() == Material.water || + world.getBlockState(pos.west()).getBlock().getMaterial() == Material.water || + world.getBlockState(pos.north()).getBlock().getMaterial() == Material.water || + world.getBlockState(pos.south()).getBlock().getMaterial() == Material.water + ); + // don't support nether plants, water plants, or crops (require farmland), or anything else by default + default: + return false; + } + } + // enum representing the variants of dirt public static enum BOPDirtType implements IStringSerializable { From 7d21162201df33b3e4ace64dd924cf71275f325d Mon Sep 17 00:00:00 2001 From: Cheeserolls Date: Fri, 27 Mar 2015 15:24:36 +0000 Subject: [PATCH 05/10] Allow bonemeal placed on BOPGrass to grow plants on nearby vanilla grass --- .../java/biomesoplenty/common/block/BlockBOPGrass.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java b/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java index 5cf13a3f8..b8b5b49de 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java @@ -39,7 +39,6 @@ import net.minecraft.world.biome.BiomeColorHelper; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -// TODO: add snowiness? public class BlockBOPGrass extends BOPBlock implements IGrowable { public static final PropertyEnum VARIANT_PROP = PropertyEnum.create("variant", BOPGrassType.class); @@ -324,7 +323,8 @@ public class BlockBOPGrass extends BOPBlock implements IGrowable } // This is called when bonemeal is applied on the block - // The algorithm is functionally exactly the same as in the vanilla BlockGrass grow function, but has been rewritten to make its behavior clearer + // The algorithm is functionally equivalent to the vanilla BlockGrass grow function, but has been rewritten to make its behavior clearer + // TODO: grows spreads from BOP grass to vanilla grass, need to find a way to make growth on vanilla grass also spread to BOP grass @Override public void grow(World worldIn, Random rand, BlockPos pos, IBlockState state) { @@ -343,7 +343,8 @@ public class BlockBOPGrass extends BOPBlock implements IGrowable { // shift a random distance currPos = currPos.add(rand.nextInt(3) - 1, (rand.nextInt(3) - 1) * rand.nextInt(3) / 2, rand.nextInt(3) - 1); - if (worldIn.getBlockState(currPos.down()).getBlock() != BOPBlocks.grass || worldIn.getBlockState(currPos).getBlock().isNormalCube()) + Block currBlockBelow = worldIn.getBlockState(currPos.down()).getBlock(); + if ( (currBlockBelow != Blocks.grass && currBlockBelow != BOPBlocks.grass) || worldIn.getBlockState(currPos).getBlock().isNormalCube()) { // this block can't spread the growth walkOk = false; From 04a2f94ac7f1c36b8567d9d4eadbb032e3ee1e86 Mon Sep 17 00:00:00 2001 From: Cheeserolls Date: Fri, 27 Mar 2015 16:36:07 +0000 Subject: [PATCH 06/10] Add generic block types: ash_stone, crag_rock, dried_dirt, hard_dirt, hard_ice, hard_sand, mud_brick --- .../biomesoplenty/api/block/BOPBlocks.java | 9 +++++ .../common/block/BlockBOPGeneric.java | 31 ++++++++++++++++++ .../biomesoplenty/common/init/ModBlocks.java | 18 ++++++++++ .../biomesoplenty/blockstates/ash_stone.json | 5 +++ .../biomesoplenty/blockstates/crag_rock.json | 5 +++ .../biomesoplenty/blockstates/dried_dirt.json | 5 +++ .../biomesoplenty/blockstates/hard_dirt.json | 5 +++ .../biomesoplenty/blockstates/hard_ice.json | 5 +++ .../biomesoplenty/blockstates/hard_sand.json | 5 +++ .../biomesoplenty/blockstates/mud_brick.json | 5 +++ .../biomesoplenty/models/block/ash_stone.json | 6 ++++ .../biomesoplenty/models/block/crag_rock.json | 6 ++++ .../models/block/dried_dirt.json | 6 ++++ .../biomesoplenty/models/block/hard_dirt.json | 6 ++++ .../biomesoplenty/models/block/hard_ice.json | 6 ++++ .../biomesoplenty/models/block/hard_sand.json | 6 ++++ .../biomesoplenty/models/block/mud_brick.json | 6 ++++ .../biomesoplenty/models/item/ash_stone.json | 10 ++++++ .../biomesoplenty/models/item/crag_rock.json | 10 ++++++ .../biomesoplenty/models/item/dried_dirt.json | 10 ++++++ .../biomesoplenty/models/item/hard_dirt.json | 10 ++++++ .../biomesoplenty/models/item/hard_ice.json | 10 ++++++ .../biomesoplenty/models/item/hard_sand.json | 10 ++++++ .../biomesoplenty/models/item/mud_brick.json | 10 ++++++ .../textures/blocks/ash_stone.png | Bin 0 -> 536 bytes .../textures/blocks/crag_rock.png | Bin 0 -> 769 bytes .../textures/blocks/dried_dirt.png | Bin 0 -> 640 bytes .../textures/blocks/hard_dirt.png | Bin 0 -> 466 bytes .../textures/blocks/hard_ice.png | Bin 0 -> 601 bytes .../textures/blocks/hard_sand.png | Bin 0 -> 613 bytes .../textures/blocks/mud_brick.png | Bin 0 -> 526 bytes 31 files changed, 205 insertions(+) create mode 100644 src/main/java/biomesoplenty/common/block/BlockBOPGeneric.java create mode 100644 src/main/resources/assets/biomesoplenty/blockstates/ash_stone.json create mode 100644 src/main/resources/assets/biomesoplenty/blockstates/crag_rock.json create mode 100644 src/main/resources/assets/biomesoplenty/blockstates/dried_dirt.json create mode 100644 src/main/resources/assets/biomesoplenty/blockstates/hard_dirt.json create mode 100644 src/main/resources/assets/biomesoplenty/blockstates/hard_ice.json create mode 100644 src/main/resources/assets/biomesoplenty/blockstates/hard_sand.json create mode 100644 src/main/resources/assets/biomesoplenty/blockstates/mud_brick.json create mode 100644 src/main/resources/assets/biomesoplenty/models/block/ash_stone.json create mode 100644 src/main/resources/assets/biomesoplenty/models/block/crag_rock.json create mode 100644 src/main/resources/assets/biomesoplenty/models/block/dried_dirt.json create mode 100644 src/main/resources/assets/biomesoplenty/models/block/hard_dirt.json create mode 100644 src/main/resources/assets/biomesoplenty/models/block/hard_ice.json create mode 100644 src/main/resources/assets/biomesoplenty/models/block/hard_sand.json create mode 100644 src/main/resources/assets/biomesoplenty/models/block/mud_brick.json create mode 100644 src/main/resources/assets/biomesoplenty/models/item/ash_stone.json create mode 100644 src/main/resources/assets/biomesoplenty/models/item/crag_rock.json create mode 100644 src/main/resources/assets/biomesoplenty/models/item/dried_dirt.json create mode 100644 src/main/resources/assets/biomesoplenty/models/item/hard_dirt.json create mode 100644 src/main/resources/assets/biomesoplenty/models/item/hard_ice.json create mode 100644 src/main/resources/assets/biomesoplenty/models/item/hard_sand.json create mode 100644 src/main/resources/assets/biomesoplenty/models/item/mud_brick.json create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/ash_stone.png create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/crag_rock.png create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/dried_dirt.png create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/hard_dirt.png create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/hard_ice.png create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/hard_sand.png create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/mud_brick.png diff --git a/src/main/java/biomesoplenty/api/block/BOPBlocks.java b/src/main/java/biomesoplenty/api/block/BOPBlocks.java index fe60699f4..a1c8bd792 100644 --- a/src/main/java/biomesoplenty/api/block/BOPBlocks.java +++ b/src/main/java/biomesoplenty/api/block/BOPBlocks.java @@ -36,4 +36,13 @@ public class BOPBlocks public static Block dirt; public static Block stone_formations; public static Block fruit_block; + public static Block ash_stone; + public static Block hard_sand; + public static Block hard_dirt; + public static Block hard_ice; + public static Block dried_dirt; + public static Block crag_rock; + public static Block mud_brick; + public static Block biome_block; + public static Block crystal; } diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPGeneric.java b/src/main/java/biomesoplenty/common/block/BlockBOPGeneric.java new file mode 100644 index 000000000..62c50ba26 --- /dev/null +++ b/src/main/java/biomesoplenty/common/block/BlockBOPGeneric.java @@ -0,0 +1,31 @@ +/******************************************************************************* + * Copyright 2014, 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 biomesoplenty.api.block.BOPBlock; +import biomesoplenty.common.util.inventory.CreativeTabBOP; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; + +public class BlockBOPGeneric extends BOPBlock +{ + public BlockBOPGeneric() { + // use rock as default material + this(Material.rock); + } + + public BlockBOPGeneric(Material material) + { + super(material); + // set some defaults + this.setHardness(1.0F); + this.setStepSound(Block.soundTypePiston); + } + +} \ 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 22658279b..3a651c417 100644 --- a/src/main/java/biomesoplenty/common/init/ModBlocks.java +++ b/src/main/java/biomesoplenty/common/init/ModBlocks.java @@ -10,7 +10,10 @@ package biomesoplenty.common.init; import static biomesoplenty.api.block.BOPBlocks.*; import net.minecraft.block.Block; +import net.minecraft.block.Block.SoundType; +import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; +import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraftforge.fml.common.registry.GameRegistry; import biomesoplenty.api.block.BOPBlock; @@ -18,6 +21,7 @@ import biomesoplenty.common.block.BlockAsh; import biomesoplenty.common.block.BlockBOPDirt; import biomesoplenty.common.block.BlockBOPFlower; import biomesoplenty.common.block.BlockBOPFlower2; +import biomesoplenty.common.block.BlockBOPGeneric; import biomesoplenty.common.block.BlockBOPGrass; import biomesoplenty.common.block.BlockBOPLilypad; import biomesoplenty.common.block.BlockBOPLog; @@ -71,6 +75,20 @@ public class ModBlocks stone_formations = registerBlock(new BlockStoneFormations(),"stone_formations"); fruit_block = registerBlock(new BlockFruit(), "fruit_block"); + // generics + ash_stone = registerBlock(new BlockBOPGeneric(),"ash_stone"); + crag_rock = registerBlock((new BlockBOPGeneric()).setStepSound(Block.soundTypeStone),"crag_rock"); + dried_dirt = registerBlock(new BlockBOPGeneric(),"dried_dirt"); dried_dirt.setHarvestLevel("pickaxe",0); + hard_dirt = registerBlock((new BlockBOPGeneric()).setHardness(0.7F),"hard_dirt"); + hard_ice = registerBlock((new BlockBOPGeneric()).setHardness(0.75F),"hard_ice"); + hard_sand = registerBlock((new BlockBOPGeneric(Material.sand)).setHardness(0.9F).setStepSound(Block.soundTypeSand),"hard_sand"); + mud_brick = registerBlock((new BlockBOPGeneric()).setResistance(2.0F),"mud_brick"); + + //TODO biome_block & crystal are in 1.7 BlockBOPGeneric but actually have some special powers + } + + private static Block registerBlock(Block block, String name) { + return registerBlock((BOPBlock)block,name); } private static Block registerBlock(BOPBlock block, String name) diff --git a/src/main/resources/assets/biomesoplenty/blockstates/ash_stone.json b/src/main/resources/assets/biomesoplenty/blockstates/ash_stone.json new file mode 100644 index 000000000..2e792333e --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/blockstates/ash_stone.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "biomesoplenty:ash_stone" } + } +} diff --git a/src/main/resources/assets/biomesoplenty/blockstates/crag_rock.json b/src/main/resources/assets/biomesoplenty/blockstates/crag_rock.json new file mode 100644 index 000000000..527ce062a --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/blockstates/crag_rock.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "biomesoplenty:crag_rock" } + } +} diff --git a/src/main/resources/assets/biomesoplenty/blockstates/dried_dirt.json b/src/main/resources/assets/biomesoplenty/blockstates/dried_dirt.json new file mode 100644 index 000000000..8b98cb633 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/blockstates/dried_dirt.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "biomesoplenty:dried_dirt" } + } +} diff --git a/src/main/resources/assets/biomesoplenty/blockstates/hard_dirt.json b/src/main/resources/assets/biomesoplenty/blockstates/hard_dirt.json new file mode 100644 index 000000000..ef44e17dc --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/blockstates/hard_dirt.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "biomesoplenty:hard_dirt" } + } +} diff --git a/src/main/resources/assets/biomesoplenty/blockstates/hard_ice.json b/src/main/resources/assets/biomesoplenty/blockstates/hard_ice.json new file mode 100644 index 000000000..441c1d150 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/blockstates/hard_ice.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "biomesoplenty:hard_ice" } + } +} diff --git a/src/main/resources/assets/biomesoplenty/blockstates/hard_sand.json b/src/main/resources/assets/biomesoplenty/blockstates/hard_sand.json new file mode 100644 index 000000000..debeafcd7 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/blockstates/hard_sand.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "biomesoplenty:hard_sand" } + } +} diff --git a/src/main/resources/assets/biomesoplenty/blockstates/mud_brick.json b/src/main/resources/assets/biomesoplenty/blockstates/mud_brick.json new file mode 100644 index 000000000..a711c767a --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/blockstates/mud_brick.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "biomesoplenty:mud_brick" } + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/block/ash_stone.json b/src/main/resources/assets/biomesoplenty/models/block/ash_stone.json new file mode 100644 index 000000000..e014a9d04 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/ash_stone.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "biomesoplenty:blocks/ash_stone" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/block/crag_rock.json b/src/main/resources/assets/biomesoplenty/models/block/crag_rock.json new file mode 100644 index 000000000..eb48f0eac --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/crag_rock.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "biomesoplenty:blocks/crag_rock" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/block/dried_dirt.json b/src/main/resources/assets/biomesoplenty/models/block/dried_dirt.json new file mode 100644 index 000000000..20716bf46 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/dried_dirt.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "biomesoplenty:blocks/dried_dirt" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/block/hard_dirt.json b/src/main/resources/assets/biomesoplenty/models/block/hard_dirt.json new file mode 100644 index 000000000..93e0b76d7 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/hard_dirt.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "biomesoplenty:blocks/hard_dirt" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/block/hard_ice.json b/src/main/resources/assets/biomesoplenty/models/block/hard_ice.json new file mode 100644 index 000000000..3610557d9 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/hard_ice.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "biomesoplenty:blocks/hard_ice" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/block/hard_sand.json b/src/main/resources/assets/biomesoplenty/models/block/hard_sand.json new file mode 100644 index 000000000..587489107 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/hard_sand.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "biomesoplenty:blocks/hard_sand" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/block/mud_brick.json b/src/main/resources/assets/biomesoplenty/models/block/mud_brick.json new file mode 100644 index 000000000..17b066570 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/mud_brick.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "biomesoplenty:blocks/mud_brick" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/item/ash_stone.json b/src/main/resources/assets/biomesoplenty/models/item/ash_stone.json new file mode 100644 index 000000000..fc4394d94 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/ash_stone.json @@ -0,0 +1,10 @@ +{ + "parent": "biomesoplenty:block/ash_stone", + "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/crag_rock.json b/src/main/resources/assets/biomesoplenty/models/item/crag_rock.json new file mode 100644 index 000000000..a15ec0b56 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/crag_rock.json @@ -0,0 +1,10 @@ +{ + "parent": "biomesoplenty:block/crag_rock", + "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/dried_dirt.json b/src/main/resources/assets/biomesoplenty/models/item/dried_dirt.json new file mode 100644 index 000000000..eed489321 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/dried_dirt.json @@ -0,0 +1,10 @@ +{ + "parent": "biomesoplenty:block/dried_dirt", + "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/hard_dirt.json b/src/main/resources/assets/biomesoplenty/models/item/hard_dirt.json new file mode 100644 index 000000000..50c9ad3ed --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/hard_dirt.json @@ -0,0 +1,10 @@ +{ + "parent": "biomesoplenty:block/hard_dirt", + "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/hard_ice.json b/src/main/resources/assets/biomesoplenty/models/item/hard_ice.json new file mode 100644 index 000000000..f36b3e451 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/hard_ice.json @@ -0,0 +1,10 @@ +{ + "parent": "biomesoplenty:block/hard_ice", + "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/hard_sand.json b/src/main/resources/assets/biomesoplenty/models/item/hard_sand.json new file mode 100644 index 000000000..7f39fb00f --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/hard_sand.json @@ -0,0 +1,10 @@ +{ + "parent": "biomesoplenty:block/hard_sand", + "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/mud_brick.json b/src/main/resources/assets/biomesoplenty/models/item/mud_brick.json new file mode 100644 index 000000000..86d5470d3 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/mud_brick.json @@ -0,0 +1,10 @@ +{ + "parent": "biomesoplenty:block/mud_brick", + "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/textures/blocks/ash_stone.png b/src/main/resources/assets/biomesoplenty/textures/blocks/ash_stone.png new file mode 100644 index 0000000000000000000000000000000000000000..3a6bd877b6ecfaec5b49654a9552fb9cddd6a6e9 GIT binary patch literal 536 zcmV+z0_XjSP)N2bPDNB8 zb~7$DE-^4L^m3s900ERqL_t(IPbJYujsigp1<*PdLM+HRhXDp?KtmEii2FlF*CXa0vK(UawcNSWJ{eR3*=c43LLZmZKdcB^Z ztxO~V^dgeC0Ze(hT*#l#=Pb)?Igdm#R>lg`Ewl<%TC7Oe_-3=AlKdt{LYskGjD!Y6 z!VfhP2hL!mQ>j#nUqKIuuRJQ(>(y;;G?R#jVAlxoAAXuZCA;z#-ZA&EVHU>FN-FyaYA8?L0GDF*7=#!*6sI<^o ami+@vEdd>J(Z5gt0000N2bPDNB8 zb~7$DE-^7j^FlWO00MnUL_t(IPZg4BQ`%4%h41g_I$8xIdj!Ikh3qQ{OC*F%3<0Eo z3f5w6`>8*;hnf53&b-TW&Ur~?+|4*j+Lo;MoxER^hV8VgicfRxWmUVoW%@3qa#t#s zFa+auZT{MlMl?88zip-GxE=**N9MOPb{ev> zp56>x^e0tLe2h|-nD?~2qmb6y&Ut@41atoe@5TxxrTt4}`7$$UH+C}-mNoxG1(jaHe z3hF?G?b2rUxk_hUHPulAh+dz$rz2_WKkgC_{k4688I64#DX-gw?1%A28G2rOJM4+*~$mg^s}t z+svfbnDxPf1LYP&Fav}j3)~!T3w*!;G(5<)l#DHZVN19XY{+*E+SO2Bz*T00000NkvXXu0mjf^3h}# literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/dried_dirt.png b/src/main/resources/assets/biomesoplenty/textures/blocks/dried_dirt.png new file mode 100644 index 0000000000000000000000000000000000000000..494b033dc8633078d54f7d9dab5d6b9d23c6ad6e GIT binary patch literal 640 zcmV-`0)PF9P)N2bPDNB8 zb~7$DE-^7j^FlWO00I0-L_t(IPbHEEQ^HUXgx@c5?7fRrfj}DRln|r_5dw+|*3t3L z`vqsho0rYq-tH~pXW1Bc%MB|r2#SH5>Ng8d_u4GfYGy($?3?n*a%#RmI*Z8oUIe^~ zQCpgi)LB@zl@p34z2bCGqNi?NDfzvZN#%9sMSY12oiK_{Exm}GmY25Gv*py~Y}c}V zKiBi~M)|m$+qtb~pbvwLQ91+>rR+8`;09&d*RwBWwtV~A(ay(RM+RE~Z#qfQu#-T=^d?@TzQV?6#(K4K0S<8( z#O^0Oxn^8eN=JfL9#r83=`0Fj62L2~L|D6;A|*=E5=&Zb+Cq#aA5*91cR5%7Og#MS z#wYth3%DR=I1mj42aCsItD21lIyR^nwhI4S29JY7IvVhR0WP#Xk99;chtEjm)TKkd zk`<5OM>qc{>d=GH)y67FMK|j4Mm~hYD8d$6@c<79<$Qavna+w>G)SkOV-EPkP{s@t zND$EA53Rp%O^VRXp9c^!GR6{nBL_~>jC05(*4QQlt7r%=j+PN2bPDNB8 zb~7$DE-^4L^m3s900B-(L_t(IPfgM>N<(1~1mOQnUcdvS6$=Z+!d~(UZ6t+41iN4% zL;|MJRzwsnw6GEz5d^!Oz~0htneYe<%l^Bwv$K!a7H^aL%Y8T>ZGz|b^C^tG!NY7Q zrvCYOl5V>?+kU-1xH#U@2GsZ4qi%Oy`|oG&srYhph+|m2HblllBYI(r_l2Oh+aM^fRDnIbhcYr7Y>I z4u~I5IbnNnMC8Uvl$7vttK8QN&(pSeqf#4q$YmlBmTNPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0005VNklq z9JUi#&7^kw=j~8UqOY78R$6h^2=pR;4o{hi*Pnh?o?^1!Kfh4ChG$Z$SYN^f4iIUp zyL(xjVbzo@wxG++wcXp1ReY$!(HOpKol+xW{TrhO+mH_Dhg>aC?8n{_MBZ9x5h$rd zfh~RjJXF1rdjNxu6u@M(lA$L@Kq2FgrnqV+d2`u&`+!bhos9y=DV<2p4zYC8Off?N zHu#g(nqU;H_vJb2YzDJE>csG6tA5@LQLZ#%e3IoHq{^Cd4|jzL90hZshen!V5YWTG zJy51usFbl1F$W5?J<@E63(mq_UvWqZt5}kzNB)tBnR0{Tp|i2NTe+#0Tmn!)qTr_l zPJgFlaP5RnU=x_AfSe3h+)DEtO!yG0wT_5@r5mA3LEl@ZqJS- n?wyEwx?&;4FengZT5Uvs<6JPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0005hNklGP)GU3;S^3%A%&=RO!Kz3Hsq zA1VHtZN8dsBSZxTVdrr!oXs>dIi9$;(v=~g1Q9{g6($Z_KD1!IPn5%_!NTrP0hE=8 z&ED+WzAW@|X9o1$KI2ete-8U(vT3XTu7{*bXyIXWc(cK@3$0cSbn-P&($F@5RN`IEw@RXG2DT|hunjx58KqRU!8D?_!^(Fc zkH$H!RcZP`&H0P?K^)mgaJzWjYMZ84Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0004fNkl001^;3mB~{O40FTh~218#Ezdlz`7` zIvjhI*smfW2mD+3Z5G1co;8Hu2}p>@NCu9n1)7&!39ydEapO?cxkZ*!uauvsSx9;{ zmHeKE(;EB+b2q1Ttbf0)aeQ~~$TIC8U$#m_a>@k8%cB1rb+v(y)rjs0#0JSj=!+|X zK{abF0PmU7{NqJKRA-P4jLzCsAc^>v-F@U!0-S`|El+CLz&h1jf^112!EUU8jYYeH zA8rF4f#!8hE+DcX(uag5x(M=*fYAad4XKFS0s~c(4Jy2%VeNoB!LYG?R1XGl3EDJ3 zgE3kW@wpnccu_;Alw0D#NJkBLWz4sxfz7FCrJ|nFeyR2rHce3imMRH@AFXEA370Ne Q+5i9m07*qoM6N<$f(z@|I{*Lx literal 0 HcmV?d00001 From 17178619fe0c6b2b1106928c8574a82e4af1b2f2 Mon Sep 17 00:00:00 2001 From: Cheeserolls Date: Fri, 27 Mar 2015 17:56:08 +0000 Subject: [PATCH 07/10] Update labels --- src/main/resources/assets/biomesoplenty/lang/en_US.lang | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/resources/assets/biomesoplenty/lang/en_US.lang b/src/main/resources/assets/biomesoplenty/lang/en_US.lang index 4f8f9bc42..7a01f27b7 100644 --- a/src/main/resources/assets/biomesoplenty/lang/en_US.lang +++ b/src/main/resources/assets/biomesoplenty/lang/en_US.lang @@ -148,6 +148,14 @@ tile.fruit_block.persimmon_block.name=Persimmon Block tile.fruit_block.peach_block.name=Peach Block tile.fruit_block.pear_block.name=Pear Block +tile.ash_stone.name=Ash Stone +tile.hard_sand.name=Hardened Sand +tile.hard_dirt.name=Hardened Dirt +tile.hard_ice.name=Hardened Ice +tile.dried_dirt.name=Dried Dirt +tile.crag_rock.name=Crag Rock +tile.mud_brick.name=Mud Bricks + item.fleshchunk.name=Chunk of Flesh item.mudball.name=Mud Ball item.turnip.name=Turnip From 126020371f2e9ebe8e57002de980cf7c94c30615 Mon Sep 17 00:00:00 2001 From: Cheeserolls Date: Fri, 27 Mar 2015 17:57:48 +0000 Subject: [PATCH 08/10] Minor tidyup --- src/main/java/biomesoplenty/common/block/BlockBOPGeneric.java | 1 - src/main/java/biomesoplenty/common/block/BlockFruit.java | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPGeneric.java b/src/main/java/biomesoplenty/common/block/BlockBOPGeneric.java index 62c50ba26..4d8f067c7 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPGeneric.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPGeneric.java @@ -9,7 +9,6 @@ package biomesoplenty.common.block; import biomesoplenty.api.block.BOPBlock; -import biomesoplenty.common.util.inventory.CreativeTabBOP; import net.minecraft.block.Block; import net.minecraft.block.material.Material; diff --git a/src/main/java/biomesoplenty/common/block/BlockFruit.java b/src/main/java/biomesoplenty/common/block/BlockFruit.java index 7d847e186..9d40eee00 100644 --- a/src/main/java/biomesoplenty/common/block/BlockFruit.java +++ b/src/main/java/biomesoplenty/common/block/BlockFruit.java @@ -36,7 +36,7 @@ public class BlockFruit extends BOPPlant super(Material.plants); this.setStepSound(soundTypeGrass); this.setBlockBounds(0.25F, 0.25F, 0.25F, 0.75F, 1.0F, 0.75F); - //this.setCreativeTab(null); + // TODO: once the mechanism for farming fruit is established: this.setCreativeTab(null); } @Override From b26378ca17dbeb37648d95d7f0b2a1ed50e54358 Mon Sep 17 00:00:00 2001 From: Cheeserolls Date: Fri, 27 Mar 2015 17:58:47 +0000 Subject: [PATCH 09/10] Add crystal and crystal shard --- .../biomesoplenty/api/block/BOPBlocks.java | 1 - .../java/biomesoplenty/api/item/BOPItems.java | 1 + .../common/block/BlockCrystal.java | 42 ++++++++++++++++++ .../biomesoplenty/blockstates/crystal.json | 5 +++ .../assets/biomesoplenty/lang/en_US.lang | 2 + .../biomesoplenty/models/block/crystal.json | 6 +++ .../biomesoplenty/models/item/crystal.json | 10 +++++ .../models/item/crystal_shard.json | 18 ++++++++ .../biomesoplenty/textures/blocks/crystal.png | Bin 0 -> 439 bytes .../textures/items/crystal_shard.png | Bin 0 -> 437 bytes 10 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 src/main/java/biomesoplenty/common/block/BlockCrystal.java create mode 100644 src/main/resources/assets/biomesoplenty/blockstates/crystal.json create mode 100644 src/main/resources/assets/biomesoplenty/models/block/crystal.json create mode 100644 src/main/resources/assets/biomesoplenty/models/item/crystal.json create mode 100644 src/main/resources/assets/biomesoplenty/models/item/crystal_shard.json create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/crystal.png create mode 100644 src/main/resources/assets/biomesoplenty/textures/items/crystal_shard.png diff --git a/src/main/java/biomesoplenty/api/block/BOPBlocks.java b/src/main/java/biomesoplenty/api/block/BOPBlocks.java index a1c8bd792..9d15911bb 100644 --- a/src/main/java/biomesoplenty/api/block/BOPBlocks.java +++ b/src/main/java/biomesoplenty/api/block/BOPBlocks.java @@ -43,6 +43,5 @@ public class BOPBlocks public static Block dried_dirt; public static Block crag_rock; public static Block mud_brick; - public static Block biome_block; public static Block crystal; } diff --git a/src/main/java/biomesoplenty/api/item/BOPItems.java b/src/main/java/biomesoplenty/api/item/BOPItems.java index ee649bae7..822a15008 100644 --- a/src/main/java/biomesoplenty/api/item/BOPItems.java +++ b/src/main/java/biomesoplenty/api/item/BOPItems.java @@ -19,4 +19,5 @@ public class BOPItems public static Item persimmon; public static Item peach; public static Item pear; + public static Item crystal_shard; } \ No newline at end of file diff --git a/src/main/java/biomesoplenty/common/block/BlockCrystal.java b/src/main/java/biomesoplenty/common/block/BlockCrystal.java new file mode 100644 index 000000000..9a10f51a4 --- /dev/null +++ b/src/main/java/biomesoplenty/common/block/BlockCrystal.java @@ -0,0 +1,42 @@ +/******************************************************************************* + * Copyright 2014, 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.Random; + +import biomesoplenty.api.block.BOPBlock; +import biomesoplenty.api.item.BOPItems; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; +import net.minecraft.item.Item; + +public class BlockCrystal extends BOPBlock +{ + public BlockCrystal() { + super(Material.glass); + this.setHardness(0.15F); + this.setResistance(5.0F); + this.setLightLevel(1.0F); + this.setStepSound(Block.soundTypeGlass); + } + + @Override + public Item getItemDropped(IBlockState state, Random rand, int fortune) + { + return BOPItems.crystal_shard; + } + + @Override + public int quantityDropped(Random random) + { + return 4; + } + +} \ No newline at end of file diff --git a/src/main/resources/assets/biomesoplenty/blockstates/crystal.json b/src/main/resources/assets/biomesoplenty/blockstates/crystal.json new file mode 100644 index 000000000..8c949439e --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/blockstates/crystal.json @@ -0,0 +1,5 @@ +{ + "variants": { + "normal": { "model": "biomesoplenty:crystal" } + } +} diff --git a/src/main/resources/assets/biomesoplenty/lang/en_US.lang b/src/main/resources/assets/biomesoplenty/lang/en_US.lang index 7a01f27b7..28da0691f 100644 --- a/src/main/resources/assets/biomesoplenty/lang/en_US.lang +++ b/src/main/resources/assets/biomesoplenty/lang/en_US.lang @@ -155,6 +155,7 @@ tile.hard_ice.name=Hardened Ice tile.dried_dirt.name=Dried Dirt tile.crag_rock.name=Crag Rock tile.mud_brick.name=Mud Bricks +tile.crystal.name=Celestial Crystal item.fleshchunk.name=Chunk of Flesh item.mudball.name=Mud Ball @@ -163,3 +164,4 @@ item.turnip_seeds.name=Turnip Seeds item.persimmon.name=Persimmon item.peach.name=Peach item.pear.name=Pear +item.crystal_shard.name=Celestial Crystal Shard diff --git a/src/main/resources/assets/biomesoplenty/models/block/crystal.json b/src/main/resources/assets/biomesoplenty/models/block/crystal.json new file mode 100644 index 000000000..45f8574fa --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/crystal.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "biomesoplenty:blocks/crystal" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/item/crystal.json b/src/main/resources/assets/biomesoplenty/models/item/crystal.json new file mode 100644 index 000000000..a30f14b12 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/crystal.json @@ -0,0 +1,10 @@ +{ + "parent": "biomesoplenty:block/crystal", + "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/crystal_shard.json b/src/main/resources/assets/biomesoplenty/models/item/crystal_shard.json new file mode 100644 index 000000000..c0f90acaa --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/crystal_shard.json @@ -0,0 +1,18 @@ +{ + "parent": "builtin/generated", + "textures": { + "layer0": "biomesoplenty:items/crystal_shard" + }, + "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/crystal.png b/src/main/resources/assets/biomesoplenty/textures/blocks/crystal.png new file mode 100644 index 0000000000000000000000000000000000000000..6ec662670f4cd5f3640c87abed96fa6187b1e1a9 GIT binary patch literal 439 zcmV;o0Z9IdP)<{98gxZibW?9;ba!ELWdKlNX>N2bPDNB8 zb~7$DE-^7j^FlWO00A>eL_t(IPfd|AN<&c)Mc)=oVc{auScrv1(x{!bT8Ui*3F&NH zfjbcFL?xBD0UHBpVlN0O1d$K|$p$=+^SOMu|L4ujx%1{v%G1r_WPjM*IgG{^Kj+<1 zuQO1D=}?$z!hJq0$&e>m4c6Ugi)_E_y>RhApgt$=v)8*002ovPDHLkV1ilYt*ih5 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/biomesoplenty/textures/items/crystal_shard.png b/src/main/resources/assets/biomesoplenty/textures/items/crystal_shard.png new file mode 100644 index 0000000000000000000000000000000000000000..5e426c88544118e4c4679b9e84fe3c1fdd25606f GIT binary patch literal 437 zcmV;m0ZRUfP)N2bPDNB8 zb~7$DE-^7j^FlWO00A*cL_t(IPhgoS+mXrP$`Yrt*Y+m=@N->tO0U!mZx4r#8 zrSSa!WV=-{0h|qIfD}#w+MeSzAE!oa7|wucB32^|V-+L? fV-+MG|7QRI$iKG!-y%*s00000NkvXXu0mjfm Date: Fri, 27 Mar 2015 22:47:36 +0000 Subject: [PATCH 10/10] Add origin grass --- .../common/block/BlockBOPGrass.java | 19 +++++++++++++++-- .../biomesoplenty/common/init/ModBlocks.java | 20 +++++++++--------- .../biomesoplenty/common/init/ModItems.java | 15 +++++++------ .../biomesoplenty/blockstates/grass.json | 4 +++- .../assets/biomesoplenty/lang/en_US.lang | 1 + .../models/block/origin_grass_block.json | 9 ++++++++ .../block/origin_grass_block_snowed.json | 9 ++++++++ .../models/item/origin_grass_block.json | 10 +++++++++ .../textures/blocks/dirt_origin.png | Bin 0 -> 354 bytes .../textures/blocks/grass_origin_side.png | Bin 0 -> 480 bytes .../blocks/grass_origin_side_snowed.png | Bin 0 -> 14709 bytes .../textures/blocks/grass_origin_top.png | Bin 0 -> 698 bytes 12 files changed, 67 insertions(+), 20 deletions(-) create mode 100644 src/main/resources/assets/biomesoplenty/models/block/origin_grass_block.json create mode 100644 src/main/resources/assets/biomesoplenty/models/block/origin_grass_block_snowed.json create mode 100644 src/main/resources/assets/biomesoplenty/models/item/origin_grass_block.json create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/dirt_origin.png create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/grass_origin_side.png create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/grass_origin_side_snowed.png create mode 100644 src/main/resources/assets/biomesoplenty/textures/blocks/grass_origin_top.png diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java b/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java index b8b5b49de..25a12efb2 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java @@ -133,6 +133,10 @@ public class BlockBOPGrass extends BOPBlock implements IGrowable // smoldering grass supports no plants case SMOLDERING: return false; + + // origin grass supports all plants (including crop type - no need for hoe) + case ORIGIN: + return true; default: switch (plantType) @@ -422,7 +426,7 @@ public class BlockBOPGrass extends BOPBlock implements IGrowable // enum representing the variants of grass public static enum BOPGrassType implements IStringSerializable { - SPECTRALMOSS, SMOLDERING, LOAMY, SANDY, SILTY; + SPECTRALMOSS, SMOLDERING, LOAMY, SANDY, SILTY, ORIGIN; @Override public String getName() @@ -456,7 +460,7 @@ public class BlockBOPGrass extends BOPBlock implements IGrowable return BOPBlocks.dirt.getDefaultState().withProperty(BlockBOPDirt.VARIANT_PROP, BlockBOPDirt.BOPDirtType.SANDY); case SILTY: return BOPBlocks.dirt.getDefaultState().withProperty(BlockBOPDirt.VARIANT_PROP, BlockBOPDirt.BOPDirtType.SILTY); - case SMOLDERING: default: + case SMOLDERING: case ORIGIN: default: return Blocks.dirt.getStateFromMeta(BlockDirt.DirtType.DIRT.getMetadata()); } } @@ -512,6 +516,17 @@ public class BlockBOPGrass extends BOPBlock implements IGrowable { return null; } + + // origin grass spreads to any kind of dirt + case ORIGIN: + if ((target.getBlock() == Blocks.dirt && target.getValue(BlockDirt.VARIANT) == BlockDirt.DirtType.DIRT) || (target.getBlock() == BOPBlocks.dirt && Boolean.FALSE.equals(target.getValue(BlockBOPDirt.COARSE)))) + { + return BOPBlocks.grass.getDefaultState().withProperty(BlockBOPGrass.VARIANT_PROP, BlockBOPGrass.BOPGrassType.ORIGIN); + } + else + { + return null; + } // smoldering grass doesn't spread at all case SMOLDERING: default: diff --git a/src/main/java/biomesoplenty/common/init/ModBlocks.java b/src/main/java/biomesoplenty/common/init/ModBlocks.java index 3a651c417..996a7934c 100644 --- a/src/main/java/biomesoplenty/common/init/ModBlocks.java +++ b/src/main/java/biomesoplenty/common/init/ModBlocks.java @@ -10,10 +10,8 @@ package biomesoplenty.common.init; import static biomesoplenty.api.block.BOPBlocks.*; import net.minecraft.block.Block; -import net.minecraft.block.Block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; -import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraftforge.fml.common.registry.GameRegistry; import biomesoplenty.api.block.BOPBlock; @@ -34,6 +32,7 @@ import biomesoplenty.common.block.BlockBOPStone; import biomesoplenty.common.block.BlockBamboo; import biomesoplenty.common.block.BlockBones; import biomesoplenty.common.block.BlockCoral; +import biomesoplenty.common.block.BlockCrystal; import biomesoplenty.common.block.BlockFruit; import biomesoplenty.common.block.BlockGem; import biomesoplenty.common.block.BlockGemOre; @@ -74,17 +73,18 @@ public class ModBlocks dirt = registerBlock(new BlockBOPDirt(), "dirt"); stone_formations = registerBlock(new BlockStoneFormations(),"stone_formations"); fruit_block = registerBlock(new BlockFruit(), "fruit_block"); + crystal = registerBlock(new BlockCrystal(), "crystal"); // generics - ash_stone = registerBlock(new BlockBOPGeneric(),"ash_stone"); - crag_rock = registerBlock((new BlockBOPGeneric()).setStepSound(Block.soundTypeStone),"crag_rock"); - dried_dirt = registerBlock(new BlockBOPGeneric(),"dried_dirt"); dried_dirt.setHarvestLevel("pickaxe",0); - hard_dirt = registerBlock((new BlockBOPGeneric()).setHardness(0.7F),"hard_dirt"); - hard_ice = registerBlock((new BlockBOPGeneric()).setHardness(0.75F),"hard_ice"); - hard_sand = registerBlock((new BlockBOPGeneric(Material.sand)).setHardness(0.9F).setStepSound(Block.soundTypeSand),"hard_sand"); - mud_brick = registerBlock((new BlockBOPGeneric()).setResistance(2.0F),"mud_brick"); + ash_stone = registerBlock(new BlockBOPGeneric(), "ash_stone"); + crag_rock = registerBlock((new BlockBOPGeneric()).setStepSound(Block.soundTypeStone), "crag_rock"); + dried_dirt = registerBlock(new BlockBOPGeneric(), "dried_dirt"); dried_dirt.setHarvestLevel("pickaxe",0); + hard_dirt = registerBlock((new BlockBOPGeneric()).setHardness(0.7F), "hard_dirt"); + hard_ice = registerBlock((new BlockBOPGeneric()).setHardness(0.75F), "hard_ice"); + hard_sand = registerBlock((new BlockBOPGeneric(Material.sand)).setHardness(0.9F).setStepSound(Block.soundTypeSand), "hard_sand"); + mud_brick = registerBlock((new BlockBOPGeneric()).setResistance(2.0F), "mud_brick"); + - //TODO biome_block & crystal are in 1.7 BlockBOPGeneric but actually have some special powers } private static Block registerBlock(Block block, String name) { diff --git a/src/main/java/biomesoplenty/common/init/ModItems.java b/src/main/java/biomesoplenty/common/init/ModItems.java index c757bac57..4443f9042 100644 --- a/src/main/java/biomesoplenty/common/init/ModItems.java +++ b/src/main/java/biomesoplenty/common/init/ModItems.java @@ -24,13 +24,14 @@ public class ModItems { public static void init() { - fleshchunk = registerItem(new Item(),"fleshchunk"); - mudball = registerItem(new ItemMudball(),"mudball"); - turnip_seeds = registerItem(new ItemSeeds(BOPBlocks.turnip_block, Blocks.farmland),"turnip_seeds"); - turnip = registerItem(new ItemFood(3, 0.4F, false),"turnip"); - persimmon = registerItem(new ItemFood(5, 0.2F, false),"persimmon"); - peach = registerItem(new ItemFood(5, 0.5F, false),"peach"); - pear = registerItem(new ItemFood(5, 0.3F, false),"pear"); + fleshchunk = registerItem(new Item(), "fleshchunk"); + mudball = registerItem(new ItemMudball(), "mudball"); + turnip_seeds = registerItem(new ItemSeeds(BOPBlocks.turnip_block, Blocks.farmland), "turnip_seeds"); + turnip = registerItem(new ItemFood(3, 0.4F, false), "turnip"); + persimmon = registerItem(new ItemFood(5, 0.2F, false), "persimmon"); + peach = registerItem(new ItemFood(5, 0.5F, false), "peach"); + pear = registerItem(new ItemFood(5, 0.3F, false), "pear"); + crystal_shard = registerItem(new Item(), "crystal_shard"); } private static Item registerItem(Item item, String name) diff --git a/src/main/resources/assets/biomesoplenty/blockstates/grass.json b/src/main/resources/assets/biomesoplenty/blockstates/grass.json index cbda40f0c..952a066b4 100644 --- a/src/main/resources/assets/biomesoplenty/blockstates/grass.json +++ b/src/main/resources/assets/biomesoplenty/blockstates/grass.json @@ -9,6 +9,8 @@ "snowy=false,variant=sandy_grass_block": { "model": "biomesoplenty:sandy_grass_block" }, "snowy=true,variant=sandy_grass_block": { "model": "biomesoplenty:sandy_grass_block_snowed" }, "snowy=false,variant=silty_grass_block": { "model": "biomesoplenty:silty_grass_block" }, - "snowy=true,variant=silty_grass_block": { "model": "biomesoplenty:silty_grass_block_snowed" } + "snowy=true,variant=silty_grass_block": { "model": "biomesoplenty:silty_grass_block_snowed" }, + "snowy=false,variant=origin_grass_block": { "model": "biomesoplenty:origin_grass_block" }, + "snowy=true,variant=origin_grass_block": { "model": "biomesoplenty:origin_grass_block_snowed" } } } diff --git a/src/main/resources/assets/biomesoplenty/lang/en_US.lang b/src/main/resources/assets/biomesoplenty/lang/en_US.lang index 28da0691f..31a5414bc 100644 --- a/src/main/resources/assets/biomesoplenty/lang/en_US.lang +++ b/src/main/resources/assets/biomesoplenty/lang/en_US.lang @@ -16,6 +16,7 @@ tile.grass.smoldering_grass_block.name=Smoldering Grass Block tile.grass.loamy_grass_block.name=Loamy Grass Block tile.grass.sandy_grass_block.name=Sandy Grass Block tile.grass.silty_grass_block.name=Silty Grass Block +tile.grass.origin_grass_block.name=Origin Grass Block tile.coral.pink.name=Pink Coral tile.coral.orange.name=Orange Coral diff --git a/src/main/resources/assets/biomesoplenty/models/block/origin_grass_block.json b/src/main/resources/assets/biomesoplenty/models/block/origin_grass_block.json new file mode 100644 index 000000000..4db84c393 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/origin_grass_block.json @@ -0,0 +1,9 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "particle": "biomesoplenty:blocks/dirt_origin", + "bottom": "biomesoplenty:blocks/dirt_origin", + "top": "biomesoplenty:blocks/grass_origin_top", + "side": "biomesoplenty:blocks/grass_origin_side" + } +} diff --git a/src/main/resources/assets/biomesoplenty/models/block/origin_grass_block_snowed.json b/src/main/resources/assets/biomesoplenty/models/block/origin_grass_block_snowed.json new file mode 100644 index 000000000..89b3dd5ce --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/block/origin_grass_block_snowed.json @@ -0,0 +1,9 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "particle": "biomesoplenty:blocks/dirt_origin", + "bottom": "biomesoplenty:blocks/dirt_origin", + "top": "biomesoplenty:blocks/grass_origin_top", + "side": "biomesoplenty:blocks/grass_origin_side_snowed" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/biomesoplenty/models/item/origin_grass_block.json b/src/main/resources/assets/biomesoplenty/models/item/origin_grass_block.json new file mode 100644 index 000000000..f961331a3 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/models/item/origin_grass_block.json @@ -0,0 +1,10 @@ +{ + "parent": "biomesoplenty:block/origin_grass_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/textures/blocks/dirt_origin.png b/src/main/resources/assets/biomesoplenty/textures/blocks/dirt_origin.png new file mode 100644 index 0000000000000000000000000000000000000000..504a6c671e423a169b527397c99b5a9d6e09d936 GIT binary patch literal 354 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL8%hgh?3y^w370~qEv=}#LT=BJwMkFg)(D3 zQ$0figD*u3fvPTgx;Tbd_@_=h%gJOY;j(>huH%i_>hGJlr%hNa&OPDnfw(v4#N%ch z;c%Wa^L>4+-TL3VV-9?-Vw!wsyXn67hxi||JUCvcq04uWrL<{fN5SMnzE>kPbeC!v zadB?nyWUUx!cnE@mC1&0-6Hc1&WA8FWri?i+{$N|GrOVAPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0003`Nkl*mZwZ1$>Y;-s!GU$t=8=B&Q-kj|Axwu=4Rj|0hA zWahFleOgc3{^w-AoMIN$)X+J9)8g#DjZt*??M|IVnFL=db`sgVSx)SIqzhjeV`FmUc$5B&`B4P6d90a%k(cQlzpXfT0eL zY0vX4A>W9Nt8B1@?NKhgSq|{OLE56uP=&H)RyN>1g=dj3NTgOfmZxLs0?t|G!A^8J&P6EP`A1tLL%4S?(8Oon+f7Wn}f WOe>W$@4)>40000(GhJ9E1oww)<6 zQ`+5t5;XDSNl8o$1WXiB6GI>$|3Bx>?|$sO%xi-KPj-8jdKiZ3?(a(t;p=_Q_wFwI`^KBOFuvSV?8{gTv*=6b zJMXPW7d^-@D;I0SqxNX}X-P2(epxlfk-t(XVl~6WR#l3!GKp+<98G9?-240S6JAzR z7#68E}!B^*1=oR@Va z_GH|<#wo~-rU%)iVIo%ai#~-92y7(k7ep}<2|UIIcp=2`0w)B0LR1QcB%Wt$A8*2g zqnN2?rJ>Z?S~>hz+?%uQqQr6Ka@k)F`VDh}6Qa>5#|OATz=st+Yf87}ichzeRg=u- zNg+!ywW6&VI_u<>$BmL5_j;W|^-t}-3dMRM-Kw#}6uF9ALA~4Xtt@MI_qLX8OioiKr>EoCQAO)ub9$;acPUh7D2DGsy z8=OVRCX?=}VjoG%il#eUSH!qhQ)9*(`A|x>Q39_>(Z>gUfyi(mfS02r3LAmHDr&K( z4OPodwXq9fDHN>PfvDAv_l+vsGARL+ffTADWeu|++X<~8Pav+SPsF%JBT&{Cl9V*^ zhKWan62TbPt{J%8#U=IYmM!ZF>Q5zbgJ08B31wG~uMG2|PY|Y1<}KNO%uSQLX|jB9Ofbqs11lpjrLc=KA$k`(ZE zcRj5gZH<{uM$l0+R;LR5`*vrt+KL|z@N)@Qe=upDn3(_FQ6c-T@6i{4{1~I0%h=`zo;(|1YF~vnh1O*fqq(O`+E+Qf*ptv9nVoY%n z5kUdP1!)jtii?N{3Mei}gBVj>L_|@`DX%OR^;_@_J^+P&-zpsp6 zlnjGZ!^pT#_s3Oti{?({i!v> zmG9JNk942r7k=~j3#WE|Ht>D-x2p%vUp#Zy{F##{e%^mQvwgL67-g38U9Z2Zt~++^ zuYD0_`{oP6S>etldrfh{$YExWvT$$eBo2cguNY0Ax-#h*oA>I&TY7fodp6#Np{um`$+WB**tUWgyvJ+z_gllyO!j_la9#JF^Jex>VJaO97NHjBcQquRMu`49IT zxVrlD?)a8-7e{uyw_wTA(=UfJ>hkgjJ%^4T99ug1_1`~y@y`1je!4buKJ%kz+16JM sMi1?}BX|5n*N*uM%P-CgP2bBL{i@je>7L|M_%@mT-htGiC&qUD3(=JYo&W#< literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/biomesoplenty/textures/blocks/grass_origin_top.png b/src/main/resources/assets/biomesoplenty/textures/blocks/grass_origin_top.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0a6bbf10bc01bbbc218c79389c1d1274c56b84 GIT binary patch literal 698 zcmV;r0!96aP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0006hNklTp`gZa`_ z%-whCjURKA#x*X1)%LA0h;3M$^<)$3b7PT3gL}#*4kfp&N_w;cLq_KY8obj9`}B)l zQbE;ByaX8Eh7Z|IbGgOsVS=t-r7`u3px&8ItDns}{&+R=`58c-A3qr1w3J+04Qi@u z!!cwC6akVIV4yS5T0IhbdoqRY;-S6LA zbv9A8bZA_(YOFD|x4@kMj47Hdm+| z6bo>MJaL#{AAx<#;c~HJGAK@bxIDaif!L$E+VKSZ2&Dq*`Oj}Q$x*Ml|8M!t*GU8a zDy3+yoQ@?)%+~pTNsb28CSxjh{BRb+ILGw18QQz$23WWYz~9ROu50M{QEc>{-(_q; gXfPJ3shEuZ52}4`!Rnc^asU7T07*qoM6N<$f(nsB#Q*>R literal 0 HcmV?d00001