Merge branch 'master' of https://github.com/Anuken/Mindustry into 7.0-features

This commit is contained in:
Anuken
2021-11-25 13:29:51 -05:00
7 changed files with 41 additions and 35 deletions

View File

@@ -287,7 +287,7 @@ save.corrupted = [accent]Datei beschädigt oder ungültig!
empty = <leer> empty = <leer>
on = An on = An
off = Aus off = Aus
save.search = Search saved games... save.search = Spiele durchsuchen...
save.autosave = Automatisches Speichern: {0} save.autosave = Automatisches Speichern: {0}
save.map = Karte: {0} save.map = Karte: {0}
save.wave = Welle: {0} save.wave = Welle: {0}
@@ -381,11 +381,11 @@ editor.newmap = Neue Karte
editor.center = Zur Mitte editor.center = Zur Mitte
editor.search = Karten durchsuchen... editor.search = Karten durchsuchen...
editor.filters = Karten filtern editor.filters = Karten filtern
editor.filters.mode = Gamemodes: editor.filters.mode = Spielmodi:
editor.filters.type = Map Type: editor.filters.type = Kartentyp:
editor.filters.search = Search In: editor.filters.search = Suchen nach:
editor.filters.author = Author editor.filters.author = Autor
editor.filters.description = Description editor.filters.description = Beschreibung
workshop = Workshop workshop = Workshop
waves.title = Wellen waves.title = Wellen
waves.remove = Entfernen waves.remove = Entfernen
@@ -419,7 +419,7 @@ wavemode.health = Lebenspunkte
editor.default = [lightgray]<Standard> editor.default = [lightgray]<Standard>
details = Details details = Details
edit = Bearbeiten edit = Bearbeiten
variables = Vars variables = Variablen
editor.name = Name: editor.name = Name:
editor.spawn = Spawnbereich editor.spawn = Spawnbereich
editor.removeunit = Bereich entfernen editor.removeunit = Bereich entfernen
@@ -1300,7 +1300,7 @@ block.plated-conduit.name = Gepanzerter Kanal
block.phase-conduit.name = Phasenkanal block.phase-conduit.name = Phasenkanal
block.liquid-router.name = Flüssigkeits-Verteiler block.liquid-router.name = Flüssigkeits-Verteiler
block.liquid-tank.name = Flüssigkeitstank block.liquid-tank.name = Flüssigkeitstank
block.liquid-container.name = Liquid Container block.liquid-container.name = Flüssigkeitsbehälter
block.liquid-junction.name = Flüssigkeits-Kreuzung block.liquid-junction.name = Flüssigkeits-Kreuzung
block.bridge-conduit.name = Kanalbrücke block.bridge-conduit.name = Kanalbrücke
block.rotary-pump.name = Rotierende Pumpe block.rotary-pump.name = Rotierende Pumpe
@@ -1347,16 +1347,16 @@ block.disassembler.name = Großer Trenner
block.silicon-crucible.name = Silizium Schmelztiegel block.silicon-crucible.name = Silizium Schmelztiegel
block.overdrive-dome.name = Beschleunigungs-Maschine block.overdrive-dome.name = Beschleunigungs-Maschine
block.interplanetary-accelerator.name = Interplanetarischer Beschleuniger block.interplanetary-accelerator.name = Interplanetarischer Beschleuniger
block.constructor.name = Constructor block.constructor.name = Konstruktor
block.constructor.description = Fabricates structures up to 2x2 tiles in size. block.constructor.description = Erstellt Blöcke, die höchstens 2x2 groß sind.
block.large-constructor.name = Large Constructor block.large-constructor.name = Großer Konstruktor
block.large-constructor.description = Fabricates structures up to 4x4 tiles in size. block.large-constructor.description = Erstellt Blöcke, die höchstens 4x4 groß sind.
block.deconstructor.name = Deconstructor block.deconstructor.name = Dekonstruktor
block.deconstructor.description = Deconstructs structures and units. Returns 100% of build cost. block.deconstructor.description = Zerstört Einheiten und Blöcke. Gibt 100% der Baumaterialien zurück.
block.payload-loader.name = Payload Loader block.payload-loader.name = Frachtlader
block.payload-loader.description = Load liquids and items into blocks. block.payload-loader.description = Lädt Blöcke und Items in Blöcke.
block.payload-unloader.name = Payload Unloader block.payload-unloader.name = Frachtentlader
block.payload-unloader.description = Unloads liquids and items from blocks. block.payload-unloader.description = Entlädt Blöcke und Items aus Blöcken.
block.switch.name = Schalter block.switch.name = Schalter
block.micro-processor.name = Mikroprozessor block.micro-processor.name = Mikroprozessor
@@ -1511,8 +1511,8 @@ block.impulse-pump.description = Eine Pumpe.
block.conduit.description = Transportiert Flüssigkeiten. Wird mit Extraktoren, Pumpen oder anderen Kanälen benutzt. block.conduit.description = Transportiert Flüssigkeiten. Wird mit Extraktoren, Pumpen oder anderen Kanälen benutzt.
block.pulse-conduit.description = Transportiert Flüssigkeiten. Transportiert Flüssigkeiten schneller und speichert mehr als ein Leitungsrohr. block.pulse-conduit.description = Transportiert Flüssigkeiten. Transportiert Flüssigkeiten schneller und speichert mehr als ein Leitungsrohr.
block.plated-conduit.description = Transportiert Flüssigkeiten. Nimmt keine Flüssigkeiten von der Seite an.\nHat keine Lecks. block.plated-conduit.description = Transportiert Flüssigkeiten. Nimmt keine Flüssigkeiten von der Seite an.\nHat keine Lecks.
block.liquid-router.description = Verteilt Flüssigkeiten auf bis zu drei Richtungen. Speicher außerdem eine kleine Menge an Flüssigkeit. block.liquid-router.description = Verteilt Flüssigkeiten auf bis zu drei Richtungen. Speichert außerdem eine kleine Menge an Flüssigkeit.
block.liquid-container.description = Stores a sizeable amount of liquid. Outputs to all sides, similarly to a liquid router. block.liquid-container.description = Speichert etwas Flüssigkeit. Hat Ausgänge an allen Seiten, ähnlich einem Flüssigkeitsverteiler.
block.liquid-tank.description = Speichert eine große Menge an Flüssigkeiten. Ähnlich wie ein Flüssigkeitsverteiler. block.liquid-tank.description = Speichert eine große Menge an Flüssigkeiten. Ähnlich wie ein Flüssigkeitsverteiler.
block.liquid-junction.description = Fungiert als Brücke über zwei kreuzende Kanäle. block.liquid-junction.description = Fungiert als Brücke über zwei kreuzende Kanäle.
block.bridge-conduit.description = Transportiert Flüssigkeiten über Terrain oder über Blöcke. block.bridge-conduit.description = Transportiert Flüssigkeiten über Terrain oder über Blöcke.
@@ -1778,7 +1778,7 @@ lenum.itemdrop = Items abwerfen.
lenum.itemtake = Items aus einem Block nehmen. lenum.itemtake = Items aus einem Block nehmen.
lenum.paydrop = Lässt einen Block / eine Einheit wieder fallen. lenum.paydrop = Lässt einen Block / eine Einheit wieder fallen.
lenum.paytake = Hebt einen Block / eine kleine Einheit auf. lenum.paytake = Hebt einen Block / eine kleine Einheit auf.
lenum.payenter = Enter/land on the payload block the unit is on. lenum.payenter = Betritt den Fracht-Block, auf dem sich die Einheit befindet.
lenum.flag = Zahl, mit der eine Einheit identifiziert werden kann. lenum.flag = Zahl, mit der eine Einheit identifiziert werden kann.
lenum.mine = Erz von einer Position abbauen. lenum.mine = Erz von einer Position abbauen.
lenum.build = Einen Block bauen. lenum.build = Einen Block bauen.

