Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

I've kind of been ignoring this one for a while because there's nothing technically wrong, just that the display is not as would be desired.

 

I have a block with multiple states that uses a blockstate file to define which texture should display.

The block model is blocks/cross (flowers, tall grass, etc)

 

However this means that the item model is likewise displayed as a cross block:

width=800 height=449https://s14.postimg.org/5skgv4dtt/2016_11_26_13_09_32.png[/img]

 

Is there a way to specify a separate item model, but still use the blockstate file for the specific texture?

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

You'd need to have a property to determine the model that's

true

for items and

false

for blocks. Completely ignore it in your

Block

so it defaults to

false

, but set it to

true

for the variant of your

Item

's

ModelResourceLocation

.

 

You then need to create a model that extends

item/generated

(or the appropriate item model) and put it somewhere in

assets/<modid>/models/block

so it's accessible from your blockstates file. When the property is

true

, use this model; else use

block/cross

.

 

You'll also need to set the

layer0

texture to

#cross

in your

defaults

section (i.e. use the

cross

texture as

layer0

).

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

  • Author

That....half worked.

 

The item model is 100% spot on, but the block model is broken.

Edit: nope, it was me derping with my custom state mapper.  The

getModelResourceLocation()

method was not 100% flexible. It only returned the resource location for a single property, rather than for all properties (except the one it was meant to "ignore").

 

I still have this though, but it shows up perfectly anyway:

 

[19:06:56] [Client thread/WARN]: Unable to resolve texture due to upward reference: #cross in oreflowers:models/block/item/flower

 

Blockstate:

{
    "forge_marker": 1,
    "defaults": {
        "textures": {
        },
        "model": "oreflowers:flower",
        "uvlock": true
    },
    "variants": {
        "normal": [{

        }],
        "inventory": [{

        }],
         "flower_type": {
            "poorjoe":      { "textures": { "cross": "oreflowers:items/poorjoe"} },
            "horsetail":    { "textures": { "cross": "oreflowers:items/horsetail"} },
            "vallozia":     { "textures": { "cross": "oreflowers:items/vallozia"} },
            "flame_lily":   { "textures": { "cross": "oreflowers:items/flame_lily"} },
            "tansy":        { "textures": { "cross": "oreflowers:items/tansy"} },
            "hauman":       { "textures": { "cross": "oreflowers:items/hauman"} },
            "leadplant":    { "textures": { "cross": "oreflowers:items/leadplant"} },
            "red_amaranth": { "textures": { "cross": "oreflowers:items/red_amaranth"} }
        },
        "item":{
            "true":{
                "model": "oreflowers:item/flower"
            },
            "false":{}
        }
    }
}

 

Item model:

{
    "parent": "item/generated",
    "textures": {
        "layer0": "#cross",
        "cross": "oreflowers:items/poorjoe"
    }
}

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

[19:06:56] [Client thread/WARN]: Unable to resolve texture due to upward reference: #cross in oreflowers:models/block/item/flower

Don't set

layer0

to

#cross

in the model, do it in the blockstates file. Textures in models can't reference a texture defined in the same model.

 

[19:06:57] [Client thread/ERROR] [FML]: Exception loading model for variant oreflowers:oreflowers1#flower_type=leadplant for blockstates ["oreflowers:oreflowers1[flower_stalk=false,flower_type=leadplant,item=true]", "oreflowers:oreflowers1[flower_stalk=false,flower_type=leadplant,item=false]"]

Your blockstates file doesn't include the

flower_stalk

property. Edit: I see you've fixed this.

 

I've created a sapling that uses the vanilla variants and defines the item models using Forge's blockstates format. You can see it for 1.10.2 here or 1.11 here (there's no difference in the sapling code, but each of these links is for a separate branch of the repository with code for that version).

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

  • Author

Your blockstates file doesn't include the

flower_stalk

property. Edit: I see you've fixed this.

 

What was actually happening (as the stalk property actually changes files) was that it was trying to find [flower_type] within [flower_type,item] due to my bungling of getModelResourceLocation()

 

I've created a sapling that uses the vanilla variants and defines the item models using Forge's blockstates format. You can see it for 1.10.2 here or 1.11 here (there's no difference in the sapling code, but each of these links is for a separate branch of the repository with code for that version).

 

Thanks for the examples.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

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...

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.