mirror of
https://github.com/Anuken/Mindustry.git
synced 2025-02-13 12:16:53 +07:00
New base parts
This commit is contained in:
parent
905f1608de
commit
ef617b7fd2
BIN
core/assets/baseparts/1599594352859.msch
Normal file
BIN
core/assets/baseparts/1599594352859.msch
Normal file
Binary file not shown.
2
core/assets/baseparts/752911659508695080.msch
Normal file
2
core/assets/baseparts/752911659508695080.msch
Normal file
@ -0,0 +1,2 @@
|
||||
mschxœE’}r›@ŵ|Ã.0ÉôÜ%ôÄÞºLlp×<70>4éiz47Cß[eÚa˜Z==ieËé<>dóxñò°N>|ý¼ZÞð5†NúÃ2ž‡ƒŸ×0}ÛN^Úóôc›ŽÃmÙÂ!Ö¬ã<m—á°Ì¯þ} bòŽá}¸n—ë?yX¶Õi¯Ûùæ©=nÓ*ö3‹i®ì:ÌËÑKÿ¦ãÉÿ7íßFÔþçÆÃÊ.·å<†á:ÎþŒ`P¯4ÀH[xžf?œüìÃHqñÙ^dÄ+•ty&‰IÄH#VáDRIðò'9P#DeBIr àhšJ+&E‰0—!–¥˜‘Ò}<7D>¦Éþgÿ@e&®Zj{˜<ºFdŠ\Q+…U81Ð2*tÀ‚’
|
||||
på¾ï¿ðþž¶L–ô.<2E>¼ªb_#é~ß?ðÜ1ZiÃýY¢²’×Ë00FË…Þi
`‡D#)WIƒ R‰›Š;¨iÅÈ)ZEGe£Ê†JÞªÜ •†V“QjUj¹"ç=¬•‰m¸Œ’óYšV<0F>VEG"“øÛÁÃá)Ä•3¹xœRëZkµ®es<>æ:ÍuzÙŽž”üct´fTKB4*Á<>9•´ì×ÑÎI¯#õ:R¯#õ)—ä¢RXE+I-<2D>ü¥r æ™ã!VðG§u
|
BIN
core/assets/baseparts/752912199781056583.msch
Normal file
BIN
core/assets/baseparts/752912199781056583.msch
Normal file
Binary file not shown.
BIN
core/assets/baseparts/752912460620496957.msch
Normal file
BIN
core/assets/baseparts/752912460620496957.msch
Normal file
Binary file not shown.
BIN
core/assets/baseparts/752915237476368385.msch
Normal file
BIN
core/assets/baseparts/752915237476368385.msch
Normal file
Binary file not shown.
BIN
core/assets/baseparts/752915746673131550.msch
Normal file
BIN
core/assets/baseparts/752915746673131550.msch
Normal file
Binary file not shown.
BIN
core/assets/baseparts/752918895291007041.msch
Normal file
BIN
core/assets/baseparts/752918895291007041.msch
Normal file
Binary file not shown.
BIN
core/assets/baseparts/752918896331456582.msch
Normal file
BIN
core/assets/baseparts/752918896331456582.msch
Normal file
Binary file not shown.
BIN
core/assets/baseparts/752919619894902997.msch
Normal file
BIN
core/assets/baseparts/752919619894902997.msch
Normal file
Binary file not shown.
BIN
core/assets/baseparts/752921320802746461.msch
Normal file
BIN
core/assets/baseparts/752921320802746461.msch
Normal file
Binary file not shown.
1
core/assets/baseparts/752923816967012442.msch
Normal file
1
core/assets/baseparts/752923816967012442.msch
Normal file
@ -0,0 +1 @@
|
||||
mschxś5Í[ŽĂ ĐkôĄiŐ5ô;‹B4EĘK„Tęî{]k>ĐÁćÚŕG<>źÓ”qJµ•qĚőáź©Ś¸·ŇŇ\ö©–ů•ßKĹőŻ¦őYZîך·
±.{˶¦~[ö:dÜÖ9ďSječ+WxđŔÁ DŃ»hĄwçĐńU„°ęŕ-éY‹âŤŔő-č:Gtń:µ)„żh.2Ř8X˙¨Â˙oDt‚“EÎ˙<C38E>6ĎšT:ĂÁ<>ĆA·\8÷ĹŢ`äŇ#`
|
BIN
core/assets/baseparts/752926963076694047.msch
Normal file
BIN
core/assets/baseparts/752926963076694047.msch
Normal file
Binary file not shown.
BIN
core/assets/baseparts/752927009641857205.msch
Normal file
BIN
core/assets/baseparts/752927009641857205.msch
Normal file
Binary file not shown.
BIN
core/assets/baseparts/752930133874049034.msch
Normal file
BIN
core/assets/baseparts/752930133874049034.msch
Normal file
Binary file not shown.
4
core/assets/baseparts/752930845685448825.msch
Normal file
4
core/assets/baseparts/752930845685448825.msch
Normal file
@ -0,0 +1,4 @@
|
||||
mschxś-ÎMnÄ `ţŇÉbÔt5»ŠI\‰$# jŹ?~q<>˘đ32Mt3äö´1}ţpĺž—TľVţć˝q¤Ř–Ô;W
|
||||
ő8á´ćÖk~žý¨tí|nIzćµćRčţ›$4ó_ŻiAbjGIu~ĄťMąó6·ă¬ŃC~dÉ€ąÎ‚SFĚ0Ŕ’A‰<41>X4 2<C2A0>“2úp
|
||||
˛FD<"FĐçĺÚ8ÁéeŔÓ^łH^
AG
|
||||
Ř âȸ°ŠSţkA‰ŕS«8Ĺ+A‰dÝČËŚŁ}Â)*o
|
BIN
core/assets/baseparts/752932257538506823.msch
Normal file
BIN
core/assets/baseparts/752932257538506823.msch
Normal file
Binary file not shown.
1
core/assets/baseparts/752937073991745554.msch
Normal file
1
core/assets/baseparts/752937073991745554.msch
Normal file
@ -0,0 +1 @@
|
||||
mschxœ-Ík à)[‹¶úËSôPHI$¡mB©‰·w×5°ùL´¸70«_"ú=øZc™¼·è¶¾ãg+¸-1¼üš‚ÏÓ\RÎhÿA¸9íµ¤çQ)çR<C3A7>Ë´oG ÀƒÐ#´¢ƒ¢EÐåïÄ£$¢8¢¡åAÃÐжÂIh…N8½à„‹p®5\ÄÆrƒ¡;K½êø¥%
|
BIN
core/assets/baseparts/752937145978716332.msch
Normal file
BIN
core/assets/baseparts/752937145978716332.msch
Normal file
Binary file not shown.
1
core/assets/baseparts/752937230456193185.msch
Normal file
1
core/assets/baseparts/752937230456193185.msch
Normal file
@ -0,0 +1 @@
|
||||
mschxœMIƒ0—„"qhû<68>Üú¡,‰É8¢Ï¯ÓƒÇ£YlL˜®Æ˜OåXÂÆ5¼G<®¨,<2C>¿*1é!xi“%Wî–Ø¥9+—pMãY8}bÍ)îa•¼ïv°ÉÆA<C386>‹-»æS%/<17>Ù7ÁÞƒŒáîoÂëƒÁr€ äm;s
þ¦ë&Á÷.Œ›ø^±'<27>
|
1
core/assets/baseparts/752939992300388483.msch
Normal file
1
core/assets/baseparts/752939992300388483.msch
Normal file
@ -0,0 +1 @@
|
||||
mschxś=‘ n<>0E›} !]U˝—čMśÄJ‘Ŕ¦ĆnŐŰ×Ă—Š@_~üç‘<C3A7>Ţ)K(5jŃÔo«uzµ?Úł2ľ¦úf?}+ouóô¦űčlđÚQqłć&O<>î:=>´ŃnŻ6›ť•WeôLů˘Í]3îˇGĎŰ˙o¶ŮŕnšŠ«ňqÓ_jý§v‹šÇ5,+}®$>‚„<E2809A>!Iň*%!#Ţa«xóŰŚxÍśv"ˇK4%t =Lˇg\äH(1v=‡žŁ™Cϡ€ôÓKL/ˇWĐ+4+čô°†Ţ`z<>é
ôz‹f˝…ŢvĐ\ĚběÓĐ{č=š=ôúđ}ŔôÓ†9ťH”|XF'F‚žĎ<>Ä+GAçxüt/ź”t‰#âąđ?1"¬čŤĹÜV9ť
|
1
core/assets/baseparts/752941306489077823.msch
Normal file
1
core/assets/baseparts/752941306489077823.msch
Normal file
@ -0,0 +1 @@
|
||||
mschxœ-‹Kƒ0D'Ÿ†Ð®Ú]Á™<C381>E¬lB@D<>_!ËcûÍÁÀWšŸ|<7C>$N㺜,c]wè6Î3×Ï‹<0E>‘L…êÄ‚×vHæao6âJB¥ÐA¿’ ׆…5ЊN‡[Uæaœúšñ-
¾xۇo‚]þ¡&þ
|
BIN
core/assets/baseparts/752942460573057196.msch
Normal file
BIN
core/assets/baseparts/752942460573057196.msch
Normal file
Binary file not shown.
2
core/assets/baseparts/752944648628076745.msch
Normal file
2
core/assets/baseparts/752944648628076745.msch
Normal file
@ -0,0 +1,2 @@
|
||||
mschxœMŽan„ …Š®ºmMÿöŠètC‚`ºí‰{Š]:àŸ&ïñ˜=Þ¤Óázh·ª`öÝÒWiS‡Oa!Ìw)(úŽA/ѼzcÿÉyw”6Í¢Ö`¬å^)ÜHE'¾]¼¶j!ƒùL7Â{4Q;“6µx÷E?Ü¡>ñL{y¢œ_‰½ú̇±†“êØÈ–ðÁ…¶$ÊŽ†ˆ¶êj7CÃn‹6ÿŠŽõѳ!Ot-G+ĉæëoíÀè†.?ó£dò
—Ì<E28094>œkr/‰Ô8N4@Ϩƒd41úSq± c%
|
||||
ÆÄÉ<>M
|
BIN
core/assets/baseparts/752955880965799966.msch
Normal file
BIN
core/assets/baseparts/752955880965799966.msch
Normal file
Binary file not shown.
BIN
core/assets/baseparts/752961534690328648.msch
Normal file
BIN
core/assets/baseparts/752961534690328648.msch
Normal file
Binary file not shown.
BIN
core/assets/baseparts/752961607314702336.msch
Normal file
BIN
core/assets/baseparts/752961607314702336.msch
Normal file
Binary file not shown.
BIN
core/assets/baseparts/752965444419453010.msch
Normal file
BIN
core/assets/baseparts/752965444419453010.msch
Normal file
Binary file not shown.
BIN
core/assets/baseparts/752967201597947924.msch
Normal file
BIN
core/assets/baseparts/752967201597947924.msch
Normal file
Binary file not shown.
@ -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;
|
||||
|
@ -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();
|
||||
|
Loading…
Reference in New Issue
Block a user