aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/github/technus/tectech/thing/item/ParametrizerMemoryCard.java177
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/Parameters.java4
-rw-r--r--src/main/resources/assets/tectech/lang/en_US.lang6
3 files changed, 111 insertions, 76 deletions
diff --git a/src/main/java/com/github/technus/tectech/thing/item/ParametrizerMemoryCard.java b/src/main/java/com/github/technus/tectech/thing/item/ParametrizerMemoryCard.java
index 814ef51b59..f0447bf1b6 100644
--- a/src/main/java/com/github/technus/tectech/thing/item/ParametrizerMemoryCard.java
+++ b/src/main/java/com/github/technus/tectech/thing/item/ParametrizerMemoryCard.java
@@ -14,14 +14,18 @@ import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.IIcon;
+import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
+import net.minecraftforge.common.util.Constants;
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_Param;
import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_ParamText;
import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM;
+import com.github.technus.tectech.thing.metaTileEntity.multi.base.Parameters;
import com.github.technus.tectech.util.CommonValues;
import com.github.technus.tectech.util.TT_Utility;
@@ -51,71 +55,97 @@ public final class ParametrizerMemoryCard extends Item {
public boolean onItemUseFirst(ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ,
int aSide, float hitX, float hitY, float hitZ) {
TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
- if (aPlayer instanceof EntityPlayerMP) {
- aStack.stackSize = 1;
- if (tTileEntity instanceof IGregTechTileEntity) {
- IMetaTileEntity metaTE = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity();
- if (metaTE != null) {
- if (metaTE instanceof GT_MetaTileEntity_Hatch_Param) {
- GT_MetaTileEntity_Hatch_Param parametrizer = (GT_MetaTileEntity_Hatch_Param) metaTE;
- if (aStack.getTagCompound() == null) {
- aStack.setTagCompound(new NBTTagCompound());
- }
- NBTTagCompound tNBT = aStack.getTagCompound();
- if (aStack.getItemDamage() == 1) {
- // write to parametrizer
- parametrizer.param = tNBT.getInteger("param");
- parametrizer.value0D = tNBT.getDouble("value0D");
- parametrizer.value1D = tNBT.getDouble("value1D");
- } else {
- // read from parametrizer
- tNBT.setInteger("param", parametrizer.param);
- tNBT.setDouble("value0D", parametrizer.value0D);
- tNBT.setDouble("value1D", parametrizer.value1D);
- tNBT.removeTag("value0s");
- tNBT.removeTag("value1s");
- }
- return true;
- } else if (metaTE instanceof GT_MetaTileEntity_MultiblockBase_EM) {
- GT_MetaTileEntity_MultiblockBase_EM base = (GT_MetaTileEntity_MultiblockBase_EM) metaTE;
- if (aStack.getTagCompound() == null) {
- aStack.setTagCompound(new NBTTagCompound());
- }
- NBTTagCompound tNBT = aStack.getTagCompound();
- if (aStack.getItemDamage() == 1) {
- base.parametrization.trySetParameters(
- tNBT.getInteger("param"),
- tNBT.getDouble("value0D"),
- tNBT.getDouble("value1D"));
- return true;
- }
- } else if (metaTE instanceof GT_MetaTileEntity_Hatch_ParamText) {
- GT_MetaTileEntity_Hatch_ParamText parametrizer = (GT_MetaTileEntity_Hatch_ParamText) metaTE;
- if (aStack.getTagCompound() == null) {
- aStack.setTagCompound(new NBTTagCompound());
- }
- NBTTagCompound tNBT = aStack.getTagCompound();
- if (aStack.getItemDamage() == 1) {
- // write to parametrizer
- parametrizer.param = tNBT.getInteger("param");
- parametrizer.value0D = tNBT.getDouble("value0D");
- parametrizer.value1D = tNBT.getDouble("value1D");
- parametrizer.value0s = tNBT.getString("value0s");
- parametrizer.value1s = tNBT.getString("value1s");
- } else {
- // read from parametrizer
- tNBT.setInteger("param", parametrizer.param);
- tNBT.setDouble("value0D", parametrizer.value0D);
- tNBT.setDouble("value1D", parametrizer.value1D);
- tNBT.setString("value0s", parametrizer.value0s);
- tNBT.setString("value1s", parametrizer.value1s);
+ if (!(aPlayer instanceof EntityPlayerMP)) return false;
+ if (!(tTileEntity instanceof IGregTechTileEntity)) return false;
+ aStack.stackSize = 1;
+ IMetaTileEntity metaTE = ((IGregTechTileEntity) tTileEntity).getMetaTileEntity();
+
+ if (metaTE instanceof GT_MetaTileEntity_Hatch_ParamText parametrizer) {
+ if (aStack.getTagCompound() == null) {
+ aStack.setTagCompound(new NBTTagCompound());
+ }
+ NBTTagCompound tNBT = aStack.getTagCompound();
+ if (aStack.getItemDamage() == 1) {
+ // write to parametrizer
+ parametrizer.param = tNBT.getInteger("param");
+ parametrizer.value0D = tNBT.getDouble("value0D");
+ parametrizer.value1D = tNBT.getDouble("value1D");
+ parametrizer.value0s = tNBT.getString("value0s");
+ parametrizer.value1s = tNBT.getString("value1s");
+ } else {
+ // read from parametrizer
+ NBTTagCompound newTag = new NBTTagCompound();
+ newTag.setInteger("param", parametrizer.param);
+ newTag.setDouble("value0D", parametrizer.value0D);
+ newTag.setDouble("value1D", parametrizer.value1D);
+ newTag.setString("value0s", parametrizer.value0s);
+ newTag.setString("value1s", parametrizer.value1s);
+ aStack.setTagCompound(newTag);
+ }
+ return true;
+ } else if (metaTE instanceof GT_MetaTileEntity_Hatch_Param parametrizer) {
+ if (aStack.getTagCompound() == null) {
+ aStack.setTagCompound(new NBTTagCompound());
+ }
+ NBTTagCompound tNBT = aStack.getTagCompound();
+ if (aStack.getItemDamage() == 1) {
+ // write to parametrizer
+ parametrizer.param = tNBT.getInteger("param");
+ parametrizer.value0D = tNBT.getDouble("value0D");
+ parametrizer.value1D = tNBT.getDouble("value1D");
+ } else {
+ // read from parametrizer
+ NBTTagCompound newTag = new NBTTagCompound();
+ tNBT.setInteger("param", parametrizer.param);
+ tNBT.setDouble("value0D", parametrizer.value0D);
+ tNBT.setDouble("value1D", parametrizer.value1D);
+ aStack.setTagCompound(newTag);
+ }
+ return true;
+ } else if (metaTE instanceof GT_MetaTileEntity_MultiblockBase_EM controller) {
+ if (aStack.getTagCompound() == null) {
+ aStack.setTagCompound(new NBTTagCompound());
+ }
+ NBTTagCompound tNBT = aStack.getTagCompound();
+ if (aStack.getItemDamage() == 1) {
+ // write to controller
+ if (tNBT.hasKey("paramList", Constants.NBT.TAG_LIST)) {
+ // from controller
+ NBTTagList tagList = tNBT.getTagList("paramList", Constants.NBT.TAG_COMPOUND);
+ for (int hatch = 0; hatch < 10; hatch++) {
+ NBTTagCompound tag = tagList.getCompoundTagAt(hatch);
+ if (tag.hasKey("value0D", Constants.NBT.TAG_DOUBLE)
+ && tag.hasKey("value1D", Constants.NBT.TAG_DOUBLE)) {
+ controller.parametrization
+ .trySetParameters(hatch, tag.getDouble("value0D"), tag.getDouble("value1D"));
}
- return true;
}
+ } else {
+ // from parametrizer
+ controller.parametrization.trySetParameters(
+ tNBT.getInteger("param"),
+ tNBT.getDouble("value0D"),
+ tNBT.getDouble("value1D"));
+ }
+ } else {
+ // read from controller
+ NBTTagCompound newTag = new NBTTagCompound();
+ NBTTagList tagList = new NBTTagList();
+ for (int hatch = 0; hatch < 10; hatch++) {
+ NBTTagCompound tagChild = new NBTTagCompound();
+ Parameters.Group.ParameterIn[] parameters = controller.parametrization.getGroup(hatch).parameterIn;
+ if (parameters[0] != null && parameters[1] != null) {
+ tagChild.setDouble("value0D", parameters[0].get());
+ tagChild.setDouble("value1D", parameters[1].get());
+ }
+ tagList.appendTag(tagChild);
}
+ newTag.setTag("paramList", tagList);
+ aStack.setTagCompound(newTag);
}
+ return true;
}
- return aPlayer instanceof EntityPlayerMP;
+ return false;
}
@Override
@@ -133,26 +163,29 @@ public final class ParametrizerMemoryCard extends Item {
}
@Override
+ public String getItemStackDisplayName(ItemStack stack) {
+ if (stack.getItemDamage() == 1) {
+ return StatCollector.translateToLocal("item.em.parametrizerMemoryCard.name.paste");
+ } else {
+ return StatCollector.translateToLocal("item.em.parametrizerMemoryCard.name.copy");
+ }
+ }
+
+ @Override
public void addInformation(ItemStack aStack, EntityPlayer ep, List<String> aList, boolean boo) {
NBTTagCompound tNBT = aStack.getTagCompound();
aList.add(CommonValues.THETA_MOVEMENT);
aList.add(translateToLocal("item.em.parametrizerMemoryCard.desc.0")); // Stores Parameters
if (aStack.getItemDamage() == 1) {
- aList.add(EnumChatFormatting.BLUE + translateToLocal("item.em.parametrizerMemoryCard.desc.1")); // Use on
- // Parametrizer/Controller
- // to
- // configure
- // it
+ // Use on Multiblock Controller to configure it
+ aList.add(EnumChatFormatting.BLUE + translateToLocal("item.em.parametrizerMemoryCard.desc.1"));
} else {
- aList.add(EnumChatFormatting.BLUE + translateToLocal("item.em.parametrizerMemoryCard.desc.2")); // Use on
- // Parametrizer
- // to store
- // parameters
+ // Use on Multiblock Controller to store parameters
+ aList.add(EnumChatFormatting.BLUE + translateToLocal("item.em.parametrizerMemoryCard.desc.2"));
}
- aList.add(EnumChatFormatting.BLUE + translateToLocal("item.em.parametrizerMemoryCard.desc.3")); // Sneak right
- // click to
- // lock/unlock
+ // Sneak right click to lock/unlock
+ aList.add(EnumChatFormatting.BLUE + translateToLocal("item.em.parametrizerMemoryCard.desc.3"));
double temp;
if (tNBT != null && tNBT.hasKey("param")) {
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/Parameters.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/Parameters.java
index 74491236b6..69013f4c13 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/Parameters.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/Parameters.java
@@ -146,8 +146,8 @@ public class Parameters {
public class Group {
private final int hatchNo;
- final ParameterIn[] parameterIn = new ParameterIn[2];
- final ParameterOut[] parameterOut = new ParameterOut[2];
+ public final ParameterIn[] parameterIn = new ParameterIn[2];
+ public final ParameterOut[] parameterOut = new ParameterOut[2];
public boolean updateWhileRunning;
private Group(int hatchNo, boolean updateWhileRunning) {
diff --git a/src/main/resources/assets/tectech/lang/en_US.lang b/src/main/resources/assets/tectech/lang/en_US.lang
index b1754a5535..09885b758a 100644
--- a/src/main/resources/assets/tectech/lang/en_US.lang
+++ b/src/main/resources/assets/tectech/lang/en_US.lang
@@ -56,9 +56,11 @@ item.em.frontRotate.desc.1=Rotates only the front panel,
item.em.frontRotate.desc.2=which allows structure rotation.
item.em.parametrizerMemoryCard.name=Parametrizer Memory Card
+item.em.parametrizerMemoryCard.name.paste=Parametrizer Memory Card (Paste Mode)
+item.em.parametrizerMemoryCard.name.copy=Parametrizer Memory Card (Copy Mode)
item.em.parametrizerMemoryCard.desc.0=Stores Parameters
-item.em.parametrizerMemoryCard.desc.1=Use on Parametrizer/Controller to configure it
-item.em.parametrizerMemoryCard.desc.2=Use on Parametrizer to store parameters
+item.em.parametrizerMemoryCard.desc.1=Use on Multiblock Controller to configure it
+item.em.parametrizerMemoryCard.desc.2=Use on Multiblock Controller to store parameters
item.em.parametrizerMemoryCard.desc.3=Sneak right click to lock/unlock
item.tm.teslaCoilCapacitor.0.name=LV Tesla Capacitor