View File

@@ -468,8 +468,15 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
} }
unit.remove(); unit.remove();
//needs new ID as it is now a payload //needs new ID as it is now a payload
if(net.client()){
unit.id = EntityGroup.nextId(); unit.id = EntityGroup.nextId();
}else{
//server-side, this needs to be delayed until next frame because otherwise the packets sent out right after this event would have the wrong unit ID, leading to ghosts
Core.app.post(() -> unit.id = EntityGroup.nextId());
}
grabber.get(new UnitPayload(unit)); grabber.get(new UnitPayload(unit));
Fx.unitDrop.at(unit); Fx.unitDrop.at(unit);
} }

View File

@@ -32,6 +32,8 @@ public class ParticleEffect extends Effect{
public float spin = 0f; public float spin = 0f;
/** Controls the initial and final sprite sizes. */ /** Controls the initial and final sprite sizes. */
public float sizeFrom = 2f, sizeTo = 0f; public float sizeFrom = 2f, sizeTo = 0f;
/** Whether the rotation adds with the parent */
public boolean useRotation = true;
/** Rotation offset. */ /** Rotation offset. */
public float offset = 0; public float offset = 0;
/** Sprite to draw. */ /** Sprite to draw. */
@@ -53,10 +55,11 @@ public class ParticleEffect extends Effect{
public void render(EffectContainer e){ public void render(EffectContainer e){
if(tex == null) tex = Core.atlas.find(region); if(tex == null) tex = Core.atlas.find(region);
float realRotation = (useRotation ? e.rotation : baseRotation);
float rawfin = e.fin(); float rawfin = e.fin();
float fin = e.fin(interp); float fin = e.fin(interp);
float rad = sizeInterp.apply(sizeFrom, sizeTo, rawfin) * 2; float rad = sizeInterp.apply(sizeFrom, sizeTo, rawfin) * 2;
float ox = e.x + Angles.trnsx(e.rotation, offsetX, offsetY), oy = e.y + Angles.trnsy(e.rotation, offsetX, offsetY); float ox = e.x + Angles.trnsx(realRotation, offsetX, offsetY), oy = e.y + Angles.trnsy(realRotation, offsetX, offsetY);
Draw.color(colorFrom, colorTo, fin); Draw.color(colorFrom, colorTo, fin);
Color lightColor = this.lightColor == null ? Draw.getColor() : this.lightColor; Color lightColor = this.lightColor == null ? Draw.getColor() : this.lightColor;
@@ -68,7 +71,7 @@ public class ParticleEffect extends Effect{
rand.setSeed(e.id); rand.setSeed(e.id);
for(int i = 0; i < particles; i++){ for(int i = 0; i < particles; i++){
float l = length * fin + baseLength; float l = length * fin + baseLength;
rv.trns(e.rotation + rand.range(cone), !randLength ? l : rand.random(l)); rv.trns(realRotation + rand.range(cone), !randLength ? l : rand.random(l));
float x = rv.x, y = rv.y; float x = rv.x, y = rv.y;
Lines.lineAngle(ox + x, oy + y, Mathf.angle(x, y), len); Lines.lineAngle(ox + x, oy + y, Mathf.angle(x, y), len);
@@ -78,10 +81,10 @@ public class ParticleEffect extends Effect{
rand.setSeed(e.id); rand.setSeed(e.id);
for(int i = 0; i < particles; i++){ for(int i = 0; i < particles; i++){
float l = length * fin + baseLength; float l = length * fin + baseLength;
rv.trns(e.rotation + rand.range(cone), !randLength ? l : rand.random(l)); rv.trns(realRotation + rand.range(cone), !randLength ? l : rand.random(l));
float x = rv.x, y = rv.y; float x = rv.x, y = rv.y;
Draw.rect(tex, ox + x, oy + y, rad, rad, e.rotation + offset + e.time * spin); Draw.rect(tex, ox + x, oy + y, rad, rad, realRotation + offset + e.time * spin);
Drawf.light(ox + x, oy + y, rad * lightScl, lightColor, lightOpacity * Draw.getColor().a); Drawf.light(ox + x, oy + y, rad * lightScl, lightColor, lightOpacity * Draw.getColor().a);
} }
} }

View File

@@ -231,8 +231,8 @@ public class JsonIO{
UnitType unit = Vars.content.getByName(ContentType.unit, str); UnitType unit = Vars.content.getByName(ContentType.unit, str);
return return
item != null ? item : item != null ? item :
block != null ? block :
liquid != null ? liquid : liquid != null ? liquid :
block != null ? block :
unit; unit;
} }
}); });

View File

@@ -121,7 +121,7 @@ public class MendProjector extends Block{
float f = 1f - (Time.time / 100f) % 1f; float f = 1f - (Time.time / 100f) % 1f;
Draw.color(baseColor, phaseColor, phaseHeat); Draw.color(baseColor, phaseColor, phaseHeat);
Draw.alpha(heat * Mathf.absin(Time.time, 10f, 1f) * 0.5f); Draw.alpha(heat * Mathf.absin(Time.time, 50f / Mathf.PI2, 1f) * 0.5f);
Draw.rect(topRegion, x, y); Draw.rect(topRegion, x, y);
Draw.alpha(1f); Draw.alpha(1f);
Lines.stroke((2f * f + 0.2f) * heat); Lines.stroke((2f * f + 0.2f) * heat);

View File

@@ -137,7 +137,7 @@ public class OverdriveProjector extends Block{
float f = 1f - (Time.time / 100f) % 1f; float f = 1f - (Time.time / 100f) % 1f;
Draw.color(baseColor, phaseColor, phaseHeat); Draw.color(baseColor, phaseColor, phaseHeat);
Draw.alpha(heat * Mathf.absin(Time.time, 10f, 1f) * 0.5f); Draw.alpha(heat * Mathf.absin(Time.time, 50f / Mathf.PI2, 1f) * 0.5f);
Draw.rect(topRegion, x, y); Draw.rect(topRegion, x, y);
Draw.alpha(1f); Draw.alpha(1f);
Lines.stroke((2f * f + 0.1f) * heat); Lines.stroke((2f * f + 0.1f) * heat);

View File

@@ -21,7 +21,7 @@
}, },
{ {
"name": "Chaotic Neutral", "name": "Chaotic Neutral",
"address": ["Chaotic-Neutral.ddns.net:1111", "Chaotic-Neutral.ddns.net:2222", "Chaotic-Neutral.ddns.net:7777"] "address": ["c-n.ddns.net:1111", "c-n.ddns.net:2222", "c-n.ddns.net:3333", "c-n.ddns.net:4444"]
}, },
{ {
"name": "Ranked", "name": "Ranked",
@@ -59,10 +59,6 @@
"name": "Obvilion Network", "name": "Obvilion Network",
"address": ["obvilion.ru", "obvilion.ru:7001", "obvilion.ru:7002", "obvilion.ru:7003"] "address": ["obvilion.ru", "obvilion.ru:7001", "obvilion.ru:7002", "obvilion.ru:7003"]
}, },
{
"name": "Mindustry PLAY",
"address": ["92.63.100.160"]
},
{ {
"name": "Nydus", "name": "Nydus",
"address": ["v6.mindustry.nydus.app:6566"] "address": ["v6.mindustry.nydus.app:6566"]
@@ -101,7 +97,7 @@
}, },
{ {
"name": "Mindustry Español", "name": "Mindustry Español",
"address": ["panel.mindustry.me:2011", "mindustry.me:2034", "mindustry.me:2035"] "address": ["panel.mindustry.me:2011", "yeeth.mindustry.me:6573", "panel.mindustry.me:2000", "panel.mindustry.me:2026"]
}, },
{ {
"name": "CreateDustry", "name": "CreateDustry",