Fixed incorrect consumption rate in booster stats

This commit is contained in:
Anuken
2023-07-29 09:51:58 -04:00
parent f3656d24d4
commit 09d00b30e9
7 changed files with 24 additions and 20 deletions

View File

@@ -69,7 +69,7 @@ public abstract class UnlockableContent extends MappableContent{
} }
public String displayDescription(){ public String displayDescription(){
return minfo.mod == null ? description : description + "\n" + Core.bundle.format("mod.display", minfo.mod.meta.displayName()); return minfo.mod == null ? description : description + "\n" + Core.bundle.format("mod.display", minfo.mod.meta.displayName);
} }
/** Checks stat initialization state. Call before displaying stats. */ /** Checks stat initialization state. Call before displaying stats. */

View File

@@ -798,8 +798,7 @@ public class Mods implements Loadable{
} }
/** Tries to find the config file of a mod/plugin. */ /** Tries to find the config file of a mod/plugin. */
@Nullable public @Nullable ModMeta findMeta(Fi file){
public ModMeta findMeta(Fi file){
Fi metaFile = null; Fi metaFile = null;
for(String name : metaFiles){ for(String name : metaFiles){
if((metaFile = file.child(name)).exists()){ if((metaFile = file.child(name)).exists()){
@@ -1167,7 +1166,12 @@ public class Mods implements Loadable{
/** Mod metadata information.*/ /** Mod metadata information.*/
public static class ModMeta{ public static class ModMeta{
public String name, minGameVersion = "0", internalName; /** Name as defined in mod.json. Stripped of colors, but may contain spaces. */
public String name;
/** Name without spaces in all lower case. */
public String internalName;
/** Minimum game version that this mod requires, e.g. "140.1" */
public String minGameVersion = "0";
public @Nullable String displayName, author, description, subtitle, version, main, repo; public @Nullable String displayName, author, description, subtitle, version, main, repo;
public Seq<String> dependencies = Seq.with(); public Seq<String> dependencies = Seq.with();
public Seq<String> softDependencies = Seq.with(); public Seq<String> softDependencies = Seq.with();
@@ -1183,7 +1187,8 @@ public class Mods implements Loadable{
public boolean pregenerated; public boolean pregenerated;
public String displayName(){ public String displayName(){
return displayName == null ? name : displayName; //useless, kept for legacy reasons
return displayName;
} }
public String shortDescription(){ public String shortDescription(){
@@ -1194,12 +1199,11 @@ public class Mods implements Loadable{
public void cleanup(){ public void cleanup(){
if(name != null) name = Strings.stripColors(name); if(name != null) name = Strings.stripColors(name);
if(displayName != null) displayName = Strings.stripColors(displayName); if(displayName != null) displayName = Strings.stripColors(displayName);
if(displayName == null) displayName = name;
if(author != null) author = Strings.stripColors(author); if(author != null) author = Strings.stripColors(author);
if(description != null) description = Strings.stripColors(description); if(description != null) description = Strings.stripColors(description);
if(subtitle != null) subtitle = Strings.stripColors(subtitle).replace("\n", ""); if(subtitle != null) subtitle = Strings.stripColors(subtitle).replace("\n", "");
if(name != null){ if(name != null) internalName = name.toLowerCase(Locale.ROOT).replace(" ", "-");
internalName = name.toLowerCase(Locale.ROOT).replace(" ", "-");
}
} }
public int getMinMajor(){ public int getMinMajor(){

View File

@@ -153,7 +153,7 @@ public abstract class MapListDialog extends BaseDialog{
if(displayType){ if(displayType){
button.row(); button.row();
button.add(map.custom ? "@custom" : map.workshop ? "@workshop" : map.mod != null ? "[lightgray]" + map.mod.meta.displayName() : "@builtin").color(Color.gray).padTop(3); button.add(map.custom ? "@custom" : map.workshop ? "@workshop" : map.mod != null ? "[lightgray]" + map.mod.meta.displayName : "@builtin").color(Color.gray).padTop(3);
} }
i++; i++;

View File

@@ -215,7 +215,7 @@ public class ModsDialog extends BaseDialog{
pane[0].clear(); pane[0].clear();
boolean any = false; boolean any = false;
for(LoadedMod item : mods.list()){ for(LoadedMod item : mods.list()){
if(Strings.matches(query, item.meta.displayName())){ if(Strings.matches(query, item.meta.displayName)){
any = true; any = true;
if(!item.enabled() && !anyDisabled[0] && mods.list().size > 0){ if(!item.enabled() && !anyDisabled[0] && mods.list().size > 0){
anyDisabled[0] = true; anyDisabled[0] = true;
@@ -249,7 +249,7 @@ public class ModsDialog extends BaseDialog{
boolean hideDisabled = !item.isSupported() || item.hasUnmetDependencies() || item.hasContentErrors(); boolean hideDisabled = !item.isSupported() || item.hasUnmetDependencies() || item.hasContentErrors();
String shortDesc = item.meta.shortDescription(); String shortDesc = item.meta.shortDescription();
text.add("[accent]" + Strings.stripColors(item.meta.displayName()) + "\n" + text.add("[accent]" + Strings.stripColors(item.meta.displayName) + "\n" +
(shortDesc.length() > 0 ? "[lightgray]" + shortDesc + "\n" : "") (shortDesc.length() > 0 ? "[lightgray]" + shortDesc + "\n" : "")
//so does anybody care about version? //so does anybody care about version?
//+ "[gray]v" + Strings.stripColors(trimText(item.meta.version)) + "\n" //+ "[gray]v" + Strings.stripColors(trimText(item.meta.version)) + "\n"
@@ -369,7 +369,7 @@ public class ModsDialog extends BaseDialog{
} }
private void showMod(LoadedMod mod){ private void showMod(LoadedMod mod){
BaseDialog dialog = new BaseDialog(mod.meta.displayName()); BaseDialog dialog = new BaseDialog(mod.meta.displayName);
dialog.addCloseButton(); dialog.addCloseButton();
@@ -390,7 +390,7 @@ public class ModsDialog extends BaseDialog{
desc.add("@editor.name").padRight(10).color(Color.gray).padTop(0); desc.add("@editor.name").padRight(10).color(Color.gray).padTop(0);
desc.row(); desc.row();
desc.add(mod.meta.displayName()).growX().wrap().padTop(2); desc.add(mod.meta.displayName).growX().wrap().padTop(2);
desc.row(); desc.row();
if(mod.meta.author != null){ if(mod.meta.author != null){
desc.add("@editor.author").padRight(10).color(Color.gray); desc.add("@editor.author").padRight(10).color(Color.gray);
@@ -418,7 +418,7 @@ public class ModsDialog extends BaseDialog{
if(all.any()){ if(all.any()){
dialog.cont.row(); dialog.cont.row();
dialog.cont.button("@mods.viewcontent", Icon.book, () -> { dialog.cont.button("@mods.viewcontent", Icon.book, () -> {
BaseDialog d = new BaseDialog(mod.meta.displayName()); BaseDialog d = new BaseDialog(mod.meta.displayName);
d.cont.pane(cs -> { d.cont.pane(cs -> {
int i = 0; int i = 0;
for(UnlockableContent c : all){ for(UnlockableContent c : all){

View File

@@ -154,7 +154,7 @@ public class SchematicsDialog extends BaseDialog{
}else{ }else{
buttons.button(Icon.trash, style, () -> { buttons.button(Icon.trash, style, () -> {
if(s.mod != null){ if(s.mod != null){
ui.showInfo(Core.bundle.format("mod.item.remove", s.mod.meta.displayName())); ui.showInfo(Core.bundle.format("mod.item.remove", s.mod.meta.displayName));
}else{ }else{
ui.showConfirm("@confirm", "@schematic.delete.confirm", () -> { ui.showConfirm("@confirm", "@schematic.delete.confirm", () -> {
schematics.remove(s); schematics.remove(s);

View File

@@ -273,7 +273,7 @@ public class StatValues{
b.image(liquid.uiIcon).size(40).pad(10f).left().scaling(Scaling.fit); b.image(liquid.uiIcon).size(40).pad(10f).left().scaling(Scaling.fit);
b.table(info -> { b.table(info -> {
info.add(liquid.localizedName).left().row(); info.add(liquid.localizedName).left().row();
info.add(Strings.autoFixed(maxUsed * 60f, 1) + StatUnit.perSecond.localized()).left().color(Color.lightGray); info.add(Strings.autoFixed(maxUsed * 60f, 2) + StatUnit.perSecond.localized()).left().color(Color.lightGray);
}); });
b.table(bt -> { b.table(bt -> {
@@ -282,7 +282,7 @@ public class StatValues{
float reloadRate = (baseReload ? 1f : 0f) + maxUsed * multiplier * liquid.heatCapacity; float reloadRate = (baseReload ? 1f : 0f) + maxUsed * multiplier * liquid.heatCapacity;
float standardReload = baseReload ? reload : reload / (maxUsed * multiplier * 0.4f); float standardReload = baseReload ? reload : reload / (maxUsed * multiplier * 0.4f);
float result = standardReload / (reload / reloadRate); float result = standardReload / (reload / reloadRate);
bt.add(Core.bundle.format("bullet.reload", Strings.autoFixed(result * 100, 1))).pad(5); bt.add(Core.bundle.format("bullet.reload", Strings.autoFixed(result * 100, 2))).pad(5);
}).right().grow().pad(10f).padRight(15f); }).right().grow().pad(10f).padRight(15f);
}).growX().pad(5).row(); }).growX().pad(5).row();
} }
@@ -302,7 +302,7 @@ public class StatValues{
b.image(liquid.uiIcon).size(40).pad(10f).left().scaling(Scaling.fit); b.image(liquid.uiIcon).size(40).pad(10f).left().scaling(Scaling.fit);
b.table(info -> { b.table(info -> {
info.add(liquid.localizedName).left().row(); info.add(liquid.localizedName).left().row();
info.add(Strings.autoFixed(amount * 60f, 1) + StatUnit.perSecond.localized()).left().color(Color.lightGray); info.add(Strings.autoFixed(amount * 60f, 2) + StatUnit.perSecond.localized()).left().color(Color.lightGray);
}); });
b.table(bt -> { b.table(bt -> {

View File

@@ -467,7 +467,7 @@ public class ServerControl implements ApplicationListener{
if(!mods.list().isEmpty()){ if(!mods.list().isEmpty()){
info("Mods:"); info("Mods:");
for(LoadedMod mod : mods.list()){ for(LoadedMod mod : mods.list()){
info(" @ &fi@ " + (mod.enabled() ? "" : " &lr(" + mod.state + ")"), mod.meta.displayName(), mod.meta.version); info(" @ &fi@ " + (mod.enabled() ? "" : " &lr(" + mod.state + ")"), mod.meta.displayName, mod.meta.version);
} }
}else{ }else{
info("No mods found."); info("No mods found.");
@@ -478,7 +478,7 @@ public class ServerControl implements ApplicationListener{
handler.register("mod", "<name...>", "Display information about a loaded plugin.", arg -> { handler.register("mod", "<name...>", "Display information about a loaded plugin.", arg -> {
LoadedMod mod = mods.list().find(p -> p.meta.name.equalsIgnoreCase(arg[0])); LoadedMod mod = mods.list().find(p -> p.meta.name.equalsIgnoreCase(arg[0]));
if(mod != null){ if(mod != null){
info("Name: @", mod.meta.displayName()); info("Name: @", mod.meta.displayName);
info("Internal Name: @", mod.name); info("Internal Name: @", mod.name);
info("Version: @", mod.meta.version); info("Version: @", mod.meta.version);
info("Author: @", mod.meta.author); info("Author: @", mod.meta.author);