improve renaming and cheats
This commit is contained in:
parent
4d406a70e1
commit
7e9673dc25
36 changed files with 346 additions and 186 deletions
|
@ -53,6 +53,7 @@ import client.gui.container.GuiContainer;
|
|||
import client.gui.container.GuiInventory;
|
||||
import client.gui.element.Area;
|
||||
import client.gui.ingame.GuiGameOver;
|
||||
import client.gui.ingame.GuiRename;
|
||||
import client.network.ClientLoginHandler;
|
||||
import client.network.ClientPlayer;
|
||||
import client.network.DummyConnection;
|
||||
|
@ -261,6 +262,12 @@ public class Client implements IThreadListener {
|
|||
}
|
||||
}
|
||||
|
||||
public static class StyleFunction implements EnumFunction<Style> {
|
||||
public void apply(EnumVar cv, Style value) {
|
||||
Client.CLIENT.rescale();
|
||||
}
|
||||
}
|
||||
|
||||
private interface DebugRunner {
|
||||
void execute(Keysym key);
|
||||
}
|
||||
|
@ -470,7 +477,7 @@ public class Client implements IThreadListener {
|
|||
@Variable(name = "con_autoclose", category = CVarCategory.CONSOLE, display = "Schließen")
|
||||
public boolean conAutoclose = true;
|
||||
public boolean interrupted;
|
||||
@Variable(name = "gui_theme", category = CVarCategory.GUI, display = "Oberflächen-Design")
|
||||
@Variable(name = "gui_theme", category = CVarCategory.GUI, display = "Design", callback = StyleFunction.class)
|
||||
public Style style = Style.DEFAULT;
|
||||
@Variable(name = "gui_scroll_lines", category = CVarCategory.GUI, min = 1, max = 10, display = "Scrollbreite", unit = "Zeilen")
|
||||
public int scrollLines = 3;
|
||||
|
@ -556,7 +563,7 @@ public class Client implements IThreadListener {
|
|||
}
|
||||
|
||||
public void displayConnecting(ServerInfo server) {
|
||||
this.displayGuiScreen(GuiLoading.makeWaitTask("Verbinde zu " + (server.getAddress() == null ? "localhost" : server.getAddress()) + ":" + server.getPort() + " ..."));
|
||||
this.show(GuiLoading.makeWaitTask("Verbinde zu " + (server.getAddress() == null ? "localhost" : server.getAddress()) + ":" + server.getPort() + " ..."));
|
||||
}
|
||||
|
||||
public void connect(final ServerInfo server) {
|
||||
|
@ -612,7 +619,7 @@ public class Client implements IThreadListener {
|
|||
WorldClient world = new WorldClient(this, Space.INSTANCE);
|
||||
this.loadWorld(world, EntityRegistry.getEntityID(EntityCpu.class));
|
||||
this.player.setId(0);
|
||||
this.displayGuiScreen(null);
|
||||
this.show(null);
|
||||
this.player.flying = true;
|
||||
this.player.noclip = true;
|
||||
this.player.addEffect(new PotionEffect(Potion.FLYING, Integer.MAX_VALUE, 1));
|
||||
|
@ -720,6 +727,8 @@ public class Client implements IThreadListener {
|
|||
{
|
||||
if(Bind.THROW.isPressed())
|
||||
this.open.dropItem();
|
||||
else if(Bind.RENAME.isPressed())
|
||||
this.open.renameItem();
|
||||
for(int z = 0; z < this.keyBindsHotbar.length; z++) {
|
||||
if(this.keyBindsHotbar[z].isPressed())
|
||||
this.open.useHotbar(z);
|
||||
|
@ -772,6 +781,11 @@ public class Client implements IThreadListener {
|
|||
{
|
||||
this.player.dropOneItem(this.ctrl());
|
||||
}
|
||||
else if(Bind.RENAME.isPressed()) {
|
||||
ItemStack stack = this.player.getCurrentEquippedItem();
|
||||
if(stack != null)
|
||||
this.show(new GuiRename(-1, stack, null));
|
||||
}
|
||||
|
||||
this.primary |= Bind.PRIMARY.isPressed();
|
||||
this.secondary |= Bind.SECONDARY.isPressed();
|
||||
|
@ -801,7 +815,7 @@ public class Client implements IThreadListener {
|
|||
{
|
||||
if (this.player.getHealth() <= 0)
|
||||
{
|
||||
this.displayGuiScreen(null);
|
||||
this.show(null);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1294,7 +1308,7 @@ public class Client implements IThreadListener {
|
|||
// }
|
||||
// }
|
||||
|
||||
public void displayGuiScreen(Gui gui)
|
||||
public void show(Gui gui)
|
||||
{
|
||||
if(!this.refreshing)
|
||||
this.waitingForFile = false;
|
||||
|
@ -1548,7 +1562,7 @@ public class Client implements IThreadListener {
|
|||
|
||||
inventoryplayer.setCurrentItem(item);
|
||||
if(this.itemCheat) {
|
||||
this.player.client.addToSendQueue(new CPacketCheat(new ItemStack(item), inventoryplayer.currentItem, this.ctrl()));
|
||||
this.player.client.addToSendQueue(new CPacketCheat(new ItemStack(item), -2 - inventoryplayer.currentItem, this.ctrl()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2110,7 +2124,7 @@ public class Client implements IThreadListener {
|
|||
this.fb_y = Math.max(this.fb_raw_y / this.scale, MIN_HEIGHT);
|
||||
if(this.open != null) {
|
||||
this.refreshing = true;
|
||||
this.displayGuiScreen(this.open);
|
||||
this.show(this.open);
|
||||
this.refreshing = false;
|
||||
}
|
||||
}
|
||||
|
@ -2271,7 +2285,7 @@ public class Client implements IThreadListener {
|
|||
this.sync(this.sync);
|
||||
// this.startSound(true);
|
||||
this.getVar("tic_target").setDefault();
|
||||
this.displayGuiScreen(GuiMenu.INSTANCE);
|
||||
this.show(GuiMenu.INSTANCE);
|
||||
Log.SYSTEM.info("Client gestartet in " + String.format("%.1f", (double)(System.currentTimeMillis() - time) / 1000.0) + " Sekunden");
|
||||
|
||||
while(!this.interrupted) {
|
||||
|
@ -2348,7 +2362,7 @@ public class Client implements IThreadListener {
|
|||
public void disconnected(String msg) {
|
||||
Log.NETWORK.info("Getrennt: %s", msg);
|
||||
this.unload(true);
|
||||
this.displayGuiScreen(new GuiInfo("Von Server getrennt", TextColor.RED + "Verbindung zum Server wurde getrennt\n\n" + TextColor.RESET + msg));
|
||||
this.show(new GuiInfo("Von Server getrennt", TextColor.RED + "Verbindung zum Server wurde getrennt\n\n" + TextColor.RESET + msg));
|
||||
}
|
||||
|
||||
|
||||
|
@ -2363,32 +2377,32 @@ public class Client implements IThreadListener {
|
|||
}
|
||||
if(!(this.open instanceof GuiLoading)) {
|
||||
if(!(this.open instanceof GuiConsole) && Bind.CONSOLE.isPressed()) {
|
||||
this.displayGuiScreen(GuiConsole.INSTANCE.setFull(true));
|
||||
this.show(GuiConsole.INSTANCE.setFull(true));
|
||||
}
|
||||
else if(this.open == null && Bind.COMMAND.isPressed()) {
|
||||
this.displayGuiScreen(GuiConsole.INSTANCE.setFull(false));
|
||||
this.show(GuiConsole.INSTANCE.setFull(false));
|
||||
}
|
||||
// if(this.theWorld != null && this.open == null && Bind.COMMAND.isPressed()) {
|
||||
// this.displayGuiScreen(GuiChat.INSTANCE);
|
||||
// }
|
||||
if(this.world != null && Bind.MENU.isPressed()) {
|
||||
if(this.open != (this.charEditor ? GuiChar.INSTANCE : null))
|
||||
this.displayGuiScreen(this.charEditor ? GuiChar.INSTANCE : null);
|
||||
this.show(this.charEditor ? GuiChar.INSTANCE : null);
|
||||
else
|
||||
this.displayGuiScreen(GuiMenu.INSTANCE);
|
||||
this.show(GuiMenu.INSTANCE);
|
||||
}
|
||||
else if(this.world == null && !(this.open instanceof GuiMenu) && Bind.MENU.isPressed()) {
|
||||
this.displayGuiScreen(GuiMenu.INSTANCE);
|
||||
this.show(GuiMenu.INSTANCE);
|
||||
}
|
||||
if(this.world != null && !this.charEditor && Bind.INVENTORY.isPressed()) {
|
||||
if(this.open instanceof GuiContainer) {
|
||||
this.displayGuiScreen(null);
|
||||
this.show(null);
|
||||
}
|
||||
else if(this.open == null) {
|
||||
if(this.player.isRiding() && this.player.vehicle instanceof EntityHorse)
|
||||
this.player.sendHorseInventory();
|
||||
else
|
||||
this.displayGuiScreen(/* this.itemCheat ? new GuiCheat() : */ new GuiInventory(this.player));
|
||||
this.show(/* this.itemCheat ? new GuiCheat() : */ new GuiInventory(this.player));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2506,7 +2520,7 @@ public class Client implements IThreadListener {
|
|||
if(this.world != null && this.getNetHandler() != null)
|
||||
this.getNetHandler().getConnection().closeChannel("Quitting");
|
||||
this.unloadWorld();
|
||||
this.displayGuiScreen(GuiMenu.INSTANCE);
|
||||
this.show(GuiMenu.INSTANCE);
|
||||
}
|
||||
|
||||
private void startSound(boolean load) {
|
||||
|
@ -2552,7 +2566,7 @@ public class Client implements IThreadListener {
|
|||
this.registerDebug(Keysym.H, "Hilfe zu Tastenkombinationen anzeigen", new DebugRunner() {
|
||||
public void execute(Keysym key) {
|
||||
String bind = Bind.CHEAT.getInput() == null ? "n/a" : Bind.CHEAT.getInput().getDisplay();
|
||||
Client.this.displayGuiScreen(new GuiInfo("Hilfe zu Tastenkombinationen", TextColor.DGREEN + "" + Client.this.debug.size() + " Tastenkombinationen stehen zur Verfügung:\n" +
|
||||
Client.this.show(new GuiInfo("Hilfe zu Tastenkombinationen", TextColor.DGREEN + "" + Client.this.debug.size() + " Tastenkombinationen stehen zur Verfügung:\n" +
|
||||
Util.buildLines(new Function<DebugFunction, String>() {
|
||||
public String apply(DebugFunction func) {
|
||||
return TextColor.CYAN + bind + TextColor.RED + "+" + TextColor.GREEN + func.key.getDisplay() + TextColor.GRAY + " - " + TextColor.YELLOW + func.help;
|
||||
|
|
|
@ -67,6 +67,9 @@ public abstract class Gui {
|
|||
public void dropItem() {
|
||||
}
|
||||
|
||||
public void renameItem() {
|
||||
}
|
||||
|
||||
public void drawBackground() {
|
||||
|
||||
}
|
||||
|
|
|
@ -285,7 +285,7 @@ public class GuiConnect extends GuiList<GuiConnect.ServerInfo> implements Button
|
|||
if(this.selectedElement < 0)
|
||||
this.elements.add(server);
|
||||
this.save();
|
||||
this.gm.displayGuiScreen(this);
|
||||
this.gm.show(this);
|
||||
}
|
||||
|
||||
public boolean isNameTaken(String name) {
|
||||
|
@ -349,7 +349,7 @@ public class GuiConnect extends GuiList<GuiConnect.ServerInfo> implements Button
|
|||
if(button == this.deleteButton) {
|
||||
if(this.selectedElement >= 0) {
|
||||
this.elements.remove(this.selectedElement);
|
||||
this.gm.displayGuiScreen(this);
|
||||
this.gm.show(this);
|
||||
}
|
||||
}
|
||||
else if(button == this.selectButton) {
|
||||
|
@ -361,18 +361,18 @@ public class GuiConnect extends GuiList<GuiConnect.ServerInfo> implements Button
|
|||
}
|
||||
else if(button == this.createButton) {
|
||||
this.setSelected(-1);
|
||||
this.gm.displayGuiScreen(new GuiServer(new ServerInfo("", "", -1, "", "", "", null, -1L, null, false)));
|
||||
this.gm.show(new GuiServer(new ServerInfo("", "", -1, "", "", "", null, -1L, null, false)));
|
||||
}
|
||||
else if(button == this.editButton) {
|
||||
ServerInfo server = this.getSelected();
|
||||
if(server != null)
|
||||
this.gm.displayGuiScreen(new GuiServer(server));
|
||||
this.gm.show(new GuiServer(server));
|
||||
}
|
||||
else if(button == this.copyButton) {
|
||||
ServerInfo server = this.getSelected();
|
||||
if(server != null) {
|
||||
this.setSelected(-1);
|
||||
this.gm.displayGuiScreen(new GuiServer(new ServerInfo(server.name, server.address, server.port, server.user, server.password, server.access, server.keypair, -1L, null, server.enforceEncryption)));
|
||||
this.gm.show(new GuiServer(new ServerInfo(server.name, server.address, server.port, server.user, server.password, server.access, server.keypair, -1L, null, server.enforceEncryption)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -127,7 +127,7 @@ public class GuiConsole extends Gui implements FieldCallback {
|
|||
|
||||
this.inputField.setText("");
|
||||
if((this.gm.conAutoclose || !this.full) && this.gm.world != null)
|
||||
this.gm.displayGuiScreen(null);
|
||||
this.gm.show(null);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@ public class GuiMenu extends Gui {
|
|||
GuiMenu.this.splashLabel.setText(TextColor.VIOLET + "Hax!");
|
||||
}
|
||||
else {
|
||||
GuiMenu.this.gm.displayGuiScreen(GuiConnect.INSTANCE);
|
||||
GuiMenu.this.gm.show(GuiConnect.INSTANCE);
|
||||
}
|
||||
}
|
||||
}, "Server beitreten"));
|
||||
|
@ -71,13 +71,13 @@ public class GuiMenu extends Gui {
|
|||
if(GuiMenu.this.hacked == 8)
|
||||
GuiMenu.this.hacked++;
|
||||
else
|
||||
GuiMenu.this.gm.displayGuiScreen(GuiServer.INSTANCE);
|
||||
GuiMenu.this.gm.show(GuiServer.INSTANCE);
|
||||
}
|
||||
}, "Schnellverbindung"));
|
||||
this.add(new NavButton(0, 40, 180, 0, GuiOptions.getPage(), "Einstellungen"));
|
||||
this.infoButton = this.add(new ActButton(0, 60, 180, 0, new ButtonCallback() {
|
||||
public void use(ActButton elem, PressType action) {
|
||||
GuiMenu.this.gm.displayGuiScreen(GuiMenu.this.hacked == 10 ? GuiInfo.HAX : GuiInfo.INSTANCE);
|
||||
GuiMenu.this.gm.show(GuiMenu.this.hacked == 10 ? GuiInfo.HAX : GuiInfo.INSTANCE);
|
||||
}
|
||||
}, "Info / Mitwirkende") {
|
||||
public void drawHover() {
|
||||
|
|
|
@ -113,9 +113,9 @@ public class GuiServer extends Gui implements FieldCallback {
|
|||
final PublicKey key = GuiServer.this.serverKey;
|
||||
final String digest = GuiServer.this.keyDigest;
|
||||
final String sdigest = GuiServer.this.serverDigest;
|
||||
GuiServer.this.gm.displayGuiScreen(new GuiConfirm(new GuiConfirm.Callback() {
|
||||
GuiServer.this.gm.show(new GuiConfirm(new GuiConfirm.Callback() {
|
||||
public void confirm(boolean confirmed) {
|
||||
GuiServer.this.gm.displayGuiScreen(GuiServer.this);
|
||||
GuiServer.this.gm.show(GuiServer.this);
|
||||
GuiServer.this.nameBox.setText(name);
|
||||
GuiServer.this.addrBox.setText(addr);
|
||||
GuiServer.this.portBox.setText(port);
|
||||
|
|
|
@ -26,16 +26,16 @@ public enum Style implements Identifyable, Displayable {
|
|||
public int fill_top;
|
||||
@Variable(type = IntType.COLOR, name = "color_button_btm", category = CVarCategory.GUI, display = "Knopf unten")
|
||||
public int fill_btm;
|
||||
@Variable(type = IntType.COLOR, name = "color_textbox_top", category = CVarCategory.GUI, display = "Textfeld oben")
|
||||
@Variable(type = IntType.COLOR, name = "color_textbox_top", category = CVarCategory.GUI, display = "Eingabe oben")
|
||||
public int field_top;
|
||||
@Variable(type = IntType.COLOR, name = "color_textbox_btm", category = CVarCategory.GUI, display = "Textfeld unten")
|
||||
@Variable(type = IntType.COLOR, name = "color_textbox_btm", category = CVarCategory.GUI, display = "Eingabe unten")
|
||||
public int field_btm;
|
||||
|
||||
@Variable(type = IntType.COLOR, name = "color_label_text", category = CVarCategory.GUI, display = "Beschriftung")
|
||||
public int text_label;
|
||||
@Variable(type = IntType.COLOR, name = "color_button_text", category = CVarCategory.GUI, display = "Knopf Text")
|
||||
public int text_base;
|
||||
@Variable(type = IntType.COLOR, name = "color_textbox_text", category = CVarCategory.GUI, display = "Textfeld Text")
|
||||
@Variable(type = IntType.COLOR, name = "color_textbox_text", category = CVarCategory.GUI, display = "Eingabe Text")
|
||||
public int text_field;
|
||||
|
||||
static {
|
||||
|
|
|
@ -243,7 +243,7 @@ public class GuiChar extends GuiList<GuiChar.SkinEntry>
|
|||
public static class FilterFunction implements EnumFunction<FilterType> {
|
||||
public void apply(EnumVar cv, FilterType value) {
|
||||
if(Client.CLIENT.open instanceof GuiChar)
|
||||
Client.CLIENT.displayGuiScreen(Client.CLIENT.open);
|
||||
Client.CLIENT.show(Client.CLIENT.open);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -284,7 +284,7 @@ public class GuiChar extends GuiList<GuiChar.SkinEntry>
|
|||
GuiChar.this.gm.showFileDialog(FileMode.FILE_LOAD_MULTI, "Skin konvertieren", TEXTURE_FOLDER, new FileCallback() {
|
||||
public void selected(File file) {
|
||||
if(SkinConverter.convertSkin(file, TEXTURE_FOLDER, false))
|
||||
GuiChar.this.gm.displayGuiScreen(GuiChar.this);
|
||||
GuiChar.this.gm.show(GuiChar.this);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -294,7 +294,7 @@ public class GuiChar extends GuiList<GuiChar.SkinEntry>
|
|||
GuiChar.this.gm.showFileDialog(FileMode.FILE_LOAD_MULTI, "Skin konvertieren (schlank)", TEXTURE_FOLDER, new FileCallback() {
|
||||
public void selected(File file) {
|
||||
if(SkinConverter.convertSkin(file, TEXTURE_FOLDER, true))
|
||||
GuiChar.this.gm.displayGuiScreen(GuiChar.this);
|
||||
GuiChar.this.gm.show(GuiChar.this);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -302,7 +302,7 @@ public class GuiChar extends GuiList<GuiChar.SkinEntry>
|
|||
this.addSelector("char_filter_species", 392, 12, 250, 0);
|
||||
this.add(new ActButton(2, height - 30, 193, 0, new ButtonCallback() {
|
||||
public void use(ActButton elem, PressType action) {
|
||||
GuiChar.this.gm.displayGuiScreen(GuiChar.this);
|
||||
GuiChar.this.gm.show(GuiChar.this);
|
||||
}
|
||||
}, "Neu laden"));
|
||||
this.templateButton = this.add(new ActButton(197, height - 30, 193, 0, new ButtonCallback() {
|
||||
|
@ -335,7 +335,7 @@ public class GuiChar extends GuiList<GuiChar.SkinEntry>
|
|||
}
|
||||
}
|
||||
}
|
||||
GuiChar.this.gm.displayGuiScreen(GuiChar.this);
|
||||
GuiChar.this.gm.show(GuiChar.this);
|
||||
}
|
||||
}
|
||||
}, "Vorlage kopieren"));
|
||||
|
@ -382,7 +382,7 @@ public class GuiChar extends GuiList<GuiChar.SkinEntry>
|
|||
this.add(new ActButton(width - 195, height - 30, 193, 0, new ButtonCallback() {
|
||||
public void use(ActButton elem, PressType action) {
|
||||
if(GuiChar.this.gm.player != null) {
|
||||
GuiChar.this.gm.displayGuiScreen(GuiLoading.makeWaitTask("Lade Welt ..."));
|
||||
GuiChar.this.gm.show(GuiLoading.makeWaitTask("Lade Welt ..."));
|
||||
Dimension dim = UniverseRegistry.getBaseDimensions().get(GuiChar.this.dimension);
|
||||
GuiChar.this.gm.player.client.addToSendQueue(new CPacketMessage(CPacketMessage.Type.INFO, descField.getText()));
|
||||
GuiChar.this.gm.player.client.addToSendQueue(new CPacketAction(CPacketAction.Action.CLOSE_EDITOR, UniverseRegistry.getId(dim)));
|
||||
|
@ -392,7 +392,7 @@ public class GuiChar extends GuiList<GuiChar.SkinEntry>
|
|||
this.cancelButton = this.add(new ActButton(width - 390, height - 30, 193, 0, new ButtonCallback() {
|
||||
public void use(ActButton elem, PressType action) {
|
||||
if(GuiChar.this.gm.player != null)
|
||||
GuiChar.this.gm.displayGuiScreen(GuiCharacters.INSTANCE);
|
||||
GuiChar.this.gm.show(GuiCharacters.INSTANCE);
|
||||
}
|
||||
}, "Abbrechen"));
|
||||
this.setCharsAvailable();
|
||||
|
@ -470,13 +470,13 @@ public class GuiChar extends GuiList<GuiChar.SkinEntry>
|
|||
|
||||
public void updateScreen() {
|
||||
if(this.adjust == null && this.gm.getRenderManager().gm != null)
|
||||
this.gm.displayGuiScreen(this);
|
||||
this.gm.show(this);
|
||||
}
|
||||
|
||||
public void checkReopen() {
|
||||
if(this.adjust != null && this.waiting) {
|
||||
this.waiting = false;
|
||||
this.gm.displayGuiScreen(this);
|
||||
this.gm.show(this);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -107,11 +107,11 @@ public class GuiCharacters extends GuiList<GuiCharacters.CharacterEntry> impleme
|
|||
this.gm.getNetHandler().addToSendQueue(new CPacketAction(GuiCharacters.this.gm.charEditor ? Action.CANCEL_EDITOR : CPacketAction.Action.SELECT_CHARACTER, this.selectedElement));
|
||||
}
|
||||
else if(elem == this.deleteButtom && entry.character != null) {
|
||||
this.gm.displayGuiScreen(new GuiConfirm(new GuiConfirm.Callback() {
|
||||
this.gm.show(new GuiConfirm(new GuiConfirm.Callback() {
|
||||
public void confirm(boolean confirmed) {
|
||||
if(confirmed)
|
||||
GuiCharacters.this.gm.getNetHandler().addToSendQueue(new CPacketAction(CPacketAction.Action.DELETE_CHARACTER, GuiCharacters.this.selectedElement));
|
||||
GuiCharacters.this.gm.displayGuiScreen(GuiCharacters.this);
|
||||
GuiCharacters.this.gm.show(GuiCharacters.this);
|
||||
}
|
||||
}, "Möchtest du diesen Charakter wirklich löschen?", "Der Fortschritt, die Gegenstände und die Historie\nvon \"" + entry.character.name() + "\" werden für immer verloren sein!", "Löschen", "Abbrechen"));
|
||||
}
|
||||
|
|
|
@ -67,7 +67,7 @@ public class GuiClass extends GuiList<GuiClass.ClassEntry> implements ButtonCall
|
|||
ClassEntry entry = this.getSelected();
|
||||
if(entry != null && GuiClass.this.gm.player != null) {
|
||||
GuiClass.this.gm.player.client.addToSendQueue(new CPacketAction(CPacketAction.Action.SET_CLASS, entry.clazz.ordinal()));
|
||||
this.gm.displayGuiScreen(GuiChar.INSTANCE);
|
||||
this.gm.show(GuiChar.INSTANCE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,6 +15,7 @@ import client.gui.element.Field;
|
|||
import client.gui.element.InventoryButton;
|
||||
import client.gui.element.Label;
|
||||
import client.gui.element.MultiLabel;
|
||||
import client.gui.ingame.GuiRename;
|
||||
import client.renderer.Drawing;
|
||||
import client.renderer.GlState;
|
||||
import client.renderer.ItemRenderer;
|
||||
|
@ -498,8 +499,8 @@ public abstract class GuiContainer extends Gui
|
|||
return;
|
||||
if(this.cheatStack != null) {
|
||||
Slot slot = this.getSlotAtPosition(mouseX, mouseY);
|
||||
if((mouseButton == 0 || mouseButton == 1) && slot != null && this.gm.player != null && slot.inventory == this.gm.player.inventory)
|
||||
this.gm.player.client.addToSendQueue(new CPacketCheat(this.cheatStack, slot.getIndex(), mouseButton == 0 && this.cheatStack.size > 1));
|
||||
if((mouseButton == 0 || mouseButton == 1) && slot != null && this.gm.player != null && slot.canCheatItem())
|
||||
this.gm.player.client.addToSendQueue(new CPacketCheat(this.cheatStack, slot.slotNumber, mouseButton == 0 && this.cheatStack.size > 1));
|
||||
if(mouseButton != 1 && !this.gm.ctrl())
|
||||
this.cheatStack = null;
|
||||
return;
|
||||
|
@ -715,6 +716,13 @@ public abstract class GuiContainer extends Gui
|
|||
}
|
||||
}
|
||||
|
||||
public void renameItem() {
|
||||
if (this.gm != null && this.gm.player != null && this.theSlot != null && this.theSlot.canEditItem() && this.theSlot.getHasStack())
|
||||
{
|
||||
this.gm.show(new GuiRename(this.theSlot.slotNumber, this.theSlot.getStack(), this));
|
||||
}
|
||||
}
|
||||
|
||||
public void useHotbar(int slot)
|
||||
{
|
||||
if (!this.clickSide(this.gm.mouse_x, this.gm.mouse_y, slot, this.gm.shift(), this.gm.ctrl()) && this.gm != null && this.gm.player != null && this.gm.player.inventory.getItemStack() == null && this.cheatStack == null && this.theSlot != null)
|
||||
|
@ -735,7 +743,7 @@ public abstract class GuiContainer extends Gui
|
|||
{
|
||||
if (this.gm != null && this.gm.player != null && (!this.gm.player.isEntityAlive() || this.gm.player.dead))
|
||||
{
|
||||
this.gm.displayGuiScreen(null);
|
||||
this.gm.show(null);
|
||||
}
|
||||
else if(this.gm.itemCheat && !this.cheatSearch.getText().equals(this.cheatLast)) {
|
||||
this.cheatLast = this.cheatSearch.getText();
|
||||
|
@ -865,7 +873,7 @@ public abstract class GuiContainer extends Gui
|
|||
|
||||
if(idx >= 0 && idx < ITEM_LIST.size()) {
|
||||
if(slot >= 0 || instant) {
|
||||
this.gm.player.client.addToSendQueue(new CPacketCheat(ITEM_LIST.get(idx), slot, full));
|
||||
this.gm.player.client.addToSendQueue(new CPacketCheat(ITEM_LIST.get(idx), slot < 0 ? slot : -2 - slot, full));
|
||||
}
|
||||
else {
|
||||
this.cheatStack = ITEM_LIST.get(idx).copy();
|
||||
|
|
|
@ -11,7 +11,7 @@ public class NavButton extends ActButton {
|
|||
public NavButton(int x, int y, int w, int h, Gui gui, String text) {
|
||||
super(x, y, w, h, new ButtonCallback() {
|
||||
public void use(ActButton elem, PressType action) {
|
||||
Client.CLIENT.displayGuiScreen(gui);
|
||||
Client.CLIENT.show(gui);
|
||||
}
|
||||
}, text);
|
||||
this.navGui = gui;
|
||||
|
|
|
@ -119,6 +119,6 @@ public class GuiForm extends Gui implements ButtonCallback {
|
|||
if(nethandler != null) {
|
||||
nethandler.addToSendQueue(new CPacketForm(this.id, this.outputData));
|
||||
}
|
||||
this.gm.displayGuiScreen(null);
|
||||
this.gm.show(null);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@ public class GuiGameOver extends Gui {
|
|||
this.button = this.add(new ActButton(100, 100, 200, 0, new ButtonCallback() {
|
||||
public void use(ActButton elem, PressType action) {
|
||||
GuiGameOver.this.gm.player.respawnPlayer();
|
||||
GuiGameOver.this.gm.displayGuiScreen(null);
|
||||
GuiGameOver.this.gm.show(null);
|
||||
}
|
||||
}, "Wiederbeleben"));
|
||||
this.shift();
|
||||
|
|
56
client/src/main/java/client/gui/ingame/GuiRename.java
Normal file
56
client/src/main/java/client/gui/ingame/GuiRename.java
Normal file
|
@ -0,0 +1,56 @@
|
|||
package client.gui.ingame;
|
||||
|
||||
import client.gui.Gui;
|
||||
import client.gui.element.Label;
|
||||
import client.gui.element.NavButton;
|
||||
import client.gui.element.PressType;
|
||||
import client.gui.element.FieldAction;
|
||||
import client.gui.element.ActButton;
|
||||
import client.gui.element.ButtonCallback;
|
||||
import client.gui.element.Field;
|
||||
import client.gui.element.FieldCallback;
|
||||
import client.network.ClientPlayer;
|
||||
import common.color.TextColor;
|
||||
import common.item.ItemStack;
|
||||
import common.packet.CPacketMessage;
|
||||
|
||||
public class GuiRename extends Gui implements FieldCallback, ButtonCallback {
|
||||
private final String itemName;
|
||||
private final String origName;
|
||||
private final int slot;
|
||||
private final Gui previous;
|
||||
|
||||
private Field lines;
|
||||
private ActButton button;
|
||||
|
||||
public void init(int width, int height) {
|
||||
this.add(new Label(0, -140, 300, 0, "Benenne " + this.itemName + " um"));
|
||||
this.lines = this.add(new Field(0, 0, 300, 0, 50, this, this.origName));
|
||||
this.add(new NavButton(0, 40, 149, 0, this.previous, "Abbrechen"));
|
||||
this.button = this.add(new ActButton(151, 40, 149, 0, this, "Umbenennen"));
|
||||
this.shift();
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return "Gegenstand umbenennen";
|
||||
}
|
||||
|
||||
public GuiRename(int slot, ItemStack stack, Gui prev) {
|
||||
this.itemName = stack.getItem().getDisplay(stack);
|
||||
this.origName = stack.hasDisplayName() ? TextColor.stripCodes(stack.getDisplayName()) : "";
|
||||
this.slot = slot;
|
||||
this.previous = prev;
|
||||
}
|
||||
|
||||
public void use(Field elem, FieldAction value) {
|
||||
if(value == FieldAction.SEND)
|
||||
this.use(this.button, PressType.PRIMARY);
|
||||
}
|
||||
|
||||
public void use(ActButton elem, PressType action) {
|
||||
ClientPlayer nethandler = this.gm.getNetHandler();
|
||||
if(nethandler != null)
|
||||
nethandler.addToSendQueue(new CPacketMessage(CPacketMessage.Type.ITEM, this.lines.getText(), this.slot));
|
||||
this.gm.show(this.previous);
|
||||
}
|
||||
}
|
|
@ -49,6 +49,6 @@ public class GuiSign extends Gui implements FieldCallback {
|
|||
|
||||
public void use(Field elem, FieldAction value) {
|
||||
if(value == FieldAction.SEND)
|
||||
this.gm.displayGuiScreen(null);
|
||||
this.gm.show(null);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@ public class GuiBinds extends GuiOptions {
|
|||
}
|
||||
|
||||
public void init(int width, int height) {
|
||||
int cols = 5;
|
||||
int y = 0;
|
||||
int x = 0;
|
||||
for(Bind bind : Bind.values()) {
|
||||
|
@ -40,18 +41,19 @@ public class GuiBinds extends GuiOptions {
|
|||
}, new Formatter<ActButton>() {
|
||||
public String use(ActButton elem) {
|
||||
if(bind == Bind.getWaiting())
|
||||
return /* TextColor.BLINK + "" + */ TextColor.BLUE + "***";
|
||||
return TextColor.BLUE + "***";
|
||||
else
|
||||
return (bind.isDupe() ? TextColor.RED : TextColor.YELLOW) + (bind.getInput() == null ? "---" : bind.getInput().getDisplay());
|
||||
}
|
||||
}));
|
||||
if(++x == 4) {
|
||||
if(++x == cols) {
|
||||
x = 0;
|
||||
y++;
|
||||
}
|
||||
}
|
||||
y += x != 0 ? 1 : 0;
|
||||
this.add(new ActButton(0, 100 + y * 34, 150 * 4 + 2 * 3, 0, new ButtonCallback() {
|
||||
x = (150 * cols + 2 * (cols - 1) - 482) / 2;
|
||||
this.add(new ActButton(x, 96 + y * 34, 482, 0, new ButtonCallback() {
|
||||
public void use(ActButton elem, PressType action) {
|
||||
boolean flag = false;
|
||||
for(Bind bind : Bind.values()) {
|
||||
|
@ -64,8 +66,8 @@ public class GuiBinds extends GuiOptions {
|
|||
}
|
||||
}
|
||||
}, "Zurücksetzen"));
|
||||
this.addSelector("phy_sensitivity", 0, 140 + y * 34, 302, 0);
|
||||
this.addSelector("gui_dclick_delay", 304, 140 + y * 34, 302, 0);
|
||||
this.addSelector("phy_sensitivity", x, 116 + y * 34, 240, 0);
|
||||
this.addSelector("gui_dclick_delay", x + 242, 116 + y * 34, 240, 0);
|
||||
super.init(width, height);
|
||||
}
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ public class GuiDisplay extends GuiOptions {
|
|||
GuiDisplay.this.gm.full(value);
|
||||
}
|
||||
}, "Vollbild"));
|
||||
int maxModes = ExtMath.clampi((height - 120) / Font.YGLYPH, 4, 28);
|
||||
int maxModes = ExtMath.clampi((height - ((3 * 20 + 2) * 2 + 18 + 4)) / Font.YGLYPH, 4, 28);
|
||||
DisplayMode[] dmodes = Window.getDisplayModes();
|
||||
if(dmodes != null) {
|
||||
List<DisplayMode> modes = Lists.newArrayList();
|
||||
|
|
|
@ -13,18 +13,18 @@ public class GuiSound extends GuiOptions {
|
|||
int x = 0;
|
||||
int y = 0;
|
||||
for(Volume volume : Volume.values()) {
|
||||
this.addSelector(volume.getCVarName(), x, y, 150, 0);
|
||||
x = (x == 0) ? 152 : 0;
|
||||
this.addSelector(volume.getCVarName(), x, y, 240, 0);
|
||||
x = (x == 0) ? 242 : 0;
|
||||
if(x == 0)
|
||||
y += 20;
|
||||
}
|
||||
|
||||
this.addSelector("snd_enabled", 0, 50, 150, 0);
|
||||
this.addSelector("snd_enabled", 0, 50, 240, 0);
|
||||
|
||||
this.addSelector("snd_buffer_size", 0, 70, 150, 0);
|
||||
this.addSelector("snd_frame_size", 152, 70, 150, 0);
|
||||
this.addSelector("snd_buffer_size", 0, 70, 240, 0);
|
||||
this.addSelector("snd_frame_size", 242, 70, 240, 0);
|
||||
|
||||
this.add(new ActButton(0, 100, 302, 0, new ButtonCallback() {
|
||||
this.add(new ActButton(0, 100, 482, 0, new ButtonCallback() {
|
||||
public void use(ActButton elem, PressType action) {
|
||||
GuiSound.this.gm.restartSound(false);
|
||||
}
|
||||
|
|
|
@ -3,36 +3,29 @@ package client.gui.options;
|
|||
import client.gui.Style;
|
||||
import client.gui.element.ActButton;
|
||||
import client.gui.element.ButtonCallback;
|
||||
import client.gui.element.Dropdown;
|
||||
import client.gui.element.DropdownCallback;
|
||||
import client.gui.element.Element;
|
||||
import client.gui.element.SelectableButton;
|
||||
import client.gui.element.Slider;
|
||||
import client.gui.element.SliderCallback;
|
||||
import client.gui.element.Switch;
|
||||
import client.gui.element.SwitchCallback;
|
||||
import client.gui.element.FieldAction;
|
||||
import client.gui.element.Field;
|
||||
import client.gui.element.FieldCallback;
|
||||
import client.gui.element.PressType;
|
||||
import client.vars.CVar;
|
||||
import client.vars.ColorVar;
|
||||
import client.gui.element.Toggle;
|
||||
import client.gui.element.ToggleCallback;
|
||||
|
||||
public class GuiStyle extends GuiOptions implements DropdownCallback<String>, ButtonCallback, ToggleCallback, SwitchCallback<String>, SliderCallback, FieldCallback {
|
||||
public class GuiStyle extends GuiOptions {
|
||||
private static final String[] STYLE_CVARS = {
|
||||
"color_button_top",
|
||||
"color_textbox_top",
|
||||
"color_border_top",
|
||||
|
||||
"color_button_btm",
|
||||
"color_textbox_btm",
|
||||
"color_border_btm",
|
||||
|
||||
"color_button_text",
|
||||
|
||||
"color_textbox_top",
|
||||
"color_textbox_btm",
|
||||
"color_textbox_text",
|
||||
"color_label_text"
|
||||
|
||||
"color_border_top",
|
||||
"color_border_btm",
|
||||
null,
|
||||
|
||||
"color_label_text",
|
||||
null,
|
||||
null
|
||||
};
|
||||
|
||||
protected GuiStyle() {
|
||||
|
@ -51,70 +44,42 @@ public class GuiStyle extends GuiOptions implements DropdownCallback<String>, Bu
|
|||
}
|
||||
|
||||
public void init(int width, int height) {
|
||||
int z;
|
||||
for(z = 0; z < STYLE_CVARS.length; z++) {
|
||||
this.addSelector(STYLE_CVARS[z], (z % 3) * 122, z / 3 * 34, 120, 0);
|
||||
}
|
||||
z = 0;
|
||||
for(Style theme : Style.values()) {
|
||||
ButtonCallback callback = new ButtonCallback() {
|
||||
public void use(ActButton elem, PressType action) {
|
||||
if(GuiStyle.this.gm.style != theme) {
|
||||
GuiStyle.this.gm.style = theme;
|
||||
GuiStyle.this.gm.setDirty();
|
||||
GuiStyle.this.gm.displayGuiScreen(GuiStyle.this);
|
||||
}
|
||||
}
|
||||
};
|
||||
this.add( // theme == this.gm.style ? new SelectedButton(10 + (z % 3) * 320, 360 + (z / 3) * 40, 300, 0, callback, theme.name) :
|
||||
new SelectableButton((z % 3) * 122, 4 * 34 + (z / 3) * 20, 120, 0, callback, theme.name, theme == this.gm.style));
|
||||
z++;
|
||||
for(int z = 0; z < STYLE_CVARS.length; z++) {
|
||||
if(STYLE_CVARS[z] != null)
|
||||
this.addSelector(STYLE_CVARS[z], (z / 3) * 120, (z % 3) * 34, 118, 0);
|
||||
}
|
||||
|
||||
this.addSelector("gui_scale", 0, 5 * 34 + (Style.values().length / 3) * 20, 181, 0);
|
||||
this.addSelector("gui_font", 183, 5 * 34 + (Style.values().length / 3) * 20, 181, 0);
|
||||
|
||||
if(this.gm.style != Style.CUSTOM) {
|
||||
this.add(new ActButton(0, 3 * 34, 364, 0, new ButtonCallback() {
|
||||
this.addSelector("gui_theme", 0, 3 * 34, 240, 0);
|
||||
if(this.gm.style != Style.CUSTOM)
|
||||
this.add(new ActButton(242, 3 * 34, 240, 0, new ButtonCallback() {
|
||||
public void use(ActButton elem, PressType action) {
|
||||
if(GuiStyle.this.gm.style != Style.CUSTOM) {
|
||||
GuiStyle.this.gm.style.copyToCustom();
|
||||
GuiStyle.this.gm.style = Style.CUSTOM;
|
||||
GuiStyle.this.gm.setDirty();
|
||||
GuiStyle.this.gm.displayGuiScreen(GuiStyle.this);
|
||||
GuiStyle.this.gm.show(GuiStyle.this);
|
||||
}
|
||||
}
|
||||
}, "In angepasstes Design kopieren"));
|
||||
}
|
||||
else {
|
||||
this.add(new ActButton(0, 3 * 34, 364, 0, new ButtonCallback() {
|
||||
}, "In 'Angepasst' kopieren"));
|
||||
else
|
||||
this.add(new ActButton(242, 3 * 34, 240, 0, new ButtonCallback() {
|
||||
public void use(ActButton elem, PressType action) {
|
||||
GuiStyle.this.gm.style = Style.CUSTOM;
|
||||
for(String cvar : STYLE_CVARS) {
|
||||
if(cvar != null)
|
||||
GuiStyle.this.gm.getVar(cvar).setDefault();
|
||||
}
|
||||
GuiStyle.this.gm.setDirty();
|
||||
GuiStyle.this.gm.displayGuiScreen(GuiStyle.this);
|
||||
}
|
||||
}, "Angepasstes Design zurücksetzen"));
|
||||
GuiStyle.this.gm.show(GuiStyle.this);
|
||||
}
|
||||
}, "'Angepasst' zurücksetzen"));
|
||||
|
||||
this.addSelector("gui_scale", 0, 3 * 34 + 20, 240, 0);
|
||||
this.addSelector("gui_font", 242, 3 * 34 + 20, 240, 0);
|
||||
super.init(width, height);
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return "Benutzeroberfläche";
|
||||
}
|
||||
|
||||
public void use(Field elem, FieldAction value) {
|
||||
}
|
||||
public void use(Slider elem, int value) {
|
||||
}
|
||||
public void use(Switch<String> elem, String value) {
|
||||
}
|
||||
public void use(Toggle elem, boolean value) {
|
||||
}
|
||||
public void use(ActButton elem, PressType action) {
|
||||
}
|
||||
public void use(Dropdown<String> elem, String value) {
|
||||
}
|
||||
}
|
||||
|
|
|
@ -73,7 +73,7 @@ public class ClientLoginHandler implements IClientLoginHandler {
|
|||
this.state = LoginState.CONFIRMING;
|
||||
this.gm.schedule(new Runnable() {
|
||||
public void run() {
|
||||
ClientLoginHandler.this.gm.displayGuiScreen(new GuiConfirm(new GuiConfirm.Callback() {
|
||||
ClientLoginHandler.this.gm.show(new GuiConfirm(new GuiConfirm.Callback() {
|
||||
public void confirm(boolean confirmed) {
|
||||
if(confirmed) {
|
||||
ClientLoginHandler.this.server.setServerKey(pubkey);
|
||||
|
@ -134,7 +134,7 @@ public class ClientLoginHandler implements IClientLoginHandler {
|
|||
this.state = LoginState.CONFIRMING;
|
||||
this.gm.schedule(new Runnable() {
|
||||
public void run() {
|
||||
ClientLoginHandler.this.gm.displayGuiScreen(new GuiConfirm(new GuiConfirm.Callback() {
|
||||
ClientLoginHandler.this.gm.show(new GuiConfirm(new GuiConfirm.Callback() {
|
||||
public void confirm(boolean confirmed) {
|
||||
if(confirmed) {
|
||||
ClientLoginHandler.this.server.setServerKey(null);
|
||||
|
|
|
@ -226,7 +226,7 @@ public class ClientPlayer implements IClientPlayer
|
|||
this.gm.loadWorld(this.world, packetIn.getEntityType());
|
||||
// this.gameController.thePlayer.dimension = this.clientWorldController.dimension.getDimensionId();
|
||||
this.gm.player.setId(packetIn.getEntityId());
|
||||
this.gm.displayGuiScreen(this.gm.charEditor ? GuiChar.INSTANCE : null);
|
||||
this.gm.show(this.gm.charEditor ? GuiChar.INSTANCE : null);
|
||||
// this.currentServerMaxPlayers = packetIn.getMaxPlayers();
|
||||
// this.gameController.controller.setCheat(packetIn.getCheat());
|
||||
// this.gameController.updateViewDistance();
|
||||
|
@ -844,7 +844,7 @@ public class ClientPlayer implements IClientPlayer
|
|||
this.gm.message = "";
|
||||
this.gm.total = 0;
|
||||
this.gm.progress = -1;
|
||||
this.gm.displayGuiScreen(GuiLoading.makeServerTask(packet.getMessage()));
|
||||
this.gm.show(GuiLoading.makeServerTask(packet.getMessage()));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1083,7 +1083,7 @@ public class ClientPlayer implements IClientPlayer
|
|||
// }
|
||||
|
||||
this.gm.setDimensionAndSpawnPlayer(packetIn.getEntityType());
|
||||
this.gm.displayGuiScreen(this.gm.charEditor ? GuiChar.INSTANCE : null);
|
||||
this.gm.show(this.gm.charEditor ? GuiChar.INSTANCE : null);
|
||||
// this.gameController.controller.setCheat(packetIn.getCheat());
|
||||
}
|
||||
|
||||
|
@ -1115,62 +1115,62 @@ public class ClientPlayer implements IClientPlayer
|
|||
|
||||
if ("container".equals(id))
|
||||
{
|
||||
this.gm.displayGuiScreen(new GuiChest(player.inventory, new InventoryBasic(title, slots)));
|
||||
this.gm.show(new GuiChest(player.inventory, new InventoryBasic(title, slots)));
|
||||
}
|
||||
else if ("enchanting_table".equals(id))
|
||||
{
|
||||
this.gm.displayGuiScreen(new GuiEnchant(player.inventory, player.worldObj, title));
|
||||
this.gm.show(new GuiEnchant(player.inventory, player.worldObj, title));
|
||||
}
|
||||
else if ("anvil".equals(id))
|
||||
{
|
||||
this.gm.displayGuiScreen(new GuiRepair(player.inventory, player.worldObj));
|
||||
this.gm.show(new GuiRepair(player.inventory, player.worldObj));
|
||||
}
|
||||
else if ("chest".equals(id))
|
||||
{
|
||||
this.gm.displayGuiScreen(new GuiChest(player.inventory, local));
|
||||
this.gm.show(new GuiChest(player.inventory, local));
|
||||
}
|
||||
else if ("hopper".equals(id))
|
||||
{
|
||||
this.gm.displayGuiScreen(new GuiHopper(player.inventory, local));
|
||||
this.gm.show(new GuiHopper(player.inventory, local));
|
||||
}
|
||||
else if ("furnace".equals(id))
|
||||
{
|
||||
this.gm.displayGuiScreen(new GuiFurnace(player.inventory, local));
|
||||
this.gm.show(new GuiFurnace(player.inventory, local));
|
||||
}
|
||||
else if ("brewing_stand".equals(id))
|
||||
{
|
||||
this.gm.displayGuiScreen(new GuiBrewing(player.inventory, local));
|
||||
this.gm.show(new GuiBrewing(player.inventory, local));
|
||||
}
|
||||
else if ("dispenser".equals(id) || "dropper".equals(id))
|
||||
{
|
||||
this.gm.displayGuiScreen(new GuiDispenser(player.inventory, local));
|
||||
this.gm.show(new GuiDispenser(player.inventory, local));
|
||||
}
|
||||
else if ("trade".equals(id))
|
||||
{
|
||||
this.gm.displayGuiScreen(new GuiMerchant(player.inventory, title, player.worldObj));
|
||||
this.gm.show(new GuiMerchant(player.inventory, title, player.worldObj));
|
||||
}
|
||||
else if ("entity".equals(id))
|
||||
{
|
||||
Entity entity = this.world.getEntityByID(packet.getEntityId());
|
||||
if(entity == null)
|
||||
return;
|
||||
this.gm.displayGuiScreen(new GuiEntity(player.inventory, new AnimalChest(title, true, slots), entity));
|
||||
this.gm.show(new GuiEntity(player.inventory, new AnimalChest(title, true, slots), entity));
|
||||
}
|
||||
else if ("tile".equals(id))
|
||||
{
|
||||
TileEntity tile = this.world.getTileEntity(packet.getTilePos());
|
||||
if(!(tile instanceof TileEntityDevice dev))
|
||||
return;
|
||||
this.gm.displayGuiScreen(new GuiTile(this.gm.player.inventory, local, dev));
|
||||
this.gm.show(new GuiTile(this.gm.player.inventory, local, dev));
|
||||
}
|
||||
else
|
||||
{
|
||||
Block block = BlockRegistry.byName(id);
|
||||
if(block instanceof BlockWorkbench bench) {
|
||||
this.gm.displayGuiScreen(new GuiCrafting(player.inventory, player.worldObj, bench));
|
||||
this.gm.show(new GuiCrafting(player.inventory, player.worldObj, bench));
|
||||
}
|
||||
else {
|
||||
this.gm.displayGuiScreen(new GuiChest(player.inventory, local));
|
||||
this.gm.show(new GuiChest(player.inventory, local));
|
||||
}
|
||||
}
|
||||
player.openContainer.windowId = packet.getWindowId();
|
||||
|
@ -1274,12 +1274,12 @@ public class ClientPlayer implements IClientPlayer
|
|||
tileentity.setPos(packetIn.getSignPosition());
|
||||
}
|
||||
|
||||
this.gm.displayGuiScreen(new GuiSign(packetIn.getSignPosition(), ((TileEntitySign)tileentity).signText));
|
||||
this.gm.show(new GuiSign(packetIn.getSignPosition(), ((TileEntitySign)tileentity).signText));
|
||||
}
|
||||
|
||||
public void handleForm(SPacketDisplayForm packet) {
|
||||
NetHandler.checkThread(packet, this, this.gm, this.world);
|
||||
this.gm.displayGuiScreen(new GuiForm(packet.getId(), packet.getTitle(), packet.getData()));
|
||||
this.gm.show(new GuiForm(packet.getId(), packet.getTitle(), packet.getData()));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1366,7 +1366,7 @@ public class ClientPlayer implements IClientPlayer
|
|||
{
|
||||
NetHandler.checkThread(packetIn, this, this.gm, this.world);
|
||||
// this.gameController.thePlayer.closeScreenAndDropStack();
|
||||
this.gm.displayGuiScreen(null);
|
||||
this.gm.show(null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1625,10 +1625,10 @@ public class ClientPlayer implements IClientPlayer
|
|||
this.gm.selectedCharacter = packet.getSelected();
|
||||
if(this.gm.charEditor && this.gm.selectedCharacter >= 0) {
|
||||
this.gm.charEditor = false;
|
||||
this.gm.displayGuiScreen(null);
|
||||
this.gm.show(null);
|
||||
}
|
||||
else if(this.gm.open instanceof GuiCharacters) {
|
||||
this.gm.displayGuiScreen(this.gm.open);
|
||||
this.gm.show(this.gm.open);
|
||||
}
|
||||
else if(this.gm.open instanceof GuiChar guichar) {
|
||||
guichar.setCharsAvailable();
|
||||
|
|
|
@ -31,6 +31,7 @@ public enum Bind implements Identifyable, CVar {
|
|||
SELECT7("select7", "Auswahl #7", Keysym.N7),
|
||||
SELECT8("select8", "Auswahl #8", Keysym.N8),
|
||||
SELECT9("select9", "Auswahl #9", Keysym.N9),
|
||||
RENAME("rename", "Umbenennen", Keysym.N),
|
||||
CONSOLE("console", "Konsole", Keysym.F1),
|
||||
COMMAND("command", "Befehl / Chat", Keysym.C),
|
||||
INFO("info", "Infos einblenden", Keysym.TAB),
|
||||
|
|
|
@ -126,6 +126,19 @@ public abstract class Container
|
|||
return slot != null ? slot.getStack() : null;
|
||||
}
|
||||
|
||||
public void renameItem(int id, String name) {
|
||||
if(id < 0 || id >= this.inventorySlots.size())
|
||||
return;
|
||||
Slot slot = this.inventorySlots.get(id);
|
||||
if(slot != null && slot.canEditItem() && slot.getHasStack()) {
|
||||
ItemStack stack = slot.getStack();
|
||||
if(name.isBlank())
|
||||
stack.clearCustomName();
|
||||
else
|
||||
stack.setStackDisplayName(name);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles slot click.
|
||||
*/
|
||||
|
|
|
@ -186,6 +186,10 @@ public class ContainerBrewingStand extends Container
|
|||
return 1;
|
||||
}
|
||||
|
||||
public boolean canCheatItem() {
|
||||
return false;
|
||||
}
|
||||
|
||||
// public void onPickupFromSlot(EntityNPC playerIn, ItemStack stack)
|
||||
// {
|
||||
// if (stack.getItem() == Items.potion && stack.getMetadata() > 0)
|
||||
|
|
|
@ -59,6 +59,10 @@ public class ContainerEnchantment extends Container
|
|||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
public boolean canEditItem() {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
for (int i = 0; i < 3; ++i)
|
||||
|
|
|
@ -15,8 +15,16 @@ public class ContainerMerchant extends Container
|
|||
this.theMerchant = merchant;
|
||||
this.theWorld = worldIn;
|
||||
this.merchantInventory = new InventoryMerchant(playerInventory.player, merchant);
|
||||
this.addSlotToContainer(new Slot(this.merchantInventory, 0, 36, 53));
|
||||
this.addSlotToContainer(new Slot(this.merchantInventory, 1, 62, 53));
|
||||
this.addSlotToContainer(new Slot(this.merchantInventory, 0, 36, 53) {
|
||||
public boolean canEditItem() {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
this.addSlotToContainer(new Slot(this.merchantInventory, 1, 62, 53) {
|
||||
public boolean canEditItem() {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
this.addSlotToContainer(new SlotMerchantResult(playerInventory.player, this.merchantInventory, 2, 120, 53));
|
||||
|
||||
for (int i = 0; i < 3; ++i)
|
||||
|
|
|
@ -30,7 +30,11 @@ public class ContainerPlayer extends Container
|
|||
{
|
||||
for (int j = 0; j < 2; ++j)
|
||||
{
|
||||
this.addSlotToContainer(new Slot(this.craftMatrix, j + i * 2, 88 + j * 18, 26 + i * 18));
|
||||
this.addSlotToContainer(new Slot(this.craftMatrix, j + i * 2, 88 + j * 18, 26 + i * 18) {
|
||||
public boolean canEditItem() {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -55,8 +55,16 @@ public class ContainerRepair extends Container
|
|||
this.selfPosition = blockPosIn;
|
||||
this.theWorld = worldIn;
|
||||
this.thePlayer = player;
|
||||
this.addSlotToContainer(new Slot(this.inputSlots, 0, 27, 47));
|
||||
this.addSlotToContainer(new Slot(this.inputSlots, 1, 76, 47));
|
||||
this.addSlotToContainer(new Slot(this.inputSlots, 0, 27, 47) {
|
||||
public boolean canEditItem() {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
this.addSlotToContainer(new Slot(this.inputSlots, 1, 76, 47) {
|
||||
public boolean canEditItem() {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
this.addSlotToContainer(new Slot(this.outputSlot, 2, 134, 47)
|
||||
{
|
||||
public boolean isItemValid(ItemStack stack)
|
||||
|
@ -120,6 +128,10 @@ public class ContainerRepair extends Container
|
|||
worldIn.playAuxSFX(1021, blockPosIn, 0);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean canCheatItem() {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
for (int i = 0; i < 3; ++i)
|
||||
|
|
|
@ -30,7 +30,11 @@ public class ContainerWorkbench extends Container
|
|||
{
|
||||
for (int j = 0; j < size; ++j)
|
||||
{
|
||||
this.addSlotToContainer(new Slot(this.craftMatrix, j + i * size, 26 + j * 18, 17 + i * 18));
|
||||
this.addSlotToContainer(new Slot(this.craftMatrix, j + i * size, 26 + j * 18, 17 + i * 18) {
|
||||
public boolean canEditItem() {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -164,4 +164,12 @@ public class Slot
|
|||
public int getIndex() {
|
||||
return this.slotIndex;
|
||||
}
|
||||
|
||||
public boolean canCheatItem() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean canEditItem() {
|
||||
return this.canCheatItem();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -152,4 +152,8 @@ public class SlotCrafting extends Slot
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean canCheatItem() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -105,4 +105,8 @@ public class SlotFurnaceOutput extends Slot
|
|||
// this.thePlayer.triggerAchievement(AchievementList.cookFish);
|
||||
// }
|
||||
}
|
||||
|
||||
public boolean canCheatItem() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -115,4 +115,8 @@ public class SlotMerchantResult extends Slot
|
|||
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean canCheatItem() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,27 +10,38 @@ public class CPacketMessage implements Packet<IPlayer>
|
|||
{
|
||||
private Type type;
|
||||
private String message;
|
||||
private int arg;
|
||||
|
||||
public CPacketMessage()
|
||||
{
|
||||
}
|
||||
|
||||
public CPacketMessage(Type type, String str)
|
||||
{
|
||||
this(type, str, 0);
|
||||
}
|
||||
|
||||
public CPacketMessage(Type type, String str, int arg)
|
||||
{
|
||||
this.type = type;
|
||||
this.message = str.length() > type.length ? str.substring(0, type.length) :str;
|
||||
this.message = str.length() > type.length ? str.substring(0, type.length) : str;
|
||||
this.arg = arg;
|
||||
}
|
||||
|
||||
public void readPacketData(PacketBuffer buf) throws IOException
|
||||
{
|
||||
this.type = buf.readEnumValue(Type.class);
|
||||
this.message = buf.readString(this.type.length);
|
||||
if(this.type.hasArg)
|
||||
this.arg = buf.readVarInt();
|
||||
}
|
||||
|
||||
public void writePacketData(PacketBuffer buf) throws IOException
|
||||
{
|
||||
buf.writeEnumValue(this.type);
|
||||
buf.writeString(this.message);
|
||||
if(this.type.hasArg)
|
||||
buf.writeVarInt(this.arg);
|
||||
}
|
||||
|
||||
public void processPacket(IPlayer handler)
|
||||
|
@ -48,17 +59,28 @@ public class CPacketMessage implements Packet<IPlayer>
|
|||
return this.message;
|
||||
}
|
||||
|
||||
public int getArg()
|
||||
{
|
||||
return this.arg;
|
||||
}
|
||||
|
||||
public static enum Type {
|
||||
COMMAND(IPlayer.MAX_CMD_LENGTH),
|
||||
CHAT(IPlayer.MAX_CMD_LENGTH),
|
||||
DISPLAY(IPlayer.MAX_NICK_LENGTH),
|
||||
INFO(IPlayer.MAX_INFO_LENGTH);
|
||||
// , ITEM(30);
|
||||
INFO(IPlayer.MAX_INFO_LENGTH),
|
||||
ITEM(30, true);
|
||||
|
||||
private final int length;
|
||||
private final boolean hasArg;
|
||||
|
||||
private Type(int length, boolean hasArg) {
|
||||
this.length = length;
|
||||
this.hasArg = hasArg;
|
||||
}
|
||||
|
||||
private Type(int length) {
|
||||
this.length = length;
|
||||
this(length, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -43,7 +43,6 @@ import common.inventory.Slot;
|
|||
import common.inventory.SlotCrafting;
|
||||
import common.item.ItemControl;
|
||||
import common.item.ItemStack;
|
||||
import common.item.tool.ItemArmor;
|
||||
import common.log.Log;
|
||||
import common.net.util.concurrent.Future;
|
||||
import common.net.util.concurrent.GenericFutureListener;
|
||||
|
@ -1961,10 +1960,15 @@ public class Player extends User implements ICrafting, Executor, IPlayer
|
|||
this.entity.setDescription(msg.isEmpty() ? null : msg);
|
||||
break;
|
||||
|
||||
// case ITEM:
|
||||
// if(this.entity.openContainer instanceof ContainerRepair)
|
||||
// ((ContainerRepair)this.entity.openContainer).updateItemName(msg);
|
||||
// break;
|
||||
case ITEM:
|
||||
if(msg.length() > 30)
|
||||
throw new IllegalArgumentException("Ungültiger Name");
|
||||
if(packetIn.getArg() == -1)
|
||||
this.entity.inventoryContainer.renameItem(36 + this.entity.inventory.currentItem, msg);
|
||||
else
|
||||
this.entity.openContainer.renameItem(packetIn.getArg(), msg);
|
||||
this.entity.openContainer.detectAndSendChanges();
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new IllegalArgumentException("Ungültiger Nachrichten-Typ!");
|
||||
|
@ -2873,35 +2877,51 @@ public class Player extends User implements ICrafting, Executor, IPlayer
|
|||
if(this.charEditor || !this.isAdmin())
|
||||
return;
|
||||
ItemStack stack = packet.getStack();
|
||||
if (stack.getItem() != null && stack.size <= stack.getMaxStackSize() && stack.size > 0 && (!stack.hasTag() || stack.getItem().isValidTag(stack.getTag())))
|
||||
if(stack.getItem() != null && stack.size <= stack.getMaxStackSize() && stack.size > 0 && (!stack.hasTag() || stack.getItem().isValidTag(stack.getTag())))
|
||||
{
|
||||
int amount = stack.size;
|
||||
if(amount <= 0)
|
||||
return;
|
||||
if(packet.getSlot() == -1) {
|
||||
this.entity.inventory.addItemStackToInventory(stack);
|
||||
amount -= stack.size;
|
||||
if(amount <= 0)
|
||||
return;
|
||||
}
|
||||
else if(packet.getSlot() >= 0 && packet.getSlot() < this.entity.inventory.getSizeInventory() && (packet.getSlot() < this.entity.inventory.mainInventory.length || (stack.getItem() instanceof ItemArmor && ((ItemArmor)stack.getItem()).armorType.getArmorSlot() == packet.getSlot() - this.entity.inventory.mainInventory.length))) {
|
||||
ItemStack old = this.entity.inventory.getStackInSlot(packet.getSlot());
|
||||
if(old != null) {
|
||||
else {
|
||||
if(packet.getSlot() <= -2 - 9)
|
||||
return;
|
||||
Slot slot = packet.getSlot() < 0 ? this.entity.inventoryContainer.getSlot(36 + -2 - packet.getSlot()) : this.entity.openContainer.getSlot(packet.getSlot());
|
||||
if(slot == null || !slot.canCheatItem())
|
||||
return;
|
||||
stack.size = Math.min(slot.getSlotStackLimit(), stack.size);
|
||||
amount = stack.size;
|
||||
if(amount <= 0)
|
||||
return;
|
||||
if(slot.getHasStack()) {
|
||||
ItemStack old = slot.getStack();
|
||||
if(ItemStack.areItemsEqual(stack, old) && ItemStack.areItemStackTagsEqual(stack, old)) {
|
||||
stack.size = Math.min(stack.getMaxStackSize(), old.size + stack.size);
|
||||
stack.size = Math.min(slot.getSlotStackLimit(), Math.min(stack.getMaxStackSize(), old.size + stack.size));
|
||||
amount = stack.size - old.size;
|
||||
if(amount <= 0 || !slot.isItemValid(stack))
|
||||
return;
|
||||
}
|
||||
else if(old.size == 1)
|
||||
else {
|
||||
if(!slot.isItemValid(stack))
|
||||
return;
|
||||
if(old.size == 1)
|
||||
this.addFeed(TextColor.DRED + "* %s zerstört",
|
||||
old.getColoredName(TextColor.DRED));
|
||||
else
|
||||
this.addFeed(TextColor.DRED + "* %d %s zerstört", old.size,
|
||||
old.getColoredName(TextColor.DRED));
|
||||
}
|
||||
this.entity.inventory.setInventorySlotContents(packet.getSlot(), stack);
|
||||
}
|
||||
else {
|
||||
else if(!slot.isItemValid(stack))
|
||||
return;
|
||||
slot.putStack(stack);
|
||||
}
|
||||
this.entity.openContainer.detectAndSendChanges();
|
||||
if(amount <= 0)
|
||||
return;
|
||||
this.entity.worldObj.playSoundAtEntity(this.entity, SoundEvent.POP, 0.2F);
|
||||
if(amount == 1)
|
||||
this.addFeed(TextColor.DGREEN + "* %s geschummelt",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue