package mods.eln.sixnode.powersocket;
import mods.eln.misc.Direction;
import mods.eln.misc.LRDU;
import mods.eln.misc.Obj3D;
import mods.eln.misc.Obj3D.Obj3DPart;
import mods.eln.misc.VoltageLevelColor;
import mods.eln.node.six.SixNodeDescriptor;
import mods.eln.wiki.Data;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import java.util.Collections;
import java.util.List;
import static mods.eln.i18n.I18N.tr;
public class PowerSocketDescriptor extends SixNodeDescriptor {
private Obj3D obj;
private Obj3DPart base;
private Obj3DPart socket;
private int subID;
public int range;
public PowerSocketDescriptor(int subID, String name, Obj3D obj, int range) {
super(name, PowerSocketElement.class, PowerSocketRender.class);
this.subID = subID;
this.range = range;
this.obj = obj;
if (obj != null) {
base = obj.getPart("SocketBase");
switch (subID) {
case 1:
socket = obj.getPart("Socket50V");
voltageLevelColor = VoltageLevelColor.LowVoltage;
break;
case 2:
socket = obj.getPart("Socket200V");
voltageLevelColor = VoltageLevelColor.MediumVoltage;
break;
default:
socket = null;
}
}
}
@Override
public void setParent(Item item, int damage) {
super.setParent(item, damage);
Data.addLight(newItemStack(1));
}
public void draw() {
//GL11.glRotatef(90.f,1.f,0.f,0.f);
if (base != null)
base.draw();
if (socket != null)
socket.draw();
}
@Override
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
return type != ItemRenderType.INVENTORY;
}
@Override
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
return true;
}
@Override
public boolean shouldUseRenderHelperEln(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
return type != ItemRenderType.INVENTORY;
}
@Override
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
if (type == ItemRenderType.INVENTORY) {
super.renderItem(type, item, data);
} else {
draw();
}
}
@Override
public void addInformation(ItemStack itemStack, EntityPlayer entityPlayer, List list, boolean par4) {
super.addInformation(itemStack, entityPlayer, list, par4);
Collections.addAll(list, tr("Supplies any device\nplugged in with energy.").split("\n"));
}
@Override
public LRDU getFrontFromPlace(Direction side, EntityPlayer player) {
return LRDU.Down;
}
}