aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/entityviewer/AgeModifier.java
blob: 5884512f34dd4d749f245564eb851c8215ad7d2c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package io.github.moulberry.notenoughupdates.miscfeatures.entityviewer;

import com.google.gson.JsonObject;
import io.github.moulberry.notenoughupdates.mixins.AccessorEntityAgeable;
import io.github.moulberry.notenoughupdates.mixins.AccessorEntityArmorStand;
import net.minecraft.entity.EntityAgeable;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityArmorStand;
import net.minecraft.entity.monster.EntityZombie;

public class AgeModifier extends EntityViewerModifier {
    @Override
    public EntityLivingBase applyModifier(EntityLivingBase base, JsonObject info) {
        boolean baby = info.has("baby") && info.get("baby").getAsBoolean();
        if (base instanceof EntityAgeable) {
            ((AccessorEntityAgeable) base).setGrowingAgeDirect(baby ? -1 : 1);
            return base;
        }
        if (base instanceof EntityZombie) {
            ((EntityZombie) base).setChild(baby);
            return base;
        }
        if (base instanceof EntityArmorStand) {
            ((AccessorEntityArmorStand) base).setSmallDirect(baby);
            return base;
        }
        System.out.println("Cannot apply age to a non ageable entity: " + base);
        return null;
    }
}