Unit sprite cleanup
|
Before Width: | Height: | Size: 332 B After Width: | Height: | Size: 526 B |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 328 B After Width: | Height: | Size: 328 B |
|
Before Width: | Height: | Size: 295 B After Width: | Height: | Size: 295 B |
|
Before Width: | Height: | Size: 339 B After Width: | Height: | Size: 339 B |
|
Before Width: | Height: | Size: 627 B After Width: | Height: | Size: 627 B |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
@@ -1052,21 +1052,17 @@ team.orange.name = orange
|
|||||||
team.derelict.name = derelict
|
team.derelict.name = derelict
|
||||||
team.green.name = green
|
team.green.name = green
|
||||||
team.purple.name = purple
|
team.purple.name = purple
|
||||||
unit.spirit.name = Spirit Repair Drone
|
|
||||||
unit.draug.name = Draug Miner Drone
|
#TODO - don't translate yet
|
||||||
unit.phantom.name = Phantom Builder Drone
|
#unit.crawler.name = Crawler
|
||||||
unit.dagger.name = Dagger
|
#unit.dagger.name = Dagger
|
||||||
unit.crawler.name = Crawler
|
#unit.fortress.name = Fortress
|
||||||
unit.titan.name = Titan
|
#unit.wraith.name = Wraith Fighter
|
||||||
unit.ghoul.name = Ghoul Bomber
|
#unit.ghoul.name = Ghoul Bomber
|
||||||
unit.wraith.name = Wraith Fighter
|
#unit.revenant.name = Revenant
|
||||||
unit.fortress.name = Fortress
|
#unit.lich.name = Lich
|
||||||
unit.revenant.name = Revenant
|
#unit.reaper.name = Reaper
|
||||||
unit.eruptor.name = Eruptor
|
|
||||||
unit.chaos-array.name = Chaos Array
|
|
||||||
unit.eradicator.name = Eradicator
|
|
||||||
unit.lich.name = Lich
|
|
||||||
unit.reaper.name = Reaper
|
|
||||||
tutorial.next = [lightgray]<Tap to continue>
|
tutorial.next = [lightgray]<Tap to continue>
|
||||||
tutorial.intro = You have entered the[scarlet] Mindustry Tutorial.[]\nUse[accent] [[WASD][] to move.\n[accent]Scroll[] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
|
tutorial.intro = You have entered the[scarlet] Mindustry Tutorial.[]\nUse[accent] [[WASD][] to move.\n[accent]Scroll[] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
|
||||||
tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers[] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
|
tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers[] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
|
||||||
@@ -1109,17 +1105,7 @@ liquid.water.description = The most useful liquid. Commonly used for cooling mac
|
|||||||
liquid.slag.description = Various different types of molten metal mixed together. Can be separated into its constituent minerals, or sprayed at enemy units as a weapon.
|
liquid.slag.description = Various different types of molten metal mixed together. Can be separated into its constituent minerals, or sprayed at enemy units as a weapon.
|
||||||
liquid.oil.description = A liquid used in advanced material production. Can be converted into coal as fuel, or sprayed and set on fire as a weapon.
|
liquid.oil.description = A liquid used in advanced material production. Can be converted into coal as fuel, or sprayed and set on fire as a weapon.
|
||||||
liquid.cryofluid.description = An inert, non-corrosive liquid created from water and titanium. Has extremely high heat capacity. Extensively used as coolant.
|
liquid.cryofluid.description = An inert, non-corrosive liquid created from water and titanium. Has extremely high heat capacity. Extensively used as coolant.
|
||||||
unit.draug.description = A primitive mining drone. Cheap to produce. Expendable. Automatically mines copper and lead in the vicinity. Delivers mined resources to the closest core.
|
|
||||||
unit.spirit.description = A modified draug drone, designed for repair instead of mining. Automatically fixes any damaged blocks in the area.
|
|
||||||
unit.phantom.description = An advanced drone unit. Follows users. Assists in block construction. Rebuilds destroyed blocks.
|
|
||||||
unit.dagger.description = The most basic ground mech. Cheap to produce. Overwhelming when used in swarms.
|
|
||||||
unit.crawler.description = A ground unit consisting of a stripped-down frame with high explosives strapped on top. Not particular durable. Explodes on contact with enemies.
|
|
||||||
unit.titan.description = An advanced, armored ground unit. Attacks both ground and air targets. Equipped with two miniature Scorch-class flamethrowers.
|
|
||||||
unit.fortress.description = A heavy artillery mech. Equipped with two modified Hail-type cannons for long-range assault on enemy structures and units.
|
|
||||||
unit.eruptor.description = A heavy mech designed to take down structures. Fires a stream of slag at enemy fortifications, melting them and setting volatiles on fire.
|
|
||||||
unit.wraith.description = A fast, hit-and-run interceptor unit. Targets power generators.
|
|
||||||
unit.ghoul.description = A heavy carpet bomber. Rips through enemy structures, targeting critical infrastructure.
|
|
||||||
unit.revenant.description = A heavy, hovering missile array.
|
|
||||||
block.message.description = Stores a message. Used for communication between allies.
|
block.message.description = Stores a message. Used for communication between allies.
|
||||||
block.graphite-press.description = Compresses chunks of coal into pure sheets of graphite.
|
block.graphite-press.description = Compresses chunks of coal into pure sheets of graphite.
|
||||||
block.multi-press.description = An upgraded version of the graphite press. Employs water and power to process coal quickly and efficiently.
|
block.multi-press.description = An upgraded version of the graphite press. Employs water and power to process coal quickly and efficiently.
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 849 KiB After Width: | Height: | Size: 856 KiB |
|
Before Width: | Height: | Size: 184 KiB After Width: | Height: | Size: 188 KiB |
|
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 185 KiB After Width: | Height: | Size: 190 KiB |
@@ -286,7 +286,13 @@ public class Vars implements Loadable{
|
|||||||
if(!headless && (ui == null || ui.scriptfrag == null)){
|
if(!headless && (ui == null || ui.scriptfrag == null)){
|
||||||
logBuffer.add(result);
|
logBuffer.add(result);
|
||||||
}else if(!headless){
|
}else if(!headless){
|
||||||
ui.scriptfrag.addMessage(result);
|
if(!OS.isWindows){
|
||||||
|
for(String code : ColorCodes.codes.values()){
|
||||||
|
result = result.replace(code, "");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ui.scriptfrag.addMessage(Log.removeCodes(result));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -79,7 +79,6 @@ public class UnitType extends UnlockableContent{
|
|||||||
super(name);
|
super(name);
|
||||||
|
|
||||||
constructor = EntityMapping.map(name);
|
constructor = EntityMapping.map(name);
|
||||||
if(constructor == null) throw new IllegalArgumentException("no unit for " + name);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public UnitController createController(){
|
public UnitController createController(){
|
||||||
@@ -132,6 +131,8 @@ public class UnitType extends UnlockableContent{
|
|||||||
@CallSuper
|
@CallSuper
|
||||||
@Override
|
@Override
|
||||||
public void init(){
|
public void init(){
|
||||||
|
if(constructor == null) throw new IllegalArgumentException("no constructor set up for unit '" + name + "'");
|
||||||
|
|
||||||
//set up default range
|
//set up default range
|
||||||
if(range < 0){
|
if(range < 0){
|
||||||
for(Weapon weapon : weapons){
|
for(Weapon weapon : weapons){
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
org.gradle.daemon=true
|
org.gradle.daemon=true
|
||||||
org.gradle.jvmargs=-Xms256m -Xmx1024m
|
org.gradle.jvmargs=-Xms256m -Xmx1024m
|
||||||
archash=351143a87915cb3d0aa7840d0a8277145988edbb
|
archash=52dc318f51cfca6d9a0f3097760c0fb615977330
|
||||||
|
|||||||
@@ -301,48 +301,53 @@ public class Generators{
|
|||||||
ImagePacker.generate("unit-icons", () -> content.units().each(type -> {
|
ImagePacker.generate("unit-icons", () -> content.units().each(type -> {
|
||||||
if(type.isHidden()) return; //hidden units don't generate
|
if(type.isHidden()) return; //hidden units don't generate
|
||||||
|
|
||||||
type.load();
|
try{
|
||||||
type.init();
|
type.load();
|
||||||
|
type.init();
|
||||||
|
|
||||||
Image image = ImagePacker.get(type.parts > 0 ? type.partRegions[0] : type.region);
|
Image image = ImagePacker.get(type.parts > 0 ? type.partRegions[0] : type.region);
|
||||||
for(int i = 1; i < type.parts; i++){
|
for(int i = 1; i < type.parts; i++){
|
||||||
image.draw(ImagePacker.get(type.partRegions[i]));
|
image.draw(ImagePacker.get(type.partRegions[i]));
|
||||||
}
|
}
|
||||||
if(type.parts > 0){
|
if(type.parts > 0){
|
||||||
image.save(type.name);
|
image.save(type.name);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(type.constructor.get() instanceof Mechc){
|
||||||
|
image.drawCenter(type.baseRegion);
|
||||||
|
image.drawCenter(type.legRegion);
|
||||||
|
image.drawCenter(type.legRegion, true, false);
|
||||||
|
image.draw(type.region);
|
||||||
|
}
|
||||||
|
|
||||||
|
Image baseCell = ImagePacker.get(type.parts > 0 ? type.partCellRegions[0] : type.cellRegion);
|
||||||
|
for(int i = 1; i < type.parts; i++){
|
||||||
|
baseCell.draw(ImagePacker.get(type.partCellRegions[i]));
|
||||||
|
}
|
||||||
|
|
||||||
|
if(type.parts > 0){
|
||||||
|
image.save(type.name + "-cell");
|
||||||
|
}
|
||||||
|
|
||||||
|
Image cell = new Image(type.cellRegion.getWidth(), type.cellRegion.getHeight());
|
||||||
|
cell.each((x, y) -> cell.draw(x, y, baseCell.getColor(x, y).mul(Color.valueOf("ffa665"))));
|
||||||
|
|
||||||
|
image.draw(cell, image.width / 2 - cell.width / 2, image.height / 2 - cell.height / 2);
|
||||||
|
|
||||||
|
for(Weapon weapon : type.weapons){
|
||||||
|
weapon.load();
|
||||||
|
|
||||||
|
image.draw(weapon.region,
|
||||||
|
(int)(weapon.x / Draw.scl + image.width / 2f - weapon.region.getWidth() / 2f),
|
||||||
|
(int)(-weapon.y / Draw.scl + image.height / 2f - weapon.region.getHeight() / 2f),
|
||||||
|
weapon.flipSprite, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
image.save("unit-" + type.name + "-full");
|
||||||
|
}catch(IllegalArgumentException e){
|
||||||
|
Log.err("WARNING: Skipping unit @: @", type.name, e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
if(type.constructor.get() instanceof Mechc){
|
|
||||||
image.drawCenter(type.baseRegion);
|
|
||||||
image.drawCenter(type.legRegion);
|
|
||||||
image.drawCenter(type.legRegion, true, false);
|
|
||||||
image.draw(type.region);
|
|
||||||
}
|
|
||||||
|
|
||||||
Image baseCell = ImagePacker.get(type.parts > 0 ? type.partCellRegions[0] : type.cellRegion);
|
|
||||||
for(int i = 1; i < type.parts; i++){
|
|
||||||
baseCell.draw(ImagePacker.get(type.partCellRegions[i]));
|
|
||||||
}
|
|
||||||
|
|
||||||
if(type.parts > 0){
|
|
||||||
image.save(type.name + "-cell");
|
|
||||||
}
|
|
||||||
|
|
||||||
Image cell = new Image(type.cellRegion.getWidth(), type.cellRegion.getHeight());
|
|
||||||
cell.each((x, y) -> cell.draw(x, y, baseCell.getColor(x, y).mul(Color.valueOf("ffa665"))));
|
|
||||||
|
|
||||||
image.draw(cell, image.width / 2 - cell.width / 2, image.height / 2 - cell.height / 2);
|
|
||||||
|
|
||||||
for(Weapon weapon : type.weapons){
|
|
||||||
weapon.load();
|
|
||||||
|
|
||||||
image.draw(weapon.region,
|
|
||||||
(int)(weapon.x / Draw.scl + image.width / 2f - weapon.region.getWidth() / 2f),
|
|
||||||
(int)(-weapon.y / Draw.scl + image.height / 2f - weapon.region.getHeight() / 2f),
|
|
||||||
weapon.flipSprite, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
image.save("unit-" + type.name + "-full");
|
|
||||||
}));
|
}));
|
||||||
|
|
||||||
ImagePacker.generate("ore-icons", () -> {
|
ImagePacker.generate("ore-icons", () -> {
|
||||||
|
|||||||