v5.5.6 Beta #11
*Fixed liquid update packets. *SideOnly checks in client classes. *Robits have nameplates and can be renamed. *Robits can now breath in outer space.
This commit is contained in:
parent
124d4a5998
commit
9c189116fa
21 changed files with 250 additions and 17 deletions
Binary file not shown.
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 10 KiB |
|
@ -11,6 +11,10 @@ import net.minecraft.world.World;
|
||||||
|
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
public class GuiRobitCrafting extends GuiContainer
|
public class GuiRobitCrafting extends GuiContainer
|
||||||
{
|
{
|
||||||
public int entityId;
|
public int entityId;
|
||||||
|
|
|
@ -10,6 +10,10 @@ import net.minecraft.util.StatCollector;
|
||||||
|
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
public class GuiRobitInventory extends GuiContainer
|
public class GuiRobitInventory extends GuiContainer
|
||||||
{
|
{
|
||||||
public EntityRobit robit;
|
public EntityRobit robit;
|
||||||
|
|
|
@ -5,18 +5,29 @@ import mekanism.common.EntityRobit;
|
||||||
import mekanism.common.Mekanism;
|
import mekanism.common.Mekanism;
|
||||||
import mekanism.common.PacketHandler;
|
import mekanism.common.PacketHandler;
|
||||||
import net.minecraft.client.gui.GuiButton;
|
import net.minecraft.client.gui.GuiButton;
|
||||||
|
import net.minecraft.client.gui.GuiTextField;
|
||||||
import net.minecraft.client.gui.inventory.GuiContainer;
|
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||||
import net.minecraft.entity.player.InventoryPlayer;
|
import net.minecraft.entity.player.InventoryPlayer;
|
||||||
|
|
||||||
|
import org.lwjgl.input.Keyboard;
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
import universalelectricity.core.electricity.ElectricityDisplay;
|
import universalelectricity.core.electricity.ElectricityDisplay;
|
||||||
import universalelectricity.core.electricity.ElectricityDisplay.ElectricUnit;
|
import universalelectricity.core.electricity.ElectricityDisplay.ElectricUnit;
|
||||||
|
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
public class GuiRobitMain extends GuiContainer
|
public class GuiRobitMain extends GuiContainer
|
||||||
{
|
{
|
||||||
public EntityRobit robit;
|
public EntityRobit robit;
|
||||||
|
|
||||||
|
public boolean displayNameChange;
|
||||||
|
|
||||||
|
private GuiTextField nameChangeField;
|
||||||
|
private GuiButton confirmName;
|
||||||
|
|
||||||
public GuiRobitMain(InventoryPlayer inventory, EntityRobit entity)
|
public GuiRobitMain(InventoryPlayer inventory, EntityRobit entity)
|
||||||
{
|
{
|
||||||
super(new ContainerRobitMain(inventory, entity));
|
super(new ContainerRobitMain(inventory, entity));
|
||||||
|
@ -24,20 +35,87 @@ public class GuiRobitMain extends GuiContainer
|
||||||
robit = entity;
|
robit = entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void toggleNameChange()
|
||||||
|
{
|
||||||
|
displayNameChange = !displayNameChange;
|
||||||
|
confirmName.drawButton = displayNameChange;
|
||||||
|
nameChangeField.setFocused(displayNameChange);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void changeName()
|
||||||
|
{
|
||||||
|
if(nameChangeField.getText() != null && !nameChangeField.getText().isEmpty())
|
||||||
|
{
|
||||||
|
PacketHandler.sendNameUpdate(nameChangeField.getText(), robit.entityId);
|
||||||
|
toggleNameChange();
|
||||||
|
nameChangeField.setText("");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void actionPerformed(GuiButton guibutton)
|
||||||
|
{
|
||||||
|
if(guibutton.id == 0)
|
||||||
|
{
|
||||||
|
changeName();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initGui()
|
||||||
|
{
|
||||||
|
super.initGui();
|
||||||
|
|
||||||
|
int guiWidth = (width - xSize) / 2;
|
||||||
|
int guiHeight = (height - ySize) / 2;
|
||||||
|
|
||||||
|
buttonList.clear();
|
||||||
|
buttonList.add(confirmName = new GuiButton(0, guiWidth + 58, guiHeight + 47, 60, 20, "Confirm"));
|
||||||
|
confirmName.drawButton = displayNameChange;
|
||||||
|
|
||||||
|
nameChangeField = new GuiTextField(fontRenderer, guiWidth + 48, guiHeight + 21, 80, 12);
|
||||||
|
nameChangeField.setMaxStringLength(12);
|
||||||
|
nameChangeField.setFocused(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void keyTyped(char c, int i)
|
||||||
|
{
|
||||||
|
if(!displayNameChange)
|
||||||
|
{
|
||||||
|
super.keyTyped(c, i);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if(i == Keyboard.KEY_RETURN)
|
||||||
|
{
|
||||||
|
changeName();
|
||||||
|
}
|
||||||
|
else if(i == Keyboard.KEY_ESCAPE)
|
||||||
|
{
|
||||||
|
mc.thePlayer.closeScreen();
|
||||||
|
}
|
||||||
|
|
||||||
|
nameChangeField.textboxKeyTyped(c, i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY)
|
protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY)
|
||||||
{
|
{
|
||||||
fontRenderer.drawString("Robit", 76, 6, 0x404040);
|
fontRenderer.drawString("Robit", 76, 6, 0x404040);
|
||||||
fontRenderer.drawString("Inventory", 8, (ySize - 96) + 3, 0x404040);
|
|
||||||
fontRenderer.drawString("Hi, I'm Robit!", 29, 18, 0x00CD00);
|
if(!displayNameChange)
|
||||||
|
{
|
||||||
|
fontRenderer.drawString("Hi, I'm " + robit.getTranslatedEntityName() + "!", 29, 18, 0x00CD00);
|
||||||
fontRenderer.drawString("Energy: " + ElectricityDisplay.getDisplayShort(robit.getEnergy(), ElectricUnit.JOULES), 29, 36, 0x00CD00);
|
fontRenderer.drawString("Energy: " + ElectricityDisplay.getDisplayShort(robit.getEnergy(), ElectricUnit.JOULES), 29, 36, 0x00CD00);
|
||||||
fontRenderer.drawString("Following: " + robit.getFollowing(), 29, 45, 0x00CD00);
|
fontRenderer.drawString("Following: " + robit.getFollowing(), 29, 45, 0x00CD00);
|
||||||
fontRenderer.drawString("Owner: " + robit.getOwnerName(), 29, 54, 0x00CD00);
|
fontRenderer.drawString("Owner: " + robit.getOwnerName(), 29, 54, 0x00CD00);
|
||||||
|
}
|
||||||
|
|
||||||
int xAxis = (mouseX - (width - xSize) / 2);
|
int xAxis = (mouseX - (width - xSize) / 2);
|
||||||
int yAxis = (mouseY - (height - ySize) / 2);
|
int yAxis = (mouseY - (height - ySize) / 2);
|
||||||
|
|
||||||
if(xAxis >= 20 && xAxis <= 24 && yAxis >= 17 && yAxis <= 70)
|
if(xAxis >= 28 && xAxis <= 148 && yAxis >= 74 && yAxis <= 78)
|
||||||
{
|
{
|
||||||
drawCreativeTabHoveringText(ElectricityDisplay.getDisplayShort(robit.getEnergy(), ElectricUnit.JOULES), xAxis, yAxis);
|
drawCreativeTabHoveringText(ElectricityDisplay.getDisplayShort(robit.getEnergy(), ElectricUnit.JOULES), xAxis, yAxis);
|
||||||
}
|
}
|
||||||
|
@ -45,6 +123,10 @@ public class GuiRobitMain extends GuiContainer
|
||||||
{
|
{
|
||||||
drawCreativeTabHoveringText("Toggle 'follow' mode", xAxis, yAxis);
|
drawCreativeTabHoveringText("Toggle 'follow' mode", xAxis, yAxis);
|
||||||
}
|
}
|
||||||
|
else if(xAxis >= 6 && xAxis <= 24 && yAxis >= 53 && yAxis <= 71)
|
||||||
|
{
|
||||||
|
drawCreativeTabHoveringText("Rename this Robit", xAxis, yAxis);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -107,10 +189,24 @@ public class GuiRobitMain extends GuiContainer
|
||||||
drawTexturedModalRect(guiWidth + 152, guiHeight + 53, 176 + 25, 198, 18, 18);
|
drawTexturedModalRect(guiWidth + 152, guiHeight + 53, 176 + 25, 198, 18, 18);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(xAxis >= 6 && xAxis <= 24 && yAxis >= 53 && yAxis <= 71)
|
||||||
|
{
|
||||||
|
drawTexturedModalRect(guiWidth + 6, guiHeight + 53, 176 + 25, 216, 18, 18);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
drawTexturedModalRect(guiWidth + 6, guiHeight + 53, 176 + 25, 234, 18, 18);
|
||||||
|
}
|
||||||
|
|
||||||
int displayInt;
|
int displayInt;
|
||||||
|
|
||||||
displayInt = getScaledEnergyLevel(53);
|
displayInt = getScaledEnergyLevel(120);
|
||||||
drawTexturedModalRect(guiWidth + 20, guiHeight + 17 + 53 - displayInt, 176 + 25 + 18, 36 + 53 - displayInt, 4, displayInt);
|
drawTexturedModalRect(guiWidth + 28, guiHeight + 74, 0, 166, displayInt, 4);
|
||||||
|
|
||||||
|
if(displayNameChange)
|
||||||
|
{
|
||||||
|
drawTexturedModalRect(guiWidth + 28, guiHeight + 17, 0, 166 + 4, 120, 53);
|
||||||
|
nameChangeField.drawTextBox();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getScaledEnergyLevel(int i)
|
private int getScaledEnergyLevel(int i)
|
||||||
|
@ -123,6 +219,8 @@ public class GuiRobitMain extends GuiContainer
|
||||||
{
|
{
|
||||||
super.mouseClicked(mouseX, mouseY, button);
|
super.mouseClicked(mouseX, mouseY, button);
|
||||||
|
|
||||||
|
nameChangeField.mouseClicked(mouseX, mouseY, button);
|
||||||
|
|
||||||
if(button == 0)
|
if(button == 0)
|
||||||
{
|
{
|
||||||
int xAxis = (mouseX - (width - xSize) / 2);
|
int xAxis = (mouseX - (width - xSize) / 2);
|
||||||
|
@ -161,6 +259,11 @@ public class GuiRobitMain extends GuiContainer
|
||||||
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||||
PacketHandler.sendFollowUpdate(!robit.getFollowing(), robit.entityId);
|
PacketHandler.sendFollowUpdate(!robit.getFollowing(), robit.entityId);
|
||||||
}
|
}
|
||||||
|
else if(xAxis >= 6 && xAxis <= 24 && yAxis >= 53 && yAxis <= 71)
|
||||||
|
{
|
||||||
|
mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F);
|
||||||
|
toggleNameChange();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,10 @@ import net.minecraft.world.World;
|
||||||
import org.lwjgl.input.Keyboard;
|
import org.lwjgl.input.Keyboard;
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
public class GuiRobitRepair extends GuiContainer implements ICrafting
|
public class GuiRobitRepair extends GuiContainer implements ICrafting
|
||||||
{
|
{
|
||||||
public int entityId;
|
public int entityId;
|
||||||
|
|
|
@ -11,9 +11,13 @@ import net.minecraft.world.IBlockAccess;
|
||||||
|
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Credit to BuildCraft
|
* Credit to BuildCraft
|
||||||
*/
|
*/
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
public class MekanismRenderer
|
public class MekanismRenderer
|
||||||
{
|
{
|
||||||
private static RenderBlocks renderBlocks = new RenderBlocks();
|
private static RenderBlocks renderBlocks = new RenderBlocks();
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
package mekanism.client;
|
package mekanism.client;
|
||||||
|
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
import net.minecraft.client.model.ModelBase;
|
import net.minecraft.client.model.ModelBase;
|
||||||
import net.minecraft.client.model.ModelRenderer;
|
import net.minecraft.client.model.ModelRenderer;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
|
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
public class ModelChargepad extends ModelBase
|
public class ModelChargepad extends ModelBase
|
||||||
{
|
{
|
||||||
ModelRenderer Shape1;
|
ModelRenderer Shape1;
|
||||||
|
|
|
@ -2,10 +2,14 @@ package mekanism.client;
|
||||||
|
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
import net.minecraft.client.model.ModelBase;
|
import net.minecraft.client.model.ModelBase;
|
||||||
import net.minecraft.client.model.ModelRenderer;
|
import net.minecraft.client.model.ModelRenderer;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
|
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
public class ModelRobit extends ModelBase
|
public class ModelRobit extends ModelBase
|
||||||
{
|
{
|
||||||
public ModelRenderer Body;
|
public ModelRenderer Body;
|
||||||
|
|
|
@ -2,10 +2,14 @@ package mekanism.client;
|
||||||
|
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
import mekanism.common.TileEntityChargepad;
|
import mekanism.common.TileEntityChargepad;
|
||||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
public class RenderChargepad extends TileEntitySpecialRenderer
|
public class RenderChargepad extends TileEntitySpecialRenderer
|
||||||
{
|
{
|
||||||
private ModelChargepad model = new ModelChargepad();
|
private ModelChargepad model = new ModelChargepad();
|
||||||
|
|
|
@ -26,7 +26,10 @@ import net.minecraftforge.common.ForgeDirection;
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
import cpw.mods.fml.client.FMLClientHandler;
|
import cpw.mods.fml.client.FMLClientHandler;
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
public class RenderConfigurableMachine extends TileEntitySpecialRenderer
|
public class RenderConfigurableMachine extends TileEntitySpecialRenderer
|
||||||
{
|
{
|
||||||
private static Icon[] coloredOverlays;
|
private static Icon[] coloredOverlays;
|
||||||
|
|
|
@ -20,6 +20,10 @@ import net.minecraftforge.liquids.LiquidStack;
|
||||||
|
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
public class RenderDynamicTank extends TileEntitySpecialRenderer
|
public class RenderDynamicTank extends TileEntitySpecialRenderer
|
||||||
{
|
{
|
||||||
private static Map<RenderData, HashMap<LiquidStack, int[]>> cachedCenterLiquids = new HashMap<RenderData, HashMap<LiquidStack, int[]>>();
|
private static Map<RenderData, HashMap<LiquidStack, int[]>> cachedCenterLiquids = new HashMap<RenderData, HashMap<LiquidStack, int[]>>();
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
package mekanism.client;
|
package mekanism.client;
|
||||||
|
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
import mekanism.common.EntityRobit;
|
import mekanism.common.EntityRobit;
|
||||||
import net.minecraft.client.model.ModelBase;
|
import net.minecraft.client.model.ModelBase;
|
||||||
import net.minecraft.client.renderer.entity.RenderLiving;
|
import net.minecraft.client.renderer.entity.RenderLiving;
|
||||||
|
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
public class RenderRobit extends RenderLiving
|
public class RenderRobit extends RenderLiving
|
||||||
{
|
{
|
||||||
public RenderRobit()
|
public RenderRobit()
|
||||||
|
|
|
@ -14,7 +14,10 @@ import net.minecraft.world.World;
|
||||||
import cpw.mods.fml.client.FMLClientHandler;
|
import cpw.mods.fml.client.FMLClientHandler;
|
||||||
import cpw.mods.fml.common.ITickHandler;
|
import cpw.mods.fml.common.ITickHandler;
|
||||||
import cpw.mods.fml.common.TickType;
|
import cpw.mods.fml.common.TickType;
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
public class RenderTickHandler implements ITickHandler
|
public class RenderTickHandler implements ITickHandler
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -4,6 +4,9 @@ import java.util.HashSet;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
import mekanism.api.Object3D;
|
import mekanism.api.Object3D;
|
||||||
import mekanism.common.Mekanism;
|
import mekanism.common.Mekanism;
|
||||||
import mekanism.common.TileEntityDynamicTank;
|
import mekanism.common.TileEntityDynamicTank;
|
||||||
|
@ -11,6 +14,7 @@ import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.ForgeDirection;
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
|
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
public class ThreadTankSparkle extends Thread
|
public class ThreadTankSparkle extends Thread
|
||||||
{
|
{
|
||||||
public TileEntityDynamicTank pointer;
|
public TileEntityDynamicTank pointer;
|
||||||
|
|
|
@ -9,6 +9,7 @@ import java.math.RoundingMode;
|
||||||
import mekanism.api.EnergizedItemManager;
|
import mekanism.api.EnergizedItemManager;
|
||||||
import mekanism.api.IEnergizedItem;
|
import mekanism.api.IEnergizedItem;
|
||||||
import mekanism.api.Object3D;
|
import mekanism.api.Object3D;
|
||||||
|
import micdoodle8.mods.galacticraft.API.IEntityBreathable;
|
||||||
import net.minecraft.entity.EntityCreature;
|
import net.minecraft.entity.EntityCreature;
|
||||||
import net.minecraft.entity.ai.EntityAILookIdle;
|
import net.minecraft.entity.ai.EntityAILookIdle;
|
||||||
import net.minecraft.entity.ai.EntityAISwimming;
|
import net.minecraft.entity.ai.EntityAISwimming;
|
||||||
|
@ -30,7 +31,7 @@ import universalelectricity.core.item.ElectricItemHelper;
|
||||||
import universalelectricity.core.item.IItemElectric;
|
import universalelectricity.core.item.IItemElectric;
|
||||||
import codechicken.core.alg.MathHelper;
|
import codechicken.core.alg.MathHelper;
|
||||||
|
|
||||||
public class EntityRobit extends EntityCreature implements IInventory, ISustainedInventory
|
public class EntityRobit extends EntityCreature implements IInventory, ISustainedInventory, IEntityBreathable
|
||||||
{
|
{
|
||||||
public double MAX_ELECTRICITY = 100000;
|
public double MAX_ELECTRICITY = 100000;
|
||||||
|
|
||||||
|
@ -46,7 +47,7 @@ public class EntityRobit extends EntityCreature implements IInventory, ISustaine
|
||||||
{
|
{
|
||||||
super(world);
|
super(world);
|
||||||
|
|
||||||
setSize(1, 1);
|
setSize(0.5F, 0.5F);
|
||||||
moveSpeed = 0.35F;
|
moveSpeed = 0.35F;
|
||||||
texture = "/mods/mekanism/render/Robit.png";
|
texture = "/mods/mekanism/render/Robit.png";
|
||||||
|
|
||||||
|
@ -56,6 +57,8 @@ public class EntityRobit extends EntityCreature implements IInventory, ISustaine
|
||||||
tasks.addTask(2, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F));
|
tasks.addTask(2, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F));
|
||||||
tasks.addTask(2, new EntityAILookIdle(this));
|
tasks.addTask(2, new EntityAILookIdle(this));
|
||||||
tasks.addTask(3, new EntityAISwimming(this));
|
tasks.addTask(3, new EntityAISwimming(this));
|
||||||
|
|
||||||
|
func_94061_f(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public EntityRobit(World world, double x, double y, double z)
|
public EntityRobit(World world, double x, double y, double z)
|
||||||
|
@ -92,6 +95,7 @@ public class EntityRobit extends EntityCreature implements IInventory, ISustaine
|
||||||
dataWatcher.addObject(11, new String("")); /* Electricity */
|
dataWatcher.addObject(11, new String("")); /* Electricity */
|
||||||
dataWatcher.addObject(12, new String("")); /* Owner */
|
dataWatcher.addObject(12, new String("")); /* Owner */
|
||||||
dataWatcher.addObject(13, new Byte((byte)0)); /* Follow */
|
dataWatcher.addObject(13, new Byte((byte)0)); /* Follow */
|
||||||
|
dataWatcher.addObject(14, new String("")); /* Name */
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getRoundedTravelEnergy()
|
public double getRoundedTravelEnergy()
|
||||||
|
@ -328,6 +332,8 @@ public class EntityRobit extends EntityCreature implements IInventory, ISustaine
|
||||||
|
|
||||||
nbtTags.setDouble("electricityStored", getEnergy());
|
nbtTags.setDouble("electricityStored", getEnergy());
|
||||||
|
|
||||||
|
nbtTags.setString("name", getName());
|
||||||
|
|
||||||
if(getOwnerName() != null)
|
if(getOwnerName() != null)
|
||||||
{
|
{
|
||||||
nbtTags.setString("owner", getOwnerName());
|
nbtTags.setString("owner", getOwnerName());
|
||||||
|
@ -360,6 +366,8 @@ public class EntityRobit extends EntityCreature implements IInventory, ISustaine
|
||||||
|
|
||||||
setEnergy(nbtTags.getDouble("electricityStored"));
|
setEnergy(nbtTags.getDouble("electricityStored"));
|
||||||
|
|
||||||
|
setName(nbtTags.getString("name"));
|
||||||
|
|
||||||
if(nbtTags.hasKey("owner"))
|
if(nbtTags.hasKey("owner"))
|
||||||
{
|
{
|
||||||
setOwner(nbtTags.getString("owner"));
|
setOwner(nbtTags.getString("owner"));
|
||||||
|
@ -451,6 +459,16 @@ public class EntityRobit extends EntityCreature implements IInventory, ISustaine
|
||||||
dataWatcher.updateObject(13, follow ? (byte)1 : (byte)0);
|
dataWatcher.updateObject(13, follow ? (byte)1 : (byte)0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getName()
|
||||||
|
{
|
||||||
|
return dataWatcher.getWatchableObjectString(14);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name)
|
||||||
|
{
|
||||||
|
dataWatcher.updateObject(14, name);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMaxHealth()
|
public int getMaxHealth()
|
||||||
{
|
{
|
||||||
|
@ -603,9 +621,21 @@ public class EntityRobit extends EntityCreature implements IInventory, ISustaine
|
||||||
return tagList;
|
return tagList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getTranslatedEntityName()
|
||||||
|
{
|
||||||
|
return getName().isEmpty() ? "Robit" : getName();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float getShadowSize()
|
public float getShadowSize()
|
||||||
{
|
{
|
||||||
return 0.25F;
|
return 0.25F;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canBreath()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,6 +72,9 @@ public enum EnumPacketType
|
||||||
/** Used to send a Robit follow update packet to the server. */
|
/** Used to send a Robit follow update packet to the server. */
|
||||||
FOLLOW_UPDATE(20),
|
FOLLOW_UPDATE(20),
|
||||||
|
|
||||||
|
/** Used to send a Robit name update packet to the server. */
|
||||||
|
NAME_UPDATE(21),
|
||||||
|
|
||||||
/** A custom packet type. Handled in PacketHandler. */
|
/** A custom packet type. Handled in PacketHandler. */
|
||||||
CUSTOM(-1);
|
CUSTOM(-1);
|
||||||
|
|
||||||
|
|
|
@ -516,6 +516,23 @@ public class PacketHandler implements IPacketHandler
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if(packetType == EnumPacketType.NAME_UPDATE.id)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
String name = dataStream.readUTF();
|
||||||
|
int id = dataStream.readInt();
|
||||||
|
|
||||||
|
EntityRobit robit = (EntityRobit)entityplayer.worldObj.getEntityByID(id);
|
||||||
|
|
||||||
|
if(robit != null)
|
||||||
|
{
|
||||||
|
robit.setName(name);
|
||||||
|
}
|
||||||
|
} catch(Exception e) {
|
||||||
|
System.err.println("[Mekanism] Error while handling name update packet.");
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
} catch(Exception e) {
|
} catch(Exception e) {
|
||||||
System.err.println("[Mekanism] Error while handling packet.");
|
System.err.println("[Mekanism] Error while handling packet.");
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
@ -1150,6 +1167,37 @@ public class PacketHandler implements IPacketHandler
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sends a Robit name update packet to the server.
|
||||||
|
* @param value - new follow value
|
||||||
|
* @param id - the robit's entity ID
|
||||||
|
*/
|
||||||
|
public static void sendNameUpdate(String name, int id)
|
||||||
|
{
|
||||||
|
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
|
||||||
|
DataOutputStream data = new DataOutputStream(bytes);
|
||||||
|
|
||||||
|
try {
|
||||||
|
data.writeInt(EnumPacketType.NAME_UPDATE.id);
|
||||||
|
data.writeUTF(name);
|
||||||
|
data.writeInt(id);
|
||||||
|
} catch (IOException e) {
|
||||||
|
System.out.println("[Mekanism] An error occured while writing packet data.");
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
Packet250CustomPayload packet = new Packet250CustomPayload();
|
||||||
|
packet.channel = "Mekanism";
|
||||||
|
packet.data = bytes.toByteArray();
|
||||||
|
packet.length = packet.data.length;
|
||||||
|
PacketDispatcher.sendPacketToServer(packet);
|
||||||
|
|
||||||
|
if(Mekanism.logPackets)
|
||||||
|
{
|
||||||
|
System.out.println("[Mekanism] Sentname update packet to server.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sends the server the defined packet data int.
|
* Sends the server the defined packet data int.
|
||||||
* @param type - packet type
|
* @param type - packet type
|
||||||
|
|
|
@ -78,7 +78,7 @@ public class TileEntityChargepad extends TileEntityElectricBlock implements IAct
|
||||||
|
|
||||||
double prevEnergy = getEnergy();
|
double prevEnergy = getEnergy();
|
||||||
|
|
||||||
for(ItemStack itemstack : player.inventory.mainInventory)
|
for(ItemStack itemstack : player.inventory.armorInventory)
|
||||||
{
|
{
|
||||||
chargeItemStack(itemstack);
|
chargeItemStack(itemstack);
|
||||||
|
|
||||||
|
@ -88,7 +88,7 @@ public class TileEntityChargepad extends TileEntityElectricBlock implements IAct
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for(ItemStack itemstack : player.inventory.armorInventory)
|
for(ItemStack itemstack : player.inventory.mainInventory)
|
||||||
{
|
{
|
||||||
chargeItemStack(itemstack);
|
chargeItemStack(itemstack);
|
||||||
|
|
||||||
|
|
|
@ -281,11 +281,7 @@ public class TileEntityElectricPump extends TileEntityElectricBlock implements I
|
||||||
|
|
||||||
if(dataStream.readInt() == 1)
|
if(dataStream.readInt() == 1)
|
||||||
{
|
{
|
||||||
int amount = dataStream.readInt();
|
liquidTank.setLiquid(new LiquidStack(dataStream.readInt(), dataStream.readInt(), dataStream.readInt()));
|
||||||
int itemID = dataStream.readInt();
|
|
||||||
int itemMeta = dataStream.readInt();
|
|
||||||
|
|
||||||
liquidTank.setLiquid(new LiquidStack(itemID, amount, itemMeta));
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
liquidTank.setLiquid(null);
|
liquidTank.setLiquid(null);
|
||||||
|
|
|
@ -414,6 +414,9 @@ public class TileEntityElectrolyticSeparator extends TileEntityElectricBlock imp
|
||||||
{
|
{
|
||||||
waterTank.setLiquid(new LiquidStack(Block.waterStill.blockID, amount, 0));
|
waterTank.setLiquid(new LiquidStack(Block.waterStill.blockID, amount, 0));
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
waterTank.setLiquid(null);
|
||||||
|
}
|
||||||
|
|
||||||
oxygenStored = dataStream.readInt();
|
oxygenStored = dataStream.readInt();
|
||||||
hydrogenStored = dataStream.readInt();
|
hydrogenStored = dataStream.readInt();
|
||||||
|
|
|
@ -72,9 +72,11 @@ public class TileEntityHeatGenerator extends TileEntityGenerator implements ITan
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
int fuel = getFuel(inventory[0]);
|
int fuel = getFuel(inventory[0]);
|
||||||
|
|
||||||
if(fuel > 0)
|
if(fuel > 0)
|
||||||
{
|
{
|
||||||
int fuelNeeded = lavaTank.getCapacity() - (lavaTank.getLiquid() != null ? lavaTank.getLiquid().amount : 0);
|
int fuelNeeded = lavaTank.getCapacity() - (lavaTank.getLiquid() != null ? lavaTank.getLiquid().amount : 0);
|
||||||
|
|
||||||
if(fuel <= fuelNeeded)
|
if(fuel <= fuelNeeded)
|
||||||
{
|
{
|
||||||
lavaTank.fill(new LiquidStack(Block.lavaStill.blockID, fuel), true);
|
lavaTank.fill(new LiquidStack(Block.lavaStill.blockID, fuel), true);
|
||||||
|
@ -235,10 +237,14 @@ public class TileEntityHeatGenerator extends TileEntityGenerator implements ITan
|
||||||
super.handlePacketData(dataStream);
|
super.handlePacketData(dataStream);
|
||||||
|
|
||||||
int amount = dataStream.readInt();
|
int amount = dataStream.readInt();
|
||||||
|
|
||||||
if(amount != 0)
|
if(amount != 0)
|
||||||
{
|
{
|
||||||
lavaTank.setLiquid(new LiquidStack(Block.lavaStill.blockID, amount, 0));
|
lavaTank.setLiquid(new LiquidStack(Block.lavaStill.blockID, amount, 0));
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
lavaTank.setLiquid(null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in a new issue