diff --git a/core/src/mindustry/core/ContentLoader.java b/core/src/mindustry/core/ContentLoader.java index 7d738135cd..8dd4357817 100644 --- a/core/src/mindustry/core/ContentLoader.java +++ b/core/src/mindustry/core/ContentLoader.java @@ -48,7 +48,7 @@ public class ContentLoader{ clear(); } - /** Clears all initialized content.*/ + /** Clears all initialized content. */ public void clear(){ contentNameMap = new ObjectMap[ContentType.all.length]; contentMap = new Seq[ContentType.all.length]; @@ -75,7 +75,7 @@ public class ContentLoader{ } } - /** Logs content statistics.*/ + /** Logs content statistics. */ public void logContent(){ //check up ID mapping, make sure it's linear (debug only) for(Seq arr : contentMap){ @@ -95,14 +95,14 @@ public class ContentLoader{ Log.debug("-------------------"); } - /** Calls Content#init() on everything. Use only after all modules have been created.*/ + /** Calls Content#init() on everything. Use only after all modules have been created. */ public void init(){ initialize(Content::init); if(constants != null) constants.init(); Events.fire(new ContentInitEvent()); } - /** Calls Content#load() on everything. Use only after all modules have been created on the client.*/ + /** Calls Content#loadIcon() and Content#load() on everything. Use only after all modules have been created on the client. */ public void load(){ initialize(Content::loadIcon); initialize(Content::load); @@ -323,4 +323,4 @@ public class ContentLoader{ public Planet planet(String name){ return getByName(ContentType.planet, name); } -} \ No newline at end of file +} diff --git a/core/src/mindustry/ctype/Content.java b/core/src/mindustry/ctype/Content.java index fb0679bf9b..bea224683e 100644 --- a/core/src/mindustry/ctype/Content.java +++ b/core/src/mindustry/ctype/Content.java @@ -31,7 +31,7 @@ public abstract class Content implements Comparable{ */ public void load(){} - /** Called right after load(). */ + /** Called right before load(). */ public void loadIcon(){} /** @return whether an error occurred during mod loading. */ diff --git a/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java b/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java index ea864a0064..afd051dd97 100644 --- a/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java +++ b/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java @@ -589,6 +589,30 @@ public class SettingsMenuDialog extends BaseDialog{ rebuild(); } + public void textPref(String name, String def){ + list.add(new TextSetting(name, def, null)); + settings.defaults(name, def); + rebuild(); + } + + public void textPref(String name, String def, Cons changed){ + list.add(new TextSetting(name, def, changed)); + settings.defaults(name, def); + rebuild(); + } + + public void areaTextPref(String name, String def){ + list.add(new AreaTextSetting(name, def, null)); + settings.defaults(name, def); + rebuild(); + } + + public void areaTextPref(String name, String def, Cons changed){ + list.add(new AreaTextSetting(name, def, changed)); + settings.defaults(name, def); + rebuild(); + } + public void rebuild(){ clearChildren(); @@ -704,6 +728,67 @@ public class SettingsMenuDialog extends BaseDialog{ table.row(); } } + + public static class TextSetting extends Setting{ + String def; + Cons changed; + public TextSetting(String name, String def, Cons changed){ + super(name); + this.def = def; + this.changed = changed; + } + + @Override + public void add(SettingsTable table){ + TextField field = new TextField(); + + field.update(() -> field.setText(settings.getString(name))); + + field.changed(() -> { + settings.put(name, field.getText()); + if(changed != null){ + changed.get(field.getText()); + } + }); + + Table prefTable = table.table().left().padTop(3f).get(); + prefTable.add(field); + prefTable.label(() -> title); + addDesc(prefTable); + table.row(); + } + } + + public static class AreaTextSetting extends TextSetting{ + String def; + Cons changed; + + public AreaTextSetting(String name, String def, Cons changed){ + super(name, def, changed); + } + + @Override + public void add(SettingsTable table){ + TextArea area = new TextArea(""); + area.setPrefRows(5); + + area.update(() -> { + area.setText(settings.getString(name)); + area.setWidth(table.getWidth()); + }); + + area.changed(() -> { + settings.put(name, area.getText()); + if(changed != null){ + changed.get(area.getText()); + } + }); + + addDesc(table.label(() -> title).left().padTop(3f).get()); + table.row().add(area).left(); + table.row(); + } + } } } diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index 666f80305a..2a3a9ea12c 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -395,7 +395,7 @@ public class Block extends UnlockableContent{ return hasItems; } - /** Returns whether or not this block can be place on the specified */ + /** @return whether or not this block can be placed on the specified tile. */ public boolean canPlaceOn(Tile tile, Team team, int rotation){ return canPlaceOn(tile, team); }