Jump to content

Recommended Posts

Posted

Hi all first time post so please be nice  :)

 

my first time modding for minecraft and with forge, I have followed a tutorial done by MrCrayfish on youtube and got it working just the basic item/block, but now I'm trying to do a little more advance advance stuff and cannot understand why its not working :( as far as I'm aware I have all the paths set correctly and right elements but I still get this error: 

 

  Reveal hidden contents

 

 

log report

 

  Reveal hidden contents

 

 

here is my entire mod:

WindowsMod.java

package com.dot6.windows;

import com.dot6.windows.init.WindowBlocks;
import com.dot6.windows.init.WindowItems;
import com.dot6.windows.proxy.CommonProxy;

import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;

@Mod(modid = Reference.MOD_ID, name = Reference.MOD_NAME, version = Reference.VERSION)
public class WindowsMod {
@SidedProxy(clientSide = Reference.CLIENT_PROXY_CLASS, serverSide = Reference.SERVER_PROXY_CLASS)
public static CommonProxy proxy;

@EventHandler
public void preInit(FMLPreInitializationEvent event)
{

	WindowBlocks.init();
	WindowBlocks.register();
	//WindowItems.init();
	//WindowItems.register();

}

@EventHandler
public void preInit(FMLInitializationEvent event)
{

}

@EventHandler
public void preInit(FMLPostInitializationEvent event)
{
	proxy.registerRenders();
}

}

Reference.java

package com.dot6.windows;

public class Reference {
public static final String MOD_ID = "wm";
public static final String MOD_NAME = "Windows Mod";
public static final String VERSION = "1.0";
public static final String CLIENT_PROXY_CLASS = "com.dot6.windows.proxy.ClientProxy";
public static final String SERVER_PROXY_CLASS = "com.dot6.windows.proxy.CommonProxy";
}

ClientProxy.java

package com.dot6.windows.proxy;

import com.dot6.windows.init.WindowItems;
import com.dot6.windows.init.WindowBlocks;

public class ClientProxy extends CommonProxy{
@Override 
public void registerRenders(){
	WindowBlocks.registerRenders();
	//WindowItems.registerRenders();
	            		
}
}

CommonProxy.java

package com.dot6.windows.proxy;

public class CommonProxy {
public void registerRenders(){

}
}

WindowBlock.java

package com.dot6.windows.init;

import com.dot6.windows.Reference;
import com.dot6.windows.blocks.BlockWindow;

import net.minecraft.block.Block;
import net.minecraft.block.BlockPlanks;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraftforge.fml.common.registry.GameRegistry;

public class WindowBlocks {
public static Block block_window;

public static void init()	{

	block_window = new BlockWindow(BlockPlanks.EnumType.OAK).setUnlocalizedName("block_window");
}

public static void register()
{
	GameRegistry.registerBlock(block_window, block_window.getUnlocalizedName().substring(5));
}

public static void registerRenders() 
{
	registedrRender(block_window);
}

public static void registedrRender(Block block) 
{
	Item item = Item.getItemFromBlock(block);
	Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "inventory"));
}
}

BlockWindow.java

package com.dot6.windows.blocks;

import net.minecraft.block.Block;
import net.minecraft.block.BlockDirectional;
import net.minecraft.block.BlockPlanks;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyBool;
import net.minecraft.block.state.BlockState;
import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

public class BlockWindow extends BlockDirectional
{
    public static final PropertyBool OPEN = PropertyBool.create("open");
    public static final PropertyBool POWERED = PropertyBool.create("powered");
    public static final PropertyBool IN_WALL = PropertyBool.create("in_wall");

    public BlockWindow(BlockPlanks.EnumType p_i46394_1_)
    {
        super(Material.wood, p_i46394_1_.func_181070_c());
        this.setDefaultState(this.blockState.getBaseState().withProperty(OPEN, Boolean.valueOf(false)).withProperty(POWERED, Boolean.valueOf(false)).withProperty(IN_WALL, Boolean.valueOf(false)));
       
        this.setCreativeTab(CreativeTabs.tabRedstone);
    }

