diff --git a/src/main/java/de/ellpeck/naturesaura/blocks/BlockContainerImpl.java b/src/main/java/de/ellpeck/naturesaura/blocks/BlockContainerImpl.java index 19d1a43f..dc091416 100644 --- a/src/main/java/de/ellpeck/naturesaura/blocks/BlockContainerImpl.java +++ b/src/main/java/de/ellpeck/naturesaura/blocks/BlockContainerImpl.java @@ -134,13 +134,7 @@ public class BlockContainerImpl extends BlockContainer implements IModItem, IMod TileEntity tile = world.getTileEntity(pos); if (tile instanceof TileEntityImpl) { TileEntityImpl impl = (TileEntityImpl) tile; - boolean powered = world.getRedstonePowerFromNeighbors(pos) > 0; - boolean wasPowered = impl.isRedstonePowered; - if (powered && !wasPowered) { - impl.isRedstonePowered = true; - } else if (!powered && wasPowered) { - impl.isRedstonePowered = false; - } + impl.isRedstonePowered = world.getRedstonePowerFromNeighbors(pos) > 0; } } } diff --git a/src/main/java/de/ellpeck/naturesaura/blocks/BlockOfferingTable.java b/src/main/java/de/ellpeck/naturesaura/blocks/BlockOfferingTable.java new file mode 100644 index 00000000..431abaf2 --- /dev/null +++ b/src/main/java/de/ellpeck/naturesaura/blocks/BlockOfferingTable.java @@ -0,0 +1,61 @@ +package de.ellpeck.naturesaura.blocks; + +import de.ellpeck.naturesaura.Helper; +import de.ellpeck.naturesaura.blocks.tiles.TileEntityOfferingTable; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; +import net.minecraft.block.state.BlockFaceShape; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumHand; +import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockOfferingTable extends BlockContainerImpl { + + private static final AxisAlignedBB BOUND_BOX = new AxisAlignedBB(2 / 16F, 0F, 2 / 16F, 14 / 16F, 1F, 14 / 16F); + + public BlockOfferingTable() { + super(Material.WOOD, "offering_table", TileEntityOfferingTable.class, "offering_table"); + this.setSoundType(SoundType.WOOD); + this.setHardness(2F); + } + + @Override + public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { + return Helper.putStackOnTile(playerIn, hand, pos, 0, true); + } + + @Override + public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) { + return BOUND_BOX; + } + + @Override + public boolean isFullCube(IBlockState state) { + return false; + } + + @Override + public boolean isOpaqueCube(IBlockState state) { + return false; + } + + @Override + public boolean isNormalCube(IBlockState state, IBlockAccess world, BlockPos pos) { + return false; + } + + @Override + public boolean isSideSolid(IBlockState baseState, IBlockAccess world, BlockPos pos, EnumFacing side) { + return false; + } + + @Override + public BlockFaceShape getBlockFaceShape(IBlockAccess worldIn, IBlockState state, BlockPos pos, EnumFacing face) { + return BlockFaceShape.UNDEFINED; + } +} diff --git a/src/main/java/de/ellpeck/naturesaura/blocks/ModBlocks.java b/src/main/java/de/ellpeck/naturesaura/blocks/ModBlocks.java index bf3ddb4b..627bb8bd 100644 --- a/src/main/java/de/ellpeck/naturesaura/blocks/ModBlocks.java +++ b/src/main/java/de/ellpeck/naturesaura/blocks/ModBlocks.java @@ -34,4 +34,5 @@ public final class ModBlocks { public static final Block FIELD_CREATOR = new BlockFieldCreator(); public static final Block OAK_GENERATOR = new BlockOakGenerator(); public static final Block INFUSED_IRON = new BlockImpl("infused_iron_block", Material.IRON).setSoundType(SoundType.METAL).setHardness(3F); + public static final Block OFFERING_TABLE = new BlockOfferingTable(); } diff --git a/src/main/java/de/ellpeck/naturesaura/blocks/tiles/TileEntityOfferingTable.java b/src/main/java/de/ellpeck/naturesaura/blocks/tiles/TileEntityOfferingTable.java new file mode 100644 index 00000000..624d7120 --- /dev/null +++ b/src/main/java/de/ellpeck/naturesaura/blocks/tiles/TileEntityOfferingTable.java @@ -0,0 +1,32 @@ +package de.ellpeck.naturesaura.blocks.tiles; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumFacing; +import net.minecraftforge.items.IItemHandlerModifiable; +import net.minecraftforge.items.ItemStackHandler; + +public class TileEntityOfferingTable extends TileEntityImpl { + public final ItemStackHandler items = new ItemStackHandlerNA(1, this, true); + + @Override + public void writeNBT(NBTTagCompound compound, SaveType type) { + super.writeNBT(compound, type); + if (type != SaveType.BLOCK) { + compound.setTag("items", this.items.serializeNBT()); + } + } + + @Override + public void readNBT(NBTTagCompound compound, SaveType type) { + super.readNBT(compound, type); + if (type != SaveType.BLOCK) { + this.items.deserializeNBT(compound.getCompoundTag("items")); + } + } + + @Override + public IItemHandlerModifiable getItemHandler(EnumFacing facing) { + return this.items; + } + +} diff --git a/src/main/java/de/ellpeck/naturesaura/blocks/tiles/render/RenderOfferingTable.java b/src/main/java/de/ellpeck/naturesaura/blocks/tiles/render/RenderOfferingTable.java new file mode 100644 index 00000000..8bfd6437 --- /dev/null +++ b/src/main/java/de/ellpeck/naturesaura/blocks/tiles/render/RenderOfferingTable.java @@ -0,0 +1,53 @@ +package de.ellpeck.naturesaura.blocks.tiles.render; + +import de.ellpeck.naturesaura.Helper; +import de.ellpeck.naturesaura.blocks.tiles.TileEntityOfferingTable; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockRenderLayer; +import net.minecraft.util.math.MathHelper; + +import java.util.Random; + +public class RenderOfferingTable extends TileEntitySpecialRenderer { + + private final Random rand = new Random(); + + @Override + public void render(TileEntityOfferingTable tile, double x, double y, double z, float partialTicks, int destroyStage, float alpha) { + ItemStack stack = tile.items.getStackInSlot(0); + if (!stack.isEmpty()) { + this.rand.setSeed(Item.getIdFromItem(stack.getItem()) + stack.getMetadata()); + + int amount = MathHelper.ceil(stack.getCount() / 8F); + for (int i = 0; i < amount; i++) { + GlStateManager.pushMatrix(); + Item item = stack.getItem(); + + float scale; + float yOff; + if (item instanceof ItemBlock && ((ItemBlock) item).getBlock().getRenderLayer() == BlockRenderLayer.SOLID) { + scale = 0.4F; + yOff = 0.08F; + } else { + scale = 0.25F; + yOff = 0F; + } + + GlStateManager.translate( + x + 0.35F + this.rand.nextFloat() * 0.3F, + y + 0.9F + yOff + (i * 0.001F), + z + 0.35F + this.rand.nextFloat() * 0.3F); + GlStateManager.rotate(this.rand.nextFloat() * 360F, 0F, 1F, 0F); + GlStateManager.rotate(90F, 1F, 0F, 0F); + GlStateManager.scale(scale, scale, scale); + + Helper.renderItemInWorld(stack); + GlStateManager.popMatrix(); + } + } + } +} diff --git a/src/main/java/de/ellpeck/naturesaura/proxy/ClientProxy.java b/src/main/java/de/ellpeck/naturesaura/proxy/ClientProxy.java index bb60f861..3425b97b 100644 --- a/src/main/java/de/ellpeck/naturesaura/proxy/ClientProxy.java +++ b/src/main/java/de/ellpeck/naturesaura/proxy/ClientProxy.java @@ -1,8 +1,10 @@ package de.ellpeck.naturesaura.proxy; import de.ellpeck.naturesaura.blocks.tiles.TileEntityNatureAltar; +import de.ellpeck.naturesaura.blocks.tiles.TileEntityOfferingTable; import de.ellpeck.naturesaura.blocks.tiles.TileEntityWoodStand; import de.ellpeck.naturesaura.blocks.tiles.render.RenderNatureAltar; +import de.ellpeck.naturesaura.blocks.tiles.render.RenderOfferingTable; import de.ellpeck.naturesaura.blocks.tiles.render.RenderWoodStand; import de.ellpeck.naturesaura.events.ClientEvents; import de.ellpeck.naturesaura.particles.ParticleHandler; @@ -38,6 +40,7 @@ public class ClientProxy implements IProxy { public void init(FMLInitializationEvent event) { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWoodStand.class, new RenderWoodStand()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNatureAltar.class, new RenderNatureAltar()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityOfferingTable.class, new RenderOfferingTable()); Map skinMap = Minecraft.getMinecraft().getRenderManager().getSkinMap(); for (RenderPlayer render : new RenderPlayer[]{skinMap.get("default"), skinMap.get("slim")}) { diff --git a/src/main/resources/assets/naturesaura/blockstates/offering_table.json b/src/main/resources/assets/naturesaura/blockstates/offering_table.json new file mode 100644 index 00000000..3469aa3e --- /dev/null +++ b/src/main/resources/assets/naturesaura/blockstates/offering_table.json @@ -0,0 +1,17 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "naturesaura:offering_table", + "textures": { + "0": "naturesaura:blocks/stripped_oak_log", + "1": "naturesaura:blocks/stripped_oak_log_top", + "2": "naturesaura:blocks/infused_stone", + "particle": "#0" + }, + "transform": "forge:default-block" + }, + "variants": { + "normal": [{}], + "inventory": [{}] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/naturesaura/lang/en_US.lang b/src/main/resources/assets/naturesaura/lang/en_US.lang index 98599282..d3781a32 100644 --- a/src/main/resources/assets/naturesaura/lang/en_US.lang +++ b/src/main/resources/assets/naturesaura/lang/en_US.lang @@ -31,6 +31,7 @@ tile.naturesaura.hopper_upgrade.name=Hopper Enhancement tile.naturesaura.field_creator.name=Aura Field Creator tile.naturesaura.oak_generator.name=Canopy Diminisher tile.naturesaura.infused_iron_block.name=Infused Iron Block +tile.naturesaura.offering_table.name=Offering Table item.naturesaura.eye.name=Environmental Eye item.naturesaura.gold_fiber.name=Brilliant Fiber diff --git a/src/main/resources/assets/naturesaura/models/block/offering_table.json b/src/main/resources/assets/naturesaura/models/block/offering_table.json new file mode 100644 index 00000000..31b75d54 --- /dev/null +++ b/src/main/resources/assets/naturesaura/models/block/offering_table.json @@ -0,0 +1,1282 @@ +{ + "elements": [ + { + "name": "top", + "from": [2, 12, 2], + "to": [14, 13, 14], + "faces": { + "north": { + "uv": [2, 3, 14, 4], + "texture": "#0" + }, + "east": { + "uv": [2, 3, 14, 4], + "texture": "#0" + }, + "south": { + "uv": [2, 3, 14, 4], + "texture": "#0" + }, + "west": { + "uv": [2, 3, 14, 4], + "texture": "#0" + }, + "up": { + "uv": [2, 2, 14, 14], + "texture": "#1" + }, + "down": { + "uv": [2, 2, 14, 14], + "texture": "#1" + } + } + }, + { + "name": "middle", + "from": [6, 3, 6], + "to": [10, 12, 10], + "faces": { + "north": { + "uv": [6, 4, 10, 13], + "texture": "#0" + }, + "east": { + "uv": [6, 4, 10, 13], + "texture": "#0" + }, + "south": { + "uv": [6, 4, 10, 13], + "texture": "#0" + }, + "west": { + "uv": [6, 4, 10, 13], + "texture": "#0" + }, + "up": { + "uv": [0, 0, 4, 4], + "texture": "#missing" + }, + "down": { + "uv": [0, 0, 4, 4], + "texture": "#missing" + } + } + }, + { + "name": "bottom1", + "from": [3, 0, 3], + "to": [13, 1, 13], + "faces": { + "north": { + "uv": [3, 15, 13, 16], + "texture": "#0" + }, + "east": { + "uv": [3, 15, 13, 16], + "texture": "#0" + }, + "south": { + "uv": [3, 15, 13, 16], + "texture": "#0" + }, + "west": { + "uv": [3, 15, 13, 16], + "texture": "#0" + }, + "up": { + "uv": [3, 3, 13, 13], + "texture": "#1" + }, + "down": { + "uv": [3, 3, 13, 13], + "texture": "#1" + } + } + }, + { + "name": "bottom2", + "from": [4, 1, 4], + "to": [12, 2, 12], + "faces": { + "north": { + "uv": [4, 14, 12, 15], + "texture": "#0" + }, + "east": { + "uv": [4, 14, 12, 15], + "texture": "#0" + }, + "south": { + "uv": [4, 14, 12, 15], + "texture": "#0" + }, + "west": { + "uv": [4, 14, 12, 15], + "texture": "#0" + }, + "up": { + "uv": [4, 4, 12, 12], + "texture": "#1" + }, + "down": { + "uv": [0, 0, 8, 8], + "texture": "#missing" + } + } + }, + { + "name": "bottom3", + "from": [5, 2, 5], + "to": [11, 3, 11], + "faces": { + "north": { + "uv": [5, 13, 11, 14], + "texture": "#0" + }, + "east": { + "uv": [5, 13, 11, 14], + "texture": "#0" + }, + "south": { + "uv": [5, 13, 11, 14], + "texture": "#0" + }, + "west": { + "uv": [5, 13, 11, 14], + "texture": "#0" + }, + "up": { + "uv": [5, 5, 11, 11], + "texture": "#1" + }, + "down": { + "uv": [0, 0, 6, 6], + "texture": "#missing" + } + } + }, + { + "name": "part1", + "from": [4, 13, 4], + "to": [6, 14, 6], + "faces": { + "north": { + "uv": [10, 2, 12, 3], + "texture": "#2" + }, + "east": { + "uv": [0, 0, 2, 1], + "texture": "#missing" + }, + "south": { + "uv": [0, 0, 2, 1], + "texture": "#missing" + }, + "west": { + "uv": [4, 2, 6, 3], + "texture": "#2" + }, + "up": { + "uv": [4, 4, 6, 6], + "texture": "#2" + }, + "down": { + "uv": [4, 4, 6, 6], + "texture": "#2" + } + } + }, + { + "name": "part2", + "from": [4, 13, 10], + "to": [6, 14, 12], + "faces": { + "north": { + "uv": [0, 0, 2, 1], + "texture": "#missing" + }, + "east": { + "uv": [0, 0, 2, 1], + "texture": "#missing" + }, + "south": { + "uv": [4, 2, 6, 3], + "texture": "#2" + }, + "west": { + "uv": [10, 2, 12, 3], + "texture": "#2" + }, + "up": { + "uv": [4, 10, 6, 12], + "texture": "#2" + }, + "down": { + "uv": [4, 10, 6, 12], + "texture": "#2" + } + } + }, + { + "name": "part3", + "from": [10, 13, 4], + "to": [12, 14, 6], + "faces": { + "north": { + "uv": [4, 2, 6, 3], + "texture": "#2" + }, + "east": { + "uv": [10, 2, 12, 3], + "texture": "#2" + }, + "south": { + "uv": [0, 0, 2, 1], + "texture": "#missing" + }, + "west": { + "uv": [0, 0, 2, 1], + "texture": "#missing" + }, + "up": { + "uv": [10, 4, 12, 6], + "texture": "#2" + }, + "down": { + "uv": [10, 4, 12, 6], + "texture": "#2" + } + } + }, + { + "name": "part4", + "from": [10, 13, 10], + "to": [12, 14, 12], + "faces": { + "north": { + "uv": [0, 0, 2, 1], + "texture": "#missing" + }, + "east": { + "uv": [4, 2, 6, 3], + "texture": "#2" + }, + "south": { + "uv": [10, 2, 12, 3], + "texture": "#2" + }, + "west": { + "uv": [0, 0, 2, 1], + "texture": "#missing" + }, + "up": { + "uv": [10, 10, 12, 12], + "texture": "#2" + }, + "down": { + "uv": [10, 10, 12, 12], + "texture": "#2" + } + } + }, + { + "name": "part5", + "from": [10, 13, 6], + "to": [13, 14, 10], + "faces": { + "north": { + "uv": [3, 2, 6, 3], + "texture": "#2" + }, + "east": { + "uv": [6, 2, 10, 3], + "texture": "#2" + }, + "south": { + "uv": [10, 2, 13, 3], + "texture": "#2" + }, + "west": { + "uv": [0, 0, 4, 1], + "texture": "#missing" + }, + "up": { + "uv": [10, 6, 13, 10], + "texture": "#2" + }, + "down": { + "uv": [10, 6, 13, 10], + "texture": "#2" + } + } + }, + { + "name": "part6", + "from": [3, 13, 6], + "to": [6, 14, 10], + "faces": { + "north": { + "uv": [10, 2, 13, 3], + "texture": "#2" + }, + "east": { + "uv": [0, 0, 4, 1], + "texture": "#missing" + }, + "south": { + "uv": [3, 2, 6, 3], + "texture": "#2" + }, + "west": { + "uv": [6, 2, 10, 3], + "texture": "#2" + }, + "up": { + "uv": [3, 6, 6, 10], + "texture": "#2" + }, + "down": { + "uv": [3, 6, 6, 10], + "texture": "#2" + } + } + }, + { + "name": "part7", + "from": [6, 13, 3], + "to": [10, 14, 13], + "faces": { + "north": { + "uv": [6, 2, 10, 3], + "texture": "#2" + }, + "east": { + "uv": [3, 1, 13, 2], + "texture": "#2" + }, + "south": { + "uv": [6, 2, 10, 3], + "texture": "#2" + }, + "west": { + "uv": [3, 1, 13, 2], + "texture": "#2" + }, + "up": { + "uv": [6, 3, 10, 13], + "texture": "#2" + }, + "down": { + "uv": [6, 3, 10, 13], + "texture": "#2" + } + } + }, + { + "name": "part1", + "from": [6, 14, 13], + "to": [10, 15, 14], + "faces": { + "north": { + "uv": [6, 1, 10, 2], + "texture": "#2" + }, + "east": { + "uv": [2, 1, 3, 2], + "texture": "#2" + }, + "south": { + "uv": [6, 1, 10, 2], + "texture": "#2" + }, + "west": { + "uv": [13, 1, 14, 2], + "texture": "#2" + }, + "up": { + "uv": [6, 13, 10, 14], + "texture": "#2" + }, + "down": { + "uv": [6, 13, 10, 14], + "texture": "#2" + } + } + }, + { + "name": "part2", + "from": [10, 14, 3], + "to": [12, 15, 4], + "faces": { + "north": { + "uv": [4, 1, 6, 2], + "texture": "#2" + }, + "east": { + "uv": [12, 1, 13, 2], + "texture": "#2" + }, + "south": { + "uv": [4, 1, 6, 2], + "texture": "#2" + }, + "west": { + "uv": [12, 1, 13, 2], + "texture": "#2" + }, + "up": { + "uv": [10, 3, 12, 4], + "texture": "#2" + }, + "down": { + "uv": [10, 3, 12, 4], + "texture": "#2" + } + } + }, + { + "name": "part3", + "from": [4, 14, 12], + "to": [6, 15, 13], + "faces": { + "north": { + "uv": [4, 1, 6, 2], + "texture": "#2" + }, + "east": { + "uv": [12, 1, 13, 2], + "texture": "#2" + }, + "south": { + "uv": [4, 1, 6, 2], + "texture": "#2" + }, + "west": { + "uv": [12, 1, 13, 2], + "texture": "#2" + }, + "up": { + "uv": [4, 12, 6, 13], + "texture": "#2" + }, + "down": { + "uv": [4, 12, 6, 13], + "texture": "#2" + } + } + }, + { + "name": "part4", + "from": [10, 14, 12], + "to": [12, 15, 13], + "faces": { + "north": { + "uv": [10, 1, 12, 2], + "texture": "#2" + }, + "east": { + "uv": [3, 1, 4, 2], + "texture": "#2" + }, + "south": { + "uv": [10, 1, 12, 2], + "texture": "#2" + }, + "west": { + "uv": [3, 1, 4, 2], + "texture": "#2" + }, + "up": { + "uv": [10, 12, 12, 13], + "texture": "#2" + }, + "down": { + "uv": [10, 12, 12, 13], + "texture": "#2" + } + } + }, + { + "name": "part5", + "from": [4, 14, 3], + "to": [6, 15, 4], + "faces": { + "north": { + "uv": [10, 1, 12, 2], + "texture": "#2" + }, + "east": { + "uv": [3, 1, 4, 2], + "texture": "#2" + }, + "south": { + "uv": [10, 1, 12, 2], + "texture": "#2" + }, + "west": { + "uv": [3, 1, 4, 2], + "texture": "#2" + }, + "up": { + "uv": [4, 3, 6, 4], + "texture": "#2" + }, + "down": { + "uv": [4, 3, 6, 4], + "texture": "#2" + } + } + }, + { + "name": "part6", + "from": [3, 14, 4], + "to": [4, 15, 6], + "faces": { + "north": { + "uv": [12, 1, 13, 2], + "texture": "#2" + }, + "east": { + "uv": [4, 1, 6, 2], + "texture": "#2" + }, + "south": { + "uv": [12, 1, 13, 2], + "texture": "#2" + }, + "west": { + "uv": [4, 1, 6, 2], + "texture": "#2" + }, + "up": { + "uv": [3, 4, 4, 6], + "texture": "#2" + }, + "down": { + "uv": [3, 4, 4, 6], + "texture": "#2" + } + } + }, + { + "name": "part7", + "from": [3, 14, 10], + "to": [4, 15, 12], + "faces": { + "north": { + "uv": [3, 1, 4, 2], + "texture": "#2" + }, + "east": { + "uv": [10, 1, 12, 2], + "texture": "#2" + }, + "south": { + "uv": [3, 1, 4, 2], + "texture": "#2" + }, + "west": { + "uv": [10, 1, 12, 2], + "texture": "#2" + }, + "up": { + "uv": [3, 10, 4, 12], + "texture": "#2" + }, + "down": { + "uv": [3, 10, 4, 12], + "texture": "#2" + } + } + }, + { + "name": "part8", + "from": [12, 14, 4], + "to": [13, 15, 6], + "faces": { + "north": { + "uv": [3, 1, 4, 2], + "texture": "#2" + }, + "east": { + "uv": [10, 1, 12, 2], + "texture": "#2" + }, + "south": { + "uv": [3, 1, 4, 2], + "texture": "#2" + }, + "west": { + "uv": [10, 1, 12, 2], + "texture": "#2" + }, + "up": { + "uv": [12, 4, 13, 6], + "texture": "#2" + }, + "down": { + "uv": [12, 4, 13, 6], + "texture": "#2" + } + } + }, + { + "name": "part9", + "from": [12, 14, 10], + "to": [13, 15, 12], + "faces": { + "north": { + "uv": [12, 1, 13, 2], + "texture": "#2" + }, + "east": { + "uv": [4, 1, 6, 2], + "texture": "#2" + }, + "south": { + "uv": [12, 1, 13, 2], + "texture": "#2" + }, + "west": { + "uv": [4, 1, 6, 2], + "texture": "#2" + }, + "up": { + "uv": [12, 10, 13, 12], + "texture": "#2" + }, + "down": { + "uv": [12, 10, 13, 12], + "texture": "#2" + } + } + }, + { + "name": "part10", + "from": [13, 14, 6], + "to": [14, 15, 10], + "faces": { + "north": { + "uv": [2, 1, 3, 2], + "texture": "#2" + }, + "east": { + "uv": [6, 1, 10, 2], + "texture": "#2" + }, + "south": { + "uv": [13, 1, 14, 2], + "texture": "#2" + }, + "west": { + "uv": [6, 1, 10, 2], + "texture": "#2" + }, + "up": { + "uv": [13, 6, 14, 10], + "texture": "#2" + }, + "down": { + "uv": [13, 6, 14, 10], + "texture": "#2" + } + } + }, + { + "name": "part11", + "from": [2, 14, 6], + "to": [3, 15, 10], + "faces": { + "north": { + "uv": [13, 1, 14, 2], + "texture": "#2" + }, + "east": { + "uv": [6, 1, 10, 2], + "texture": "#2" + }, + "south": { + "uv": [2, 1, 3, 2], + "texture": "#2" + }, + "west": { + "uv": [6, 1, 10, 2], + "texture": "#2" + }, + "up": { + "uv": [2, 6, 3, 10], + "texture": "#2" + }, + "down": { + "uv": [2, 6, 3, 10], + "texture": "#2" + } + } + }, + { + "name": "part12", + "from": [6, 14, 2], + "to": [10, 15, 3], + "faces": { + "north": { + "uv": [6, 1, 10, 2], + "texture": "#2" + }, + "east": { + "uv": [13, 1, 14, 2], + "texture": "#2" + }, + "south": { + "uv": [6, 1, 10, 2], + "texture": "#2" + }, + "west": { + "uv": [2, 1, 3, 2], + "texture": "#2" + }, + "up": { + "uv": [6, 2, 10, 3], + "texture": "#2" + }, + "down": { + "uv": [6, 2, 10, 3], + "texture": "#2" + } + } + }, + { + "name": "part1", + "from": [6, 15, 14], + "to": [10, 16, 15], + "faces": { + "north": { + "uv": [6, 0, 10, 1], + "texture": "#2" + }, + "east": { + "uv": [1, 0, 2, 1], + "texture": "#2" + }, + "south": { + "uv": [6, 0, 10, 1], + "texture": "#2" + }, + "west": { + "uv": [14, 0, 15, 1], + "texture": "#2" + }, + "up": { + "uv": [6, 14, 10, 15], + "texture": "#2" + }, + "down": { + "uv": [6, 14, 10, 15], + "texture": "#2" + } + } + }, + { + "name": "part2", + "from": [10, 15, 2], + "to": [12, 16, 3], + "faces": { + "north": { + "uv": [4, 0, 6, 1], + "texture": "#2" + }, + "east": { + "uv": [13, 0, 14, 1], + "texture": "#2" + }, + "south": { + "uv": [4, 0, 6, 1], + "texture": "#2" + }, + "west": { + "uv": [13, 0, 14, 1], + "texture": "#2" + }, + "up": { + "uv": [10, 2, 12, 3], + "texture": "#2" + }, + "down": { + "uv": [10, 2, 12, 3], + "texture": "#2" + } + } + }, + { + "name": "part3", + "from": [4, 15, 13], + "to": [6, 16, 14], + "faces": { + "north": { + "uv": [4, 0, 6, 1], + "texture": "#2" + }, + "east": { + "uv": [13, 0, 14, 1], + "texture": "#2" + }, + "south": { + "uv": [4, 0, 6, 1], + "texture": "#2" + }, + "west": { + "uv": [13, 0, 14, 1], + "texture": "#2" + }, + "up": { + "uv": [4, 13, 6, 14], + "texture": "#2" + }, + "down": { + "uv": [4, 13, 6, 14], + "texture": "#2" + } + } + }, + { + "name": "part4", + "from": [10, 15, 13], + "to": [12, 16, 14], + "faces": { + "north": { + "uv": [10, 0, 12, 1], + "texture": "#2" + }, + "east": { + "uv": [2, 0, 3, 1], + "texture": "#2" + }, + "south": { + "uv": [10, 0, 12, 1], + "texture": "#2" + }, + "west": { + "uv": [2, 0, 3, 1], + "texture": "#2" + }, + "up": { + "uv": [10, 13, 12, 14], + "texture": "#2" + }, + "down": { + "uv": [10, 13, 12, 14], + "texture": "#2" + } + } + }, + { + "name": "part5", + "from": [4, 15, 2], + "to": [6, 16, 3], + "faces": { + "north": { + "uv": [10, 0, 12, 1], + "texture": "#2" + }, + "east": { + "uv": [2, 0, 3, 1], + "texture": "#2" + }, + "south": { + "uv": [10, 0, 12, 1], + "texture": "#2" + }, + "west": { + "uv": [2, 0, 3, 1], + "texture": "#2" + }, + "up": { + "uv": [4, 2, 6, 3], + "texture": "#2" + }, + "down": { + "uv": [4, 2, 6, 3], + "texture": "#2" + } + } + }, + { + "name": "part6", + "from": [2, 15, 4], + "to": [3, 16, 6], + "faces": { + "north": { + "uv": [13, 0, 14, 1], + "texture": "#2" + }, + "east": { + "uv": [4, 0, 6, 1], + "texture": "#2" + }, + "south": { + "uv": [13, 0, 14, 1], + "texture": "#2" + }, + "west": { + "uv": [4, 0, 6, 1], + "texture": "#2" + }, + "up": { + "uv": [2, 4, 3, 6], + "texture": "#2" + }, + "down": { + "uv": [2, 4, 3, 6], + "texture": "#2" + } + } + }, + { + "name": "part7", + "from": [2, 15, 10], + "to": [3, 16, 12], + "faces": { + "north": { + "uv": [2, 0, 3, 1], + "texture": "#2" + }, + "east": { + "uv": [10, 0, 12, 1], + "texture": "#2" + }, + "south": { + "uv": [2, 0, 3, 1], + "texture": "#2" + }, + "west": { + "uv": [10, 0, 12, 1], + "texture": "#2" + }, + "up": { + "uv": [2, 10, 3, 12], + "texture": "#2" + }, + "down": { + "uv": [2, 10, 3, 12], + "texture": "#2" + } + } + }, + { + "name": "part8", + "from": [13, 15, 4], + "to": [14, 16, 6], + "faces": { + "north": { + "uv": [2, 0, 3, 1], + "texture": "#2" + }, + "east": { + "uv": [10, 0, 12, 1], + "texture": "#2" + }, + "south": { + "uv": [2, 0, 3, 1], + "texture": "#2" + }, + "west": { + "uv": [10, 0, 12, 1], + "texture": "#2" + }, + "up": { + "uv": [13, 4, 14, 6], + "texture": "#2" + }, + "down": { + "uv": [13, 4, 14, 6], + "texture": "#2" + } + } + }, + { + "name": "part9", + "from": [13, 15, 10], + "to": [14, 16, 12], + "faces": { + "north": { + "uv": [13, 0, 14, 1], + "texture": "#2" + }, + "east": { + "uv": [4, 0, 6, 1], + "texture": "#2" + }, + "south": { + "uv": [13, 0, 14, 1], + "texture": "#2" + }, + "west": { + "uv": [4, 0, 6, 1], + "texture": "#2" + }, + "up": { + "uv": [13, 10, 14, 12], + "texture": "#2" + }, + "down": { + "uv": [13, 10, 14, 12], + "texture": "#2" + } + } + }, + { + "name": "part10", + "from": [14, 15, 6], + "to": [15, 16, 10], + "faces": { + "north": { + "uv": [1, 0, 2, 1], + "texture": "#2" + }, + "east": { + "uv": [6, 0, 10, 1], + "texture": "#2" + }, + "south": { + "uv": [14, 0, 15, 1], + "texture": "#2" + }, + "west": { + "uv": [6, 0, 10, 1], + "texture": "#2" + }, + "up": { + "uv": [14, 6, 15, 10], + "texture": "#2" + }, + "down": { + "uv": [14, 6, 15, 10], + "texture": "#2" + } + } + }, + { + "name": "part11", + "from": [1, 15, 6], + "to": [2, 16, 10], + "faces": { + "north": { + "uv": [14, 0, 15, 1], + "texture": "#2" + }, + "east": { + "uv": [6, 0, 10, 1], + "texture": "#2" + }, + "south": { + "uv": [1, 0, 2, 1], + "texture": "#2" + }, + "west": { + "uv": [6, 0, 10, 1], + "texture": "#2" + }, + "up": { + "uv": [1, 6, 2, 10], + "texture": "#2" + }, + "down": { + "uv": [1, 6, 2, 10], + "texture": "#2" + } + } + }, + { + "name": "part12", + "from": [6, 15, 1], + "to": [10, 16, 2], + "faces": { + "north": { + "uv": [6, 0, 10, 1], + "texture": "#2" + }, + "east": { + "uv": [14, 0, 15, 1], + "texture": "#2" + }, + "south": { + "uv": [6, 0, 10, 1], + "texture": "#2" + }, + "west": { + "uv": [1, 0, 2, 1], + "texture": "#2" + }, + "up": { + "uv": [6, 1, 10, 2], + "texture": "#2" + }, + "down": { + "uv": [6, 1, 10, 2], + "texture": "#2" + } + } + }, + { + "name": "part13", + "from": [12, 15, 12], + "to": [13, 16, 13], + "faces": { + "north": { + "uv": [12, 0, 13, 1], + "texture": "#2" + }, + "east": { + "uv": [3, 0, 4, 1], + "texture": "#2" + }, + "south": { + "uv": [12, 0, 13, 1], + "texture": "#2" + }, + "west": { + "uv": [3, 0, 4, 1], + "texture": "#2" + }, + "up": { + "uv": [12, 12, 13, 13], + "texture": "#2" + }, + "down": { + "uv": [12, 12, 13, 13], + "texture": "#2" + } + } + }, + { + "name": "part14", + "from": [3, 15, 12], + "to": [4, 16, 13], + "faces": { + "north": { + "uv": [3, 0, 4, 1], + "texture": "#2" + }, + "east": { + "uv": [12, 0, 13, 1], + "texture": "#2" + }, + "south": { + "uv": [3, 0, 4, 1], + "texture": "#2" + }, + "west": { + "uv": [12, 0, 13, 1], + "texture": "#2" + }, + "up": { + "uv": [3, 12, 4, 13], + "texture": "#2" + }, + "down": { + "uv": [3, 12, 4, 13], + "texture": "#2" + } + } + }, + { + "name": "part15", + "from": [12, 15, 3], + "to": [13, 16, 4], + "faces": { + "north": { + "uv": [3, 0, 4, 1], + "texture": "#2" + }, + "east": { + "uv": [12, 0, 13, 1], + "texture": "#2" + }, + "south": { + "uv": [3, 0, 4, 1], + "texture": "#2" + }, + "west": { + "uv": [12, 0, 13, 1], + "texture": "#2" + }, + "up": { + "uv": [12, 3, 13, 4], + "texture": "#2" + }, + "down": { + "uv": [12, 3, 13, 4], + "texture": "#2" + } + } + }, + { + "name": "part16", + "from": [3, 15, 3], + "to": [4, 16, 4], + "faces": { + "north": { + "uv": [12, 0, 13, 1], + "texture": "#2" + }, + "east": { + "uv": [3, 0, 4, 1], + "texture": "#2" + }, + "south": { + "uv": [12, 0, 13, 1], + "texture": "#2" + }, + "west": { + "uv": [3, 0, 4, 1], + "texture": "#2" + }, + "up": { + "uv": [3, 3, 4, 4], + "texture": "#2" + }, + "down": { + "uv": [3, 3, 4, 4], + "texture": "#2" + } + } + } + ], + "groups": [ + { + "name": "pedestal", + "isOpen": true, + "export": true, + "visibility": true, + "children": [0, 1, 2, 3, 4] + }, + { + "name": "bowl", + "isOpen": false, + "export": true, + "visibility": true, + "children": [ + { + "name": "bottom", + "isOpen": true, + "export": true, + "visibility": true, + "children": [5, 6, 7, 8, 9, 10, 11] + }, + { + "name": "edge1", + "isOpen": false, + "export": true, + "visibility": true, + "children": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23] + }, + { + "name": "edge2", + "isOpen": false, + "export": true, + "visibility": true, + "children": [24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/naturesaura/textures/blocks/stripped_oak_log.png b/src/main/resources/assets/naturesaura/textures/blocks/stripped_oak_log.png new file mode 100644 index 00000000..0a1d34c3 Binary files /dev/null and b/src/main/resources/assets/naturesaura/textures/blocks/stripped_oak_log.png differ diff --git a/src/main/resources/assets/naturesaura/textures/blocks/stripped_oak_log_top.png b/src/main/resources/assets/naturesaura/textures/blocks/stripped_oak_log_top.png new file mode 100644 index 00000000..3c75f67f Binary files /dev/null and b/src/main/resources/assets/naturesaura/textures/blocks/stripped_oak_log_top.png differ