Jump to content

[1.11.2] Item transformations with custom mesh definition and model loader


Recommended Posts

Posted

I am trying to make an item similar forge's universal bucket, in that it can hold any fluid, and render differently depending on the fluid within. I basically just copied the model classes, and the loader, and the blockstate json from the forge source, and it is mostly working, the fluid and bottle have the right textures and stuff, but for some reason that I can't figure out, the transformations from forge:default-item are not getting applied in game.

 

Model class, including overridelist, model loader, and baked model: link

Item class, where the model and mesh definition are set in the initModel() method: link

The item's json file: link

 

The model loader is registered in my clientproxy class, and initModel() is called in the initModels() method of ModItems.class, and initModels() is called from my clientproxy class.

Posted

Okay, I found a work around. I still don't know why it wasn't working, but I managed to make the transformations happen by hard coding them in in the baked model class.

Posted
On 22.4.2017 at 10:57 AM, mangoose said:

Okay, I found a work around. I still don't know why it wasn't working, but I managed to make the transformations happen by hard coding them in in the baked model class.

Any way you could show me on how u fixed it, seen to have the same problem ?

Posted

private static ImmutableMap<TransformType, TRSRTransformation> itemTransforms() {
            TRSRTransformation thirdperson = get(0, 3, 1, 0, 0, 0, 0.55f);
            TRSRTransformation firstperson = get(1.13f, 3.2f, 1.13f, 0, -90, 25, 0.68f);
            ImmutableMap.Builder<TransformType, TRSRTransformation> builder = ImmutableMap.builder();
            builder.put(TransformType.GROUND,                  get(0, 2, 0, 0, 0, 0, 0.5f));
            builder.put(TransformType.HEAD,                    get(0, 13, 7, 0, 180, 0, 1));
            builder.put(TransformType.THIRD_PERSON_RIGHT_HAND, thirdperson);
            builder.put(TransformType.THIRD_PERSON_LEFT_HAND, leftify(thirdperson));
            builder.put(TransformType.FIRST_PERSON_RIGHT_HAND, firstperson);
            builder.put(TransformType.FIRST_PERSON_LEFT_HAND, leftify(firstperson));
            return (ImmutableMap) builder.build();
        }

        private static TRSRTransformation get(float tx, float ty, float tz, float ax, float ay, float az, float s) {
            return TRSRTransformation.blockCenterToCorner(new TRSRTransformation(
                    new Vector3f(tx / 16, ty / 16, tz / 16),
                    TRSRTransformation.quatFromXYZDegrees(new Vector3f(ax, ay, az)), new Vector3f(s, s, s), null));
        }

        private static final TRSRTransformation flipX = new TRSRTransformation(null, null, new Vector3f(-1, 1, 1),
                null);

        private static TRSRTransformation leftify(TRSRTransformation transform) {
            return TRSRTransformation.blockCenterToCorner(
                    flipX.compose(TRSRTransformation.blockCornerToCenter(transform)).compose(flipX));
        }

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.