    /**
     * Get the actual Block state of this Block at the given position. This applies properties not visible in the
     * metadata, such as fence connections.
     */
    public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos)
    {
        EnumFacing.Axis enumfacing$axis = ((EnumFacing)state.getValue(FACING)).getAxis();

        if (enumfacing$axis == EnumFacing.Axis.Z && (worldIn.getBlockState(pos.west()).getBlock() == Blocks.cobblestone_wall || worldIn.getBlockState(pos.east()).getBlock() == Blocks.cobblestone_wall) || enumfacing$axis == EnumFacing.Axis.X && (worldIn.getBlockState(pos.north()).getBlock() == Blocks.cobblestone_wall || worldIn.getBlockState(pos.south()).getBlock() == Blocks.cobblestone_wall))
        {
            state = state.withProperty(IN_WALL, Boolean.valueOf(true));
        }

        return state;
    }

    public boolean canPlaceBlockAt(World worldIn, BlockPos pos)
    {
        return worldIn.getBlockState(pos.down()).getBlock().getMaterial().isSolid() ? super.canPlaceBlockAt(worldIn, pos) : false;
    }

    public AxisAlignedBB getCollisionBoundingBox(World worldIn, BlockPos pos, IBlockState state)
    {
        if (((Boolean)state.getValue(OPEN)).booleanValue())
        {
            return null;
        }
        else
        {
            EnumFacing.Axis enumfacing$axis = ((EnumFacing)state.getValue(FACING)).getAxis();
            return enumfacing$axis == EnumFacing.Axis.Z ? new AxisAlignedBB((double)pos.getX(), (double)pos.getY(), (double)((float)pos.getZ() + 0.375F), (double)(pos.getX() + 1), (double)((float)pos.getY() + 1.5F), (double)((float)pos.getZ() + 0.625F)) : new AxisAlignedBB((double)((float)pos.getX() + 0.375F), (double)pos.getY(), (double)pos.getZ(), (double)((float)pos.getX() + 0.625F), (double)((float)pos.getY() + 1.5F), (double)(pos.getZ() + 1));
        }
    }

    public void setBlockBoundsBasedOnState(IBlockAccess worldIn, BlockPos pos)
    {
        EnumFacing.Axis enumfacing$axis = ((EnumFacing)worldIn.getBlockState(pos).getValue(FACING)).getAxis();

        if (enumfacing$axis == EnumFacing.Axis.Z)
        {
            this.setBlockBounds(0.0F, 0.0F, 0.375F, 1.0F, 1.0F, 0.625F);
        }
        else
        {
            this.setBlockBounds(0.375F, 0.0F, 0.0F, 0.625F, 1.0F, 1.0F);
        }
    }

    /**
     * Used to determine ambient occlusion and culling when rebuilding chunks for render
     */
    public boolean isOpaqueCube()
    {
        return false;
    }

    public boolean isFullCube()
    {
        return false;
    }

    public boolean isPassable(IBlockAccess worldIn, BlockPos pos)
    {
        return ((Boolean)worldIn.getBlockState(pos).getValue(OPEN)).booleanValue();
    }

    /**
     * Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the
     * IBlockstate
     */
    public IBlockState onBlockPlaced(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer)
    {
        return this.getDefaultState().withProperty(FACING, placer.getHorizontalFacing()).withProperty(OPEN, Boolean.valueOf(false)).withProperty(POWERED, Boolean.valueOf(false)).withProperty(IN_WALL, Boolean.valueOf(false));
    }

    public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumFacing side, float hitX, float hitY, float hitZ)
    {
        if (((Boolean)state.getValue(OPEN)).booleanValue())
        {
            state = state.withProperty(OPEN, Boolean.valueOf(false));
            worldIn.setBlockState(pos, state, 2);
        }
        else
        {
            EnumFacing enumfacing = EnumFacing.fromAngle((double)playerIn.rotationYaw);

            if (state.getValue(FACING) == enumfacing.getOpposite())
            {
                state = state.withProperty(FACING, enumfacing);
            }

            state = state.withProperty(OPEN, Boolean.valueOf(true));
            worldIn.setBlockState(pos, state, 2);
        }

        worldIn.playAuxSFXAtEntity(playerIn, ((Boolean)state.getValue(OPEN)).booleanValue() ? 1003 : 1006, pos, 0);
        return true;
    }

    /**
     * Called when a neighboring block changes.
     */    
    public void onNeighborBlockChange(World worldIn, BlockPos pos, IBlockState state, Block neighborBlock)
    {
        if (!worldIn.isRemote)
        {
            boolean flag = worldIn.isBlockPowered(pos);

            if (flag || neighborBlock.canProvidePower())
            {
                if (flag && !((Boolean)state.getValue(OPEN)).booleanValue() && !((Boolean)state.getValue(POWERED)).booleanValue())
                {
                    worldIn.setBlockState(pos, state.withProperty(OPEN, Boolean.valueOf(true)).withProperty(POWERED, Boolean.valueOf(true)), 2);
                    worldIn.playAuxSFXAtEntity((EntityPlayer)null, 1003, pos, 0);
                }
                else if (!flag && ((Boolean)state.getValue(OPEN)).booleanValue() && ((Boolean)state.getValue(POWERED)).booleanValue())
                {
                    worldIn.setBlockState(pos, state.withProperty(OPEN, Boolean.valueOf(false)).withProperty(POWERED, Boolean.valueOf(false)), 2);
                    worldIn.playAuxSFXAtEntity((EntityPlayer)null, 1006, pos, 0);
                }
                else if (flag != ((Boolean)state.getValue(POWERED)).booleanValue())
                {
                    worldIn.setBlockState(pos, state.withProperty(POWERED, Boolean.valueOf(flag)), 2);
                }
            }
        }
    }

    @SideOnly(Side.CLIENT)
    public boolean shouldSideBeRendered(IBlockAccess worldIn, BlockPos pos, EnumFacing side)
    {
        return true;
    }

    /**
     * Convert the given metadata into a BlockState for this Block
     */
    public IBlockState getStateFromMeta(int meta)
    {
        return this.getDefaultState().withProperty(FACING, EnumFacing.getHorizontal(meta)).withProperty(OPEN, Boolean.valueOf((meta & 4) != 0)).withProperty(POWERED, Boolean.valueOf((meta &  != 0));
    }

    /**
     * Convert the BlockState into the correct metadata value
     */
    public int getMetaFromState(IBlockState state)
    {
        int i = 0;
        i = i | ((EnumFacing)state.getValue(FACING)).getHorizontalIndex();

        if (((Boolean)state.getValue(POWERED)).booleanValue())
        {
            i |= 8;
        }

        if (((Boolean)state.getValue(OPEN)).booleanValue())
        {
            i |= 4;
        }

        return i;
    }

    protected BlockState createBlockState()
    {
        return new BlockState(this, new IProperty[] {FACING, OPEN, POWERED, IN_WALL});
    }
    
}

