Jump to content

Creating a block similar to the Pillar Quartz Block


D3ADM1N3R

Recommended Posts

So I am working on a small mod that adds different variants of  sandstone and stone, and all has been working great up until the pillar blocks. At first, the item for the blocks worked fine, but the block itself didn't render. So I looked for examples in the referenced libraries, and I made another .json file for each block in the block/model folder, so I have stonebrick_pillar.json, and stonebrick_pillar_top. This still didn't fix the issue, and caused the item to render facing the wrong way.

 

I'm new to this, so I don't really know how to explain the other steps I took to try to fix it myself.

 

Here is the code:

 

DMVanillaPlus.java

package d3adm1n3r.dmvanillaplus;

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;
import d3adm1n3r.dmvanillaplus.init.DMVPblocks;
import d3adm1n3r.dmvanillaplus.init.DMVPitems;
import d3adm1n3r.dmvanillaplus.proxy.CommonProxy;

@Mod (modid = Reference.MOD_ID, name = Reference.MOD_NAME, version = Reference.VERSION)
public class DMVanillaPlus {

@SidedProxy(clientSide = Reference.CLIENT_PROXY_CLASS, serverSide = Reference.SERVER_PROXY_CLASS)
public static CommonProxy proxy;

@EventHandler
public void preInit(FMLPreInitializationEvent event)
{
	DMVPblocks.init();
	DMVPblocks.register();
	DMVPitems.init();
	DMVPitems.register();
}

@EventHandler
public void init(FMLInitializationEvent event)
{
	proxy.registerRenders();
}

@EventHandler
public void postInit(FMLPostInitializationEvent event)
{

}
}

Reference.Java

package d3adm1n3r.dmvanillaplus;

public class Reference {
public static final String MOD_ID = "dmvp";
public static final String MOD_NAME = "DM Vanilla Plus";
public static final String VERSION = "1.0";
public static final String CLIENT_PROXY_CLASS = "d3adm1n3r.dmvanillaplus.proxy.ClientProxy";
public static final String SERVER_PROXY_CLASS = "d3adm1n3r.dmvanillaplus.proxy.CommonProxy";
}

DMVPblocks.java

package d3adm1n3r.dmvanillaplus.init;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraftforge.fml.common.registry.GameRegistry;
import d3adm1n3r.dmvanillaplus.Reference;
import d3adm1n3r.dmvanillaplus.blocks.DMblocks;

