add slot manager for crafting check comment
This commit is contained in:
13
1.11/To-Dos
13
1.11/To-Dos
@@ -10,12 +10,13 @@ To-Dos
|
|||||||
- [ ] Iron Success Output
|
- [ ] Iron Success Output
|
||||||
- [ ] Iron Post Fail Output
|
- [ ] Iron Post Fail Output
|
||||||
|
|
||||||
- [ ] Crucible
|
- [X] Soft Crucible
|
||||||
- [x] Model
|
- [x] Model
|
||||||
- [ ] Block
|
- [x] Item
|
||||||
- [ ] Tile
|
|
||||||
|
|
||||||
- [ ] Tongs
|
|
||||||
- [ ] Model
|
- [x] Tongs
|
||||||
- [ ] Item(s)
|
- [x] Model
|
||||||
|
- [x] Item(s)
|
||||||
|
- [ ] Functionality
|
||||||
|
|
||||||
|
|||||||
@@ -52,7 +52,8 @@ public class ModInfo {
|
|||||||
public enum ForgecraftBlocks {
|
public enum ForgecraftBlocks {
|
||||||
FIREBOX("firebox", "firebox"),
|
FIREBOX("firebox", "firebox"),
|
||||||
PISTONBELLOWS("pistonbellows", "pistonbellows"),
|
PISTONBELLOWS("pistonbellows", "pistonbellows"),
|
||||||
BLOOMERY("bloomery", "bloomery");
|
BLOOMERY("bloomery", "bloomery"),
|
||||||
|
EMPTYCRUCIBLE("emptycrucible", "emptycrucible");
|
||||||
|
|
||||||
private String unlocalizedName;
|
private String unlocalizedName;
|
||||||
private String registryName;
|
private String registryName;
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import net.minecraftforge.fml.relauncher.Side;
|
|||||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
import nmd.primal.forgecraft.CommonUtils;
|
import nmd.primal.forgecraft.CommonUtils;
|
||||||
import nmd.primal.forgecraft.ModInfo;
|
import nmd.primal.forgecraft.ModInfo;
|
||||||
|
import nmd.primal.forgecraft.init.ModItems;
|
||||||
import nmd.primal.forgecraft.tiles.TileBloomery;
|
import nmd.primal.forgecraft.tiles.TileBloomery;
|
||||||
import nmd.primal.forgecraft.tiles.TileFirebox;
|
import nmd.primal.forgecraft.tiles.TileFirebox;
|
||||||
|
|
||||||
@@ -65,6 +66,7 @@ public class Bloomery extends CustomContainerFacing implements ITileEntityProvid
|
|||||||
if (tile != null) {
|
if (tile != null) {
|
||||||
ItemStack pItem = player.inventory.getCurrentItem();
|
ItemStack pItem = player.inventory.getCurrentItem();
|
||||||
ItemStack tileItem = tile.getSlotStack(0);
|
ItemStack tileItem = tile.getSlotStack(0);
|
||||||
|
ItemStack tileItem1 = tile.getSlotStack(1);
|
||||||
if(pItem.isEmpty()) {
|
if(pItem.isEmpty()) {
|
||||||
/*if (player.isSneaking()) {
|
/*if (player.isSneaking()) {
|
||||||
if (!tileItem.isEmpty()) {
|
if (!tileItem.isEmpty()) {
|
||||||
@@ -101,6 +103,7 @@ public class Bloomery extends CustomContainerFacing implements ITileEntityProvid
|
|||||||
if(tileItem.getCount() < 64){
|
if(tileItem.getCount() < 64){
|
||||||
if(tileItem.getCount() + pItem.getCount() <= 64){
|
if(tileItem.getCount() + pItem.getCount() <= 64){
|
||||||
tileItem.grow(pItem.getCount());
|
tileItem.grow(pItem.getCount());
|
||||||
|
player.inventory.setInventorySlotContents(player.inventory.currentItem, ItemStack.EMPTY);
|
||||||
tile.markDirty();
|
tile.markDirty();
|
||||||
tile.updateBlock();
|
tile.updateBlock();
|
||||||
return true;
|
return true;
|
||||||
@@ -121,6 +124,18 @@ public class Bloomery extends CustomContainerFacing implements ITileEntityProvid
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if((!pItem.isEmpty()) && tile.isItemValidForSlot(1, pItem)) {
|
||||||
|
if (!tileItem1.isEmpty()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(tileItem1.isEmpty()){
|
||||||
|
ItemStack tempItem = new ItemStack(ModItems.softcrucible, 1);
|
||||||
|
tile.setSlotStack(1, tempItem);
|
||||||
|
pItem.shrink(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(!pItem.isEmpty()) {
|
if(!pItem.isEmpty()) {
|
||||||
if(pItem.getItem() == Item.getItemFromBlock(Blocks.STONE_SLAB)){
|
if(pItem.getItem() == Item.getItemFromBlock(Blocks.STONE_SLAB)){
|
||||||
world.setBlockState(pos, state.withProperty(COVERED, true), 2);
|
world.setBlockState(pos, state.withProperty(COVERED, true), 2);
|
||||||
|
|||||||
@@ -0,0 +1,69 @@
|
|||||||
|
package nmd.primal.forgecraft.blocks;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
|
import net.minecraft.block.state.IBlockState;
|
||||||
|
import net.minecraft.util.EnumBlockRenderType;
|
||||||
|
import net.minecraft.util.EnumFacing;
|
||||||
|
import net.minecraft.util.math.AxisAlignedBB;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.world.IBlockAccess;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
import nmd.primal.forgecraft.ModInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by mminaie on 1/24/17.
|
||||||
|
*/
|
||||||
|
public class EmptyCrucible extends Block {
|
||||||
|
|
||||||
|
protected static final AxisAlignedBB boundBox = new AxisAlignedBB(4/16D, 0.0D, 4/16D, 12/16D, 7/16D, 12/16D);
|
||||||
|
|
||||||
|
public EmptyCrucible(Material material, String registryName) {
|
||||||
|
super(material);
|
||||||
|
setUnlocalizedName(ModInfo.ForgecraftBlocks.EMPTYCRUCIBLE.getUnlocalizedName());
|
||||||
|
setRegistryName(registryName);
|
||||||
|
//setRegistryName(ModInfo.ForgecraftBlocks.FIREBOX.getRegistryName());
|
||||||
|
setCreativeTab(ModInfo.TAB_FORGECRAFT);
|
||||||
|
setHardness(3.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
|
||||||
|
{
|
||||||
|
return boundBox;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isFullCube(IBlockState state)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isFullyOpaque(IBlockState state)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isOpaqueCube(IBlockState state)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumBlockRenderType getRenderType(IBlockState state)
|
||||||
|
{
|
||||||
|
return EnumBlockRenderType.MODEL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -117,6 +117,7 @@ public class Firebox extends CustomContainerFacing implements ITileEntityProvide
|
|||||||
if(tileItem.getCount() < 64){
|
if(tileItem.getCount() < 64){
|
||||||
if(tileItem.getCount() + pItem.getCount() <= 64){
|
if(tileItem.getCount() + pItem.getCount() <= 64){
|
||||||
tileItem.grow(pItem.getCount());
|
tileItem.grow(pItem.getCount());
|
||||||
|
player.inventory.setInventorySlotContents(player.inventory.currentItem, ItemStack.EMPTY);
|
||||||
tile.markDirty();
|
tile.markDirty();
|
||||||
tile.updateBlock();
|
tile.updateBlock();
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -0,0 +1,106 @@
|
|||||||
|
package nmd.primal.forgecraft.crafting;
|
||||||
|
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by mminaie on 1/24/17.
|
||||||
|
*/
|
||||||
|
public class BloomeryCrafting {
|
||||||
|
// ***************************************************************************** //
|
||||||
|
// Recipe Handler Bloomery
|
||||||
|
// ***************************************************************************** //
|
||||||
|
private static ArrayList<BloomeryCrafting> bloomeryRecipes = new ArrayList<>();
|
||||||
|
|
||||||
|
private ItemStack input;
|
||||||
|
private ItemStack output;
|
||||||
|
private ItemStack output_failed;
|
||||||
|
|
||||||
|
private int heat_threshold;
|
||||||
|
private int ideal_time;
|
||||||
|
|
||||||
|
private float heat_variance;
|
||||||
|
private float time_variance;
|
||||||
|
|
||||||
|
public BloomeryCrafting(ItemStack input, ItemStack output, ItemStack output_failed, int heat_threshold, int ideal_time, float heat_variance, float time_variance)
|
||||||
|
{
|
||||||
|
this.input = input;
|
||||||
|
this.output = output;
|
||||||
|
this.output_failed = output_failed;
|
||||||
|
this.heat_threshold = heat_threshold;
|
||||||
|
this.ideal_time = ideal_time;
|
||||||
|
this.heat_variance = heat_variance;
|
||||||
|
this.time_variance = time_variance;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// ***************************************************************************** //
|
||||||
|
// Recipe Methods
|
||||||
|
// ***************************************************************************** //
|
||||||
|
public static void addRecipe(ItemStack input, ItemStack output, ItemStack output_failed, int heat_threshold, int ideal_time, float heat_variance, float time_variance)
|
||||||
|
{
|
||||||
|
bloomeryRecipes.add(new BloomeryCrafting(input, output, output_failed, heat_threshold, ideal_time, heat_variance, time_variance));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isRecipeItem(ItemStack stack)
|
||||||
|
{
|
||||||
|
for(BloomeryCrafting recipe : bloomeryRecipes) {
|
||||||
|
if (stack.isItemEqual(recipe.input))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isOutputItem(ItemStack stack)
|
||||||
|
{
|
||||||
|
for(BloomeryCrafting recipe : bloomeryRecipes) {
|
||||||
|
if (stack.isItemEqual(recipe.output))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static BloomeryCrafting getRecipe(ItemStack stack)
|
||||||
|
{
|
||||||
|
for(BloomeryCrafting recipe : bloomeryRecipes) {
|
||||||
|
if (stack.isItemEqual(recipe.input))
|
||||||
|
return recipe;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemStack getInput()
|
||||||
|
{
|
||||||
|
return this.input;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemStack getOutput()
|
||||||
|
{
|
||||||
|
return this.output;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemStack getOutputFailed()
|
||||||
|
{
|
||||||
|
return this.output_failed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getHeatThreshold()
|
||||||
|
{
|
||||||
|
return this.heat_threshold;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getIdealTime()
|
||||||
|
{
|
||||||
|
return this.ideal_time;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getHeat_variance(){return this.heat_variance; }
|
||||||
|
|
||||||
|
public float getTime_variance(){return this.time_variance; }
|
||||||
|
|
||||||
|
///
|
||||||
|
// end
|
||||||
|
///
|
||||||
|
|
||||||
|
}
|
||||||
@@ -8,6 +8,7 @@ import net.minecraft.item.Item;
|
|||||||
import net.minecraft.item.ItemBlock;
|
import net.minecraft.item.ItemBlock;
|
||||||
import net.minecraftforge.fml.common.registry.GameRegistry;
|
import net.minecraftforge.fml.common.registry.GameRegistry;
|
||||||
import nmd.primal.forgecraft.blocks.Bloomery;
|
import nmd.primal.forgecraft.blocks.Bloomery;
|
||||||
|
import nmd.primal.forgecraft.blocks.EmptyCrucible;
|
||||||
import nmd.primal.forgecraft.blocks.Firebox;
|
import nmd.primal.forgecraft.blocks.Firebox;
|
||||||
import nmd.primal.forgecraft.blocks.PistonBellows;
|
import nmd.primal.forgecraft.blocks.PistonBellows;
|
||||||
|
|
||||||
@@ -24,6 +25,7 @@ public class ModBlocks {
|
|||||||
public static Block pistonbellowsspruce;
|
public static Block pistonbellowsspruce;
|
||||||
public static Block pistonbellowsdarkoak;
|
public static Block pistonbellowsdarkoak;
|
||||||
public static Block pistonbellowsacacia;
|
public static Block pistonbellowsacacia;
|
||||||
|
public static Block emptycrucible;
|
||||||
|
|
||||||
|
|
||||||
public static void init() {
|
public static void init() {
|
||||||
@@ -36,6 +38,7 @@ public class ModBlocks {
|
|||||||
pistonbellowsdarkoak = new PistonBellows(Material.WOOD, "pistonbellowsdarkoak");
|
pistonbellowsdarkoak = new PistonBellows(Material.WOOD, "pistonbellowsdarkoak");
|
||||||
pistonbellowsacacia = new PistonBellows(Material.WOOD, "pistonbellowsacacia");
|
pistonbellowsacacia = new PistonBellows(Material.WOOD, "pistonbellowsacacia");
|
||||||
bloomery = new Bloomery(Material.ROCK, "bloomery");
|
bloomery = new Bloomery(Material.ROCK, "bloomery");
|
||||||
|
emptycrucible = new EmptyCrucible(Material.ROCK, "emptycrucible");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void register() {
|
public static void register() {
|
||||||
@@ -47,6 +50,7 @@ public class ModBlocks {
|
|||||||
registerBlock(pistonbellowsdarkoak);
|
registerBlock(pistonbellowsdarkoak);
|
||||||
registerBlock(pistonbellowsacacia);
|
registerBlock(pistonbellowsacacia);
|
||||||
registerBlock(bloomery);
|
registerBlock(bloomery);
|
||||||
|
registerBlock(emptycrucible);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void registerRenders() {
|
public static void registerRenders() {
|
||||||
@@ -58,6 +62,7 @@ public class ModBlocks {
|
|||||||
registerRender(pistonbellowsdarkoak);
|
registerRender(pistonbellowsdarkoak);
|
||||||
registerRender(pistonbellowsacacia);
|
registerRender(pistonbellowsacacia);
|
||||||
registerRender(bloomery);
|
registerRender(bloomery);
|
||||||
|
registerRender(emptycrucible);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void registerBlock(Block block) {
|
private static void registerBlock(Block block) {
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import net.minecraft.init.Blocks;
|
|||||||
import net.minecraft.init.Items;
|
import net.minecraft.init.Items;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.fml.common.registry.GameRegistry;
|
import net.minecraftforge.fml.common.registry.GameRegistry;
|
||||||
|
import nmd.primal.forgecraft.blocks.Bloomery;
|
||||||
|
import nmd.primal.forgecraft.crafting.BloomeryCrafting;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by kitsu on 11/30/2016.
|
* Created by kitsu on 11/30/2016.
|
||||||
@@ -28,6 +30,19 @@ public class ModCrafting {
|
|||||||
GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.pistonbellowsdarkoak), "XXX", "X Y", "XXX",
|
GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.pistonbellowsdarkoak), "XXX", "X Y", "XXX",
|
||||||
'X', new ItemStack(Blocks.PLANKS, 1, 5), 'Y', ModItems.pistonbellows);
|
'X', new ItemStack(Blocks.PLANKS, 1, 5), 'Y', ModItems.pistonbellows);
|
||||||
|
|
||||||
|
/***Bellows Handle***/
|
||||||
GameRegistry.addShapedRecipe(new ItemStack(ModItems.pistonbellows), "X X", "X X", " X ", 'X', Items.STICK);
|
GameRegistry.addShapedRecipe(new ItemStack(ModItems.pistonbellows), "X X", "X X", " X ", 'X', Items.STICK);
|
||||||
|
|
||||||
|
/***Bloomery Crafting***/
|
||||||
|
//DryingRecipe.addRecipe(new ItemStack(Items.FISH, 1, 0), new ItemStack(PrimalItems.FISH_COD_DRIED), new ItemStack(PrimalItems.FISH_COD_ROTTEN), 25, 0.006F);
|
||||||
|
BloomeryCrafting.addRecipe(
|
||||||
|
new ItemStack(ModItems.softcrucible, 1),
|
||||||
|
new ItemStack(ModBlocks.emptycrucible, 1),
|
||||||
|
//new ItemStack(ModItems.crackedcrucible, 1),
|
||||||
|
new ItemStack(Items.STICK, 1),
|
||||||
|
2100,
|
||||||
|
2400,
|
||||||
|
0.25f,
|
||||||
|
1.0f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,31 +32,42 @@ public class TileBloomeryRender extends TileEntitySpecialRenderer<TileBloomery>
|
|||||||
int bright = tile.getWorld().getCombinedLight(pos.up(), 0);
|
int bright = tile.getWorld().getCombinedLight(pos.up(), 0);
|
||||||
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, bright % 65536, bright / 65536);
|
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, bright % 65536, bright / 65536);
|
||||||
|
|
||||||
ItemStack stack1 = tile.getSlotStack(0);
|
ItemStack stack0 = tile.getSlotStack(0);
|
||||||
|
ItemStack stack1 = tile.getSlotStack(1);
|
||||||
|
|
||||||
boolean is_block = stack1.getItem() instanceof ItemBlock;
|
|
||||||
float scale = is_block ? 0.1725F : 0.3F;
|
|
||||||
double xTrans = is_block ? -1.6D : -0.45D;
|
|
||||||
double yTrans = is_block ? -1.26D : -0.7D;
|
|
||||||
|
|
||||||
if (!stack1.isEmpty()) {
|
if (!stack0.isEmpty()) {
|
||||||
int stackRotation = stack1.getCount();
|
|
||||||
|
boolean is_block = stack0.getItem() instanceof ItemBlock;
|
||||||
|
float scale = is_block ? 0.1725F : 0.3F;
|
||||||
|
double xTrans = is_block ? -1.6D : -0.45D;
|
||||||
|
double yTrans = is_block ? -1.26D : -0.7D;
|
||||||
|
int stackRotation = stack0.getCount();
|
||||||
|
|
||||||
GL11.glPushMatrix();
|
GL11.glPushMatrix();
|
||||||
GL11.glScalef(scale, scale, scale);
|
GL11.glScalef(scale, scale, scale);
|
||||||
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F);
|
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F);
|
||||||
renderItem.renderItem(stack1, renderItem.getItemModelMesher().getItemModel(stack1));
|
renderItem.renderItem(stack0, renderItem.getItemModelMesher().getItemModel(stack0));
|
||||||
GL11.glPopMatrix();
|
GL11.glPopMatrix();
|
||||||
|
|
||||||
for(int i = 0; i < Math.ceil(stackRotation/8) + 1; i++){
|
for(int i = 0; i < Math.ceil(stackRotation/8) + 1; i++){
|
||||||
GL11.glPushMatrix();
|
GL11.glPushMatrix();
|
||||||
GL11.glScalef(scale, scale, scale);
|
GL11.glScalef(scale, scale, scale);
|
||||||
GL11.glRotated(45.0F * i, 0.0F, 1.0F, 0.0F);
|
GL11.glRotated(45.0F * i, 0.0F, 1.0F, 0.0F);
|
||||||
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F);
|
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F);
|
||||||
GL11.glTranslated(xTrans, yTrans, 0.0D);
|
GL11.glTranslated(xTrans, yTrans, 0.0D);
|
||||||
renderItem.renderItem(stack1, renderItem.getItemModelMesher().getItemModel(stack1));
|
renderItem.renderItem(stack0, renderItem.getItemModelMesher().getItemModel(stack0));
|
||||||
GL11.glPopMatrix();
|
GL11.glPopMatrix();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!stack1.isEmpty()){
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
GL11.glTranslated(0, 0.50D, 0);
|
||||||
|
renderItem.renderItem(stack1, renderItem.getItemModelMesher().getItemModel(stack1));
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
}
|
||||||
|
|
||||||
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, prevLGTX, prevLGTY);
|
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, prevLGTX, prevLGTY);
|
||||||
GL11.glPopMatrix();
|
GL11.glPopMatrix();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import net.minecraft.util.math.BlockPos;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import nmd.primal.forgecraft.blocks.Bloomery;
|
import nmd.primal.forgecraft.blocks.Bloomery;
|
||||||
import nmd.primal.forgecraft.blocks.Firebox;
|
import nmd.primal.forgecraft.blocks.Firebox;
|
||||||
|
import nmd.primal.forgecraft.init.ModItems;
|
||||||
|
|
||||||
import static nmd.primal.forgecraft.CommonUtils.getVanillaItemBurnTime;
|
import static nmd.primal.forgecraft.CommonUtils.getVanillaItemBurnTime;
|
||||||
|
|
||||||
@@ -40,23 +41,35 @@ public class TileBloomery extends TileBaseSlot implements ITickable {
|
|||||||
this.markDirty();
|
this.markDirty();
|
||||||
world.notifyBlockUpdate(pos, state, state, 2);
|
world.notifyBlockUpdate(pos, state, state, 2);
|
||||||
}
|
}
|
||||||
if(this.getSlotStack(0) != ItemStack.EMPTY) {
|
slotZeroManager(world);
|
||||||
Integer decrInt = (int) Math.floor(getVanillaItemBurnTime(this.getSlotStack(0)) / 20);
|
|
||||||
if(decrInt == 0) {
|
|
||||||
decrInt = 1;
|
|
||||||
}
|
|
||||||
if (world.rand.nextInt(decrInt) == 0) {
|
|
||||||
this.decrStackSize(0, 1);
|
|
||||||
this.markDirty();
|
|
||||||
this.updateBlock();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
this.heatManager(this.getHeat(), state, this.getSlotStack(0));
|
this.heatManager(this.getHeat(), state, this.getSlotStack(0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Insert Slot 1 manager for crafting
|
||||||
|
|
||||||
|
private void slotZeroManager(World world){
|
||||||
|
if(this.getSlotStack(0) != ItemStack.EMPTY) {
|
||||||
|
Integer decrInt = (int) Math.floor(getVanillaItemBurnTime(this.getSlotStack(0)) / 20);
|
||||||
|
if(decrInt == 0) {
|
||||||
|
decrInt = 1;
|
||||||
|
}
|
||||||
|
if (world.rand.nextInt(decrInt) == 0) {
|
||||||
|
this.decrStackSize(0, 1);
|
||||||
|
this.markDirty();
|
||||||
|
this.updateBlock();
|
||||||
|
}
|
||||||
|
if (this.getSlotStack(0).getCount() == 1){
|
||||||
|
this.decrStackSize(0, 1);
|
||||||
|
this.markDirty();
|
||||||
|
this.updateBlock();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public int getHeat(){
|
public int getHeat(){
|
||||||
return this.heat;
|
return this.heat;
|
||||||
}
|
}
|
||||||
@@ -114,6 +127,11 @@ public class TileBloomery extends TileBaseSlot implements ITickable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(index == 1){
|
||||||
|
if (stack.getItem() == ModItems.softcrucible) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"normal": { "model": "forgecraft:emptycrucible" }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,144 @@
|
|||||||
|
{
|
||||||
|
"__comment": "Designed by Kitsushadow with Cubik Studio - https://cubik.studio",
|
||||||
|
"textures": {
|
||||||
|
"particle": "forgecraft:blocks/stone_slab",
|
||||||
|
"texture": "forgecraft:blocks/stone_slab"
|
||||||
|
},
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"__comment": "Cube1",
|
||||||
|
"from": [ 5, 0, 5 ],
|
||||||
|
"to": [ 11, 1, 11 ],
|
||||||
|
"faces": {
|
||||||
|
"down": { "uv": [ 5, 5, 11, 11 ], "texture": "#texture" },
|
||||||
|
"up": { "uv": [ 5, 5, 11, 11 ], "texture": "#texture" },
|
||||||
|
"north": { "uv": [ 5, 15, 11, 16 ], "texture": "#texture" },
|
||||||
|
"south": { "uv": [ 5, 15, 11, 16 ], "texture": "#texture" },
|
||||||
|
"west": { "uv": [ 5, 15, 11, 16 ], "texture": "#texture" },
|
||||||
|
"east": { "uv": [ 5, 15, 11, 16 ], "texture": "#texture" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__comment": "Cube11",
|
||||||
|
"from": [ 5, 1, 5 ],
|
||||||
|
"to": [ 11, 7, 6 ],
|
||||||
|
"faces": {
|
||||||
|
"down": { "uv": [ 5, 10, 11, 11 ], "texture": "#texture" },
|
||||||
|
"up": { "uv": [ 5, 5, 11, 6 ], "texture": "#texture" },
|
||||||
|
"north": { "uv": [ 5, 9, 11, 15 ], "texture": "#texture" },
|
||||||
|
"south": { "uv": [ 5, 9, 11, 15 ], "texture": "#texture" },
|
||||||
|
"west": { "uv": [ 5, 9, 6, 15 ], "texture": "#texture" },
|
||||||
|
"east": { "uv": [ 10, 9, 11, 15 ], "texture": "#texture" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__comment": "Cube11",
|
||||||
|
"from": [ 5, 1, 10 ],
|
||||||
|
"to": [ 11, 7, 11 ],
|
||||||
|
"faces": {
|
||||||
|
"down": { "uv": [ 5, 10, 11, 11 ], "texture": "#texture" },
|
||||||
|
"up": { "uv": [ 5, 5, 11, 6 ], "texture": "#texture" },
|
||||||
|
"north": { "uv": [ 5, 9, 11, 15 ], "texture": "#texture" },
|
||||||
|
"south": { "uv": [ 5, 9, 11, 15 ], "texture": "#texture" },
|
||||||
|
"west": { "uv": [ 5, 9, 6, 15 ], "texture": "#texture" },
|
||||||
|
"east": { "uv": [ 10, 9, 11, 15 ], "texture": "#texture" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__comment": "Cube13",
|
||||||
|
"from": [ 5, 1, 6 ],
|
||||||
|
"to": [ 6, 7, 10 ],
|
||||||
|
"faces": {
|
||||||
|
"down": { "uv": [ 5, 6, 6, 10 ], "texture": "#texture" },
|
||||||
|
"up": { "uv": [ 5, 6, 6, 10 ], "texture": "#texture" },
|
||||||
|
"north": { "uv": [ 10, 9, 11, 15 ], "texture": "#texture" },
|
||||||
|
"south": { "uv": [ 5, 9, 6, 15 ], "texture": "#texture" },
|
||||||
|
"west": { "uv": [ 6, 9, 10, 15 ], "texture": "#texture" },
|
||||||
|
"east": { "uv": [ 6, 9, 10, 15 ], "texture": "#texture" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__comment": "Cube13",
|
||||||
|
"from": [ 10, 1, 6 ],
|
||||||
|
"to": [ 11, 7, 10 ],
|
||||||
|
"faces": {
|
||||||
|
"down": { "uv": [ 5, 6, 6, 10 ], "texture": "#texture" },
|
||||||
|
"up": { "uv": [ 5, 6, 6, 10 ], "texture": "#texture" },
|
||||||
|
"north": { "uv": [ 10, 9, 11, 15 ], "texture": "#texture" },
|
||||||
|
"south": { "uv": [ 5, 9, 6, 15 ], "texture": "#texture" },
|
||||||
|
"west": { "uv": [ 6, 9, 10, 15 ], "texture": "#texture" },
|
||||||
|
"east": { "uv": [ 6, 9, 10, 15 ], "texture": "#texture" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__comment": "Cube15",
|
||||||
|
"from": [ 4, 5, 6 ],
|
||||||
|
"to": [ 5, 6, 10 ],
|
||||||
|
"faces": {
|
||||||
|
"down": { "uv": [ 4, 6, 5, 10 ], "texture": "#texture" },
|
||||||
|
"up": { "uv": [ 4, 6, 5, 10 ], "texture": "#texture" },
|
||||||
|
"north": { "uv": [ 11, 10, 12, 11 ], "texture": "#texture" },
|
||||||
|
"south": { "uv": [ 4, 10, 5, 11 ], "texture": "#texture" },
|
||||||
|
"west": { "uv": [ 6, 10, 10, 11 ], "texture": "#texture" },
|
||||||
|
"east": { "uv": [ 6, 10, 10, 11 ], "texture": "#texture" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__comment": "Cube15",
|
||||||
|
"from": [ 11, 5, 6 ],
|
||||||
|
"to": [ 12, 6, 10 ],
|
||||||
|
"faces": {
|
||||||
|
"down": { "uv": [ 4, 6, 5, 10 ], "texture": "#texture" },
|
||||||
|
"up": { "uv": [ 4, 6, 5, 10 ], "texture": "#texture" },
|
||||||
|
"north": { "uv": [ 11, 10, 12, 11 ], "texture": "#texture" },
|
||||||
|
"south": { "uv": [ 4, 10, 5, 11 ], "texture": "#texture" },
|
||||||
|
"west": { "uv": [ 6, 10, 10, 11 ], "texture": "#texture" },
|
||||||
|
"east": { "uv": [ 6, 10, 10, 11 ], "texture": "#texture" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__comment": "Cube17",
|
||||||
|
"from": [ 6, 5, 4 ],
|
||||||
|
"to": [ 10, 6, 5 ],
|
||||||
|
"faces": {
|
||||||
|
"down": { "uv": [ 6, 11, 10, 12 ], "texture": "#texture" },
|
||||||
|
"up": { "uv": [ 6, 4, 10, 5 ], "texture": "#texture" },
|
||||||
|
"north": { "uv": [ 6, 10, 10, 11 ], "texture": "#texture" },
|
||||||
|
"south": { "uv": [ 6, 10, 10, 11 ], "texture": "#texture" },
|
||||||
|
"west": { "uv": [ 4, 10, 5, 11 ], "texture": "#texture" },
|
||||||
|
"east": { "uv": [ 11, 10, 12, 11 ], "texture": "#texture" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__comment": "Cube18",
|
||||||
|
"from": [ 6, 5, 11 ],
|
||||||
|
"to": [ 10, 6, 12 ],
|
||||||
|
"faces": {
|
||||||
|
"down": { "uv": [ 6, 4, 10, 5 ], "texture": "#texture" },
|
||||||
|
"up": { "uv": [ 6, 11, 10, 12 ], "texture": "#texture" },
|
||||||
|
"north": { "uv": [ 6, 10, 10, 11 ], "texture": "#texture" },
|
||||||
|
"south": { "uv": [ 6, 10, 10, 11 ], "texture": "#texture" },
|
||||||
|
"west": { "uv": [ 11, 10, 12, 11 ], "texture": "#texture" },
|
||||||
|
"east": { "uv": [ 4, 10, 5, 11 ], "texture": "#texture" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"translation": [ 0.1, 1.1, -2.35 ]
|
||||||
|
},
|
||||||
|
"firstperson_righthand": {
|
||||||
|
"translation": [ 0, 4, 0 ]
|
||||||
|
},
|
||||||
|
"gui": {
|
||||||
|
"translation": [ 0, 4, 0 ]
|
||||||
|
},
|
||||||
|
"ground": {
|
||||||
|
"translation": [ 0, 4, 0 ]
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"rotation": [ 45, 45, 0 ],
|
||||||
|
"translation": [ 0, 4, 0 ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user