block_window.json

{
    "variants": {
        "facing=south,in_wall=false,open=false": { "model": "wm:oak_window_closed" },
        "facing=west,in_wall=false,open=false":  { "model": "wm:oak_window_closed", "y": 90, "uvlock": true },
        "facing=north,in_wall=false,open=false": { "model": "wm:oak_window_closed", "y": 180, "uvlock": true },
        "facing=east,in_wall=false,open=false":  { "model": "wm:oak_window_closed", "y": 270, "uvlock": true },
        "facing=south,in_wall=false,open=true": { "model": "wm:oak_window_open" },
        "facing=west,in_wall=false,open=true":  { "model": "wm:oak_window_open", "y": 90, "uvlock": true },
        "facing=north,in_wall=false,open=true": { "model": "wm:oak_window_open", "y": 180, "uvlock": true },
        "facing=east,in_wall=false,open=true":  { "model": "wm:oak_window_open", "y": 270, "uvlock": true },
        "facing=south,in_wall=true,open=false": { "model": "wm:oak_wall_window_closed" },
        "facing=west,in_wall=true,open=false":  { "model": "wm:oak_wall_window_closed", "y": 90, "uvlock": true },
        "facing=north,in_wall=true,open=false": { "model": "wm:oak_wall_window_closed", "y": 180, "uvlock": true },
        "facing=east,in_wall=true,open=false":  { "model": "wm:oak_wall_window_closed", "y": 270, "uvlock": true },
        "facing=south,in_wall=true,open=true": { "model": "wm:oak_wall_window_open" },
        "facing=west,in_wall=true,open=true":  { "model": "wm:oak_wall_window_open", "y": 90, "uvlock": true },
        "facing=north,in_wall=true,open=true": { "model": "wm:oak_wall_window_open", "y": 180, "uvlock": true },
        "facing=east,in_wall=true,open=true":  { "model": "wm:oak_wall_window_open", "y": 270, "uvlock": true }
    }
}