public class DMVPblocks {

public static Block stonebrick_pillar;

public static void init()
{
	stonebrick_pillar = new DMblocks(Material.rock).setUnlocalizedName("stonebrick_pillar");
}

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

public static void registerRenders()
{
	registerRender(stonebrick_pillar);
}

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

Note: I took all the other blocks out of the code to narrow it down to the issue. I also excluded the proxies as they have not changed and every other block works. Not sure if that changes anything.

 

dmpv/blockstates/stonebrick_pillar.json

{
    "variants": {
        "axis=y":  { "dmpv:model": "stonebrick_pillar_top;" },
        "axis=z":   { "dmpv:model": "stonebrick_pillar", "x": 90 },
        "axis=x":   { "dmpv:model": "stonebrick_pillar", "x": 90, "y": 90 }
    }
}

dmpv/models/block/stonebrick_pillar.json

{
    "parent": "block/column_side",
    "textures": {
        "end": "dmvp:blocks/stonebrick_pillar_top",
        "side": "dmvp:blocks/stonebrick_pillar"
    }
}

dmpv/models/block/stonebrick_pillar_top.json

{
    "parent": "block/cube_column",
    "textures": {
        "end": "dmvp:blocks/stonebrick_pillar_top",
        "side": "dmvp:blocks/stonebrick_pillar"
    }
}

dmpv/models/item/stonebrick_pillar.json

{
    "parent": "dmvp:block/stonebrick_pillar",
    "display": {
        "thirdperson": {
            "rotation": [ 10, -45, 170 ],
            "translation": [ 0, 1.5, -2.75 ],
            "scale": [ 0.375, 0.375, 0.375 ]
        }
    }
}

 

I made sure there were no spelling errors, and all files are in the right directories. If you could help me find out if I made a mistake somewhere down the line, or forgot something, I would be highly appreciative! I'm going out this evening, so I most likely won't be able to test your resolutions until tomorrow.

 

Thanks in advanced!

Link to comment
Share on other sites

In your blockstates.json file, you need to specify your modid with the resource location in the same format that you did in your other .json files, i.e. "model": "dmpv:stonebrick_pillar_top;" - note that 'dmpv:' is with the texture name, and not with 'model'.

 

In the future, all you need to do is look in your console output for errors of this nature - it will give you error messages explaining which texture / resource it could not find as well as other useful information.

Link to comment
Share on other sites

My apologies if I'm misunderstanding what you mean, but I altered stonebrick_pillar.json in blockstates, and it changed nothing.

 

blockstates/stonebrick_pillar.json

{
    "variants": {
        "axis=y":  { "model": "dmvp:stonebrick_pillar_top;" },
        "axis=z":   { "model": "dmvp:stonebrick_pillar", "x": 90 },
        "axis=x":   { "model": "dmvp:stonebrick_pillar", "x": 90, "y": 90 }
    }
}

 

The only console errors I am getting now are:

 

[20:44:58] [Client thread/ERROR] [FML]: Model definition for location dmvp:stonebrick_pillar#normal not found

 

[20:45:08] [Client thread/ERROR] [FML]: Model definition for location dmvp:stonebrick_pillar#normal not found

 

Just the same thing twice, and I don't really understand what it means.

 

I tried modifying the code in two ways, neither of which worked:

 

{
    "variants": {
        "axis=y":  { "model": "dmvp:blocks/stonebrick_pillar_top;" },
        "axis=z":   { "model": "dmvp:blocks/stonebrick_pillar", "x": 90 },
        "axis=x":   { "model": "dmvp:blocks/stonebrick_pillar", "x": 90, "y": 90 }
    }
}

 

{
    "variants": {
        "axis=y":  { "model": "dmvp:block/stonebrick_pillar_top;" },
        "axis=z":   { "model": "dmvp:block/stonebrick_pillar", "x": 90 },
        "axis=x":   { "model": "dmvp:block/stonebrick_pillar", "x": 90, "y": 90 }
    }
}

Link to comment
Share on other sites

I modified my comment a bit to add the changes and the console errors.. I didn't notice the ";", but I removed it and searched for any others in the files, which I did not find. The textures still didn't load, and the error messages remained the same.

 

I greatly appreciate your time trying to help me, I hope I'm not annoying you.

 

Here is an ingame image of the two issues I am experiencing  http://i.imgur.com/HBWbx91.png

 

Here is the current state of all the relevant files:

 

blockstates/stonebrick_pillar.json

{
    "variants": {
        "axis=y":  { "model": "dmvp:stonebrick_pillar_top" },
        "axis=z":   { "model": "dmvp:stonebrick_pillar", "x": 90 },
        "axis=x":   { "model": "dmvp:stonebrick_pillar", "x": 90, "y": 90 }
    }
}

 

models/block/stonebrick_pillar.json

{
    "parent": "block/column_side",
    "textures": {
        "end": "dmvp:blocks/stonebrick_pillar_top",
        "side": "dmvp:blocks/stonebrick_pillar"
    }
}

 

models/block/stonebrick_pillar_top.json

{
    "parent": "block/cube_column",
    "textures": {
        "end": "dmvp:blocks/stonebrick_pillar_top",
        "side": "dmvp:blocks/stonebrick_pillar"
    }
}

 

models/item/stonebrick_pillar.json

{
    "parent": "dmvp:block/stonebrick_pillar",
    "display": {
        "thirdperson": {
            "rotation": [ 10, -45, 170 ],
            "translation": [ 0, 1.5, -2.75 ],
            "scale": [ 0.375, 0.375, 0.375 ]
        }
    }
}

 

Here is the whole console from my last attempt (You'll see other blocks with the same issues, though I left them out since if I can fix one I can fix them all.)

 

[21:08:51] [main/INFO] [GradleStart]: Extra: []
[21:08:51] [main/INFO] [GradleStart]: Running with arguments: [--userProperties, {}, --assetsDir, C:/Users/halo3_000/.gradle/caches/minecraft/assets, --assetIndex, 1.8, --accessToken, {REDACTED}, --version, 1.8, --tweakClass, net.minecraftforge.fml.common.launcher.FMLTweaker, --tweakClass, net.minecraftforge.gradle.tweakers.CoremodTweaker]
[21:08:51] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
[21:08:51] [main/INFO] [LaunchWrapper]: Using primary tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
[21:08:51] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.CoremodTweaker
[21:08:51] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLTweaker
[21:08:51] [main/INFO] [FML]: Forge Mod Loader version 8.0.37.1334 for Minecraft 1.8 loading
[21:08:51] [main/INFO] [FML]: Java is Java HotSpot(TM) Client VM, version 1.8.0_45, running on Windows 8.1:x86:6.3, installed at C:\Program Files (x86)\Java\jre1.8.0_45
[21:08:51] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
[21:08:51] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.CoremodTweaker
[21:08:51] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.fml.relauncher.FMLCorePlugin
[21:08:51] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.classloading.FMLForgePlugin
[21:08:51] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
[21:08:51] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
[21:08:51] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
[21:08:51] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
[21:08:51] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
[21:08:51] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
[21:08:52] [main/ERROR] [FML]: The binary patch set is missing. Either you are in a development environment, or things are not going to work!
[21:08:58] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing
[21:08:58] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
[21:08:58] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
[21:08:59] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
[21:08:59] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.TerminalTweaker
[21:08:59] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.TerminalTweaker
[21:08:59] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.client.main.Main}
[21:09:01] [Client thread/INFO]: Setting user: Player189
[21:09:07] [Client thread/INFO]: LWJGL Version: 2.9.1
[21:09:08] [Client thread/INFO] [MinecraftForge]: Attempting early MinecraftForge initialization
[21:09:08] [Client thread/INFO] [FML]: MinecraftForge v11.14.1.1334 Initialized
[21:09:08] [Client thread/INFO] [FML]: Replaced 204 ore recipies
[21:09:08] [Client thread/INFO] [MinecraftForge]: Completed early MinecraftForge initialization
[21:09:08] [Client thread/INFO] [FML]: Searching C:\Users\halo3_000\Desktop\Libraries\Projects\DM PACKS\Dan's Mod\DM Vanilla Plus\eclipse\mods for mods
[21:09:10] [Client thread/INFO] [FML]: Forge Mod Loader has identified 4 mods to load
[21:09:11] [Client thread/INFO] [FML]: Attempting connection with missing mods [mcp, FML, Forge, dmvp] at CLIENT
[21:09:11] [Client thread/INFO] [FML]: Attempting connection with missing mods [mcp, FML, Forge, dmvp] at SERVER
[21:09:12] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:DM Vanilla Plus
[21:09:12] [Client thread/INFO] [FML]: Processing ObjectHolder annotations
[21:09:12] [Client thread/INFO] [FML]: Found 384 ObjectHolder annotations
[21:09:12] [Client thread/INFO] [FML]: Configured a dormant chunk cache size of 0
[21:09:12] [Client thread/INFO] [FML]: Applying holder lookups
[21:09:12] [Client thread/INFO] [FML]: Holder lookups applied
[21:09:13] [sound Library Loader/INFO]: Starting up SoundSystem...
[21:09:13] [Thread-7/INFO]: Initializing LWJGL OpenAL
[21:09:13] [Thread-7/INFO]: (The LWJGL binding of OpenAL.  For more information, see http://www.lwjgl.org)
[21:09:14] [Thread-7/INFO]: OpenAL initialized.
[21:09:14] [sound Library Loader/INFO]: Sound engine started
[21:09:19] [Client thread/INFO]: Created: 512x512 textures-atlas
[21:09:20] [Client thread/ERROR] [FML]: Model definition for location dmvp:red_sandstone_pillar#normal not found
[21:09:20] [Client thread/ERROR] [FML]: Model definition for location dmvp:stonebrick_pillar#normal not found
[21:09:20] [Client thread/ERROR] [FML]: Model definition for location dmvp:stonebrick_pillar_mossy#normal not found
[21:09:20] [Client thread/ERROR] [FML]: Model definition for location dmvp:stonebrick_pillar_cracked#normal not found
[21:09:20] [Client thread/ERROR] [FML]: Model definition for location dmvp:sandstone_pillar#normal not found
[21:09:21] [Client thread/INFO] [FML]: Forge Mod Loader has successfully loaded 4 mods
[21:09:21] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:DM Vanilla Plus
[21:09:21] [Client thread/INFO]: SoundSystem shutting down...
[21:09:22] [Client thread/WARN]: Author: Paul Lamb, www.paulscode.com
[21:09:22] [sound Library Loader/INFO]: Starting up SoundSystem...
[21:09:22] [Thread-9/INFO]: Initializing LWJGL OpenAL
[21:09:22] [Thread-9/INFO]: (The LWJGL binding of OpenAL.  For more information, see http://www.lwjgl.org)
[21:09:22] [Thread-9/INFO]: OpenAL initialized.
[21:09:22] [sound Library Loader/INFO]: Sound engine started
[21:09:28] [Client thread/INFO]: Created: 512x512 textures-atlas
[21:09:29] [Client thread/ERROR] [FML]: Model definition for location dmvp:red_sandstone_pillar#normal not found
[21:09:29] [Client thread/ERROR] [FML]: Model definition for location dmvp:stonebrick_pillar#normal not found
[21:09:29] [Client thread/ERROR] [FML]: Model definition for location dmvp:stonebrick_pillar_mossy#normal not found
[21:09:29] [Client thread/ERROR] [FML]: Model definition for location dmvp:stonebrick_pillar_cracked#normal not found
[21:09:29] [Client thread/ERROR] [FML]: Model definition for location dmvp:sandstone_pillar#normal not found
[21:09:39] [server thread/INFO]: Starting integrated minecraft server version 1.8
[21:09:39] [server thread/INFO]: Generating keypair
[21:09:40] [server thread/INFO] [FML]: Injecting existing block and item data into this server instance
[21:09:40] [server thread/INFO] [FML]: Applying holder lookups
[21:09:40] [server thread/INFO] [FML]: Holder lookups applied
[21:09:40] [server thread/INFO] [FML]: Loading dimension 0 (Test World) (net.minecraft.server.integrated.IntegratedServer@158821e)
[21:09:40] [server thread/INFO] [FML]: Loading dimension 1 (Test World) (net.minecraft.server.integrated.IntegratedServer@158821e)
[21:09:40] [server thread/INFO] [FML]: Loading dimension -1 (Test World) (net.minecraft.server.integrated.IntegratedServer@158821e)
[21:09:41] [server thread/INFO]: Preparing start region for level 0
[21:09:42] [server thread/INFO]: Preparing spawn area: 31%
[21:09:42] [server thread/INFO]: Changing view distance to 8, from 10
[21:09:44] [Netty Local Client IO #0/INFO] [FML]: Server protocol version 1
[21:09:44] [Netty Server IO #1/INFO] [FML]: Client protocol version 1
[21:09:44] [Netty Server IO #1/INFO] [FML]: Client attempting to join with 4 mods : [email protected],[email protected],[email protected],[email protected]
[21:09:44] [Netty Local Client IO #0/INFO] [FML]: [Netty Local Client IO #0] Client side modded connection established
[21:09:44] [server thread/INFO] [FML]: [server thread] Server side modded connection established
[21:09:44] [server thread/INFO]: Player189[local:E:0955f841] logged in with entity id 59 at (1323.3888069625073, 6.0, 1664.134951069908)
[21:09:44] [server thread/INFO]: Player189 joined the game
[21:10:06] [server thread/INFO]: Player189 has just earned the achievement [Taking Inventory]
[21:10:06] [Client thread/INFO]: [CHAT] Player189 has just earned the achievement [Taking Inventory]
[21:10:39] [server thread/INFO]: Saving and pausing game...
[21:10:39] [server thread/INFO]: Saving chunks for level 'Test World'/Overworld
[21:10:39] [server thread/INFO]: Saving chunks for level 'Test World'/Nether
[21:10:40] [server thread/INFO]: Saving chunks for level 'Test World'/The End
[21:10:54] [Client thread/INFO]: [CHAT] Saved screenshot as 2015-06-15_21.10.52.png
[21:12:20] [server thread/INFO]: Saving and pausing game...
[21:12:20] [server thread/INFO]: Saving chunks for level 'Test World'/Overworld
[21:12:20] [server thread/INFO]: Saving chunks for level 'Test World'/Nether
[21:12:20] [server thread/INFO]: Saving chunks for level 'Test World'/The End
[21:12:21] [server thread/INFO]: Stopping server
[21:12:21] [server thread/INFO]: Saving players
[21:12:21] [server thread/INFO]: Saving worlds
[21:12:21] [server thread/INFO]: Saving chunks for level 'Test World'/Overworld
[21:12:21] [server thread/INFO]: Saving chunks for level 'Test World'/Nether
[21:12:21] [server thread/INFO]: Saving chunks for level 'Test World'/The End
[21:12:21] [server thread/INFO] [FML]: Unloading dimension 0
[21:12:21] [server thread/INFO] [FML]: Unloading dimension -1
[21:12:21] [server thread/INFO] [FML]: Unloading dimension 1
[21:12:21] [server thread/INFO] [FML]: Applying holder lookups
[21:12:22] [server thread/INFO] [FML]: Holder lookups applied
[21:12:23] [Client thread/INFO]: Stopping!
[21:12:23] [Client thread/INFO]: SoundSystem shutting down...
[21:12:23] [Client thread/WARN]: Author: Paul Lamb, www.paulscode.com
Java HotSpot(TM) Client VM warning: Using incremental CMS is deprecated and will likely be removed in a future release

Link to comment
Share on other sites

Do you not see this in your console?

 

[21:09:20] [Client thread/ERROR] [FML]: Model definition for location dmvp:red_sandstone_pillar#normal not found[21:09:20] [Client thread/ERROR] [FML]: Model definition for location dmvp:stonebrick_pillar#normal not found[21:09:20] [Client thread/ERROR] [FML]: Model definition for location dmvp:stonebrick_pillar_mossy#normal not found[21:09:20] [Client thread/ERROR] [FML]: Model definition for location dmvp:stonebrick_pillar_cracked#normal not found[21:09:20] [Client thread/ERROR] [FML]: Model definition for location dmvp:sandstone_pillar#normal not found

 

That is exactly the type of message I'm talking about. Your model .jsons are either in the wrong file, or you have them wrong in your blockstates .json.

Link to comment
Share on other sites

Okay. Thank you again for trying to help me, but I clearly stated before that these were the errors coming up, and I did not know what they mean. I provided the details of all of the files and their directories. That may be what's wrong, but I cannot figure out how to correct the error, as I cannot find the specifics.

Link to comment
Share on other sites

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.