2023-04-17 14:45:54 +02:00

74 lines
1.7 KiB
Java

package com.hbm.entity.effect;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous;
import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous_ART;
import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Liquid;
import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Viscous;
import net.minecraft.entity.Entity;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
public class EntityMist extends Entity {
public EntityMist(World world) {
super(world);
this.noClip = true;
}
@Override
protected void entityInit() {
this.dataWatcher.addObject(10, new Integer(0));
}
public EntityMist setFluid(FluidType fluid) {
this.dataWatcher.updateObject(10, fluid.getID());
return this;
}
public FluidType getType() {
return Fluids.fromID(this.dataWatcher.getWatchableObjectInt(10));
}
@Override
public void onEntityUpdate() {
}
@Override
protected void readEntityFromNBT(NBTTagCompound nbt) {
this.setFluid(Fluids.fromID(nbt.getInteger("type")));
}
@Override
protected void writeEntityToNBT(NBTTagCompound nbt) {
nbt.setInteger("type", this.getType().getID());
}
public static SprayStyle getStyleFromType(FluidType type) {
if(type.hasTrait(FT_Viscous.class)) {
return SprayStyle.NULL;
}
if(type.hasTrait(FT_Gaseous.class) || type.hasTrait(FT_Gaseous_ART.class)) {
return SprayStyle.GAS;
}
if(type.hasTrait(FT_Liquid.class)) {
return SprayStyle.MIST;
}
return SprayStyle.NULL;
}
public static enum SprayStyle {
MIST, //liquids that have been sprayed into a mist
GAS, //things that were already gaseous
NULL
}
}