oak_wall_window_closed.json

{
    "parent": "wm:block/oak_window_closed",
    "textures": {
        "texture": "blocks/planks_oak"
    }
}

oak_wall_window_open.json

{
    "parent": "wm:block/oak_window_open",
    "textures": {
        "texture": "blocks/planks_oak"
    }
}

oak_window_closed.json

{
    "parent": "wm:block/window_closed",
    "textures": {
        "texture": "blocks/planks_oak"
    }
}

oak_window_open.json

{
    "parent": "wm:block/window_open",
    "textures": {
        "texture": "blocks/planks_oak"
    }
}

window_closed.json

{
    "textures": {
        "particle" : "#texture"
    },
    "elements": [
        {   "__comment": "Left-hand post",
            "from": [ 0, 5, 7 ],
            "to": [ 2, 16, 9 ],
            "faces": {
                "down":  { "uv": [ 0, 7, 2,  9 ], "texture": "#texture" },
                "up":    { "uv": [ 0, 7, 2,  9 ], "texture": "#texture" },
                "north": { "uv": [ 0, 0, 2, 11 ], "texture": "#texture" },
                "south": { "uv": [ 0, 0, 2, 11 ], "texture": "#texture" },
                "west":  { "uv": [ 7, 0, 9, 11 ], "texture": "#texture", "cullface": "west" },
                "east":  { "uv": [ 7, 0, 9, 11 ], "texture": "#texture" }
            }
        },
        {   "__comment": "Right-hand post",
            "from": [ 14, 5, 7 ],
            "to": [ 16, 16, 9 ],
            "faces": {
                "down":  { "uv": [ 14, 7, 16,  9 ], "texture": "#texture" },
                "up":    { "uv": [ 14, 7, 16,  9 ], "texture": "#texture" },
                "north": { "uv": [ 14, 0, 16, 11 ], "texture": "#texture" },
                "south": { "uv": [ 14, 0, 16, 11 ], "texture": "#texture" },
                "west":  { "uv": [  7, 0,  9, 11 ], "texture": "#texture" },
                "east":  { "uv": [  7, 0,  9, 11 ], "texture": "#texture", "cullface": "east" }
            }
        },
        {   "__comment": "Inner vertical post of left-hand gate door",
            "from": [ 6, 6, 7 ],
            "to": [ 8, 15, 9 ],
            "faces": {
                "down":  { "uv": [ 6, 7, 8,  9 ], "texture": "#texture" },
                "up":    { "uv": [ 6, 7, 8,  9 ], "texture": "#texture" },
                "north": { "uv": [ 6, 1, 8, 10 ], "texture": "#texture" },
                "south": { "uv": [ 6, 1, 8, 10 ], "texture": "#texture" },
                "west":  { "uv": [ 7, 1, 9, 10 ], "texture": "#texture" },
                "east":  { "uv": [ 7, 1, 9, 10 ], "texture": "#texture" }
            }
        },
        {   "__comment": "Inner vertical post of right-hand gate door",
            "from": [ 8, 6, 7 ],
            "to": [ 10, 15, 9 ],
            "faces": {
                "down":  { "uv": [ 8, 7, 10,  9 ], "texture": "#texture" },
                "up":    { "uv": [ 8, 7, 10,  9 ], "texture": "#texture" },
                "north": { "uv": [ 8, 1, 10, 10 ], "texture": "#texture" },
                "south": { "uv": [ 8, 1, 10, 10 ], "texture": "#texture" },
                "west":  { "uv": [ 7, 1,  9, 10 ], "texture": "#texture" },
                "east":  { "uv": [ 7, 1,  9, 10 ], "texture": "#texture" }
            }
        },
        {   "__comment": "Lower horizontal bar of left-hand gate door",
            "from": [ 2, 6, 7 ],
            "to": [ 6, 9, 9 ],
            "faces": {
                "down":  { "uv": [ 2, 7, 6,  9 ], "texture": "#texture" },
                "up":    { "uv": [ 2, 7, 6,  9 ], "texture": "#texture" },
                "north": { "uv": [ 2, 7, 6, 10 ], "texture": "#texture" },
                "south": { "uv": [ 2, 7, 6, 10 ], "texture": "#texture" }
            }
        },
        {   "__comment": "Upper horizontal bar of left-hand gate door",
            "from": [ 2, 12, 7 ],
            "to": [ 6, 15, 9 ],
            "faces": {
                "down":  { "uv": [ 2, 7, 6, 9 ], "texture": "#texture" },
                "up":    { "uv": [ 2, 7, 6, 9 ], "texture": "#texture" },
                "north": { "uv": [ 2, 1, 6, 4 ], "texture": "#texture" },
                "south": { "uv": [ 2, 1, 6, 4 ], "texture": "#texture" }
            }
        },
        {   "__comment": "Lower horizontal bar of right-hand gate door",
            "from": [ 10, 6, 7 ],
            "to": [ 14, 9, 9 ],
            "faces": {
                "down":  { "uv": [ 10, 7, 14,  9 ], "texture": "#texture" },
                "up":    { "uv": [ 10, 7, 14,  9 ], "texture": "#texture" },
                "north": { "uv": [ 10, 7, 14, 10 ], "texture": "#texture" },
                "south": { "uv": [ 10, 7, 14, 10 ], "texture": "#texture" }
            }
        },
        {   "__comment": "Upper horizontal bar of right-hand gate door",
            "from": [ 10, 12, 7 ],
            "to": [ 14, 15, 9 ],
            "faces": {
                "down":  { "uv": [ 10, 7, 14, 9 ], "texture": "#texture" },
                "up":    { "uv": [ 10, 7, 14, 9 ], "texture": "#texture" },
                "north": { "uv": [ 10, 1, 14, 4 ], "texture": "#texture" },
                "south": { "uv": [ 10, 1, 14, 4 ], "texture": "#texture" }
            }
        }
    ]
}

