Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Triggerable Animations not working with Armor Rendering #433

Open
awitkowski0 opened this issue May 4, 2023 · 0 comments
Open

Triggerable Animations not working with Armor Rendering #433

awitkowski0 opened this issue May 4, 2023 · 0 comments
Labels
bug Something isn't working

Comments

@awitkowski0
Copy link

Hi, I am unable to create a working trigger able animation for armors.

Trigger for it is working (Item Renderer is the same as Armor)

Armor Animation Works (Not triggered)
armor

Controller

    @Override
    public void registerControllers(AnimatableManager.ControllerRegistrar controllers) {
        controllers.add(new AnimationController<>(this, "charge_controller", state -> PlayState.CONTINUE).triggerableAnim("charge", DefaultAnimations.ATTACK_CHARGE));
    }

Trigger Calls (This is called from a C2S packet):

    @Override
    public void press(PlayerEntity playerEntity, ItemStack armorStack) {
        super.press(playerEntity, armorStack);

        ItemStack weapon = playerEntity.getInventory().getMainHandStack();
        ThematicArmor armor = ThematicHelper.getArmor(armorStack);

        if (weapon.getItem() instanceof AquamanTrident aquamanTrident) {
            if (!playerEntity.world.isClient) {
                if (this.getCooldown(armorStack) <= 0) {
                    armor.triggerAnim(playerEntity, GeoItem.getOrAssignId(armorStack, (ServerWorld)playerEntity.world), "charge_controller", "charge");

                    this.incrementCooldown(armorStack, 20 * 20);
                }
            }
        }
    }```
   
Renderer Code Call:
```java
@Override
    public void createRenderer(Consumer<Object> consumer) {
        consumer.accept(new RenderProvider() {
            private final GeoArmorRenderer<?> armorRenderer = new ThematicArmorRenderer(new Identifier(modId, armorId));
            private final ThematicArmorItemRenderer itemRenderer = new ThematicArmorItemRenderer(armorId);

            @Override
            public @NotNull BipedEntityModel<LivingEntity> getHumanoidArmorModel(LivingEntity livingEntity, ItemStack itemStack, EquipmentSlot equipmentSlot, BipedEntityModel<LivingEntity> original) {

                // This prepares our GeoArmorRenderer for the current render frame.
                // These parameters may be null however, so we don't do anything further with them
                this.armorRenderer.prepForRender(livingEntity, itemStack, equipmentSlot, original);

                // Initialize each collection's renderers
                for (Collection collection : ThematicClient.getCollections()) {
                    collection.prepRenderers(livingEntity, itemStack, equipmentSlot, original);
                }

                return this.armorRenderer;
            }

            @Override
            public BuiltinModelItemRenderer getCustomRenderer() {
                return this.itemRenderer;
            }
        });
    }

Actual Renderer:

    /**
     * Create a new instance of this renderer class.
     *
     * @param armor, armor identifier e.g "armor/Herobrine"
     */
    public ThematicArmorRenderer(Identifier armor) {
        super(new ThematicArmorModel(armor));
    }

Animation:
{ "format_version": "1.8.0", "animations": { "attack.charge": { "animation_length": 0.5, "bones": { "armorRightArm": { "rotation": { "0.0": { "vector": [0, 0, 0] }, "0.2917": { "vector": [-141.57316, -25.49671, 28.48347] }, "0.4167": { "vector": [-73.20844, -37.37543, -2.50203] } }, "position": { "0.0": { "vector": [0, 0, 0] }, "0.2917": { "vector": [0, 0, 0] }, "0.4167": { "vector": [0, 0, 0] } } }, "armorLeftArm": { "rotation": { "0.0": { "vector": [0, 0, 0] }, "0.2917": { "vector": [-135, 45, -15] }, "0.4167": { "vector": [-67.71344, 51.15988, -8.57941] } }, "position": { "0.0": { "vector": [0, 0, 0] }, "0.2917": { "vector": [0, 0, 0] }, "0.4167": { "vector": [0, 0, 0] } } } } } }, "geckolib_format_version": 2 }

(Copied from grade properties)
minecraft version 1.19.4
yarn mappings 1.19.4+build.2
loader 0.14.19
fabric 0.80.0+1.19.4
geckolib-fabric-1.19.4:4.1.3

Sorry for posting so much code, just trying to be thorough, if you need anything from me lmk.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
2 participants