mirror of
https://github.com/Anuken/Mindustry.git
synced 2025-07-09 15:27:45 +07:00
Power network base support
This commit is contained in:
2
core/assets/baseparts/1591380533871.msch
Normal file
2
core/assets/baseparts/1591380533871.msch
Normal file
@ -0,0 +1,2 @@
|
||||
mschx<>%<25>]<0E> <10>GD4<44><34>><3E>jō5A0@<40>x<EFBFBD><78>K<EFBFBD><4B>fg<66><67><EFBFBD>i<EFBFBD><03><>~<7E>Ts@K<>a<EFBFBD><61>=(l<><6C>]<5D><>=<3D><>J<EFBFBD>tb<74><62>S<EFBFBD><05>\/>c<>t<EFBFBD>7'<1B><>V<EFBFBD><56>qwq<77><71><EFBFBD>l1ؕ'*<2A><1B>»<EFBFBD><C2BB><EFBFBD><03>IAA52Z4
|
||||
uQ<EFBFBD>I<EFBFBD>Z<EFBFBD><02><>%<25><>~<7E>j<EFBFBD><03>Z<0B>zz]'fa苡/<2F><><EFBFBD><EFBFBD><EFBFBD>U<EFBFBD><55>\<5C>,<2C>
|
2
core/assets/baseparts/1591380739339.msch
Normal file
2
core/assets/baseparts/1591380739339.msch
Normal file
@ -0,0 +1,2 @@
|
||||
mschx<><15>A
|
||||
!<04><1D><>^r<>7|<7C>q<EFBFBD>]A<18>|?c<1D>(h<10><><EFBFBD><EFBFBD>1<EFBFBD>ex<65>c<EFBFBD><63>qʏ<15>,<2C><><EFBFBD>,<2C><>͝5MQ<4D><1B>'<27><>S<EFBFBD><53><EFBFBD>Zq<5A><71>-Y<>@<40><>8<>:L<><4C><EFBFBD>"o<>@<>4'
|
2
core/assets/baseparts/1591381320600.msch
Normal file
2
core/assets/baseparts/1591381320600.msch
Normal file
@ -0,0 +1,2 @@
|
||||
mschx<>E<EFBFBD><45>
|
||||
<EFBFBD>0<0C><><EFBFBD><EFBFBD><EFBFBD>`{<7B>>T<>A<0B><>*<2A><><EFBFBD><EFBFBD><EFBFBD>g<EFBFBD>@<40><><EFBFBD>.<2E>Ơ<EFBFBD>=o<>n)<29><>v쎣 <09><>A<EFBFBD>l<1D>M<EFBFBD>,<11><><EFBFBD>S<EFBFBD><1B>&<26><><EFBFBD>N<EFBFBD><4E><1C>s<EFBFBD>/<2F><>jO1!<21>q`<0C>K<EFBFBD><4B><EFBFBD>,&<26>[<04><03>R<EFBFBD><52><06>(O<><4F><EFBFBD>6E<> *?<3F>ʻ.<2E><1B><><EFBFBD>>hRSɖ-<2D>TQBTP5P<35>A<EFBFBD><41><05><>(<28>
|
@ -235,6 +235,11 @@ public class World{
|
||||
}
|
||||
});
|
||||
|
||||
//postgenerate for bases
|
||||
if(sector.preset == null){
|
||||
sector.planet.generator.postGenerate(tiles);
|
||||
}
|
||||
|
||||
//reset rules
|
||||
setSectorRules(sector);
|
||||
|
||||
|
@ -15,6 +15,7 @@ import mindustry.type.*;
|
||||
import mindustry.world.*;
|
||||
import mindustry.world.blocks.defense.*;
|
||||
import mindustry.world.blocks.environment.*;
|
||||
import mindustry.world.blocks.power.*;
|
||||
import mindustry.world.blocks.production.*;
|
||||
|
||||
import static mindustry.Vars.*;
|
||||
@ -24,7 +25,7 @@ public class BaseGenerator{
|
||||
private static final Schematic tmpSchem2 = new Schematic(new Array<>(), new StringMap(), 0, 0);
|
||||
private static final Vec2 axis = new Vec2(), rotator = new Vec2();
|
||||
|
||||
private final static int range = 200;
|
||||
private final static int range = 180;
|
||||
|
||||
private Tiles tiles;
|
||||
private Team team;
|
||||
@ -53,8 +54,6 @@ public class BaseGenerator{
|
||||
|
||||
Block wall = wallsSmall.getFrac(bracket), wallLarge = wallsLarge.getFrac(bracket);
|
||||
|
||||
//TODO random rotation
|
||||
|
||||
for(Tile tile : cores){
|
||||
tile.clearOverlay();
|
||||
Schematics.placeLoadout(coreschem.schematic, tile.x, tile.y, team, coreschem.requiredItem == null ? Blocks.oreCopper : ores.get(coreschem.requiredItem));
|
||||
@ -86,7 +85,7 @@ public class BaseGenerator{
|
||||
boolean any = false;
|
||||
|
||||
for(Point2 p : Geometry.d8){
|
||||
if(Angles.angleDist(Angles.angle(p.x, p.y), spawn.angleTo(tile.x, tile.y)) > wallAngle){
|
||||
if(Angles.angleDist(Angles.angle(p.x, p.y), spawn.angleTo(tile)) > wallAngle){
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -124,6 +123,14 @@ public class BaseGenerator{
|
||||
}
|
||||
}
|
||||
|
||||
public void postGenerate(){
|
||||
for(Tile tile : tiles){
|
||||
if(tile.isCenter() && tile.block() instanceof PowerNode){
|
||||
tile.entity.placed();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void pass(Cons<Tile> cons){
|
||||
Tile core = cores.first();
|
||||
//for(Tile core : cores){
|
||||
|
@ -4,4 +4,7 @@ import mindustry.world.*;
|
||||
|
||||
public interface WorldGenerator{
|
||||
void generate(Tiles tiles);
|
||||
|
||||
/** Do not modify tiles here. This is only for specialized configuration. */
|
||||
default void postGenerate(Tiles tiles){}
|
||||
}
|
||||
|
@ -17,6 +17,7 @@ import static mindustry.Vars.*;
|
||||
public class TODOPlanetGenerator extends PlanetGenerator{
|
||||
Simplex noise = new Simplex();
|
||||
RidgedPerlin rid = new RidgedPerlin(1, 2);
|
||||
BaseGenerator basegen = new BaseGenerator();
|
||||
float scl = 5f;
|
||||
float waterOffset = 0.07f;
|
||||
|
||||
@ -282,7 +283,7 @@ public class TODOPlanetGenerator extends PlanetGenerator{
|
||||
Schematics.placeLoadout(Loadouts.advancedShard, spawn.x, spawn.y);
|
||||
|
||||
if(sector.hasEnemyBase()){
|
||||
new BaseGenerator().generate(tiles, enemies.map(r -> tiles.getn(r.x, r.y)), tiles.get(spawn.x, spawn.y), state.rules.waveTeam, sector);
|
||||
basegen.generate(tiles, enemies.map(r -> tiles.getn(r.x, r.y)), tiles.get(spawn.x, spawn.y), state.rules.waveTeam, sector);
|
||||
|
||||
state.rules.attackMode = true;
|
||||
}
|
||||
@ -290,4 +291,8 @@ public class TODOPlanetGenerator extends PlanetGenerator{
|
||||
state.rules.waves = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postGenerate(Tiles tiles){
|
||||
basegen.postGenerate();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user