window_open.json

{
    "textures": {
        "particle" : "#texture"
    },
    "elements": [
        {   "__comment": "Left-hand post",
            "from": [ 0, 5, 7 ],
            "to": [ 2, 16, 9 ],
            "faces": {
                "down":  { "uv": [ 0, 7, 2,  9 ], "texture": "#texture" },
                "up":    { "uv": [ 0, 7, 2,  9 ], "texture": "#texture" },
                "north": { "uv": [ 0, 0, 2, 11 ], "texture": "#texture" },
                "south": { "uv": [ 0, 0, 2, 11 ], "texture": "#texture" },
                "west":  { "uv": [ 7, 0, 9, 11 ], "texture": "#texture", "cullface": "west" },
                "east":  { "uv": [ 7, 0, 9, 11 ], "texture": "#texture" }
            }
        },
        {   "__comment": "Right-hand post",
            "from": [ 14, 5, 7 ],
            "to": [ 16, 16, 9 ],
            "faces": {
                "down":  { "uv": [ 14, 7, 16,  9 ], "texture": "#texture" },
                "up":    { "uv": [ 14, 7, 16,  9 ], "texture": "#texture" },
                "north": { "uv": [ 14, 0, 16, 11 ], "texture": "#texture" },
                "south": { "uv": [ 14, 0, 16, 11 ], "texture": "#texture" },
                "west":  { "uv": [  7, 0,  9, 11 ], "texture": "#texture" },
                "east":  { "uv": [  7, 0,  9, 11 ], "texture": "#texture", "cullface": "east" }
            }
        },
        {   "__comment": "Inner vertical post of left-hand gate door",
            "from": [ 0, 6, 13 ],
            "to": [ 2, 15, 15 ],
            "faces": {
                "down":  { "uv": [  0, 13,  2, 15 ], "texture": "#texture" },
                "up":    { "uv": [  0, 13,  2, 15 ], "texture": "#texture" },
                "north": { "uv": [  0,  1,  2, 10 ], "texture": "#texture" },
                "south": { "uv": [  0,  1,  2, 10 ], "texture": "#texture" },
                "west":  { "uv": [ 13,  1, 15, 10 ], "texture": "#texture" },
                "east":  { "uv": [ 13,  1, 15, 10 ], "texture": "#texture" }
            }
        },
        {   "__comment": "Inner vertical post of right-hand gate door",
            "from": [ 14, 6, 13 ],
            "to": [ 16, 15, 15 ],
            "faces": {
                "down":  { "uv": [ 14, 13, 16, 15 ], "texture": "#texture" },
                "up":    { "uv": [ 14, 13, 16, 15 ], "texture": "#texture" },
                "north": { "uv": [ 14,  1, 16, 10 ], "texture": "#texture" },
                "south": { "uv": [ 14,  1, 16, 10 ], "texture": "#texture" },
                "west":  { "uv": [ 13,  1, 15, 10 ], "texture": "#texture" },
                "east":  { "uv": [ 13,  1, 15, 10 ], "texture": "#texture" }
            }
        },
        {   "__comment": "Lower horizontal bar of left-hand gate door",
            "from": [ 0, 6, 9 ],
            "to": [ 2, 9, 13 ],
            "faces": {
                "down":  { "uv": [  0, 9,  2, 13 ], "texture": "#texture" },
                "up":    { "uv": [  0, 9,  2, 13 ], "texture": "#texture" },
                "west":  { "uv": [ 13, 7, 15, 10 ], "texture": "#texture" },
                "east":  { "uv": [ 13, 7, 15, 10 ], "texture": "#texture" }
            }
        },
        {   "__comment": "Upper horizontal bar of left-hand gate door",
            "from": [ 0, 12, 9 ],
            "to": [ 2, 15, 13 ],
            "faces": {
                "down":  { "uv": [  0, 9,  2, 13 ], "texture": "#texture" },
                "up":    { "uv": [  0, 9,  2, 13 ], "texture": "#texture" },
                "west":  { "uv": [ 13, 1, 15,  4 ], "texture": "#texture" },
                "east":  { "uv": [ 13, 1, 15,  4 ], "texture": "#texture" }
            }
        },
        {   "__comment": "Lower horizontal bar of left-hand gate door",
            "from": [ 14, 6, 9 ],
            "to": [ 16, 9, 13 ],
            "faces": {
                "down":  { "uv": [ 14, 9, 16, 13 ], "texture": "#texture" },
                "up":    { "uv": [ 14, 9, 16, 13 ], "texture": "#texture" },
                "west":  { "uv": [ 13, 7, 15, 10 ], "texture": "#texture" },
                "east":  { "uv": [ 13, 7, 15, 10 ], "texture": "#texture" }
            }
        },
        {   "__comment": "Upper horizontal bar of left-hand gate door",
            "from": [ 14, 12, 9 ],
            "to": [ 16, 15, 13 ],
            "faces": {
                "down":  { "uv": [ 14, 9, 16, 13 ], "texture": "#texture" },
                "up":    { "uv": [ 14, 9, 16, 13 ], "texture": "#texture" },
                "west":  { "uv": [ 13, 1, 15,  4 ], "texture": "#texture" },
                "east":  { "uv": [ 13, 1, 15,  4 ], "texture": "#texture" }
            }
        }
    ]
}

