Jump to content

[1.15.1] Block - texture, model, blockstate - understanding


Recommended Posts

Posted

Hi,

I have several questions about that, but let me first show you what I have (It works as I want, but I think I don't understand it well - the "powered" part is not finished, but that is not the problem - I just don't need it now). Questions are on bottom.

(MODID = "automation")

 

In "assets.automation.blockstates" I have file "chopping_block.json"

  Reveal hidden contents

In "assets.automation.models.blocks" I have "chopping_block.json"

  Reveal hidden contents

and also "chopping_block_powered.json"

  Reveal hidden contents

In "assets.automation.textures.blocks.chopping_block" folder there are all 12 PNG files with the right name.

 

And in my "ChoppingBlock" class I have these methods (that I copied - I understand them easily btw)

  Reveal hidden contents

Questions:

1) Does file in "assets.automation.blockstates" have to be really that complicated? I mean that what texture it has to use is defined in files in "assets.automation.models.blocks". In the first file there are basically two states - when it is powered use this model and when it is not powered use this model. I tried to understand that "facing" parameter and "x" and "y" parameter but I don't understand why it has to be this way.

2) When I used to place my "ChoppingBlock" it always faced the same direction eg. north part of cube faced north etc. and it didn't matter from what position I placed it. So I added that part of code (onBlockPlaceBy), but I feel I am kinda cheating? :D I tried to copy code from chest or furnace or piston because these blocks always face to you when you place them but I didn't find the part in the code what causes it. How do you do it by "default" so I don't have to put this part of code into every block that has different textures on each side.

 

Thx for everything btw :D

Posted
  On 1/3/2020 at 10:13 PM, KillBill61 said:

1) Does file in "assets.automation.blockstates" have to be really that complicated?

Expand  

No, use Forge states.

https://mcforge.readthedocs.io/en/1.13.x/models/blockstates/forgeBlockstates/

  On 1/3/2020 at 10:13 PM, KillBill61 said:

So I added that part of code (onBlockPlaceBy), but I feel I am kinda cheating?

Expand  

Eh, that's more or less how it works. Furnaces handle it in AbstractFurnaceBlock in a method called getStateForPlacement().

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.

Posted

Thx for the answers - the second one with "getStateForPlacement()" is much better than what I had.

 

But I still don't know about the first one. When I do for example:

{
	"variants": {
		"powered=false": {
			"model": "automation:blocks/chopping_block"
		},
		"powered=true": {
			"model": "automation:blocks/chopping_block_powered"
		}
	}
}

it always face north and I still don't understand how should I do it "easily" so I don't have to define all 6 facing states. I want that my block acts for example as a furnace. Is there some easy way or I need to define all 6 facing states as I did firstly? I didn't get it from website you posted. How my json file have to look like?

Posted (edited)

You need to include all the variant properties. When using Forge states you can list each property separately and it will do the combinations for you:

https://github.com/Draco18s/ReasonableRealism/blob/1.14.4/src/main/resources/assets/harderores/blockstates/axel.json#L10-L34

Notice how there is both a axel_orientation variant and a facing variant.

Edited by Draco18s

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.

Posted

Hi,

still not working - I removed the "default" part because it is not necessary as I read (and it does nothing with my problem), but I made this:

  Reveal hidden contents

as my json file in blockstate (everything other is same - I only changed this file) and it doesn't load texture in game and I found this part that is probably why it does not work:

  Reveal hidden contents

Can you help me? I am totally lost :D I swear I am not that stoopid.

Posted

If that's the entire error, I'm not sure. It could be that your blockstate is fine, but the model is not.

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.

Posted
  On 1/5/2020 at 5:28 PM, Draco18s said:

If that's the entire error, I'm not sure. It could be that your blockstate is fine, but the model is not.

Expand  

what is wrong with it? :D

 

  Reveal hidden contents

again - everything is in my first comment btw - I am just resending it now

Posted
  On 1/5/2020 at 5:28 PM, Draco18s said:

If that's the entire error, I'm not sure.

Expand  

 

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.

Posted

So for testing I removed the "facing" and leave there only the "powered"

Everything is same except my blockstates file:

  Reveal hidden contents

and in my ChoppingBlock class I changed this:

  Reveal hidden contents

and this is the only problem it prints:

  Reveal hidden contents

I still don't know what to do...

 

Also side question: When I use my first complicated code I can see my block that is black, white and red as should look, but for some reason when I hold it, it has same texture and look except one thing and that is that everything that should be red is white... ???

Posted (edited)

You removed the facing property and the errors involving the facing property went away. Gasp.

 

The underlying issue (whatever it is) still exists and nothing has changed. I don't know what this issue is. 

Edited by Draco18s

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.

Posted

Am I using the

"forge_marker": 1,

correctly?

