last set of fixes for blueprints authoring

This commit is contained in:
SpaceToad 2014-02-23 17:36:47 +01:00
parent 5c5819f28d
commit 4ab0eaf290
5 changed files with 29 additions and 17 deletions

View file

@ -126,7 +126,7 @@ item.redstone_pulsating_chipset.name=Pulsating Chipset
item.redstone_quartz_chipset.name=Quartz Chipset item.redstone_quartz_chipset.name=Quartz Chipset
item.redstone_comp_chipset.name=Redstone Comp Chipset item.redstone_comp_chipset.name=Redstone Comp Chipset
item.blueprintItem.name=Blueprint item.blueprintItem.name=Blueprint
item.blueprint.author=Author item.blueprint.author=by
item.blueprint.blank=Blank item.blueprint.blank=Blank
item.PipeItemsWood.name=Wooden Transport Pipe item.PipeItemsWood.name=Wooden Transport Pipe
item.PipeItemsCobblestone.name=Cobblestone Transport Pipe item.PipeItemsCobblestone.name=Cobblestone Transport Pipe

View file

@ -34,7 +34,7 @@ public abstract class ItemBlueprint extends ItemBuildCraft {
if (blueprint != null) { if (blueprint != null) {
list.add(String.format(blueprint.id.name)); list.add(String.format(blueprint.id.name));
list.add(String.format(StringUtils.localize("item.blueprint.author"), blueprint.author)); list.add(String.format(StringUtils.localize("item.blueprint.author") + " " + blueprint.author));
} else } else
list.add(StringUtils.localize("item.blueprint.blank")); list.add(StringUtils.localize("item.blueprint.blank"));
} }

View file

@ -45,9 +45,7 @@ public class TileArchitect extends TileBuildCraft implements IInventory, IBoxPro
public @NetworkData public @NetworkData
String name = ""; String name = "";
// Use that field to avoid creating several times the same template if public String currentAuthorName = "";
// they're the same!
private int lastBptId = 0;
public TileArchitect() { public TileArchitect() {
box.kind = Kind.STRIPES; box.kind = Kind.STRIPES;
@ -101,6 +99,7 @@ public class TileArchitect extends TileBuildCraft implements IInventory, IBoxPro
if (!name.equals("")) { if (!name.equals("")) {
result.id.name = name; result.id.name = name;
result.author = currentAuthorName;
} }
result.anchorX = xCoord - box.xMin; result.anchorX = xCoord - box.xMin;
@ -256,7 +255,6 @@ public class TileArchitect extends TileBuildCraft implements IInventory, IBoxPro
public void readFromNBT(NBTTagCompound nbttagcompound) { public void readFromNBT(NBTTagCompound nbttagcompound) {
super.readFromNBT(nbttagcompound); super.readFromNBT(nbttagcompound);
lastBptId = nbttagcompound.getInteger("lastTemplateId");
computingTime = nbttagcompound.getInteger("computingTime"); computingTime = nbttagcompound.getInteger("computingTime");
isComputing = nbttagcompound.getBoolean("isComputing"); isComputing = nbttagcompound.getBoolean("isComputing");
@ -278,13 +276,13 @@ public class TileArchitect extends TileBuildCraft implements IInventory, IBoxPro
} }
name = nbttagcompound.getString("name"); name = nbttagcompound.getString("name");
currentAuthorName = nbttagcompound.getString("lastAuthor");
} }
@Override @Override
public void writeToNBT(NBTTagCompound nbttagcompound) { public void writeToNBT(NBTTagCompound nbttagcompound) {
super.writeToNBT(nbttagcompound); super.writeToNBT(nbttagcompound);
nbttagcompound.setInteger("lastTemplateId", lastBptId);
nbttagcompound.setInteger("computingTime", computingTime); nbttagcompound.setInteger("computingTime", computingTime);
nbttagcompound.setBoolean("isComputing", isComputing); nbttagcompound.setBoolean("isComputing", isComputing);
@ -306,6 +304,7 @@ public class TileArchitect extends TileBuildCraft implements IInventory, IBoxPro
nbttagcompound.setTag("Items", nbttaglist); nbttagcompound.setTag("Items", nbttaglist);
nbttagcompound.setString("name", name); nbttagcompound.setString("name", name);
nbttagcompound.setString("lastAuthor", currentAuthorName);
} }
@Override @Override