item_window.json

{
    "parent": "wm:block/oak_window_closed",
    "display": {
        "thirdperson": {
            "rotation": [ 0, -90, 170 ],
            "translation": [ 0, 1.5, -2.75 ],
            "scale": [ 0.375, 0.375, 0.375 ]
        },
        "firstperson": {
            "rotation": [ 0, 90, 0 ],
            "translation": [ 0, 0, 0 ],
            "scale": [ 1, 1, 1 ]
        }
    }
}

eclips file structure

width=484 height=639http://s21.postimg.org/ez3o2le2f/exlips_explorer.png[/img]

 

 

any help on this matter will be greatly appreciated I have searched high and low for the answer and cannot find a solution my goal is to create some basic windows using the functions of a gate as you can see in the image I have tried to use my own texture and still I received the same errors I have checked and double checked the spellings of everything and still no avail, I have even tried converting this:

"facing=east,in_wall=true,open=false":  { "model": "wm:oak_wall_window_closed", "y": 270, "uvlock":

 

to this:

"facing=east,in_wall=true,open=false,powered=false":  { "model": "wm:oak_wall_window_closed", "y": 270, "uvlock": 

and it produces same error

 

please help! :)

Posted

It looks like your rendering will not depend on "powered", but your error message shows that MC is trying to use it. You need to tell MC to ignore that property. In client proxy, call StateMap.Builder ().addPropertiesToIgnore(...). One of mine looks like this:

 

  @Override
  public void preInit(FMLPreInitializationEvent e) {
    Builder sm = new StateMap.Builder ();

    super.preInit (e);

    sm.addPropertiesToIgnore
        (BlockFenceGate.FACING, BlockFenceGate.IN_WALL, BlockFenceGate.OPEN, BlockFenceGate.POWERED);
    ModelLoader.setCustomStateMapper (AnystoneWallsMod.blockIronGate, sm.build ());

    iwall1 = (ItemWall) Item.getItemFromBlock (AnystoneWallsMod.blockAnystoneWall);
    iwall2 = (ItemWall) Item.getItemFromBlock (AnystoneWallsMod.blockAnystoneWall2);

    addVariants (iwall1);
    addVariants (iwall2);
  }

The debugger is a powerful and necessary tool in any IDE, so learn how to use it. You'll be able to tell us more and get better help here if you investigate your runtime problems in the debugger before posting.

Posted

Hello and THANK YOU so much its now rendering in the world, but not inventory :( it  says:

 

[FML]: Model definition for location wm:block_window#inventory not found

 

I have uncommitted the creation of

WindowItems.init();

WindowItems.register();

so it gets created and still caused the [FML]: Model definition for location wm:block_window#inventory not found error

 

changes I made

WindowsBlock.java

 

  Reveal hidden contents

 

WindowsMod.java

 

  Reveal hidden contents

 

 

 

 

 

Posted
  On 2/11/2016 at 9:05 AM, RANKSHANK said:

Sounds like you're not registering the itemblock to the ItemMesher

 

Nevermind it's just missing. What do your JSONs look like?

 

Hi, thanks for the quick replay :) if you look in my initial post under the item_window.json heading that is what it looks like :)

 

