diff --git a/java/src/game/Game.java b/java/src/game/Game.java index 3bf3e92..f62bde8 100755 --- a/java/src/game/Game.java +++ b/java/src/game/Game.java @@ -63,6 +63,7 @@ import game.entity.npc.EntityNPC; import game.entity.types.EntityLiving; import game.gui.Font; import game.gui.Gui; +import game.gui.GuiConnect; import game.gui.GuiConsole; import game.gui.GuiGameOver; import game.gui.GuiInfo; @@ -119,6 +120,7 @@ import game.renderer.texture.EntityTexManager; import game.renderer.texture.TextureManager; import game.renderer.texture.TextureMap; import game.rng.Random; +import game.util.CharValidator; import game.util.ExtMath; import game.util.FileCallback; import game.util.FileUtils; @@ -137,6 +139,8 @@ import game.vars.FloatVar; import game.vars.FloatVar.FloatFunction; import game.vars.IntVar; import game.vars.IntVar.IntFunction; +import game.vars.StringVar; +import game.vars.StringVar.StringFunction; import game.vars.Variable; import game.vars.Variable.IntType; import game.window.Bind; @@ -294,13 +298,13 @@ public class Game implements IThreadListener { public EntityNPC thePlayer; public HitPosition pointed; - @Variable(name = "chunk_view_distance", category = CVarCategory.WORLD, min = 2, max = 16 /* 128 */, callback = DistanceFunction.class, display = "Sichtweite", unit = "Chunks") + @Variable(name = "chunk_view_distance", category = CVarCategory.RENDER, min = 2, max = 16 /* 128 */, callback = DistanceFunction.class, display = "Sichtweite", unit = "Chunks") public int renderDistance = 8; - @Variable(name = "chunk_build_time", category = CVarCategory.WORLD, min = 1, max = 100, display = "Max. Zeit für Chunk-Bau pro Frame", unit = "ms") + @Variable(name = "chunk_build_time", category = CVarCategory.RENDER, min = 1, max = 100, display = "Max. Zeit für Chunk-Bau pro Frame", unit = "ms") public int maxBuildTime = 8; @Variable(name = "gl_fov", category = CVarCategory.RENDER, min = 1.0f, max = 179.0f, display = "Sichtfeld (FOV)", unit = "°", precision = 1) public float fov = 70.0f; - @Variable(name = "gl_wireframe", category = CVarCategory.RENDER) + @Variable(name = "gl_wireframe", category = CVarCategory.RENDER, display = "Gitter-Render-Modus") public boolean wireframe = false; @Variable(name = "con_timestamps", category = CVarCategory.CONSOLE, display = "Zeiten") @@ -308,32 +312,32 @@ public class Game implements IThreadListener { @Variable(name = "con_loglevel", category = CVarCategory.CONSOLE, display = "Ausgabe") public LogLevel level = LogLevel.INFO; - @Variable(name = "win_sync", category = CVarCategory.WINDOW, min = -1, max = 16384, callback = SyncFunction.class) + @Variable(name = "win_sync", category = CVarCategory.WINDOW, min = -1, max = 16384, callback = SyncFunction.class, display = "Maximale Bildrate") public int sync = 0; public int width; public int height; public int mouse_x; public int mouse_y; - @Variable(name = "win_width", category = CVarCategory.WINDOW, min = 1, max = 65536) + @Variable(name = "win_width", category = CVarCategory.WINDOW, min = 1, max = 65536, display = "Fensterbreite") public int xsize = 1280; - @Variable(name = "win_height", category = CVarCategory.WINDOW, min = 1, max = 65536) + @Variable(name = "win_height", category = CVarCategory.WINDOW, min = 1, max = 65536, display = "Fensterhöhe") public int ysize = 800; - @Variable(name = "win_pos_x", category = CVarCategory.WINDOW, min = -65536, max = 65536) + @Variable(name = "win_pos_x", category = CVarCategory.WINDOW, min = -65536, max = 65536, display = "Fenster X-Position") public int saved_xpos = 0x80000000; - @Variable(name = "win_pos_y", category = CVarCategory.WINDOW, min = -65536, max = 65536) + @Variable(name = "win_pos_y", category = CVarCategory.WINDOW, min = -65536, max = 65536, display = "Fenster Y-Position") public int saved_ypos = 0x80000000; public int fb_x; public int fb_y; - @Variable(name = "phy_sensitivity", category = CVarCategory.PHYSICS, min = 0.01f, max = 10.0f, display = "Mausempfindlichkeit", precision = 2, unit = "%") + @Variable(name = "phy_sensitivity", category = CVarCategory.INPUT, min = 0.01f, max = 10.0f, display = "Mausempfindlichkeit", precision = 2, unit = "%") public float sensitivity = 1.0f; public boolean fullscreen; public long syncLimit; public boolean mouseFirst; public boolean nograb = System.getProperty("mouse.nograb") != null; public DisplayMode vidMode; - @Variable(name = "gui_dclick_delay", category = CVarCategory.GUI, min = 150, max = 750, display = "Doppelklick bei", unit = "ms") + @Variable(name = "gui_dclick_delay", category = CVarCategory.INPUT, min = 150, max = 750, display = "Doppelklick bei", unit = "ms") public int dclickDelay = 250; @Variable(name = "con_size", category = CVarCategory.CONSOLE, min = 0, max = 128, callback = ConFunction.class, display = "Nachrichten im Overlay") public int hudSize = 32; @@ -341,7 +345,7 @@ public class Game implements IThreadListener { public int hudFadeout = 5000; @Variable(name = "con_overlay", category = CVarCategory.CONSOLE, display = "Konsolen-Overlay") public boolean hudOverlay = true; - @Variable(name = "con_position", category = CVarCategory.CONSOLE, display = "Position") + @Variable(name = "con_position", category = CVarCategory.CONSOLE, display = "Position des Overlays") public ConsolePos hudPos = ConsolePos.TOP; @Variable(name = "con_opacity", category = CVarCategory.CONSOLE, min = 0x00, max = 0xff, display = "Deckkraft Hintergrund") public int hudOpacity = 0x40; @@ -358,20 +362,20 @@ public class Game implements IThreadListener { public boolean interrupted; public List vid_modes = Lists.newArrayList(); public List messages = Lists.newArrayList(); - @Variable(name = "gui_theme", category = CVarCategory.STYLE) + @Variable(name = "gui_theme", category = CVarCategory.GUI, display = "Oberflächen-Design") public Style style = Style.DEFAULT; public List