I mean... I do this for MC version 1.15.1 and the forge version is 30.0.15

I have feeling that it completely ignores this line, because with or without it it do always the same things and it would make sense why it shows these errors.

I downloaded it from forge page and normally followed instructions and everything works except this. Or do I need something else that is not included in my files or code?

Posted
  On 1/7/2020 at 11:10 AM, KillBill61 said:

I have feeling that it completely ignores this line, because with or without it it do always the same things and it would make sense why it shows these errors.

Expand  

If it "does the same thing with or without that line" then that line isn't related to the error.

(That line is what lets you specify two variants once each, rather than X*Y times)

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.

Posted
  On 1/7/2020 at 2:12 PM, Draco18s said:

If it "does the same thing with or without that line" then that line isn't related to the error.

Expand  

I am not saying it is 'error'. I am saying that line is telling that it should use that "enchanted scripting" where you don't have to use "vanilla scripting" and make all the combinations by yourself. I am saying that the reason why I have these errors is because it is not using that "forge_marker" ("enchanted scripting") and instead it is using "vanilla scripting" and that is why it shows these errors.

 

Btw so much thanks to you that you are wasting time with me :( I appreciate it.

If anybody don't know where is the problem (I even download whole forge again) there is probably end and I am stucked with "vanilla" while I am making blockstates files. Just pray for me if some of my future blocks will have 5 states with 10 values and I have to create all combinations xD

Posted

I misunderstood.

Yes. You need the forge_marker in order to use forge states.

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.

Posted
  On 1/7/2020 at 4:54 PM, Draco18s said:

I misunderstood.

Yes. You need the forge_marker in order to use forge states.

Expand  

Well - yes :D But the question is should it work with the basic forge I downloaded as I wrote or I need some other plugin, files that I missed? I can't find anything.

Posted

...what?

Of course it works with "the basic forge" (there is Forge and there is Forge, there aren't "extra plugins"). Your question makes no sense.

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.

Posted

Ok.

Let me very, very blunt here.

 

Explain your problem and post all relevant code, preferably as a git repo.

 

Your last several posts have flip-flopped back and forth over what you did (or didn't do), that it worked (or didn't), and trying to ask a question about why what you did worked (or didn't) that I have no fucking clue what it is you're asking me (including whether or not you still have a problem!).

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.

Posted (edited)

Fine I do it again. This is current status. I included everything that is part of it.

 

  Reveal hidden contents

 

"chopping_block.json" in "assets.automation.blockstates"

  Reveal hidden contents

"chopping_block.json" in "assets.automation.models.blocks"

  Reveal hidden contents

 

"chopping_block_powered.json" in "assets.automation.models.blocks"

  Reveal hidden contents

 

"AutoTrees.java"

  Reveal hidden contents

 

"ChoppingBlock.java"

  Reveal hidden contents

 

"ChoppingBlockItem.java"

  Reveal hidden contents

 

"AutomationItemGroup.java"

  Reveal hidden contents

 

"ModSetup.java"

  Reveal hidden contents

 

I wanted include debug file but it is too long - only errors and warnings is this:

  Reveal hidden contents

 

Question and problem:

Block has default purple/black texture so it didn't load. What am I doing wrong?

Edited by KillBill61
Posted (edited)
  On 1/7/2020 at 10:58 PM, KillBill61 said:

private static final ChoppingBlock INSTANCE = new ChoppingBlock();

Expand  

Oh hey look. A static initializer. Don't do this. It fucks everything up. Problematic Code #8.

 

  On 1/7/2020 at 10:58 PM, KillBill61 said:

public static BlockItem getINSTANCE() { return INSTANCE; }

Expand  

This is literally what @ObjectHolders are for. Not this garbage.

Edit, I see you're using this to register your blocks. Don't do this either. Just call new inside the registry event.

Edited by Draco18s

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.

Posted

I changed it so it probably eliminate some future problems but it actually didn't change anything.

I changed this:

 

"AutoTrees"

  Reveal hidden contents

 

"ModSetup.java"

  Reveal hidden contents

 

"ChoppingBlock.java"

  Reveal hidden contents

 

"ChoppingBlockItem.java"

  Reveal hidden contents

 

"AutomationItemGroup" is same because I can't use it with @ObjectHolder and calling its constructor multiple time means multiple tabs in game.

 

 

Just screenshot of my blocks (still same as before changes). Don't mind my texture - just trying how it looks in game + information about what is which side. You can see that placed block don't have texture and the blockitem has texture.

  Reveal hidden contents

 

This is "chopping_block.json" in "assets.automation.models.item"

  Reveal hidden contents

 

Also can you be more decent? I know you try to help me but you are constantly swearing at me and it makes me sad :/ You know you can write it without it.

  • 2 months later...

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.