mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
85 lines
2.1 KiB
Java
85 lines
2.1 KiB
Java
package com.hbm.tileentity.bomb;
|
|
|
|
import com.hbm.entity.item.EntityFireworks;
|
|
import com.hbm.handler.threading.PacketThreading;
|
|
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
|
|
|
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
|
import net.minecraft.nbt.NBTTagCompound;
|
|
import net.minecraft.tileentity.TileEntity;
|
|
|
|
public class TileEntityFireworks extends TileEntity {
|
|
|
|
public int color = 0xff0000;
|
|
public String message = "NUCLEAR TECH";
|
|
public int charges;
|
|
|
|
int index;
|
|
int delay;
|
|
|
|
@Override
|
|
public void updateEntity() {
|
|
|
|
if(!worldObj.isRemote) {
|
|
|
|
if(worldObj.isBlockIndirectlyGettingPowered(xCoord, yCoord, zCoord) && !message.isEmpty() && charges > 0) {
|
|
|
|
delay--;
|
|
|
|
if(delay <= 0) {
|
|
delay = 30;
|
|
|
|
int c = (int)(message.charAt(index));
|
|
|
|
int mod = index % 9;
|
|
|
|
double offX = (mod / 3 - 1) * 0.3125;
|
|
double offZ = (mod % 3 - 1) * 0.3125;
|
|
|
|
EntityFireworks fireworks = new EntityFireworks(worldObj, xCoord + 0.5 + offX, yCoord + 1.5, zCoord + 0.5 + offZ, color, c);
|
|
worldObj.spawnEntityInWorld(fireworks);
|
|
|
|
worldObj.playSoundAtEntity(fireworks, "hbm:weapon.rocketFlame", 3.0F, 1.0F);
|
|
|
|
charges--;
|
|
this.markDirty();
|
|
|
|
NBTTagCompound data = new NBTTagCompound();
|
|
data.setString("type", "vanillaExt");
|
|
data.setString("mode", "flame");
|
|
PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, xCoord + 0.5 + offX, yCoord + 1.125, zCoord + 0.5 + offZ), new TargetPoint(this.worldObj.provider.dimensionId, xCoord + 0.5 + offX, yCoord + 1.125, zCoord + 0.5 + offZ, 100));
|
|
|
|
index++;
|
|
|
|
if(index >= message.length()) {
|
|
index = 0;
|
|
delay = 100;
|
|
}
|
|
}
|
|
|
|
} else {
|
|
delay = 0;
|
|
index = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void readFromNBT(NBTTagCompound nbt) {
|
|
super.readFromNBT(nbt);
|
|
|
|
this.charges = nbt.getInteger("charges");
|
|
this.color = nbt.getInteger("color");
|
|
this.message = nbt.getString("message");
|
|
}
|
|
|
|
@Override
|
|
public void writeToNBT(NBTTagCompound nbt) {
|
|
super.writeToNBT(nbt);
|
|
|
|
nbt.setInteger("charges", charges);
|
|
nbt.setInteger("color", color);
|
|
nbt.setString("message", message);
|
|
}
|
|
}
|