Many fixes - still need to get private frequencies to load
This commit is contained in:
parent
dc611eb0b2
commit
c2c3bd14bc
4 changed files with 73 additions and 49 deletions
|
@ -87,28 +87,24 @@ public class GuiTeleporter extends GuiMekanism
|
||||||
buttonList.add(deleteButton);
|
buttonList.add(deleteButton);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setFrequency()
|
public void setFrequency(String freq)
|
||||||
{
|
{
|
||||||
String text = frequencyField.getText();
|
if(freq.isEmpty())
|
||||||
|
|
||||||
if(text.isEmpty())
|
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ArrayList data = new ArrayList();
|
ArrayList data = new ArrayList();
|
||||||
data.add(0);
|
data.add(0);
|
||||||
data.add(text);
|
data.add(freq);
|
||||||
data.add(!privateMode);
|
data.add(!privateMode);
|
||||||
|
|
||||||
Mekanism.packetHandler.sendToServer(new TileEntityMessage(Coord4D.get(tileEntity), data));
|
Mekanism.packetHandler.sendToServer(new TileEntityMessage(Coord4D.get(tileEntity), data));
|
||||||
|
|
||||||
frequencyField.setText("");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getSecurity()
|
public String getSecurity(Frequency freq)
|
||||||
{
|
{
|
||||||
return privateMode ? EnumColor.DARK_RED + MekanismUtils.localize("gui.private") : MekanismUtils.localize("gui.public");
|
return !freq.publicFreq ? EnumColor.DARK_RED + MekanismUtils.localize("gui.private") : MekanismUtils.localize("gui.public");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateButtons()
|
public void updateButtons()
|
||||||
|
@ -118,6 +114,24 @@ public class GuiTeleporter extends GuiMekanism
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<String> text = new ArrayList<String>();
|
||||||
|
|
||||||
|
if(privateMode)
|
||||||
|
{
|
||||||
|
for(Frequency freq : tileEntity.privateCache)
|
||||||
|
{
|
||||||
|
text.add(freq.name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
for(Frequency freq : tileEntity.publicCache)
|
||||||
|
{
|
||||||
|
text.add(freq.name + " (" + freq.owner + ")");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
scrollList.setText(text);
|
||||||
|
|
||||||
if(privateMode)
|
if(privateMode)
|
||||||
{
|
{
|
||||||
publicButton.enabled = true;
|
publicButton.enabled = true;
|
||||||
|
@ -161,24 +175,6 @@ public class GuiTeleporter extends GuiMekanism
|
||||||
|
|
||||||
updateButtons();
|
updateButtons();
|
||||||
|
|
||||||
List<String> text = new ArrayList<String>();
|
|
||||||
|
|
||||||
if(privateMode)
|
|
||||||
{
|
|
||||||
for(Frequency freq : tileEntity.privateCache)
|
|
||||||
{
|
|
||||||
text.add(freq.name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
for(Frequency freq : tileEntity.publicCache)
|
|
||||||
{
|
|
||||||
text.add(freq.name + " (" + freq.owner + ")");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
scrollList.setText(text);
|
|
||||||
|
|
||||||
frequencyField.updateCursorCounter();
|
frequencyField.updateCursorCounter();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -198,7 +194,7 @@ public class GuiTeleporter extends GuiMekanism
|
||||||
|
|
||||||
if(xAxis >= 137 && xAxis <= 148 && yAxis >= 103 && yAxis <= 114)
|
if(xAxis >= 137 && xAxis <= 148 && yAxis >= 103 && yAxis <= 114)
|
||||||
{
|
{
|
||||||
setFrequency();
|
setFrequency(frequencyField.getText());
|
||||||
frequencyField.setText("");
|
frequencyField.setText("");
|
||||||
SoundHandler.playSound("gui.button.press");
|
SoundHandler.playSound("gui.button.press");
|
||||||
}
|
}
|
||||||
|
@ -217,7 +213,8 @@ public class GuiTeleporter extends GuiMekanism
|
||||||
{
|
{
|
||||||
if(frequencyField.isFocused())
|
if(frequencyField.isFocused())
|
||||||
{
|
{
|
||||||
setFrequency();
|
setFrequency(frequencyField.getText());
|
||||||
|
frequencyField.setText("");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -244,7 +241,13 @@ public class GuiTeleporter extends GuiMekanism
|
||||||
}
|
}
|
||||||
else if(guibutton.id == 2)
|
else if(guibutton.id == 2)
|
||||||
{
|
{
|
||||||
setFrequency();
|
int selection = scrollList.getSelection();
|
||||||
|
|
||||||
|
if(selection != -1)
|
||||||
|
{
|
||||||
|
Frequency freq = privateMode ? tileEntity.privateCache.get(selection) : tileEntity.publicCache.get(selection);
|
||||||
|
setFrequency(freq.name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if(guibutton.id == 3)
|
else if(guibutton.id == 3)
|
||||||
{
|
{
|
||||||
|
@ -281,7 +284,7 @@ public class GuiTeleporter extends GuiMekanism
|
||||||
fontRendererObj.drawString(MekanismUtils.localize("gui.security") + ":", 32, 91, 0x404040);
|
fontRendererObj.drawString(MekanismUtils.localize("gui.security") + ":", 32, 91, 0x404040);
|
||||||
|
|
||||||
fontRendererObj.drawString(" " + (tileEntity.frequency != null ? tileEntity.frequency.name : EnumColor.DARK_RED + MekanismUtils.localize("gui.none")), 32 + fontRendererObj.getStringWidth(MekanismUtils.localize("gui.freq") + ":"), 81, 0x797979);
|
fontRendererObj.drawString(" " + (tileEntity.frequency != null ? tileEntity.frequency.name : EnumColor.DARK_RED + MekanismUtils.localize("gui.none")), 32 + fontRendererObj.getStringWidth(MekanismUtils.localize("gui.freq") + ":"), 81, 0x797979);
|
||||||
fontRendererObj.drawString(" " + getSecurity(), 32 + fontRendererObj.getStringWidth(MekanismUtils.localize("gui.security") + ":"), 91, 0x797979);
|
fontRendererObj.drawString(" " + (tileEntity.frequency != null ? getSecurity(tileEntity.frequency) : EnumColor.DARK_RED + MekanismUtils.localize("gui.none")), 32 + fontRendererObj.getStringWidth(MekanismUtils.localize("gui.security") + ":"), 91, 0x797979);
|
||||||
|
|
||||||
String str = MekanismUtils.localize("gui.set") + ":";
|
String str = MekanismUtils.localize("gui.set") + ":";
|
||||||
renderScaledText(str, 27, 104, 0x404040, 20);
|
renderScaledText(str, 27, 104, 0x404040, 20);
|
||||||
|
|
|
@ -56,8 +56,6 @@ public class GuiScrollList extends GuiElement
|
||||||
|
|
||||||
public void setText(List<String> text)
|
public void setText(List<String> text)
|
||||||
{
|
{
|
||||||
scroll = 0;
|
|
||||||
|
|
||||||
if(text == null)
|
if(text == null)
|
||||||
{
|
{
|
||||||
textEntries.clear();
|
textEntries.clear();
|
||||||
|
@ -70,6 +68,11 @@ public class GuiScrollList extends GuiElement
|
||||||
}
|
}
|
||||||
|
|
||||||
textEntries = text;
|
textEntries = text;
|
||||||
|
|
||||||
|
if(textEntries.size()<=size)
|
||||||
|
{
|
||||||
|
scroll = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -2,9 +2,9 @@ package mekanism.common.frequency;
|
||||||
|
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
|
|
||||||
|
import java.lang.reflect.Constructor;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import mekanism.api.Coord4D;
|
import mekanism.api.Coord4D;
|
||||||
|
@ -58,6 +58,8 @@ public class FrequencyManager
|
||||||
if(freq.equals(iterFreq))
|
if(freq.equals(iterFreq))
|
||||||
{
|
{
|
||||||
iterFreq.activeCoords.add(coord);
|
iterFreq.activeCoords.add(coord);
|
||||||
|
dataHandler.markDirty();
|
||||||
|
|
||||||
return iterFreq;
|
return iterFreq;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -70,6 +72,7 @@ public class FrequencyManager
|
||||||
for(Frequency freq : frequencies)
|
for(Frequency freq : frequencies)
|
||||||
{
|
{
|
||||||
freq.activeCoords.remove(coord);
|
freq.activeCoords.remove(coord);
|
||||||
|
dataHandler.markDirty();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -80,6 +83,8 @@ public class FrequencyManager
|
||||||
if(freq.equals(iterFreq))
|
if(freq.equals(iterFreq))
|
||||||
{
|
{
|
||||||
iterFreq.activeCoords.add(coord);
|
iterFreq.activeCoords.add(coord);
|
||||||
|
dataHandler.markDirty();
|
||||||
|
|
||||||
return iterFreq;
|
return iterFreq;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -88,6 +93,8 @@ public class FrequencyManager
|
||||||
{
|
{
|
||||||
freq.activeCoords.add(coord);
|
freq.activeCoords.add(coord);
|
||||||
frequencies.add(freq);
|
frequencies.add(freq);
|
||||||
|
dataHandler.markDirty();
|
||||||
|
|
||||||
return freq;
|
return freq;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -96,15 +103,17 @@ public class FrequencyManager
|
||||||
|
|
||||||
public void createOrLoad(World world)
|
public void createOrLoad(World world)
|
||||||
{
|
{
|
||||||
if(dataHandler == null)
|
String name = getName();
|
||||||
{
|
|
||||||
dataHandler = (FrequencyDataHandler)world.perWorldStorage.loadData(FrequencyDataHandler.class, getName());
|
|
||||||
|
|
||||||
if(dataHandler == null)
|
if(dataHandler == null)
|
||||||
{
|
{
|
||||||
dataHandler = new FrequencyDataHandler(getName());
|
dataHandler = (FrequencyDataHandler)world.perWorldStorage.loadData(FrequencyDataHandler.class, name);
|
||||||
|
|
||||||
|
if(dataHandler == null)
|
||||||
|
{
|
||||||
|
dataHandler = new FrequencyDataHandler(name);
|
||||||
dataHandler.setManager(this);
|
dataHandler.setManager(this);
|
||||||
world.perWorldStorage.setData(getName(), dataHandler);
|
world.perWorldStorage.setData(name, dataHandler);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
dataHandler.setManager(this);
|
dataHandler.setManager(this);
|
||||||
|
@ -121,6 +130,7 @@ public class FrequencyManager
|
||||||
public void addFrequency(Frequency freq)
|
public void addFrequency(Frequency freq)
|
||||||
{
|
{
|
||||||
frequencies.add(freq);
|
frequencies.add(freq);
|
||||||
|
dataHandler.markDirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean containsFrequency(Frequency freq)
|
public boolean containsFrequency(Frequency freq)
|
||||||
|
@ -178,6 +188,7 @@ public class FrequencyManager
|
||||||
public FrequencyManager manager;
|
public FrequencyManager manager;
|
||||||
|
|
||||||
public Set<Frequency> loadedFrequencies;
|
public Set<Frequency> loadedFrequencies;
|
||||||
|
public String loadedOwner;
|
||||||
|
|
||||||
public FrequencyDataHandler(String tagName)
|
public FrequencyDataHandler(String tagName)
|
||||||
{
|
{
|
||||||
|
@ -194,6 +205,7 @@ public class FrequencyManager
|
||||||
if(loadedFrequencies != null)
|
if(loadedFrequencies != null)
|
||||||
{
|
{
|
||||||
manager.frequencies = loadedFrequencies;
|
manager.frequencies = loadedFrequencies;
|
||||||
|
manager.owner = loadedOwner;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -205,10 +217,10 @@ public class FrequencyManager
|
||||||
|
|
||||||
if(nbtTags.hasKey("owner"))
|
if(nbtTags.hasKey("owner"))
|
||||||
{
|
{
|
||||||
manager.owner = nbtTags.getString("owner");
|
loadedOwner = nbtTags.getString("owner");
|
||||||
}
|
}
|
||||||
|
|
||||||
NBTTagList list = nbtTags.getTagList("invList", NBT.TAG_COMPOUND);
|
NBTTagList list = nbtTags.getTagList("freqList", NBT.TAG_COMPOUND);
|
||||||
|
|
||||||
loadedFrequencies = new HashSet<Frequency>();
|
loadedFrequencies = new HashSet<Frequency>();
|
||||||
|
|
||||||
|
@ -216,8 +228,8 @@ public class FrequencyManager
|
||||||
{
|
{
|
||||||
NBTTagCompound compound = list.getCompoundTagAt(i);
|
NBTTagCompound compound = list.getCompoundTagAt(i);
|
||||||
|
|
||||||
Frequency freq = (Frequency)Class.forName(frequencyClass).newInstance();
|
Constructor c = Class.forName(frequencyClass).getConstructor(new Class[] {NBTTagCompound.class});
|
||||||
freq.read(compound);
|
Frequency freq = (Frequency)c.newInstance(compound);
|
||||||
|
|
||||||
loadedFrequencies.add(freq);
|
loadedFrequencies.add(freq);
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,6 +91,7 @@ public class TileEntityTeleporter extends TileEntityElectricBlock implements IPe
|
||||||
if(frequency != null && !frequency.valid)
|
if(frequency != null && !frequency.valid)
|
||||||
{
|
{
|
||||||
frequency = manager.validateFrequency(owner, Coord4D.get(this), frequency);
|
frequency = manager.validateFrequency(owner, Coord4D.get(this), frequency);
|
||||||
|
System.out.println(frequency);
|
||||||
}
|
}
|
||||||
|
|
||||||
frequency = manager.update(owner, Coord4D.get(this), frequency);
|
frequency = manager.update(owner, Coord4D.get(this), frequency);
|
||||||
|
@ -128,17 +129,19 @@ public class TileEntityTeleporter extends TileEntityElectricBlock implements IPe
|
||||||
|
|
||||||
public void setFrequency(String name, boolean publicFreq)
|
public void setFrequency(String name, boolean publicFreq)
|
||||||
{
|
{
|
||||||
|
if(name.equals(frequency))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
FrequencyManager manager = getManager(new Frequency(name, null).setPublic(publicFreq));
|
FrequencyManager manager = getManager(new Frequency(name, null).setPublic(publicFreq));
|
||||||
|
|
||||||
for(Frequency freq : manager.getFrequencies())
|
for(Frequency freq : manager.getFrequencies())
|
||||||
{
|
{
|
||||||
if(freq.equals(frequency))
|
if(freq.name.equals(name))
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else if(freq.name.equals(name))
|
|
||||||
{
|
{
|
||||||
frequency = freq;
|
frequency = freq;
|
||||||
|
frequency.activeCoords.add(Coord4D.get(this));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -146,8 +149,9 @@ public class TileEntityTeleporter extends TileEntityElectricBlock implements IPe
|
||||||
Frequency freq = new Frequency(name, owner).setPublic(publicFreq);
|
Frequency freq = new Frequency(name, owner).setPublic(publicFreq);
|
||||||
freq.activeCoords.add(Coord4D.get(this));
|
freq.activeCoords.add(Coord4D.get(this));
|
||||||
manager.addFrequency(freq);
|
manager.addFrequency(freq);
|
||||||
|
|
||||||
frequency = freq;
|
frequency = freq;
|
||||||
|
|
||||||
|
MekanismUtils.saveChunk(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public FrequencyManager getManager(Frequency freq)
|
public FrequencyManager getManager(Frequency freq)
|
||||||
|
@ -485,7 +489,7 @@ public class TileEntityTeleporter extends TileEntityElectricBlock implements IPe
|
||||||
|
|
||||||
if(nbtTags.hasKey("frequency"))
|
if(nbtTags.hasKey("frequency"))
|
||||||
{
|
{
|
||||||
frequency = new Frequency(nbtTags);
|
frequency = new Frequency(nbtTags.getCompoundTag("frequency"));
|
||||||
frequency.valid = false;
|
frequency.valid = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -502,7 +506,9 @@ public class TileEntityTeleporter extends TileEntityElectricBlock implements IPe
|
||||||
|
|
||||||
if(frequency != null)
|
if(frequency != null)
|
||||||
{
|
{
|
||||||
frequency.write(nbtTags);
|
NBTTagCompound frequencyTag = new NBTTagCompound();
|
||||||
|
frequency.write(frequencyTag);
|
||||||
|
nbtTags.setTag("frequency", frequencyTag);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue