New base parts

This commit is contained in:
Anuken
2020-09-08 15:46:24 -04:00
parent 905f1608de
commit ef617b7fd2
30 changed files with 45 additions and 8 deletions

Binary file not shown.

View File

@@ -0,0 +1,2 @@
mschx<>E<EFBFBD>}r<>@ ŵ|<7C>.0<EFBFBD><EFBFBD><1A>%<><02>޺Llpא4<07>iz47C<37>[e<>a<EFBFBD>Z==ie<69><17><>d<EFBFBD>x<EFBFBD><78><EFBFBD>N>|<7C><1E>Z<7F><5A>5<EFBFBD>N<EFBFBD><4E>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD>0}<7D>N^<5E><><EFBFBD>c<EFBFBD><63><EFBFBD>m<EFBFBD><6D><><m<><6D><EFBFBD>̯<EFBFBD>} bò<62><C3B2>}<7D>n<EFBFBD><6E>?yX<79><58>i<><69><EFBFBD><EFBFBD><EFBFBD>=n<>*<2A>3 <0B>i<><69>:<3A><><EFBFBD>K<EFBFBD><1C><><EFBFBD><EFBFBD>7<EFBFBD><37>F<EFBFBD><0F><><1A><><EFBFBD>.<2E><><<3C><>:<3A><><EFBFBD>` P<>4<EFBFBD>H[x<>f?<3F><><EFBFBD><EFBFBD>Hq<48><71>^d<>+<2B>ty&<26>I<EFBFBD>H#V<>DRI<52><08>'9P#DeBIr <09>h<EFBFBD>J+&E<>0<EFBFBD>!<21><1F><><12><><EFBFBD>}<7D><><EFBFBD><EFBFBD>g<EFBFBD>@e&<26>Zj{<7B><<3C>Fd<46>\Q+<1A>U81<19>2*t<><74><EFBFBD>
p<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><16><>L<EFBFBD><4C>.<2E><><EFBFBD>b_#<23>~<7E>?<3F><>1Zi<5A><69>Y<><0E><><EFBFBD><EFBFBD>00F˅<46>i

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1 @@
mschx<>5<EFBFBD>[<5B><> <05>k<02><>i<EFBFBD>5<EFBFBD>;<3B>B4E<34>K<EFBFBD>T<EFBFBD><54>{]k><3E><><EFBFBD><EFBFBD><EFBFBD>G<><47>ӔqJ<71><4A>q<EFBFBD><71><><E19FA9><EFBFBD><EFBFBD><EFBFBD>\<5C><><1F><><EFBFBD><EFBFBD>K<EFBFBD><4B><EFBFBD><EFBFBD><EFBFBD>YZ<59>ך<EFBFBD>

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,4 @@
mschx<>-<2D>Mn<4D> `<13><><EFBFBD>b<EFBFBD>t5<74><1C>I\<15>$# j<>?~q<><71><0F>32Mt3<74><33><EFBFBD>1}<7D>p垗T<E59E97>V<EFBFBD><56><EFBFBD>q<EFBFBD>ؖ<EFBFBD>;W
<EFBFBD>8<EFBFBD><EFBFBD><EFBFBD><EFBFBD>k~<7E><><EFBFBD>t<74>|nIz<49><7A><EFBFBD>R<EFBFBD><52><EFBFBD>$4<>_<EFBFBD>iAbjGIu~<7E><> M<><4D>6<EFBFBD><36><EFBFBD> <13>C~d<><17><>΂SF<1A>0<><30>A<><41>X4<58>2<EFBFBD><32>2<EFBFBD>p
<EFBFBD>FD<"F<18><><EFBFBD><EFBFBD>8<EFBFBD><38>e<EFBFBD><65>^<1E>H^
AG

Binary file not shown.

View File

