2024-02-11 19:46:04 +01:00

92 lines
2.5 KiB
Java

package com.hbm.handler;
import com.hbm.items.weapon.ItemCustomMissilePart;
import com.hbm.items.weapon.ItemCustomMissilePart.PartType;
import io.netty.buffer.ByteBuf;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
public class MissileStruct {
public ItemCustomMissilePart warhead;
public ItemCustomMissilePart fuselage;
public ItemCustomMissilePart fins;
public ItemCustomMissilePart thruster;
public MissileStruct() { }
public MissileStruct(ItemStack w, ItemStack f, ItemStack s, ItemStack t) {
if(w != null && w.getItem() instanceof ItemCustomMissilePart)
warhead = (ItemCustomMissilePart) w.getItem();
if(f != null && f.getItem() instanceof ItemCustomMissilePart)
fuselage = (ItemCustomMissilePart) f.getItem();
if(s != null && s.getItem() instanceof ItemCustomMissilePart)
fins = (ItemCustomMissilePart) s.getItem();
if(t != null && t.getItem() instanceof ItemCustomMissilePart)
thruster = (ItemCustomMissilePart) t.getItem();
}
public MissileStruct(Item w, Item f, Item s, Item t) {
if(w instanceof ItemCustomMissilePart)
warhead = (ItemCustomMissilePart) w;
if(f instanceof ItemCustomMissilePart)
fuselage = (ItemCustomMissilePart) f;
if(s instanceof ItemCustomMissilePart)
fins = (ItemCustomMissilePart) s;
if(t instanceof ItemCustomMissilePart)
thruster = (ItemCustomMissilePart) t;
}
public void writeToByteBuffer(ByteBuf buf) {
if(warhead != null && warhead.type == PartType.WARHEAD)
buf.writeInt(Item.getIdFromItem(warhead));
else
buf.writeInt(0);
if(fuselage != null && fuselage.type == PartType.FUSELAGE)
buf.writeInt(Item.getIdFromItem(fuselage));
else
buf.writeInt(0);
if(fins != null && fins.type == PartType.FINS)
buf.writeInt(Item.getIdFromItem(fins));
else
buf.writeInt(0);
if(thruster != null && thruster.type == PartType.THRUSTER)
buf.writeInt(Item.getIdFromItem(thruster));
else
buf.writeInt(0);
}
public static MissileStruct readFromByteBuffer(ByteBuf buf) {
MissileStruct multipart = new MissileStruct();
int w = buf.readInt();
int f = buf.readInt();
int s = buf.readInt();
int t = buf.readInt();
if(w != 0)
multipart.warhead = (ItemCustomMissilePart) Item.getItemById(w);
if(f != 0)
multipart.fuselage = (ItemCustomMissilePart) Item.getItemById(f);
if(s != 0)
multipart.fins = (ItemCustomMissilePart) Item.getItemById(s);
if(t != 0)
multipart.thruster = (ItemCustomMissilePart) Item.getItemById(t);
return multipart;
}
}