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.green.name = green
|
||||
team.purple.name = purple
|
||||
unit.spirit.name = Spirit Repair Drone
|
||||
unit.draug.name = Draug Miner Drone
|
||||
unit.phantom.name = Phantom Builder Drone
|
||||
unit.dagger.name = Dagger
|
||||
unit.crawler.name = Crawler
|
||||
unit.titan.name = Titan
|
||||
unit.ghoul.name = Ghoul Bomber
|
||||
unit.wraith.name = Wraith Fighter
|
||||
unit.fortress.name = Fortress
|
||||
unit.revenant.name = Revenant
|
||||
unit.eruptor.name = Eruptor
|
||||
unit.chaos-array.name = Chaos Array
|
||||
unit.eradicator.name = Eradicator
|
||||
unit.lich.name = Lich
|
||||
unit.reaper.name = Reaper
|
||||
|
||||
#TODO - don't translate yet
|
||||
#unit.crawler.name = Crawler
|
||||
#unit.dagger.name = Dagger
|
||||
#unit.fortress.name = Fortress
|
||||
#unit.wraith.name = Wraith Fighter
|
||||
#unit.ghoul.name = Ghoul Bomber
|
||||
#unit.revenant.name = Revenant
|
||||
#unit.lich.name = Lich
|
||||
#unit.reaper.name = Reaper
|
||||
|
||||
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.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.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.
|
||||
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.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.
|
||||
|
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)){
|
||||
logBuffer.add(result);
|
||||
}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);
|
||||
|
||||
constructor = EntityMapping.map(name);
|
||||
if(constructor == null) throw new IllegalArgumentException("no unit for " + name);
|
||||
}
|
||||
|
||||
public UnitController createController(){
|
||||
@ -132,6 +131,8 @@ public class UnitType extends UnlockableContent{
|
||||
@CallSuper
|
||||
@Override
|
||||
public void init(){
|
||||
if(constructor == null) throw new IllegalArgumentException("no constructor set up for unit '" + name + "'");
|
||||
|
||||
//set up default range
|
||||
if(range < 0){
|
||||
for(Weapon weapon : weapons){
|
||||
|
@ -1,3 +1,3 @@
|
||||
org.gradle.daemon=true
|
||||
org.gradle.jvmargs=-Xms256m -Xmx1024m
|
||||
archash=351143a87915cb3d0aa7840d0a8277145988edbb
|
||||
archash=52dc318f51cfca6d9a0f3097760c0fb615977330
|
||||
|
@ -301,48 +301,53 @@ public class Generators{
|
||||
ImagePacker.generate("unit-icons", () -> content.units().each(type -> {
|
||||
if(type.isHidden()) return; //hidden units don't generate
|
||||
|
||||
type.load();
|
||||
type.init();
|
||||
try{
|
||||
type.load();
|
||||
type.init();
|
||||
|
||||
Image image = ImagePacker.get(type.parts > 0 ? type.partRegions[0] : type.region);
|
||||
for(int i = 1; i < type.parts; i++){
|
||||
image.draw(ImagePacker.get(type.partRegions[i]));
|
||||
}
|
||||
if(type.parts > 0){
|
||||
image.save(type.name);
|
||||
Image image = ImagePacker.get(type.parts > 0 ? type.partRegions[0] : type.region);
|
||||
for(int i = 1; i < type.parts; i++){
|
||||
image.draw(ImagePacker.get(type.partRegions[i]));
|
||||
}
|
||||
if(type.parts > 0){
|
||||
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", () -> {
|
||||
|