diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 56b938a3e2..2c15b6b123 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -1468,9 +1468,9 @@ block.incinerator.description = Vaporizes any item or liquid it receives. block.power-void.description = Voids all power inputted. Sandbox only. block.power-source.description = Infinitely outputs power. Sandbox only. block.item-source.description = Infinitely outputs items. Sandbox only. -block.item-void.description = Destroys any items. Sandbox only. +block.item-void.description = Destroys inputted items. Sandbox only. block.liquid-source.description = Infinitely outputs liquids. Sandbox only. -block.liquid-void.description = Removes any liquids. Sandbox only. +block.liquid-void.description = Destroys inputted liquids. Sandbox only. block.payload-source.description = Infinitely outputs payloads. Sandbox only. block.payload-void.description = Destroys any payloads. Sandbox only. block.copper-wall.description = Protects structures from enemy projectiles. diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index 1e86cdd66d..ffabec8ed2 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -860,7 +860,7 @@ category.items = Materialien category.crafting = Erzeugung category.function = Funktion category.optional = Optionale Zusätze -setting.skipcoreanimation.name = Skip Core Launch/Land Animation +setting.skipcoreanimation.name = Kern Start- und Lande-Animation überspringen setting.landscape.name = Landschaft sperren setting.shadows.name = Schatten setting.blockreplace.name = Automatische Blockvorschläge diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties index 606ebca6f4..cfd53b825d 100644 --- a/core/assets/bundles/bundle_pt_PT.properties +++ b/core/assets/bundles/bundle_pt_PT.properties @@ -96,7 +96,7 @@ database.button = Database savegame = Gravar Jogo loadgame = Carregar Jogo joingame = Entrar no Jogo -customgame = Jogo Customi-/nzado +customgame = Jogo Customizado newgame = Novo Jogo none = none.found = [lightgray] @@ -519,7 +519,7 @@ width = Largura: height = Altura: menu = Menu play = Jogar -campaign = Campa-/nnha +campaign = Campannha load = Carregar save = Gravar fps = FPS: {0} @@ -528,7 +528,7 @@ tps = TPS: {0} memory = Mem: {0}mb memory2 = Mem:\n {0}mb +\n {1}mb language.restart = Por favor, reinicie seu jogo para a tradução tomar efeito. -settings = Configu-/nrações +settings = Configurações tutorial = Tutorial tutorial.retake = Refazer Tutorial editor = Editor diff --git a/core/src/mindustry/core/ContentLoader.java b/core/src/mindustry/core/ContentLoader.java index 715c22a89b..7d738135cd 100644 --- a/core/src/mindustry/core/ContentLoader.java +++ b/core/src/mindustry/core/ContentLoader.java @@ -264,6 +264,10 @@ public class ContentLoader{ return getByID(ContentType.item, id); } + public Item item(String name){ + return getByName(ContentType.item, name); + } + public Seq liquids(){ return getBy(ContentType.liquid); } @@ -272,6 +276,10 @@ public class ContentLoader{ return getByID(ContentType.liquid, id); } + public Liquid liquid(String name){ + return getByName(ContentType.liquid, name); + } + public Seq bullets(){ return getBy(ContentType.bullet); } @@ -284,10 +292,18 @@ public class ContentLoader{ return getBy(ContentType.status); } + public StatusEffect statusEffect(String name){ + return getByName(ContentType.status, name); + } + public Seq sectors(){ return getBy(ContentType.sector); } + public SectorPreset sector(String name){ + return getByName(ContentType.sector, name); + } + public Seq units(){ return getBy(ContentType.unit); } @@ -296,7 +312,15 @@ public class ContentLoader{ return getByID(ContentType.unit, id); } + public UnitType unit(String name){ + return getByName(ContentType.unit, name); + } + public Seq planets(){ return getBy(ContentType.planet); } -} + + public Planet planet(String name){ + return getByName(ContentType.planet, name); + } +} \ No newline at end of file diff --git a/core/src/mindustry/entities/abilities/MoveLightningAbility.java b/core/src/mindustry/entities/abilities/MoveLightningAbility.java index d91a0d6cc8..5b74b73570 100644 --- a/core/src/mindustry/entities/abilities/MoveLightningAbility.java +++ b/core/src/mindustry/entities/abilities/MoveLightningAbility.java @@ -14,7 +14,7 @@ import mindustry.gen.*; public class MoveLightningAbility extends Ability{ /** Lightning damage */ public float damage = 35f; - /** Chance of firing every tick. Set >= 1 to always fire lightning every tick at max speed. */ + /** Chance of firing every tick. Set >= 1 to always fire lightning every tick at max speed */ public float chance = 0.15f; /** Length of the lightning. <= 0 to disable */ public int length = 12; @@ -24,8 +24,10 @@ public class MoveLightningAbility extends Ability{ public Color color = Color.valueOf("a9d8ff"); /** Shifts where the lightning spawns along the Y axis */ public float offset = 0f; - /** Offset along the X axis. */ + /** Offset along the X axis */ public float width = 0f; + /** Whether the spawn side alternates */ + public boolean alternate = true; /** Jittering heat sprite like the shield on v5 Javelin */ public String heatRegion = "error"; /** Bullet type that is fired. Can be null */ @@ -36,6 +38,8 @@ public class MoveLightningAbility extends Ability{ public Effect shootEffect = Fx.sparkShoot; public boolean parentizeEffects; public Sound shootSound = Sounds.spark; + + protected float side = 1f; MoveLightningAbility(){} @@ -64,10 +68,10 @@ public class MoveLightningAbility extends Ability{ public void update(Unit unit){ float scl = Mathf.clamp((unit.vel().len() - minSpeed) / (maxSpeed - minSpeed)); if(Mathf.chance(Time.delta * chance * scl)){ - float x = unit.x + Angles.trnsx(unit.rotation, offset, width), y = unit.y + Angles.trnsy(unit.rotation, offset, width); + float x = unit.x + Angles.trnsx(unit.rotation, offset, width * side), y = unit.y + Angles.trnsy(unit.rotation, offset, width * side); shootEffect.at(x, y, unit.rotation, color, parentizeEffects ? unit : null); - shootSound.at(unit); + shootSound.at(x, y); if(length > 0){ Lightning.create(unit.team, color, damage, x + unit.vel.x, y + unit.vel.y, unit.rotation, length); @@ -76,6 +80,8 @@ public class MoveLightningAbility extends Ability{ if(bullet != null){ bullet.create(unit, unit.team, x, y, unit.rotation + bulletAngle + Mathf.range(bulletSpread)); } + + if(alternate) side *= -1f; } } diff --git a/core/src/mindustry/net/Administration.java b/core/src/mindustry/net/Administration.java index 98f8b02429..68736ffd37 100644 --- a/core/src/mindustry/net/Administration.java +++ b/core/src/mindustry/net/Administration.java @@ -302,11 +302,13 @@ public class Administration{ public boolean adminPlayer(String id, String usid){ PlayerInfo info = getCreateInfo(id); + var wasAdmin = info.admin; + info.adminUsid = usid; info.admin = true; save(); - return true; + return wasAdmin; } /** diff --git a/core/src/mindustry/type/Liquid.java b/core/src/mindustry/type/Liquid.java index e62805e60b..7e41551f84 100644 --- a/core/src/mindustry/type/Liquid.java +++ b/core/src/mindustry/type/Liquid.java @@ -13,7 +13,7 @@ public class Liquid extends UnlockableContent{ public @Nullable Color barColor; /** Color used to draw lights. Note that the alpha channel is used to dictate brightness. */ public Color lightColor = Color.clear.cpy(); - /** 0-1, 0 is completely inflammable, anything above that may catch fire when exposed to heat, 0.5+ is very flammable. */ + /** 0-1, 0 is completely not flammable, anything above that may catch fire when exposed to heat, 0.5+ is very flammable. */ public float flammability; /** temperature: 0.5 is 'room' temperature, 0 is very cold, 1 is molten hot */ public float temperature = 0.5f; diff --git a/core/src/mindustry/ui/dialogs/LanguageDialog.java b/core/src/mindustry/ui/dialogs/LanguageDialog.java index 6504bbe60c..a124c3896f 100644 --- a/core/src/mindustry/ui/dialogs/LanguageDialog.java +++ b/core/src/mindustry/ui/dialogs/LanguageDialog.java @@ -41,7 +41,8 @@ public class LanguageDialog extends BaseDialog{ "be", "Беларуская", "bg", "Български", "ru", "Русский", - "uk_UA", "Українська (Україна)", + "sr", "Српски", + "uk_UA", "Українська", "th", "ไทย", "zh_CN", "简体中文", "zh_TW", "正體中文", diff --git a/core/src/mindustry/world/blocks/production/Drill.java b/core/src/mindustry/world/blocks/production/Drill.java index d31a130f96..2b25a41067 100644 --- a/core/src/mindustry/world/blocks/production/Drill.java +++ b/core/src/mindustry/world/blocks/production/Drill.java @@ -169,7 +169,7 @@ public class Drill extends Block{ return new TextureRegion[]{region, rotatorRegion, topRegion}; } - void countOre(Tile tile){ + protected void countOre(Tile tile){ returnItem = null; returnCount = 0; diff --git a/core/src/mindustry/world/meta/StatUnit.java b/core/src/mindustry/world/meta/StatUnit.java index e35ce74402..e7d4288bd3 100644 --- a/core/src/mindustry/world/meta/StatUnit.java +++ b/core/src/mindustry/world/meta/StatUnit.java @@ -19,8 +19,8 @@ public enum StatUnit{ degrees, seconds, minutes, - perSecond, - perMinute, + perSecond(false), + perMinute(false), perShot(false), timesSpeed(false), percent(false), diff --git a/core/src/mindustry/world/meta/StatValues.java b/core/src/mindustry/world/meta/StatValues.java index ba07d8e19d..04f02af137 100644 --- a/core/src/mindustry/world/meta/StatValues.java +++ b/core/src/mindustry/world/meta/StatValues.java @@ -330,7 +330,7 @@ public class StatValues{ } if(type.status != StatusEffects.none){ - sep(bt, (type.minfo.mod == null ? type.status.emoji() : "") + "[stat]" + type.status.localizedName); + sep(bt, (type.status.minfo.mod == null ? type.status.emoji() : "") + "[stat]" + type.status.localizedName); } if(type.fragBullet != null){ diff --git a/server/src/mindustry/server/ServerControl.java b/server/src/mindustry/server/ServerControl.java index 230180772d..2a4026d792 100644 --- a/server/src/mindustry/server/ServerControl.java +++ b/server/src/mindustry/server/ServerControl.java @@ -576,7 +576,9 @@ public class ServerControl implements ApplicationListener{ if(arg.length == 1){ info("'@' is currently @.", c.name(), c.get()); }else{ - if(c.isBool()){ + if (arg[1].equals("default")){ + c.set(c.defaultValue); + }else if(c.isBool()){ c.set(arg[1].equals("on") || arg[1].equals("true")); }else if(c.isNum()){ try{ diff --git a/servers_v6.json b/servers_v6.json index d9295c19c9..14f1771ee6 100644 --- a/servers_v6.json +++ b/servers_v6.json @@ -53,7 +53,7 @@ }, { "name": "Omega", - "address": ["yeeth.mindustry.me:2004","185.86.230.61:25570"] + "address": ["yeeth.mindustry.me:6568"] }, { "name": "Obvilion Network", @@ -97,11 +97,11 @@ }, { "name": "Mindustry Español", - "address": ["panel.mindustry.me:2011", "yeeth.mindustry.me:6573", "panel.mindustry.me:2000", "panel.mindustry.me:2026"] + "address": ["yeeth.mindustry.me:6578", "yeeth.mindustry.me:6573", "yeeth.mindustry.me:6577", "yeeth.mindustry.me:6576"] }, { "name": "CreateDustry", - "address": ["144.76.120.74:18645"] + "address": ["129.151.66.139:26032"] }, { "name": "NukeDustry", diff --git a/servers_v7.json b/servers_v7.json index 6178f0da0f..befb1d1637 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -3,10 +3,6 @@ "name": "mindustry.pl", "address": ["0.baseduser.eu.org:6000", "0.baseduser.eu.org:6666", "0.baseduser.eu.org:6966"] }, - { - "name": "SkaarjDustry", - "address": ["skaarjproject.duckdns.org"] - }, { "name": "C.A.M.S.", "address": ["baseduser.eu.org:6569", "v7.thedimas.pp.ua", "yeeth.mindustry.me:7000", "yeeth.mindustry.me:4000", "yeeth.mindustry.me:2000", "yeeth.mindustry.me:3000"] @@ -17,7 +13,7 @@ }, { "name": "Omega", - "address": ["yeeth.mindustry.me", "yeeth.mindustry.me:2006", "yeeth.mindustry.me:2003","yeeth.mindustry.me:2002", "yeeth.mindustry.me:2001", "yeeth.mindustry.me:2007", "yeeth.mindustry.me:2005"] + "address": ["yeeth.mindustry.me:5002", "yeeth.mindustry.me:5003", "yeeth.mindustry.me:5004","yeeth.mindustry.me:5005", "yeeth.mindustry.me:5006", "yeeth.mindustry.me:5007", "yeeth.mindustry.me", "yeeth.mindustry.me:4006"] }, { "name": "MeowLand", @@ -74,5 +70,9 @@ { "name": "LostDustry", "address": ["lostdustry.northeurope.cloudapp.azure.com:6568", "lostdustry.northeurope.cloudapp.azure.com:6569", "lostdustry.northeurope.cloudapp.azure.com:6570"] - } + }, + { + "name": "ALEX", + "address": ["dogemindustry.ddns.net:25588"] + } ]