Skip to content

Commit

Permalink
Added crafting tables (wipes tears from face)
Browse files Browse the repository at this point in the history
  • Loading branch information
Alexander Behrhof committed Jul 12, 2015
1 parent 062f52e commit 9921cf9
Show file tree
Hide file tree
Showing 77 changed files with 533 additions and 22 deletions.
2 changes: 0 additions & 2 deletions src/main/java/com/progwml6/natura/Natura.java
Expand Up @@ -16,11 +16,9 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import com.progwml6.natura.blocks.BlocksNatura;
import com.progwml6.natura.common.CommonProxy;
import com.progwml6.natura.common.NaturaEvents;
import com.progwml6.natura.common.PHNatura;
import com.progwml6.natura.items.ItemsNatura;
import com.progwml6.natura.worldgen.CloudWorldgen;
import com.progwml6.natura.worldgen.CropWorldGen;

Expand Down
5 changes: 4 additions & 1 deletion src/main/java/com/progwml6/natura/blocks/BlocksNatura.java
Expand Up @@ -8,9 +8,11 @@
import com.progwml6.natura.blocks.crops.BlockNaturaBarleyCrop;
import com.progwml6.natura.blocks.crops.BlockNaturaCottonCrop;
import com.progwml6.natura.blocks.material.CloudMaterial;
import com.progwml6.natura.blocks.misc.BlockNaturaWorkbench;
import com.progwml6.natura.blocks.natural.BlockClouds;
import com.progwml6.natura.blocks.natural.BlockNaturaLogs;
import com.progwml6.natura.blocks.natural.BlockNaturaPlanks;
import com.progwml6.natura.items.itemblocks.misc.ItemBlockWorkbench;
import com.progwml6.natura.items.itemblocks.natural.ItemBlockClouds;
import com.progwml6.natura.items.itemblocks.natural.ItemBlockNaturaLogs;
import com.progwml6.natura.items.itemblocks.natural.ItemBlockNaturaPlanks;
Expand All @@ -19,7 +21,7 @@ public class BlocksNatura
{
public static Material cloud = new CloudMaterial();

public static Block clouds, logs, planks, cottonCrop, barleyCrop, fence;
public static Block clouds, logs, planks, cottonCrop, barleyCrop, fence, crafting_table;

public static void preInit()
{
Expand All @@ -28,6 +30,7 @@ public static void preInit()
planks = registerBlock("planks", ItemBlockNaturaPlanks.class, new BlockNaturaPlanks());
cottonCrop = registerBlock("cotton_crops", ItemBlock.class, new BlockNaturaCottonCrop());
barleyCrop = registerBlock("barley_crops", ItemBlock.class, new BlockNaturaBarleyCrop());
crafting_table = registerBlock("crafting_table", ItemBlockWorkbench.class, new BlockNaturaWorkbench());
//this.fence = this.registerBlock("fence", ItemBlockVariants.class, new BlockNaturaFence());
}

Expand Down
@@ -0,0 +1,107 @@
package com.progwml6.natura.blocks.misc;

import java.util.List;

import com.progwml6.natura.Natura;
import com.progwml6.natura.NaturaCreativeTabs;
import com.progwml6.natura.network.NaturaGuiHandler;

import mantle.blocks.util.IBlockWithVariants;
import mantle.blocks.util.blockstates.BlockVariant;
import mantle.blocks.util.blockstates.PropertyVariant;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.state.BlockState;
import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

public class BlockNaturaWorkbench extends Block implements IBlockWithVariants
{
public static final BlockVariant EUCALYPTUS = new BlockVariant(0, "table_eucalyptus"),
SAKURA = new BlockVariant(1, "table_sakura"),
GHOSTWOOD = new BlockVariant(2, "table_ghostwood"),
REDWOOD = new BlockVariant(3, "table_redwood"),
BLOODWOOD = new BlockVariant(4, "table_bloodwood"),
HOPSEED = new BlockVariant(5, "table_hopseed"),
MAPLE = new BlockVariant(6, "table_maple"),
SILVERBELL = new BlockVariant(7, "table_silverbell"),
PURPLEHEART = new BlockVariant(8, "table_purpleheart"),
TIGER = new BlockVariant(9, "table_tiger"),
WILLOW = new BlockVariant(10, "table_willow"),
DARKWOOD = new BlockVariant(11, "table_darkwood"),
FUSEWOOD = new BlockVariant(12, "table_fusewood");

public static final PropertyVariant WOOD_TYPE = PropertyVariant.create("variant", EUCALYPTUS, SAKURA, GHOSTWOOD, REDWOOD, BLOODWOOD, HOPSEED, MAPLE, SILVERBELL, PURPLEHEART, TIGER, WILLOW, DARKWOOD, FUSEWOOD);

public BlockNaturaWorkbench()
{
super(Material.wood);

this.setHardness(2.5f);
this.setStepSound(Block.soundTypeWood);

this.setDefaultState(this.getBlockState().getBaseState().withProperty(WOOD_TYPE, EUCALYPTUS));
this.setCreativeTab(NaturaCreativeTabs.tabMisc);
}

@Override
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumFacing side, float hitX, float hitY, float hitZ)
{
if (!world.isRemote)
{
player.openGui(Natura.INSTANCE, NaturaGuiHandler.WORKBENCH_ID, world, pos.getX(), pos.getY(), pos.getZ());
}

return true;
}

@Override
@SuppressWarnings({ "rawtypes", "unchecked" })
@SideOnly(Side.CLIENT)
public void getSubBlocks(Item itemIn, CreativeTabs tab, List list)
{
for (BlockVariant variant : WOOD_TYPE.getAllowedValues())
{
list.add(new ItemStack(itemIn, 1, variant.getMeta()));
}
}

@Override
public IBlockState getStateFromMeta(int meta)
{
return this.getDefaultState().withProperty(WOOD_TYPE, WOOD_TYPE.fromMeta(meta));
}

@Override
public int getMetaFromState(IBlockState state)
{
return ((BlockVariant) state.getValue(WOOD_TYPE)).getMeta();
}

@Override
protected BlockState createBlockState()
{
return new BlockState(this, new IProperty[] { WOOD_TYPE });
}

@Override
public int damageDropped(IBlockState state)
{
return ((BlockVariant) state.getValue(WOOD_TYPE)).getMeta();
}

@Override
public String getVariantNameFromStack(ItemStack stack)
{
return WOOD_TYPE.fromMeta(stack.getMetadata()).getName();
}
}
@@ -1,16 +1,17 @@
package com.progwml6.natura.client.misc.models;