View file

@ -13,6 +13,9 @@ import java.security.NoSuchAlgorithmException;
import java.util.Arrays; import java.util.Arrays;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import org.apache.commons.lang3.ArrayUtils;
import buildcraft.BuildCraftBuilders; import buildcraft.BuildCraftBuilders;
import buildcraft.core.network.NetworkData; import buildcraft.core.network.NetworkData;
@ -61,7 +64,7 @@ public final class BlueprintId implements Comparable<BlueprintId> {
@Override @Override
public int hashCode() { public int hashCode() {
return Arrays.hashCode(uniqueId); return Arrays.hashCode(ArrayUtils.addAll(uniqueId, name.getBytes()));
} }
public String getCompleteId () { public String getCompleteId () {

View file

@ -8,23 +8,24 @@
*/ */
package buildcraft.builders.gui; package buildcraft.builders.gui;
import buildcraft.builders.TileArchitect;
import buildcraft.core.gui.BuildCraftContainer;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.ICrafting; import net.minecraft.inventory.ICrafting;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot; import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
import buildcraft.builders.TileArchitect;
import buildcraft.core.gui.BuildCraftContainer;
public class ContainerArchitect extends BuildCraftContainer { public class ContainerArchitect extends BuildCraftContainer {
protected IInventory playerIInventory; protected IInventory playerIInventory;
protected TileArchitect template; protected TileArchitect architect;
protected int computingTime = 0; protected int computingTime = 0;
public ContainerArchitect(IInventory playerInventory, TileArchitect template) { public ContainerArchitect(IInventory playerInventory, TileArchitect template) {
super(template.getSizeInventory()); super(template.getSizeInventory());
this.playerIInventory = playerInventory; this.playerIInventory = playerInventory;
this.template = template; this.architect = template;
addSlotToContainer(new Slot(template, 0, 55, 35)); addSlotToContainer(new Slot(template, 0, 55, 35));
addSlotToContainer(new Slot(template, 1, 114, 35)); addSlotToContainer(new Slot(template, 1, 114, 35));
@ -52,24 +53,33 @@ public class ContainerArchitect extends BuildCraftContainer {
super.detectAndSendChanges(); super.detectAndSendChanges();
for (int i = 0; i < crafters.size(); i++) { for (int i = 0; i < crafters.size(); i++) {
ICrafting icrafting = (ICrafting) crafters.get(i); ICrafting icrafting = (ICrafting) crafters.get(i);
if (computingTime != template.computingTime) { if (computingTime != architect.computingTime) {
icrafting.sendProgressBarUpdate(this, 0, template.computingTime); icrafting.sendProgressBarUpdate(this, 0, architect.computingTime);
} }
} }
computingTime = template.computingTime; computingTime = architect.computingTime;
} }
@Override @Override
public void updateProgressBar(int i, int j) { public void updateProgressBar(int i, int j) {
if (i == 0) { if (i == 0) {
template.computingTime = j; architect.computingTime = j;
} }
} }
@Override @Override
public boolean canInteractWith(EntityPlayer entityplayer) { public boolean canInteractWith(EntityPlayer entityplayer) {
return template.isUseableByPlayer(entityplayer); return architect.isUseableByPlayer(entityplayer);
}
@Override
public ItemStack slotClick(int slotNum, int mouseButton, int modifier, EntityPlayer player) {
if (slotNum == 0) {
architect.currentAuthorName = player.getDisplayName();
}
return super.slotClick(slotNum, mouseButton, modifier, player);
} }
} }