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

 Conflicts:
	core/assets/icons/icons.properties
	core/src/mindustry/content/Blocks.java
	core/src/mindustry/world/meta/StatValues.java
This commit is contained in:
Anuken
2021-09-04 23:12:28 -04:00
12 changed files with 70 additions and 75 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 290 B

After

Width:  |  Height:  |  Size: 290 B

View File

@@ -1161,6 +1161,7 @@ block.core-nucleus.name = Core: Nucleus
block.deep-water.name = Deep Water block.deep-water.name = Deep Water
block.shallow-water.name = Water block.shallow-water.name = Water
block.tainted-water.name = Tainted Water block.tainted-water.name = Tainted Water
block.deep-tainted-water.name = Deep Tainted Water
block.darksand-tainted-water.name = Dark Sand Tainted Water block.darksand-tainted-water.name = Dark Sand Tainted Water
block.tar.name = Tar block.tar.name = Tar
block.stone.name = Stone block.stone.name = Stone

View File

@@ -360,47 +360,4 @@
63349=shallow-water|block-shallow-water-ui 63349=shallow-water|block-shallow-water-ui
63348=molten-slag|block-molten-slag-ui 63348=molten-slag|block-molten-slag-ui
63347=crater-stone|block-crater-stone-ui 63347=crater-stone|block-crater-stone-ui
63346=rhyolite|block-rhyolite-ui 63346=deep-tainted-water|block-deep-tainted-water-ui
63345=rhyolite-crater|block-rhyolite-crater-ui
63344=regolith|block-regolith-ui
63343=yellow-stone|block-yellow-stone-ui
63342=carbon-stone|block-carbon-stone-ui
63341=ferric-stone|block-ferric-stone-ui
63340=ferric-craters|block-ferric-craters-ui
63339=beryllic-stone|block-beryllic-stone-ui
63338=red-ice|block-red-ice-ui
63337=redmat|block-redmat-ui
63336=bluemat|block-bluemat-ui
63335=regolith-wall|block-regolith-wall-ui
63334=yellow-stone-wall|block-yellow-stone-wall-ui
63333=rhyolite-wall|block-rhyolite-wall-ui
63332=carbon-wall|block-carbon-wall-ui
63331=ferric-stone-wall|block-ferric-stone-wall-ui
63330=beryllic-stone-wall|block-beryllic-stone-wall-ui
63329=red-ice-wall|block-red-ice-wall-ui
63328=redweed|block-redweed-ui
63327=pur-bush|block-pur-bush-ui
63326=yellowcoral|block-yellowcoral-ui
63325=coralchunk|block-coralchunk-ui
63324=carbon-boulder|block-carbon-boulder-ui
63323=ferric-boulder|block-ferric-boulder-ui
63322=beryllic-boulder|block-beryllic-boulder-ui
63321=wall-ore-beryllium|block-wall-ore-beryllium-ui
63320=graphitic-wall|block-graphitic-wall-ui
63319=cell-synthesis-chamber|block-cell-synthesis-chamber-ui
63318=cliff-crusher|block-cliff-crusher-ui
63317=beam-drill|block-beam-drill-ui
63316=deconstructor|block-deconstructor-ui
63315=constructor|block-constructor-ui
63314=large-constructor|block-large-constructor-ui
63313=payload-loader|block-payload-loader-ui
63312=payload-unloader|block-payload-unloader-ui
63311=nuclear-warhead|block-nuclear-warhead-ui
63310=warhead-assembler|block-warhead-assembler-ui
63309=ballistic-silo|block-ballistic-silo-ui
63308=beryllium|item-beryllium-ui
63307=fissile-matter|item-fissile-matter-ui
63306=neoplasm|liquid-neoplasm-ui
63305=dormant-cyst|item-dormant-cyst-ui
63304=scuttler|unit-scuttler-ui
63303=liquid-container|block-liquid-container-ui

View File

