Jump to content

Recommended Posts

Posted

Hi,

I know this has been asked 1000s of times, but I couldn't find the answer to what's wrong with my block. So the block in game displays the model and texture fine. But doesn't actually change which way it's facing.

Using the Pumpkin as reference I created the block class:

package madman.lonelytraveller.objects.objectclasses;

import madman.lonelytraveller.Main;
import net.minecraft.block.Block;
import net.minecraft.block.BlockHorizontal;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.Rotation;

public class BlockBaseNotCubeRotate extends BlockBase {


	public BlockBaseNotCubeRotate(Material material, String name) {
		super(material,name);
		this.setDefaultState(this.blockState.getBaseState().withProperty(BlockHorizontal.FACING, EnumFacing.NORTH));
	
	}

	@Override
	@Deprecated
	public boolean isOpaqueCube(IBlockState state) {
		return false;
	}
	
	@Override
	@Deprecated
	public boolean isFullCube(IBlockState state) {
		return false;
	}
	
	  public IBlockState withRotation(IBlockState state, Rotation rot)
	    {
	        return state.withProperty(BlockHorizontal.FACING, rot.rotate((EnumFacing)state.getValue(BlockHorizontal.FACING)));
	    }
	
	    public IBlockState getStateFromMeta(int meta)
	    {
	        return this.getDefaultState().withProperty(BlockHorizontal.FACING, EnumFacing.getHorizontal(meta));
	    }
	    
	    public int getMetaFromState(IBlockState state)
	    {
	        return ((EnumFacing)state.getValue(BlockHorizontal.FACING)).getHorizontalIndex();
	    }

	    protected BlockStateContainer createBlockState()
	    {
	        return new BlockStateContainer(this, new IProperty[] {BlockHorizontal.FACING});
	    }
	    
	    
	    
}
	

 

And them my blockstate file is:

{
    "forge_marker": 1,
    "variants": {       
        "facing=north": { "model": "dw_lonelytraveller:gallifrey_chair_council" },
        "facing=east":  { "model": "dw_lonelytraveller:gallifrey_chair_council", "y": 90 },
        "facing=south": { "model": "dw_lonelytraveller:gallifrey_chair_council", "y": 180 },
        "facing=west":  { "model": "dw_lonelytraveller:gallifrey_chair_council", "y": 270 },
        "inventory": { "model": "dw_lonelytraveller:gallifrey_chair_council" }      
    }
}
    
    
    

 

The Console Output *I know there isn't an Item Blockstate yet. :

Spoiler

[00:52:26] [main/ERROR] [FML]: Exception loading model for variant dw_lonelytraveller:dwlt_gallifrey_chair_council#inventory for item "dw_lonelytraveller:gallifrey_chair_council", normal location exception:
net.minecraftforge.client.model.ModelLoaderRegistry$LoaderException: Exception loading model dw_lonelytraveller:item/dwlt_gallifrey_chair_council with loader VanillaLoader.INSTANCE, skipping
    at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:153) ~[ModelLoaderRegistry.class:?]
    at net.minecraftforge.client.model.ModelLoader.loadItemModels(ModelLoader.java:314) ~[ModelLoader.class:?]
    at net.minecraft.client.renderer.block.model.ModelBakery.loadVariantItemModels(ModelBakery.java:175) ~[ModelBakery.class:?]
    at net.minecraftforge.client.model.ModelLoader.setupModelRegistry(ModelLoader.java:164) ~[ModelLoader.class:?]
    at net.minecraft.client.renderer.block.model.ModelManager.onResourceManagerReload(ModelManager.java:28) [ModelManager.class:?]
    at net.minecraft.client.resources.SimpleReloadableResourceManager.notifyReloadListeners(SimpleReloadableResourceManager.java:131) [SimpleReloadableResourceManager.class:?]
    at net.minecraft.client.resources.SimpleReloadableResourceManager.reloadResources(SimpleReloadableResourceManager.java:112) [SimpleReloadableResourceManager.class:?]
    at net.minecraft.client.Minecraft.refreshResources(Minecraft.java:867) [Minecraft.class:?]
    at net.minecraft.client.Minecraft.processKeyF3(Minecraft.java:2234) [Minecraft.class:?]
    at net.minecraft.client.Minecraft.runTickKeyboard(Minecraft.java:2089) [Minecraft.class:?]
    at net.minecraft.client.Minecraft.runTick(Minecraft.java:1933) [Minecraft.class:?]
    at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1186) [Minecraft.class:?]
    at net.minecraft.client.Minecraft.run(Minecraft.java:441) [Minecraft.class:?]
    at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_144]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_144]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_144]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_144]
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_144]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_144]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_144]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_144]
    at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
    at GradleStart.main(GradleStart.java:25) [start/:?]
