Jump to content

getItemModelWithOverrides returning IBakedModel with no quads


Jackiecrazy

Recommended Posts

As the title may suggest, using said method yields a BakedItemModel that has a texture index but no quads, so I cannot combine item models since, well, they don't have quads for me to combine. The most quizzical things that arise from this are:

  1. It worked before. I did this once, then had to change the config structure a bit to use item NBT instead and now it's broken -.-
  2. The individual items render fine, it's the combination that doesn't work. In fact, I tried to just retrieve the IBakedModel of a rabbit foot and that also has no quads according to both getItemModelOverrides and getItemModelMesher().getItemModel, which I find somewhat odd since the foot most definitely has a list of quads.

I poked around in the RenderItem classes but they seem to do the exact same thing when retrieving models with no problems, my code is below:

Spoiler

protected static class ModelComboWeapon extends ModelCombo {
		protected ItemStack weap;
		private List<BakedQuad> cache;

		public ModelComboWeapon(IBakedModel base, IBakedModel[] combine, ItemStack is) {
			super(base, combine);
			weap = is.copy();
		}

		@Override
		public List<BakedQuad> getQuads(IBlockState state, EnumFacing side, long rand) {
			//System.out.println(state);
			if (cache != null) return cache;
			ArrayList<BakedQuad> quads = new ArrayList<BakedQuad>();
			
			for (PartData p : TaoItems.weap.getParts(weap).values()) {
				//missingno not turning up with rabbit foot but there is still no texture because it suddenly has no quads...
				//FIXME no quads
				IBakedModel quaddy = Minecraft.getMinecraft().getRenderItem().getItemModelWithOverrides(p.toStack(), null, null);
				System.out.println(quaddy.getParticleTexture());
				quads.addAll(quaddy.getQuads(state, side, rand));
				
			}
			cache = quads;
			return quads;
		}

	}

 

What exactly is wrong?

Link to comment
Share on other sites

Bump. I've been trying to figure this out for the last week or two and it's the last hurdle I need to get over, help would be highly appreciated. After some debugging I note that getQuads(state,side,rand) always assumes that side is null, even when I forcibly pass EnumFacing.DOWN to the function. Why would that happen?

Edited by Jackiecrazy
Link to comment
Share on other sites

31 minutes ago, Jackiecrazy said:

Bump. I've been trying to figure this out for the last week or two and it's the last hurdle I need to get over, help would be highly appreciated. After some debugging I note that getQuads(state,side,rand) always assumes that side is null, even when I forcibly pass EnumFacing.DOWN to the function. Why would that happen?

Is PartData.toStack returning a proper ItemStack aka not null or EMPTY?

Does TaoItems.weap.getParts(weap).values() return a filled array of PartData?

Check using your IDE's debugger.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

22 minutes ago, Animefan8888 said:

Is PartData.toStack returning a proper ItemStack aka not null or EMPTY?

Does TaoItems.weap.getParts(weap).values() return a filled array of PartData?

Check using your IDE's debugger.

Yes they do. I figured it out. BakedItemModel only returns quads when the side is null, for whatever reason, so I passed null and now it works. Can anyone tell me why it's designed like that? Also, I'm having a bit of difficulty scaling and translating bakedQuads with this, is there another way, perhaps?

Edited by Jackiecrazy
Link to comment
Share on other sites

Just now, Jackiecrazy said:

Can anyone tell me why it's designed like that?

That was gonna be my second suggestion, it is like that, at least from my brain, is because Items don't have a facing.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

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.