@@ -0,0 +1 @@
mschx<>-<2D>k<0E> <04>)[<5B><><EFBFBD><EFBFBD>S<EFBFBD>PHI$<24>mB<6D><42><EFBFBD>w<EFBFBD>5<EFBFBD><35>L<18><>70<37>_"<22>=<3D>Zc<5A><63><EFBFBD><EFBFBD><EFBFBD><C2B6>g+<2B>-1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\R<>h<EFBFBD>A<EFBFBD>9<EFBFBD><39><EFBFBD><EFBFBD>Q)<29>R<EFBFBD>˴oG <11><><03>#<23><><EFBFBD><EFBFBD>E<EFBFBD><45><EFBFBD>ģ$<24>8<EFBFBD><38><EFBFBD>A<EFBFBD><41>ж<EFBFBD>Ih<49>N8 <0B><><EFBFBD><EFBFBD>p<06>5\<5C><18>r<EFBFBD><72>;K<><4B> <0B><>%

Binary file not shown.

View File

@@ -0,0 +1 @@
mschx<>MI<0E>0 <1C><>"qh<71><68><EFBFBD><EFBFBD><EFBFBD>,<1A><04>8<EFBFBD>ϯӃǣYlL<6C><08><>˜O<C298>X<EFBFBD><58>5<EFBFBD>G<<3C><>,<2C><>*1<>!xi<78>%W<><01>إ9+<2B>pM<12>Y8}b<>)<29>a<EFBFBD><61><EFBFBD>v<EFBFBD><76><EFBFBD>A<EFBFBD><41>-<2D><>S%/<2F><17><>7<10>ރ<EFBFBD><DE83><EFBFBD>o­<6F><C2AD><EFBFBD>r<18> <09>m;s

View File

@@ -0,0 +1 @@
mschx<>=<3D> n<>0E<07>} !]U<><02><>M<EFBFBD><4D>J<EFBFBD><4A><EFBFBD><EFBFBD>n<EFBFBD><6E><EFBFBD>×<EFBFBD>@_~<7E><EFBFBD>)K(5j<35><6A>o<EFBFBD>uz<75><>2<EFBFBD><32><EFBFBD>f?}+ou<><75><15><><EFBFBD>l<EFBFBD><6C>Qq<51><71>&O<><0F>:=><3E><>n<EFBFBD>6<EFBFBD><36><EFBFBD>We<57>L<EFBFBD><4C><EFBFBD>]3 <0C><>G<EFBFBD><47><EFBFBD>o<EFBFBD><6F><EFBFBD>n<EFBFBD><6E><EFBFBD><EFBFBD>q<EFBFBD>_j<5F><6A>v<EFBFBD><76><EFBFBD>5,+}<10>$><3E><><EFBFBD>!I<>*%!#<23>a«x<C2AB>یx͜v"<22>K4%t =L<>g\<5C>H(1v=<3D><><EFBFBD><EFBFBD><17><05><12>KL/<2F>W<EFBFBD>+4+<2B><15><1A><><EFBFBD>`z<><7A>

View File

@@ -0,0 +1 @@
mschx<>-<2D>K<0E>0 D'<27><>Ю<EFBFBD>]<0F><><EFBFBD>E<EFBFBD>lB@D<>_!<21>c<EFBFBD><63><01><>W<EFBFBD><19>|<7C>$N㺜,c]w<>6<EFBFBD>3<EFBFBD>ϋ<0E>‘L<08><>Ă<EFBFBD>vH<76>ao6<6F>JB<4A><42>A<><41><12>׆<EFBFBD>5ЊN<0F>[<5B>U<EFBFBD>a<EFBFBD><61><EFBFBD><EFBFBD>-

Binary file not shown.

View File