Caused by: java.io.FileNotFoundException: dw_lonelytraveller:models/item/dwlt_gallifrey_chair_council.json
    at net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:69) ~[FallbackResourceManager.class:?]
    at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:65) ~[SimpleReloadableResourceManager.class:?]
    at net.minecraft.client.renderer.block.model.ModelBakery.loadModel(ModelBakery.java:334) ~[ModelBakery.class:?]
    at net.minecraftforge.client.model.ModelLoader.access$1600(ModelLoader.java:130) ~[ModelLoader.class:?]
    at net.minecraftforge.client.model.ModelLoader$VanillaLoader.loadModel(ModelLoader.java:880) ~[ModelLoader$VanillaLoader.class:?]
    at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:149) ~[ModelLoaderRegistry.class:?]
    ... 25 more
[00:52:26] [main/ERROR] [FML]: Exception loading model for variant dw_lonelytraveller:dwlt_gallifrey_chair_council#inventory for item "dw_lonelytraveller:gallifrey_chair_council", blockstate location exception:
net.minecraftforge.client.model.ModelLoaderRegistry$LoaderException: Exception loading model dw_lonelytraveller:dwlt_gallifrey_chair_council#inventory with loader VariantLoader.INSTANCE, skipping
    at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:153) ~[ModelLoaderRegistry.class:?]
    at net.minecraftforge.client.model.ModelLoader.loadItemModels(ModelLoader.java:322) ~[ModelLoader.class:?]
    at net.minecraft.client.renderer.block.model.ModelBakery.loadVariantItemModels(ModelBakery.java:175) ~[ModelBakery.class:?]
    at net.minecraftforge.client.model.ModelLoader.setupModelRegistry(ModelLoader.java:164) ~[ModelLoader.class:?]
    at net.minecraft.client.renderer.block.model.ModelManager.onResourceManagerReload(ModelManager.java:28) [ModelManager.class:?]
    at net.minecraft.client.resources.SimpleReloadableResourceManager.notifyReloadListeners(SimpleReloadableResourceManager.java:131) [SimpleReloadableResourceManager.class:?]
    at net.minecraft.client.resources.SimpleReloadableResourceManager.reloadResources(SimpleReloadableResourceManager.java:112) [SimpleReloadableResourceManager.class:?]
    at net.minecraft.client.Minecraft.refreshResources(Minecraft.java:867) [Minecraft.class:?]
    at net.minecraft.client.Minecraft.processKeyF3(Minecraft.java:2234) [Minecraft.class:?]
    at net.minecraft.client.Minecraft.runTickKeyboard(Minecraft.java:2089) [Minecraft.class:?]
    at net.minecraft.client.Minecraft.runTick(Minecraft.java:1933) [Minecraft.class:?]
    at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1186) [Minecraft.class:?]
    at net.minecraft.client.Minecraft.run(Minecraft.java:441) [Minecraft.class:?]
    at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_144]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_144]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_144]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_144]
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_144]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_144]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_144]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_144]
    at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
    at GradleStart.main(GradleStart.java:25) [start/:?]
Caused by: net.minecraft.client.renderer.block.model.ModelBlockDefinition$MissingVariantException
    at net.minecraft.client.renderer.block.model.ModelBlockDefinition.getVariant(ModelBlockDefinition.java:83) ~[ModelBlockDefinition.class:?]
    at net.minecraftforge.client.model.ModelLoader$VariantLoader.loadModel(ModelLoader.java:1189) ~[ModelLoader$VariantLoader.class:?]
    at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:149) ~[ModelLoaderRegistry.class:?]
    ... 25 more

 

Posted
7 minutes ago, MajesticMadman said:

And them my blockstate file is:

You are mixing vanilla blockstate format with forge's. Use either one but not both.

 

7 minutes ago, MajesticMadman said:

extends BlockBase

BlockBase is an antipattern. There is already a BlockBase, it's called Block.

 

8 minutes ago, MajesticMadman said:

But doesn't actually change which way it's facing.

Well, why should it? You've specified the property fine, (de)serializing it fine, sure. But you are not doing anything with it. You are not setting it anywhere, nor handling it in Block#getStateForPlacement or anywhere else. Unless you are using vanilla's setBlock to set the property it will always be facing north.

 

As for your log:

10 minutes ago, MajesticMadman said:

Caused by: java.io.FileNotFoundException: dw_lonelytraveller:models/item/dwlt_gallifrey_chair_council.json

 

Posted
9 minutes ago, V0idWa1k3r said:

You are mixing vanilla blockstate format with forge's. Use either one but not both.

This should now be fixed.
 

10 minutes ago, V0idWa1k3r said:

BlockBase is an antipattern. There is already a BlockBase, it's called Block.

I though it would be wise that I can edit BlockBase and it take those into account  in future uses when I did it, though it may not ever be used the idea was more just in case. 

 

12 minutes ago, V0idWa1k3r said:

As for your log:

I'm aware that the item blockstate doesn't exist, just wanted to make sure nothing was missed. But thanks for confirming that's all it is.

 

20 minutes ago, V0idWa1k3r said:

Well, why should it? You've specified the property fine, (de)serializing it fine, sure. But you are not doing anything with it. You are not setting it anywhere, nor handling it in Block#getStateForPlacement or anywhere else. Unless you are using vanilla's setBlock to set the property it will always be facing north.

Yeah, it's working now thanks. Just didn't check over what I had done well enough apparently. I've now fixed that up. Thanks for the help.

 

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.