import mantle.client.ModelVariant;
import net.minecraft.client.Minecraft;

import com.progwml6.natura.Natura;
import com.progwml6.natura.NaturaCreativeTabs;
import com.progwml6.natura.blocks.BlocksNatura;
import com.progwml6.natura.blocks.misc.BlockNaturaWorkbench;
import com.progwml6.natura.blocks.natural.BlockClouds;
import com.progwml6.natura.blocks.natural.BlockNaturaLogs;
import com.progwml6.natura.blocks.natural.BlockNaturaPlanks;
import com.progwml6.natura.items.ItemsNatura;

import mantle.client.ModelVariant;
import net.minecraft.client.Minecraft;

public class ModelNatura extends ModelVariant
{
public ModelNatura()
Expand All @@ -23,7 +24,8 @@ public void preInit()
this.addVariantNames(BlocksNatura.clouds, "cloud_white", "cloud_gray", "cloud_dark", "cloud_sulfur");
this.addVariantNames(BlocksNatura.logs, "eucalyptus_log", "sakura_log", "ghostwood_log", "hopseed_log");
this.addVariantNames(BlocksNatura.planks, "eucalyptus_planks", "sakura_planks", "ghostwood_planks", "redwood_planks", "bloodwood_planks", "hopseed_planks", "maple_planks", "silverbell_planks", "purpleheart_planks", "tiger_planks", "willow_planks", "darkwood_planks", "fusewood_planks", "redwood_bark", "redwood_heart", "redwood_root");

this.addVariantNames(BlocksNatura.crafting_table, "table_eucalyptus", "table_sakura", "table_ghostwood", "table_redwood", "table_bloodwood", "table_hopseed", "table_maple", "table_silverbell", "table_purpleheart", "table_tiger", "table_willow", "table_darkwood", "table_fusewood");

this.addVariantNames(ItemsNatura.materials, "materials_barley_plant", "materials_barley_flour", "materials_wheat_flour", "materials_cotton_plant", "materials_sulfur", "materials_ghostwood_fletching", "materials_leather_imp", "materials_flamestring", "materials_dye_blue");
this.addVariantNames(ItemsNatura.impMeat, "impmeat_raw", "impmeat_cooked");
this.addVariantNames(ItemsNatura.bowlEmpty, "bowl_empty_bowl", "bowl_empty_ghostwood", "bowl_empty_bloodwood", "bowl_empty_darkwood", "bowl_empty_fusewood");
Expand All @@ -33,17 +35,17 @@ public void init()
{
this.registerBlockModel(BlocksNatura.cottonCrop);
this.registerBlockModel(BlocksNatura.barleyCrop);

this.registerBlockModel(BlocksNatura.clouds, BlockClouds.WHITE.getMeta(), getResource("cloud_white"));
this.registerBlockModel(BlocksNatura.clouds, BlockClouds.GREY.getMeta(), getResource("cloud_gray"));
this.registerBlockModel(BlocksNatura.clouds, BlockClouds.DARK.getMeta(), getResource("cloud_dark"));
this.registerBlockModel(BlocksNatura.clouds, BlockClouds.SULFER.getMeta(), getResource("cloud_sulfur"));

this.registerBlockModel(BlocksNatura.logs, BlockNaturaLogs.EUCALYPTUS.getMeta(), getResource("eucalyptus_log"));
this.registerBlockModel(BlocksNatura.logs, BlockNaturaLogs.SAKURA.getMeta(), getResource("sakura_log"));
this.registerBlockModel(BlocksNatura.logs, BlockNaturaLogs.GHOSTWOOD.getMeta(), getResource("ghostwood_log"));
this.registerBlockModel(BlocksNatura.logs, BlockNaturaLogs.HOPSEED.getMeta(), getResource("hopseed_log"));

this.registerBlockModel(BlocksNatura.planks, BlockNaturaPlanks.EUCALYPTUS.getMeta(), getResource("eucalyptus_planks"));
this.registerBlockModel(BlocksNatura.planks, BlockNaturaPlanks.SAKURA.getMeta(), getResource("sakura_planks"));
this.registerBlockModel(BlocksNatura.planks, BlockNaturaPlanks.GHOSTWOOD.getMeta(), getResource("ghostwood_planks"));
Expand All @@ -61,9 +63,23 @@ public void init()
this.registerBlockModel(BlocksNatura.planks, BlockNaturaPlanks.REDWOOD_HEART.getMeta(), getResource("redwood_heart"));
this.registerBlockModel(BlocksNatura.planks, BlockNaturaPlanks.REDWOOD_ROOT.getMeta(), getResource("redwood_root"));

this.registerBlockModel(BlocksNatura.crafting_table, BlockNaturaWorkbench.EUCALYPTUS.getMeta(), getResource("table_eucalyptus"));
this.registerBlockModel(BlocksNatura.crafting_table, BlockNaturaWorkbench.SAKURA.getMeta(), getResource("table_sakura"));
this.registerBlockModel(BlocksNatura.crafting_table, BlockNaturaWorkbench.GHOSTWOOD.getMeta(), getResource("table_ghostwood"));
this.registerBlockModel(BlocksNatura.crafting_table, BlockNaturaWorkbench.REDWOOD.getMeta(), getResource("table_redwood"));
this.registerBlockModel(BlocksNatura.crafting_table, BlockNaturaWorkbench.BLOODWOOD.getMeta(), getResource("table_bloodwood"));
this.registerBlockModel(BlocksNatura.crafting_table, BlockNaturaWorkbench.HOPSEED.getMeta(), getResource("table_hopseed"));
this.registerBlockModel(BlocksNatura.crafting_table, BlockNaturaWorkbench.MAPLE.getMeta(), getResource("table_maple"));
this.registerBlockModel(BlocksNatura.crafting_table, BlockNaturaWorkbench.SILVERBELL.getMeta(), getResource("table_silverbell"));
this.registerBlockModel(BlocksNatura.crafting_table, BlockNaturaWorkbench.PURPLEHEART.getMeta(), getResource("table_purpleheart"));
this.registerBlockModel(BlocksNatura.crafting_table, BlockNaturaWorkbench.TIGER.getMeta(), getResource("table_tiger"));
this.registerBlockModel(BlocksNatura.crafting_table, BlockNaturaWorkbench.WILLOW.getMeta(), getResource("table_willow"));
this.registerBlockModel(BlocksNatura.crafting_table, BlockNaturaWorkbench.DARKWOOD.getMeta(), getResource("table_darkwood"));
this.registerBlockModel(BlocksNatura.crafting_table, BlockNaturaWorkbench.FUSEWOOD.getMeta(), getResource("table_fusewood"));

this.registerItemModel(ItemsNatura.cotton_seeds);
this.registerItemModel(ItemsNatura.barley_seeds);

this.registerItemModel(ItemsNatura.materials, 0, getResource("materials_barley_plant"));
this.registerItemModel(ItemsNatura.materials, 1, getResource("materials_barley_flour"));
this.registerItemModel(ItemsNatura.materials, 2, getResource("materials_wheat_flour"));
Expand All @@ -73,10 +89,10 @@ public void init()
this.registerItemModel(ItemsNatura.materials, 6, getResource("materials_leather_imp"));
this.registerItemModel(ItemsNatura.materials, 7, getResource("materials_flamestring"));
this.registerItemModel(ItemsNatura.materials, 8, getResource("materials_dye_blue"));

this.registerItemModel(ItemsNatura.impMeat, 0, getResource("impmeat_raw"));
this.registerItemModel(ItemsNatura.impMeat, 1, getResource("impmeat_cooked"));

this.registerItemModel(ItemsNatura.bowlEmpty, 0, getResource("bowl_empty_bowl"));
this.registerItemModel(ItemsNatura.bowlEmpty, 1, getResource("bowl_empty_ghostwood"));
this.registerItemModel(ItemsNatura.bowlEmpty, 2, getResource("bowl_empty_bloodwood"));
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/com/progwml6/natura/common/CommonProxy.java
Expand Up @@ -7,6 +7,7 @@
import net.minecraftforge.common.BiomeDictionary;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.network.NetworkRegistry;
import net.minecraftforge.fml.common.registry.EntityRegistry;

import com.progwml6.natura.Natura;
Expand All @@ -17,11 +18,14 @@
import com.progwml6.natura.entity.ImpEntity;
import com.progwml6.natura.entity.NitroCreeper;
import com.progwml6.natura.items.ItemsNatura;
import com.progwml6.natura.network.NaturaGuiHandler;

public class CommonProxy
{
public void preInit(FMLPreInitializationEvent event)
{
NetworkRegistry.INSTANCE.registerGuiHandler(Natura.INSTANCE, new NaturaGuiHandler());

BlocksNatura.preInit();
ItemsNatura.preInit();
}
Expand Down
@@ -0,0 +1,30 @@
package com.progwml6.natura.containers;

import com.progwml6.natura.blocks.BlocksNatura;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.ContainerWorkbench;
import net.minecraft.util.BlockPos;
import net.minecraft.world.World;

public class ContainerNaturaWorkbench extends ContainerWorkbench
{
private World world;

private BlockPos pos;

public ContainerNaturaWorkbench(InventoryPlayer inventory, World world, BlockPos pos)
{
super(inventory, world, pos);

this.world = world;
this.pos = pos;
}

@Override
public boolean canInteractWith(EntityPlayer player)
{
return this.world.getBlockState(this.pos).getBlock() == BlocksNatura.crafting_table && player.getDistanceSq(this.pos.getX() + 0.5D, this.pos.getY() + 0.5D, this.pos.getZ() + 0.5D) <= 64.0D;
}
}
@@ -0,0 +1,20 @@
package com.progwml6.natura.items.itemblocks.misc;

import mantle.blocks.util.ItemBlockVariants;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;

public class ItemBlockWorkbench extends ItemBlockVariants
{
public ItemBlockWorkbench(Block block)
{
super(block);
}

@Override
public String getUnlocalizedName(ItemStack stack)
{
return Blocks.crafting_table.getUnlocalizedName();
}
}
39 changes: 39 additions & 0 deletions src/main/java/com/progwml6/natura/network/NaturaGuiHandler.java
@@ -0,0 +1,39 @@
package com.progwml6.natura.network;

import com.progwml6.natura.containers.ContainerNaturaWorkbench;

import net.minecraft.client.gui.inventory.GuiCrafting;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.network.IGuiHandler;

public class NaturaGuiHandler implements IGuiHandler
{
public static final int WORKBENCH_ID = 1;

@Override
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
{
switch (ID)
{
case WORKBENCH_ID:
return new ContainerNaturaWorkbench(player.inventory, world, new BlockPos(x, y, z));
default:
return null;
}
}

@Override
public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
{
switch (ID)
{
case WORKBENCH_ID:
return new GuiCrafting(player.inventory, world, new BlockPos(x, y, z));
default:
return null;
}
}

}
17 changes: 17 additions & 0 deletions src/main/resources/assets/natura/blockstates/crafting_table.json
@@ -0,0 +1,17 @@
{
"variants": {
"variant=table_eucalyptus": { "model": "natura:table_eucalyptus" },
"variant=table_sakura": { "model": "natura:table_sakura" },
"variant=table_ghostwood": { "model": "natura:table_ghostwood" },
"variant=table_redwood": { "model": "natura:table_redwood" },
"variant=table_bloodwood": { "model": "natura:table_bloodwood" },
"variant=table_hopseed": { "model": "natura:table_hopseed" },
"variant=table_maple": { "model": "natura:table_maple" },
"variant=table_silverbell": { "model": "natura:table_silverbell" },
"variant=table_purpleheart": { "model": "natura:table_purpleheart" },
"variant=table_tiger": { "model": "natura:table_tiger" },
"variant=table_willow": { "model": "natura:table_willow" },
"variant=table_darkwood": { "model": "natura:table_darkwood" },
"variant=table_fusewood": { "model": "natura:table_fusewood" }
}
}
3 changes: 0 additions & 3 deletions src/main/resources/assets/natura/models/block/clouds.json

This file was deleted.

3 changes: 0 additions & 3 deletions src/main/resources/assets/natura/models/block/logs.json

This file was deleted.

3 changes: 0 additions & 3 deletions src/main/resources/assets/natura/models/block/planks.json

This file was deleted.

12 changes: 12 additions & 0 deletions src/main/resources/assets/natura/models/block/table_bloodwood.json
@@ -0,0 +1,12 @@
{
"parent": "block/cube",
"textures": {
"particle": "natura:blocks/bloodwood_workbench_face",
"down": "natura:blocks/bloodwood_planks",
"up": "natura:blocks/bloodwood_workbench_top",
"north": "natura:blocks/bloodwood_workbench_face",
"east": "natura:blocks/bloodwood_workbench_side",
"south": "natura:blocks/bloodwood_workbench_side",
"west": "natura:blocks/bloodwood_workbench_face"
}
}

0 comments on commit 9921cf9

Please sign in to comment.