Search in sources :

Example 1 with VisualEffectProvider

use of com.builtbroken.mc.client.effects.VisualEffectProvider in project Engine by VoltzEngine-Project.

the class EffectLayer method trigger.

public void trigger(World world, double x, double y, double z, double mx, double my, double mz, boolean endPoint, NBTTagCompound nbt) {
    VisualEffectProvider provider = VisualEffectRegistry.main.get(effectKey);
    if (provider != null) {
        NBTTagCompound usedNBT;
        if (nbt != null && !nbt.hasNoTags()) {
            usedNBT = (NBTTagCompound) nbt.copy();
            //Merges base NBT with server nbt
            if (this.getNbt() != null) {
                for (Object o : getNbt().func_150296_c()) {
                    if (o instanceof String) {
                        String key = (String) o;
                        NBTBase tag = getNbt().getTag(key);
                        if (tag != null) {
                            usedNBT.setTag(key, tag);
                        }
                    }
                }
            }
        } else if (this.getNbt() != null) {
            usedNBT = nbt;
        } else {
            usedNBT = new NBTTagCompound();
        }
        Pos renderOffset = this.renderOffset;
        if (renderOffset != Pos.zero && (usedNBT.hasKey("yaw") || usedNBT.hasKey("pitch"))) {
            float yaw = usedNBT.getFloat("yaw");
            float pitch = usedNBT.getFloat("pitch");
            angle.set(yaw, pitch, 0);
            renderOffset = (Pos) angle.transform(renderOffset);
        }
        provider.displayEffect(world, x + renderOffset.x(), y + renderOffset.y(), z + renderOffset.z(), mx, my, mz, endPoint, usedNBT);
    } else {
        Engine.logger().error("Failed to find a visual effect provider for key '" + effectKey + "'");
    }
}
Also used : VisualEffectProvider(com.builtbroken.mc.client.effects.VisualEffectProvider) NBTBase(net.minecraft.nbt.NBTBase) Pos(com.builtbroken.mc.imp.transform.vector.Pos) NBTTagCompound(net.minecraft.nbt.NBTTagCompound)

Example 2 with VisualEffectProvider

use of com.builtbroken.mc.client.effects.VisualEffectProvider in project Engine by VoltzEngine-Project.

the class PacketSpawnParticle method handleClientSide.

@Override
public void handleClientSide(EntityPlayer player) {
    if (player.worldObj.provider.dimensionId == dim) {
        try {
            if (name.startsWith("JSON_")) {
                String key = name.substring(5, name.length()).toLowerCase();
                IEffectData data = ClientDataHandler.INSTANCE.getEffect(key);
                if (data != null) {
                    data.trigger(player.getEntityWorld(), x, y, z, vx, vy, vz, endPoint, otherData != null ? otherData : new NBTTagCompound());
                } else if (Engine.runningAsDev) {
                    Engine.logger().error("Failed to find a effect data for key '" + name + "'");
                }
            } else if (name.startsWith("VEP_")) {
                String key = name.substring(4, name.length());
                VisualEffectProvider provider = VisualEffectRegistry.main.get(key);
                if (provider != null) {
                    provider.displayEffect(player.getEntityWorld(), x, y, z, vx, vy, vz, endPoint, otherData != null ? otherData : new NBTTagCompound());
                } else if (Engine.runningAsDev) {
                    Engine.logger().error("Failed to find a visual effect provider for name '" + name + "'");
                }
            } else {
                player.worldObj.spawnParticle(name, x, y, z, vx, vy, vz);
            }
        } catch (Exception e) {
            Engine.logger().error("Failed handling particle spawn packet with [name=" + name + ", dim=" + dim + ",pos=" + x + ", " + y + ", " + z + ", Vel=" + vx + ", " + vy + ", " + vz + "]", e);
        }
    }
}
Also used : IEffectData(com.builtbroken.mc.client.json.imp.IEffectData) VisualEffectProvider(com.builtbroken.mc.client.effects.VisualEffectProvider) NBTTagCompound(net.minecraft.nbt.NBTTagCompound)

Aggregations

VisualEffectProvider (com.builtbroken.mc.client.effects.VisualEffectProvider)2 NBTTagCompound (net.minecraft.nbt.NBTTagCompound)2 IEffectData (com.builtbroken.mc.client.json.imp.IEffectData)1 Pos (com.builtbroken.mc.imp.transform.vector.Pos)1 NBTBase (net.minecraft.nbt.NBTBase)1