Too many things to list in a single line commit log
This commit is contained in:
@@ -35,9 +35,9 @@ public class Blocks implements ContentList{
|
||||
public static Block
|
||||
|
||||
//environment
|
||||
air, part, spawn, deepwater, water, tar, stone, craters, charr, sand, ice, snow,
|
||||
air, part, spawn, deepwater, water, tar, stone, craters, charr, sand, darksand, ice, snow,
|
||||
holostone, rocks, sporerocks, icerocks, cliffs, sporePine, pine, whiteTree, whiteTreeDead, sporeCluster,
|
||||
iceSnow, sandWater, duneRocks, sandRocks, moss, sporeMoss, shale, shaleRocks, shaleBoulder, grass, salt,
|
||||
iceSnow, sandWater, darksandWater, duneRocks, sandRocks, moss, sporeMoss, shale, shaleRocks, shaleBoulder, grass, salt,
|
||||
metalFloor, metalFloorDamaged, metalFloor2, metalFloor3, metalFloor5, ignarock, magmarock, hotrock, snowrocks, rock, snowrock,
|
||||
|
||||
//ores
|
||||
@@ -72,7 +72,7 @@ public class Blocks implements ContentList{
|
||||
coreShard, coreFoundation, coreNucleus, vault, container, unloader, launchPad,
|
||||
|
||||
//turrets
|
||||
duo, scatter, hail, arc, wave, lancer, swarmer, salvo, fuse, ripple, cyclone, spectre, meltdown,
|
||||
duo, scatter, scorch, hail, arc, wave, lancer, swarmer, salvo, fuse, ripple, cyclone, spectre, meltdown,
|
||||
|
||||
//units
|
||||
spiritFactory, phantomFactory, wraithFactory, ghoulFactory, revenantFactory, daggerFactory, crawlerFactory, titanFactory,
|
||||
@@ -172,11 +172,27 @@ public class Blocks implements ContentList{
|
||||
cacheLayer = CacheLayer.water;
|
||||
}};
|
||||
|
||||
darksandWater = new Floor("darksand-water"){{
|
||||
liquidColor = Color.valueOf("596ab8");
|
||||
speedMultiplier = 0.8f;
|
||||
variants = 0;
|
||||
status = StatusEffects.wet;
|
||||
statusDuration = 50f;
|
||||
liquidDrop = Liquids.water;
|
||||
isLiquid = true;
|
||||
cacheLayer = CacheLayer.water;
|
||||
}};
|
||||
|
||||
sand = new Floor("sand"){{
|
||||
itemDrop = Items.sand;
|
||||
playerUnmineable = true;
|
||||
}};
|
||||
|
||||
darksand = new Floor("darksand"){{
|
||||
itemDrop = Items.sand;
|
||||
playerUnmineable = true;
|
||||
}};
|
||||
|
||||
holostone = new Floor("holostone"){{
|
||||
edgeStyle = "blocky";
|
||||
}};
|
||||
@@ -1101,8 +1117,23 @@ public class Blocks implements ContentList{
|
||||
health = 260*size*size;
|
||||
}};
|
||||
|
||||
scorch = new ItemTurret("scorch"){{
|
||||
requirements(Category.turret, ItemStack.with(Items.copper, 50, Items.graphite, 45));
|
||||
ammo(
|
||||
Items.coal, Bullets.basicFlame,
|
||||
Items.pyratite, Bullets.pyraFlame
|
||||
);
|
||||
recoil = 0f;
|
||||
reload = 4f;
|
||||
range = 53f;
|
||||
shootCone = 50f;
|
||||
targetAir = false;
|
||||
ammoUseEffect = Fx.none;
|
||||
health = 400;
|
||||
}};
|
||||
|
||||
hail = new ArtilleryTurret("hail"){{
|
||||
requirements(Category.turret, ItemStack.with(Items.copper, 60, Items.graphite, 35));
|
||||
requirements(Category.turret, ItemStack.with(Items.copper, 80, Items.graphite, 35));
|
||||
ammo(
|
||||
Items.graphite, Bullets.artilleryDense,
|
||||
Items.silicon, Bullets.artilleryHoming,
|
||||
@@ -1169,7 +1200,7 @@ public class Blocks implements ContentList{
|
||||
arc = new PowerTurret("arc"){{
|
||||
requirements(Category.turret, ItemStack.with(Items.copper, 70, Items.lead, 70));
|
||||
shootType = Bullets.arc;
|
||||
reload = 20f;
|
||||
reload = 25f;
|
||||
shootCone = 40f;
|
||||
rotatespeed = 8f;
|
||||
powerUsed = 1f / 2f;
|
||||
|
||||
@@ -46,7 +46,7 @@ public class Bullets implements ContentList{
|
||||
waterShot, cryoShot, slagShot, oilShot,
|
||||
|
||||
//environment, misc.
|
||||
fireball, basicFlame, fuseShot, driverBolt, healBullet, frag, eruptorShot,
|
||||
fireball, basicFlame, pyraFlame, fuseShot, driverBolt, healBullet, frag, eruptorShot,
|
||||
|
||||
//bombs
|
||||
bombExplosive, bombIncendiary, bombOil, explode;
|
||||
@@ -454,10 +454,11 @@ public class Bullets implements ContentList{
|
||||
}
|
||||
};
|
||||
|
||||
basicFlame = new BulletType(2.3f, 5){
|
||||
basicFlame = new BulletType(2.5f, 5){
|
||||
{
|
||||
ammoMultiplier = 3f;
|
||||
hitSize = 7f;
|
||||
lifetime = 35f;
|
||||
lifetime = 40f;
|
||||
pierce = true;
|
||||
drag = 0.05f;
|
||||
statusDuration = 60f * 4;
|
||||
@@ -472,6 +473,25 @@ public class Bullets implements ContentList{
|
||||
}
|
||||
};
|
||||
|
||||
pyraFlame = new BulletType(2.7f, 8){
|
||||
{
|
||||
ammoMultiplier = 4f;
|
||||
hitSize = 7f;
|
||||
lifetime = 40f;
|
||||
pierce = true;
|
||||
drag = 0.05f;
|
||||
statusDuration = 60f * 6;
|
||||
shootEffect = Fx.shootPyraFlame;
|
||||
hitEffect = Fx.hitFlameSmall;
|
||||
despawnEffect = Fx.none;
|
||||
status = StatusEffects.burning;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void draw(Bullet b){
|
||||
}
|
||||
};
|
||||
|
||||
lancerLaser = new BulletType(0.001f, 140){
|
||||
Color[] colors = {Pal.lancerLaser.cpy().mul(1f, 1f, 1f, 0.4f), Pal.lancerLaser, Color.WHITE};
|
||||
float[] tscales = {1f, 0.7f, 0.5f, 0.2f};
|
||||
@@ -644,7 +664,7 @@ public class Bullets implements ContentList{
|
||||
}
|
||||
};
|
||||
|
||||
arc = new BulletType(0.001f, 20){{
|
||||
arc = new BulletType(0.001f, 21){{
|
||||
lifetime = 1;
|
||||
despawnEffect = Fx.none;
|
||||
hitEffect = Fx.hitLancer;
|
||||
@@ -655,7 +675,7 @@ public class Bullets implements ContentList{
|
||||
|
||||
@Override
|
||||
public void init(Bullet b){
|
||||
Lightning.create(b.getTeam(), Pal.lancerLaser, damage, b.x, b.y, b.rot(), 14);
|
||||
Lightning.create(b.getTeam(), Pal.lancerLaser, damage, b.x, b.y, b.rot(), 15);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ public class Fx implements ContentList{
|
||||
plasticExplosion, artilleryTrail, incendTrail, missileTrail, absorb, flakExplosionBig, plasticExplosionFlak, burning, fire,
|
||||
fireSmoke, steam, fireballsmoke, ballfire, freezing, melting, wet, oily, overdriven, dropItem, shockwave,
|
||||
bigShockwave, nuclearShockwave, explosion, blockExplosion, blockExplosionSmoke, shootSmall, shootHeal, shootSmallSmoke, shootBig, shootBig2, shootBigSmoke,
|
||||
shootBigSmoke2, shootSmallFlame, shootLiquid, shellEjectSmall, shellEjectMedium,
|
||||
shootBigSmoke2, shootSmallFlame, shootPyraFlame, shootLiquid, shellEjectSmall, shellEjectMedium,
|
||||
shellEjectBig, lancerLaserShoot, lancerLaserShootSmoke, lancerLaserCharge, lancerLaserChargeBegin, lightningCharge, lightningShoot,
|
||||
unitSpawn, spawnShockwave, magmasmoke, impactShockwave, impactcloud, impactsmoke, dynamicExplosion;
|
||||
|
||||
@@ -221,7 +221,7 @@ public class Fx implements ContentList{
|
||||
Draw.color(Pal.lightFlame, Pal.darkFlame, e.fin());
|
||||
Lines.stroke(0.5f + e.fout());
|
||||
|
||||
Angles.randLenVectors(e.id, 5, e.fin() * 15f, e.rotation, 50f, (x, y) -> {
|
||||
Angles.randLenVectors(e.id, 2, e.fin() * 15f, e.rotation, 50f, (x, y) -> {
|
||||
float ang = Mathf.angle(x, y);
|
||||
Lines.lineAngle(e.x + x, e.y + y, ang, e.fout() * 3 + 1f);
|
||||
});
|
||||
@@ -736,6 +736,16 @@ public class Fx implements ContentList{
|
||||
Draw.reset();
|
||||
});
|
||||
|
||||
shootPyraFlame = new Effect(33f, e -> {
|
||||
Draw.color(Pal.lightPyraFlame, Pal.darkPyraFlame, Color.GRAY, e.fin());
|
||||
|
||||
Angles.randLenVectors(e.id, 10, e.finpow() * 50f, e.rotation, 10f, (x, y) -> {
|
||||
Fill.circle(e.x + x, e.y + y, 0.65f + e.fout() * 1.6f);
|
||||
});
|
||||
|
||||
Draw.reset();
|
||||
});
|
||||
|
||||
shootLiquid = new Effect(40f, e -> {
|
||||
Draw.color(e.color, Color.WHITE, e.fout() / 6f + Mathf.randomSeedRange(e.id, 0.1f));
|
||||
|
||||
|
||||
@@ -64,22 +64,26 @@ public class TechTree implements ContentList{
|
||||
});
|
||||
});
|
||||
|
||||
node(arc, () -> {
|
||||
node(wave, () -> {
|
||||
|
||||
});
|
||||
|
||||
node(lancer, () -> {
|
||||
node(meltdown, () -> {
|
||||
node(scorch, () -> {
|
||||
node(arc, () -> {
|
||||
node(wave, () -> {
|
||||
|
||||
});
|
||||
|
||||
node(shockMine, () -> {
|
||||
node(lancer, () -> {
|
||||
node(meltdown, () -> {
|
||||
|
||||
});
|
||||
|
||||
node(shockMine, () -> {
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
node(copperWall, () -> {
|
||||
node(copperWallLarge);
|
||||
node(titaniumWall, () -> {
|
||||
|
||||
@@ -110,6 +110,8 @@ public enum EditorTool{
|
||||
return;
|
||||
}
|
||||
|
||||
boolean alt = isAlt();
|
||||
|
||||
int width = editor.width();
|
||||
int height = editor.height();
|
||||
|
||||
@@ -117,7 +119,13 @@ public enum EditorTool{
|
||||
Tile write = editor.tile(px, py);
|
||||
|
||||
if(isfloor){
|
||||
write.setFloor((Floor)draw);
|
||||
if(alt && !(draw instanceof OreBlock)){
|
||||
Block ore = write.ore();
|
||||
write.setFloor((Floor)draw);
|
||||
write.setOre(ore);
|
||||
}else{
|
||||
write.setFloor((Floor)draw);
|
||||
}
|
||||
}else{
|
||||
write.setBlock(draw);
|
||||
}
|
||||
|
||||
@@ -84,7 +84,7 @@ public class MapGenerateDialog extends FloatingDialog{
|
||||
add(new Image("icon-refresh"){{
|
||||
setScaling(Scaling.none);
|
||||
}});
|
||||
visible(() -> generating);
|
||||
visible(() -> generating && !updateEditorOnChange);
|
||||
}}).size(mobile ? 300f : 400f).padRight(6);
|
||||
t.pane(p -> filterTable = p).width(300f).get().setScrollingDisabled(true, false);
|
||||
}).grow();
|
||||
|
||||
@@ -6,16 +6,18 @@ import io.anuke.mindustry.editor.generation.FilterOption.SliderOption;
|
||||
import io.anuke.mindustry.world.Block;
|
||||
|
||||
import static io.anuke.mindustry.editor.generation.FilterOption.floorsOnly;
|
||||
import static io.anuke.mindustry.editor.generation.FilterOption.wallsOnly;
|
||||
|
||||
public class RiverNoiseFilter extends GenerateFilter{
|
||||
float scl = 40, threshold = 0f, threshold2 = 0.1f;
|
||||
Block floor = Blocks.water, floor2 = Blocks.deepwater;
|
||||
Block floor = Blocks.water, floor2 = Blocks.deepwater, block = Blocks.sandRocks;
|
||||
|
||||
{
|
||||
options(
|
||||
new SliderOption("scale", () -> scl, f -> scl = f, 1f, 500f),
|
||||
new SliderOption("threshold", () -> threshold, f -> threshold = f, 0f, 1f),
|
||||
new SliderOption("threshold2", () -> threshold2, f -> threshold2 = f, 0f, 1f),
|
||||
new BlockOption("block", () -> block, b -> block = b, wallsOnly),
|
||||
new BlockOption("floor", () -> floor, b -> floor = b, floorsOnly),
|
||||
new BlockOption("floor2", () -> floor2, b -> floor2 = b, floorsOnly)
|
||||
);
|
||||
@@ -28,6 +30,10 @@ public class RiverNoiseFilter extends GenerateFilter{
|
||||
if(noise >= threshold){
|
||||
in.floor = floor;
|
||||
|
||||
if(in.srcblock.solid){
|
||||
in.block = block;
|
||||
}
|
||||
|
||||
if(noise >= threshold2){
|
||||
in.floor = floor2;
|
||||
}
|
||||
|
||||
@@ -22,6 +22,9 @@ public class Pal{
|
||||
lightFlame = Color.valueOf("ffdd55"),
|
||||
darkFlame = Color.valueOf("db401c"),
|
||||
|
||||
lightPyraFlame = Color.valueOf("ffb855"),
|
||||
darkPyraFlame = Color.valueOf("db661c"),
|
||||
|
||||
turretHeat = Color.valueOf("ab3400"),
|
||||
|
||||
lightOrange = Color.valueOf("f68021"),
|
||||
|
||||
@@ -7,7 +7,6 @@ import io.anuke.arc.files.FileHandle;
|
||||
import io.anuke.arc.graphics.Texture;
|
||||
import io.anuke.arc.util.Disposable;
|
||||
import io.anuke.arc.util.Log;
|
||||
import io.anuke.arc.util.Time;
|
||||
import io.anuke.arc.util.serialization.Json;
|
||||
import io.anuke.mindustry.game.SpawnGroup;
|
||||
import io.anuke.mindustry.io.MapIO;
|
||||
@@ -65,7 +64,6 @@ public class Maps implements Disposable{
|
||||
|
||||
/** Load all maps. Should be called at application start. */
|
||||
public void load(){
|
||||
Time.mark();
|
||||
try{
|
||||
for(String name : defaultMapNames){
|
||||
FileHandle file = Core.files.internal("maps/" + name + "." + mapExtension);
|
||||
@@ -76,7 +74,11 @@ public class Maps implements Disposable{
|
||||
}
|
||||
|
||||
loadCustomMaps();
|
||||
Log.info("Time to load maps: {0}", Time.elapsed());
|
||||
}
|
||||
|
||||
public void reload(){
|
||||
dispose();
|
||||
load();
|
||||
}
|
||||
|
||||
/** Save a custom map to the directory. This updates all values and stored data necessary.
|
||||
|
||||
@@ -179,6 +179,8 @@ public class SettingsMenuDialog extends SettingsDialog{
|
||||
graphics.sliderPref("fpscap", 125, 5, 125, 5, s -> (s > 120 ? Core.bundle.get("setting.fpscap.none") : Core.bundle.format("setting.fpscap.text", s)));
|
||||
|
||||
if(!mobile){
|
||||
graphics.sliderPref("antialias", 0, 0, 5, 1, s -> (s == 0 ? 0 : (1 << s)) + "x");
|
||||
|
||||
graphics.checkPref("vsync", true, b -> Core.graphics.setVSync(b));
|
||||
graphics.checkPref("fullscreen", false, b -> {
|
||||
if(b){
|
||||
|
||||
Reference in New Issue
Block a user