I should note I have since changed WindowItem.java

to:

 

  Reveal hidden contents

 

 

and if I change item_window,json to block_window.json it removes the error but will not render in the inventory :(

Posted
  On 2/10/2016 at 6:36 PM, diesieben07 said:

- Replace

Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register

with

ModelLoader.setCustomModelResourceLocation

.

- Do not use the unlocalized name for registering your blocks.

- You unlocalized names should include your ModID.

- "wm" is not a good choice for a ModID, it should be longer.

 

Hi and thank you :) just a couple of questions, should I be using:

  getLocalizedName() instead of UnLocalizedName?

 

You unlocalized names should include your ModID. I don't understand what you mean by this?

isn't ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), including this?

or are you referring to the when the block/item is being created so

 

block_window = new BlockWindow(BlockPlanks.EnumType.OAK).setUnlocalizedName("block_window");

would look like this

block_window = new BlockWindow(BlockPlanks.EnumType.OAK).setUnlocalizedName(Reference.MOD_ID + ":" + "block_window");

 

"wm" is not a good choice for a ModID, it should be longer.: thank you for this tip its my first time and every bit of help is appreciated :)

Posted

I would just like to thank everyone for their help I have now got it rendering in minecraft world and I have change it to use setRegistryName I still cannot it to render in the inventory though so I'm going to need to read up a bit on how that works and realizing the difference between item and block and see if i can figure out why mine is not working. Thank you all you have been a great help.

 

 

Posted

here is the updated code, I have changed item_window to block_window.json and removed item_window from main class and proxy class

 

WindowsMod.java

 

  Reveal hidden contents

 

Reference.java

 

  Reveal hidden contents

 

WindowsBlock.java

 

  Reveal hidden contents

 

BlockWindow.java

 

  Reveal hidden contents

 

ClientProxy.java

 

  Reveal hidden contents

 

CommonProxy.java

 

  Reveal hidden contents

 

BlockStates/oak_window.json

 

  Reveal hidden contents

 

models/block/

 

  Reveal hidden contents

 

 

models/item/

 

  Reveal hidden contents

 

       

Posted

your right I was not careful when copying and pasting now updated the main class changed the block name to oak_window

 

 

  Reveal hidden contents

 

 

have renamed file models/item/block_window.json to models/item/oak_window.json

 

latest folder layout:

 

  Reveal hidden contents

 

 

ok re-edited this after re-reading your last post I understand what you were saying an now have moved the registerRenderer() to preInit() and everything is working as it should THANK YOU so much you have been a massive help to me thank you once again this can now be marked as solved

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.