@@ -0,0 +1,2 @@
mschx<>M<EFBFBD>an<61> <10><1F><><EFBFBD>mM<6D><4D><1C><>tC<74>`<10><><EFBFBD>{<7B>]:<3A><>& <1F><><EFBFBD>=<3D><04><><1B>zh<7A><68>`<60><><EFBFBD>WiS<69>Oa!<21>w)(<28><>A/<2F><07>zc<7A><63>yw<79>6͢<>`<60><>^)<29>HE'<27>]<5D><>j!<17><>L7<4C>{4Q;<3B>6<EFBFBD>x<EFBFBD>E?ܡ><3E>L{y<><79>_<EFBFBD><5F><EFBFBD>̇<><CC87><EFBFBD><EFBFBD><EFBFBD>Ȗ<10><><EFBFBD><EFBFBD>$ʎ<><17><><EFBFBD>j7C<37>n<EFBFBD>6<EFBFBD><36><EFBFBD><EFBFBD>ѳ!Ot-G+ĉ<><04> o<12><><EFBFBD><EFBFBD>.?<3F><>d<EFBFBD>
<EFBFBD>̏<EFBFBD>kr/<2F><17>8N4@Ϩ<>d41<34>SqÂ<71><C382>c%

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -26,6 +26,7 @@ public class BaseGenerator{
private Tiles tiles;
private Team team;
private ObjectMap<Item, OreBlock> ores = new ObjectMap<>();
private ObjectMap<Item, Floor> oreFloors = new ObjectMap<>();
private Seq<Tile> cores;
public void generate(Tiles tiles, Seq<Tile> cores, Tile spawn, Team team, Sector sector){
@@ -41,6 +42,8 @@ public class BaseGenerator{
for(Block block : content.blocks()){
if(block instanceof OreBlock && block.asFloor().itemDrop != null){
ores.put(block.asFloor().itemDrop, (OreBlock)block);
}else if(block.isFloor() && block.asFloor().itemDrop != null && !oreFloors.containsKey(block.asFloor().itemDrop)){
oreFloors.put(block.asFloor().itemDrop, block.asFloor());
}
}
@@ -73,7 +76,8 @@ public class BaseGenerator{
pass(tile -> {
if(!tile.block().alwaysReplace) return;
if((tile.drop() != null || (tile.floor().liquidDrop != null && Mathf.chance(nonResourceChance * 2))) && Mathf.chance(resourceChance)){
if(((tile.overlay().asFloor().itemDrop != null || (tile.drop() != null && Mathf.chance(nonResourceChance)))
|| (tile.floor().liquidDrop != null && Mathf.chance(nonResourceChance * 2))) && Mathf.chance(resourceChance)){
Seq<BasePart> parts = bases.forResource(tile.drop() != null ? tile.drop() : tile.floor().liquidDrop);
if(!parts.isEmpty()){
tryPlace(parts.random(), tile.x, tile.y);
@@ -94,10 +98,6 @@ public class BaseGenerator{
//small walls
pass(tile -> {
//no walls around cores
if(cores.contains(t -> t.within(tile, (3 + 4) * tilesize))){
return;
}
if(tile.block().alwaysReplace){
boolean any = false;
@@ -175,19 +175,20 @@ public class BaseGenerator{
}
if(part.required instanceof Item){
Item item = (Item)part.required;
for(Stile tile : result.tiles){
if(tile.block instanceof Drill){
tile.block.iterateTaken(tile.x + cx, tile.y + cy, (ex, ey) -> {
if(!tiles.getn(ex, ey).floor().isLiquid){
tiles.getn(ex, ey).setOverlay(ores.get((Item)part.required));
set(tiles.getn(ex, ey), item);
}
Tile rand = tiles.getc(ex + Mathf.range(1), ey + Mathf.range(1));
if(!rand.floor().isLiquid){
//random ores nearby to make it look more natural
rand.setOverlay(ores.get((Item)part.required));
set(rand, item);
}
});
}
@@ -196,9 +197,32 @@ public class BaseGenerator{
Schematics.place(result, cx + result.width/2, cy + result.height/2, team);
//fill drills with items after placing
if(part.required instanceof Item){
Item item = (Item)part.required;
for(Stile tile : result.tiles){
if(tile.block instanceof Drill){
Building build = world.tile(tile.x + cx, tile.y + cy).build;
if(build != null){
build.items.add(item, build.block.itemCapacity);
}
}
}
}
return true;
}
void set(Tile tile, Item item){
if(ores.containsKey(item)){
tile.setOverlay(ores.get(item));
}else if(oreFloors.containsKey(item)){
tile.setFloor(oreFloors.get(item));
}
}
boolean isTaken(Block block, int x, int y){
int offsetx = -(block.size - 1) / 2;
int offsety = -(block.size - 1) / 2;

View File

@@ -326,7 +326,7 @@ public class Tile implements Position, QuadTreeObject, Displayable{
setOverlay(content.block(ore));
}
public void setOverlay(Block block){
public void setOverlay(@NonNull Block block){
this.overlay = (Floor)block;
recache();