@@ -35,7 +35,7 @@ public class Blocks implements ContentList{
public static Block public static Block
//environment //environment
air, spawn, cliff, deepwater, water, taintedWater, tar, slag, stone, craters, charr, sand, darksand, dirt, mud, ice, snow, darksandTaintedWater, space, air, spawn, cliff, deepwater, water, taintedWater, deepTaintedWater, tar, slag, stone, craters, charr, sand, darksand, dirt, mud, ice, snow, darksandTaintedWater, space,
dacite, rhyolite, rhyoliteCrater, regolith, yellowStone, redIce, dacite, rhyolite, rhyoliteCrater, regolith, yellowStone, redIce,
redmat, bluemat, redmat, bluemat,
stoneWall, dirtWall, sporeWall, iceWall, daciteWall, sporePine, snowPine, pine, shrubs, whiteTree, whiteTreeDead, sporeCluster, stoneWall, dirtWall, sporeWall, iceWall, daciteWall, sporePine, snowPine, pine, shrubs, whiteTree, whiteTreeDead, sporeCluster,
@@ -156,7 +156,19 @@ public class Blocks implements ContentList{
}}; }};
taintedWater = new Floor("tainted-water"){{ taintedWater = new Floor("tainted-water"){{
speedMultiplier = 0.17f; speedMultiplier = 0.5f;
variants = 0;
status = StatusEffects.wet;
statusDuration = 90f;
liquidDrop = Liquids.water;
isLiquid = true;
cacheLayer = CacheLayer.water;
albedo = 0.5f;
attributes.set(Attribute.spores, 0.15f);
}};
deepTaintedWater = new Floor("deep-tainted-water"){{
speedMultiplier = 0.18f;
variants = 0; variants = 0;
status = StatusEffects.wet; status = StatusEffects.wet;
statusDuration = 140f; statusDuration = 140f;
@@ -384,7 +396,9 @@ public class Blocks implements ContentList{
attributes.set(Attribute.silicate, 1f); attributes.set(Attribute.silicate, 1f);
}}; }};
sporeWall = new StaticWall("spore-wall"); sporeWall = new StaticWall("spore-wall"){{
taintedWater.asFloor().wall = deepTaintedWater.asFloor().wall = this;
}};
dirtWall = new StaticWall("dirt-wall"); dirtWall = new StaticWall("dirt-wall");
@@ -547,7 +561,7 @@ public class Blocks implements ContentList{
Seq.with(metalFloor, metalFloorDamaged, metalFloor2, metalFloor3, metalFloor4, metalFloor5, darkPanel1, darkPanel2, darkPanel3, darkPanel4, darkPanel5, darkPanel6) Seq.with(metalFloor, metalFloorDamaged, metalFloor2, metalFloor3, metalFloor4, metalFloor5, darkPanel1, darkPanel2, darkPanel3, darkPanel4, darkPanel5, darkPanel6)
.each(b -> b.asFloor().wall = darkMetal); .each(b -> b.asFloor().wall = darkMetal);
pebbles = new DoubleOverlayFloor("pebbles"); pebbles = new OverlayFloor("pebbles");
tendrils = new OverlayFloor("tendrils"); tendrils = new OverlayFloor("tendrils");
@@ -819,10 +833,10 @@ public class Blocks implements ContentList{
disassembler = new Separator("disassembler"){{ disassembler = new Separator("disassembler"){{
requirements(Category.crafting, with(Items.plastanium, 40, Items.titanium, 100, Items.silicon, 150, Items.thorium, 80)); requirements(Category.crafting, with(Items.plastanium, 40, Items.titanium, 100, Items.silicon, 150, Items.thorium, 80));
results = with( results = with(
Items.sand, 4, Items.sand, 2,
Items.graphite, 2, Items.graphite, 1,
Items.titanium, 2, Items.titanium, 1,
Items.thorium, 2 Items.thorium, 1
); );
hasPower = true; hasPower = true;
craftTime = 15f; craftTime = 15f;

View File

@@ -23,6 +23,7 @@ public class SerpuloPlanetGenerator extends PlanetGenerator{
BaseGenerator basegen = new BaseGenerator(); BaseGenerator basegen = new BaseGenerator();
float scl = 5f; float scl = 5f;
float waterOffset = 0.07f; float waterOffset = 0.07f;
boolean genLakes = false;
Block[][] arr = Block[][] arr =
{ {
@@ -33,11 +34,11 @@ public class SerpuloPlanetGenerator extends PlanetGenerator{
{Blocks.deepwater, Blocks.water, Blocks.sandWater, Blocks.sand, Blocks.salt, Blocks.sand, Blocks.sand, Blocks.basalt, Blocks.snow, Blocks.snow, Blocks.snow, Blocks.snow, Blocks.ice}, {Blocks.deepwater, Blocks.water, Blocks.sandWater, Blocks.sand, Blocks.salt, Blocks.sand, Blocks.sand, Blocks.basalt, Blocks.snow, Blocks.snow, Blocks.snow, Blocks.snow, Blocks.ice},
{Blocks.deepwater, Blocks.water, Blocks.sandWater, Blocks.sand, Blocks.sand, Blocks.sand, Blocks.moss, Blocks.iceSnow, Blocks.snow, Blocks.snow, Blocks.ice, Blocks.snow, Blocks.ice}, {Blocks.deepwater, Blocks.water, Blocks.sandWater, Blocks.sand, Blocks.sand, Blocks.sand, Blocks.moss, Blocks.iceSnow, Blocks.snow, Blocks.snow, Blocks.ice, Blocks.snow, Blocks.ice},
{Blocks.deepwater, Blocks.sandWater, Blocks.sand, Blocks.sand, Blocks.moss, Blocks.moss, Blocks.snow, Blocks.basalt, Blocks.basalt, Blocks.basalt, Blocks.ice, Blocks.snow, Blocks.ice}, {Blocks.deepwater, Blocks.sandWater, Blocks.sand, Blocks.sand, Blocks.moss, Blocks.moss, Blocks.snow, Blocks.basalt, Blocks.basalt, Blocks.basalt, Blocks.ice, Blocks.snow, Blocks.ice},
{Blocks.taintedWater, Blocks.darksandTaintedWater, Blocks.darksand, Blocks.darksand, Blocks.basalt, Blocks.moss, Blocks.basalt, Blocks.hotrock, Blocks.basalt, Blocks.ice, Blocks.snow, Blocks.ice, Blocks.ice}, {Blocks.deepTaintedWater, Blocks.darksandTaintedWater, Blocks.darksand, Blocks.darksand, Blocks.basalt, Blocks.moss, Blocks.basalt, Blocks.hotrock, Blocks.basalt, Blocks.ice, Blocks.snow, Blocks.ice, Blocks.ice},
{Blocks.darksandWater, Blocks.darksand, Blocks.darksand, Blocks.darksand, Blocks.moss, Blocks.sporeMoss, Blocks.snow, Blocks.basalt, Blocks.basalt, Blocks.ice, Blocks.snow, Blocks.ice, Blocks.ice}, {Blocks.darksandWater, Blocks.darksand, Blocks.darksand, Blocks.darksand, Blocks.moss, Blocks.sporeMoss, Blocks.snow, Blocks.basalt, Blocks.basalt, Blocks.ice, Blocks.snow, Blocks.ice, Blocks.ice},
{Blocks.darksandWater, Blocks.darksand, Blocks.darksand, Blocks.sporeMoss, Blocks.ice, Blocks.ice, Blocks.snow, Blocks.snow, Blocks.snow, Blocks.snow, Blocks.ice, Blocks.ice, Blocks.ice}, {Blocks.darksandWater, Blocks.darksand, Blocks.darksand, Blocks.sporeMoss, Blocks.ice, Blocks.ice, Blocks.snow, Blocks.snow, Blocks.snow, Blocks.snow, Blocks.ice, Blocks.ice, Blocks.ice},
{Blocks.taintedWater, Blocks.darksandTaintedWater, Blocks.darksand, Blocks.sporeMoss, Blocks.sporeMoss, Blocks.ice, Blocks.ice, Blocks.snow, Blocks.snow, Blocks.ice, Blocks.ice, Blocks.ice, Blocks.ice}, {Blocks.deepTaintedWater, Blocks.darksandTaintedWater, Blocks.darksand, Blocks.sporeMoss, Blocks.sporeMoss, Blocks.ice, Blocks.ice, Blocks.snow, Blocks.snow, Blocks.ice, Blocks.ice, Blocks.ice, Blocks.ice},
{Blocks.darksandTaintedWater, Blocks.darksandTaintedWater, Blocks.darksand, Blocks.sporeMoss, Blocks.moss, Blocks.sporeMoss, Blocks.iceSnow, Blocks.snow, Blocks.ice, Blocks.ice, Blocks.ice, Blocks.ice, Blocks.ice}, {Blocks.taintedWater, Blocks.darksandTaintedWater, Blocks.darksand, Blocks.sporeMoss, Blocks.moss, Blocks.sporeMoss, Blocks.iceSnow, Blocks.snow, Blocks.ice, Blocks.ice, Blocks.ice, Blocks.ice, Blocks.ice},
{Blocks.darksandWater, Blocks.darksand, Blocks.snow, Blocks.ice, Blocks.iceSnow, Blocks.snow, Blocks.snow, Blocks.snow, Blocks.ice, Blocks.ice, Blocks.ice, Blocks.ice, Blocks.ice} {Blocks.darksandWater, Blocks.darksand, Blocks.snow, Blocks.ice, Blocks.iceSnow, Blocks.snow, Blocks.snow, Blocks.snow, Blocks.ice, Blocks.ice, Blocks.ice, Blocks.ice, Blocks.ice}
}; };
@@ -255,10 +256,35 @@ public class SerpuloPlanetGenerator extends PlanetGenerator{
for(Room room : roomseq){ for(Room room : roomseq){
spawn.connect(room); spawn.connect(room);
} }
Room fspawn = spawn;
cells(1); cells(1);
distort(10f, 6f); distort(10f, 6f);
//rivers
pass((x, y) -> {
if(block.solid) return;
Vec3 v = sector.rect.project(x, y);
float rr = Simplex.noise2d(sector.id, (float)2, 0.6f, 1f / 7f, x, y) * 0.1f;
float value = Ridged.noise3d(2, v.x, v.y, v.z, 1, 1f / 53f) + rr - rawHeight(v) * 0f;
float rrscl = rr * 44 - 2;
if(value > 0.12f && !Mathf.within(x, y, fspawn.x, fspawn.y, 12 + rrscl)){
boolean deep = value > 0.12f + 0.1f && !Mathf.within(x, y, fspawn.x, fspawn.y, 15 + rrscl);
boolean spore = floor != Blocks.sand && floor != Blocks.salt;
//do not place rivers on ice, they're frozen
//ignore pre-existing liquids
if(!(floor == Blocks.ice || floor == Blocks.iceSnow || floor == Blocks.snow || floor.asFloor().isLiquid)){
floor = spore ?
(deep ? Blocks.taintedWater : Blocks.darksandTaintedWater) :
(deep ? Blocks.water :
(floor == Blocks.sand ? Blocks.sandWater : Blocks.darksandWater));
}
}
});
Seq<Block> ores = Seq.with(Blocks.oreCopper, Blocks.oreLead); Seq<Block> ores = Seq.with(Blocks.oreCopper, Blocks.oreLead);
float poles = Math.abs(sector.tile.v.y); float poles = Math.abs(sector.tile.v.y);
float nmag = 0.5f; float nmag = 0.5f;
@@ -326,7 +352,6 @@ public class SerpuloPlanetGenerator extends PlanetGenerator{
if(Math.abs(0.5f - noise(x - 40, y, 2, 0.7, 80)) > 0.25f && if(Math.abs(0.5f - noise(x - 40, y, 2, 0.7, 80)) > 0.25f &&
Math.abs(0.5f - noise(x, y + sector.id*10, 1, 1, 60)) > 0.41f && !(roomseq.contains(r -> Mathf.within(x, y, r.x, r.y, 15)))){ Math.abs(0.5f - noise(x, y + sector.id*10, 1, 1, 60)) > 0.41f && !(roomseq.contains(r -> Mathf.within(x, y, r.x, r.y, 15)))){
floor = Blocks.tar; floor = Blocks.tar;
ore = Blocks.air;
} }
} }
@@ -347,7 +372,7 @@ public class SerpuloPlanetGenerator extends PlanetGenerator{
floor = Blocks.magmarock; floor = Blocks.magmarock;
} }
} }
}else if(floor != Blocks.basalt && floor != Blocks.ice && floor.asFloor().hasSurface()){ }else if(genLakes && floor != Blocks.basalt && floor != Blocks.ice && floor.asFloor().hasSurface()){
float noise = noise(x + 782, y, 5, 0.75f, 260f, 1f); float noise = noise(x + 782, y, 5, 0.75f, 260f, 1f);
if(noise > 0.67f && !roomseq.contains(e -> Mathf.within(x, y, e.x, e.y, 14))){ if(noise > 0.67f && !roomseq.contains(e -> Mathf.within(x, y, e.x, e.y, 14))){
if(noise > 0.72f){ if(noise > 0.72f){
@@ -355,7 +380,6 @@ public class SerpuloPlanetGenerator extends PlanetGenerator{
}else{ }else{
floor = (floor == Blocks.sand ? floor : Blocks.darksand); floor = (floor == Blocks.sand ? floor : Blocks.darksand);
} }
ore = Blocks.air;
} }
} }
@@ -470,6 +494,13 @@ public class SerpuloPlanetGenerator extends PlanetGenerator{
} }
} }
//remove invalid ores
for(Tile tile : tiles){
if(tile.overlay().needsSurface && !tile.floor().hasSurface()){
tile.setOverlay(Blocks.air);
}
}
Schematics.placeLaunchLoadout(spawn.x, spawn.y); Schematics.placeLaunchLoadout(spawn.x, spawn.y);
for(Room espawn : enemies){ for(Room espawn : enemies){

View File

@@ -368,7 +368,7 @@ public class ModsDialog extends BaseDialog{
Seq<UnlockableContent> all = Seq.with(content.getContentMap()).<Content>flatten().select(c -> c.minfo.mod == mod && c instanceof UnlockableContent).as(); Seq<UnlockableContent> all = Seq.with(content.getContentMap()).<Content>flatten().select(c -> c.minfo.mod == mod && c instanceof UnlockableContent).as();
if(all.any()){ if(all.any()){
dialog.cont.row(); dialog.cont.row();
dialog.cont.button( "@mods.viewcontent", Icon.book, () -> { dialog.cont.button("@mods.viewcontent", Icon.book, () -> {
BaseDialog d = new BaseDialog(mod.meta.displayName()); BaseDialog d = new BaseDialog(mod.meta.displayName());
d.cont.pane(cs -> { d.cont.pane(cs -> {
int i = 0; int i = 0;

View File

@@ -13,6 +13,7 @@ public class AirBlock extends Floor{
hasShadow = false; hasShadow = false;
useColor = false; useColor = false;
wall = this; wall = this;
needsSurface = false;
} }
@Override @Override

View File

@@ -1,20 +1,10 @@
package mindustry.world.blocks.environment; package mindustry.world.blocks.environment;
import arc.graphics.g2d.*; /** @deprecated pointless, just use your own sprite instead */
import arc.math.*; @Deprecated
import mindustry.world.*;
public class DoubleOverlayFloor extends OverlayFloor{ public class DoubleOverlayFloor extends OverlayFloor{
public DoubleOverlayFloor(String name){ public DoubleOverlayFloor(String name){
super(name); super(name);
} }
@Override
public void drawBase(Tile tile){
Draw.colorl(0.4f);
Draw.rect(variantRegions[Mathf.randomSeed(tile.pos(), 0, Math.max(0, variantRegions.length - 1))], tile.worldx(), tile.worldy() - 0.75f);
Draw.color();
Draw.rect(variantRegions[Mathf.randomSeed(tile.pos(), 0, Math.max(0, variantRegions.length - 1))], tile.worldx(), tile.worldy());
}
} }

View File

@@ -128,8 +128,9 @@ public class ItemLiquidGenerator extends PowerGenerator{
liquids.remove(liquid, used * power.graph.getUsageFraction()); liquids.remove(liquid, used * power.graph.getUsageFraction());
productionEfficiency = baseLiquidEfficiency * used / maximumPossible; productionEfficiency = baseLiquidEfficiency * used / maximumPossible;
if(used > 0.001f && Mathf.chance(0.05 * delta())){ if(used > 0.001f && (generateTime -= delta()) <= 0f){
generateEffect.at(x + Mathf.range(generateEffectRnd), y + Mathf.range(generateEffectRnd)); generateEffect.at(x + Mathf.range(generateEffectRnd), y + Mathf.range(generateEffectRnd));
generateTime = 1f;
} }
}else if(hasItems){ }else if(hasItems){
// No liquids accepted or none supplied, try using items if accepted // No liquids accepted or none supplied, try using items if accepted

View File

@@ -130,7 +130,7 @@ public class StatValues{
if(state.isGame()){ if(state.isGame()){
var blocks = Vars.content.blocks() var blocks = Vars.content.blocks()
.select(block -> (!checkFloors || block instanceof Floor) && indexer.isBlockPresent(block) && block.attributes.get(attr) != 0 && !((block instanceof Floor f && f.isLiquid) && !floating)) .select(block -> (!checkFloors || block instanceof Floor) && indexer.isBlockPresent(block) && block.attributes.get(attr) != 0 && !((block instanceof Floor f && f.isDeep()) && !floating))
.<Floor>as().with(s -> s.sort(f -> f.attributes.get(attr))); .<Floor>as().with(s -> s.sort(f -> f.attributes.get(attr)));
if(blocks.any()){ if(blocks.any()){

View File

@@ -5,7 +5,7 @@
}, },
{ {
"name": "C.A.M.S.", "name": "C.A.M.S.",
"address": ["baseduser.eu.org:6569", "v7.thedimas.pp.ua", "mindustry.me:7000"] "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"]
}, },
{ {
"name": "hexpvp.ml", "name": "hexpvp.ml",
@@ -13,7 +13,7 @@
}, },
{ {
"name": "Omega", "name": "Omega",
"address": ["yeet.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", "yeeth.mindustry.me:2006", "yeeth.mindustry.me:2003","yeeth.mindustry.me:2002", "yeeth.mindustry.me:2001", "yeeth.mindustry.me:2007", "yeeth.mindustry.me:2005"]
}, },
{ {
"name": "MeowLand", "name": "MeowLand",