Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/latest' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
Tianlalu233 committed Aug 5, 2021
2 parents 53b7540 + 46eeb8b commit 45dfa9e
Show file tree
Hide file tree
Showing 61 changed files with 391 additions and 165 deletions.
1 change: 1 addition & 0 deletions annotations/src/main/resources/revisions/PuddleComp/1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{version:1,fields:[{name:amount,type:float},{name:liquid,type:mindustry.type.Liquid},{name:tile,type:mindustry.world.Tile},{name:x,type:float},{name:y,type:float}]}
4 changes: 2 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -341,10 +341,10 @@ project(":core"){
}
}
def changelogs = file("../fastlane/metadata/android/en-US/changelogs/")
changelogs.mkdirs()
try{
new File(changelogs, androidVersion + ".txt").text = (result)
}catch(Exception e){
e.printStackTrace()
}catch(Exception ignored){
}
}
}
Expand Down
Binary file added core/assets-raw/sprites/teams/team-crux.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added core/assets-raw/sprites/teams/team-derelict.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added core/assets-raw/sprites/teams/team-sharded.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 3 additions & 4 deletions core/assets/bundles/bundle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,7 @@ data.invalid = This isn't valid game data.
data.import.confirm = Importing external data will overwrite[scarlet] all[] your current game data.\n[accent]This cannot be undone![]\n\nOnce the data is imported, your game will exit immediately.
quit.confirm = Are you sure you want to quit?
loading = [accent]Loading...
reloading = [accent]Reloading Mods...
downloading = [accent]Downloading...
saving = [accent]Saving...
respawn = [accent][[{0}][] to respawn in core
cancelbuilding = [accent][[{0}][] to clear plan
Expand Down Expand Up @@ -894,6 +894,7 @@ setting.seconds = {0} seconds
setting.milliseconds = {0} milliseconds
setting.fullscreen.name = Fullscreen
setting.borderlesswindow.name = Borderless Window
setting.borderlesswindow.name.windows = Borderless Fullscreen
setting.borderlesswindow.description = Restart may be required to apply changes.
setting.fps.name = Show FPS & Ping
setting.smoothcamera.name = Smooth Camera
Expand Down Expand Up @@ -1152,7 +1153,6 @@ unit.reign.name = Reign
unit.vela.name = Vela
unit.corvus.name = Corvus

block.resupply-point.name = Resupply Point
block.parallax.name = Parallax
block.cliff.name = Cliff
block.sand-boulder.name = Sand Boulder
Expand Down Expand Up @@ -1455,8 +1455,7 @@ liquid.slag.description = Refined in separators into constituent metals, or spra
liquid.oil.description = Used in advanced material production and as incendiary ammunition.
liquid.cryofluid.description = Used as coolant in reactors, turrets and factories.

block.derelict = [lightgray] Derelict
block.resupply-point.description = Resupplies nearby units with copper ammunition. Not compatible with units that require battery power.
block.derelict =  [lightgray]Derelict
block.armored-conveyor.description = Moves items forward. Does not accept inputs from the sides.
block.illuminator.description = Emits light.
block.message.description = Stores a message for communication between allies.
Expand Down
31 changes: 16 additions & 15 deletions core/assets/bundles/bundle_th.properties

Large diffs are not rendered by default.

24 changes: 19 additions & 5 deletions core/assets/bundles/bundle_tr.properties
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ customgame = Özel Oyun
newgame = Yeni Oyun
none = <yok>
none.found = [lightgray]<Bulunamadı>
none.inmap = [lightgray]<Haritada Bulunamadı>
minimap = Harita
position = Pozisyon
close = Kapat
Expand Down Expand Up @@ -214,6 +215,7 @@ hosts.none = [lightgray]Yerel oyun bulunamadı!
host.invalid = [scarlet]Kurucuya bağlanılamıyor.

servers.local = Yerel Sunucular
servers.local.steam = Açık Oyunar & Yerel Sunucular
servers.remote = Uzak Sunucular
servers.global = Topluluk Sunucuları

Expand Down Expand Up @@ -565,6 +567,7 @@ sectors.unexplored = [lightgray]Keşfedilmemiş
sectors.resources = Kaynaklar:
sectors.production = Üretim:
sectors.export = İhracat:
sectors.import = İthalat:
sectors.time = Zaman:
sectors.threat = Tehlike:
sectors.wave = Dalga:
Expand Down Expand Up @@ -806,6 +809,7 @@ bullet.reload = [stat]{0}[lightgray]x atış hızı
unit.blocks = blok
unit.blockssquared = blok²
unit.powersecond = enerji birimi/saniye
unit.tilessecond = alan/saniye
unit.liquidsecond = sıvı birimi/saniye
unit.itemssecond = eşya/saniye
unit.liquidunits = sıvı birimi
Expand Down Expand Up @@ -871,7 +875,8 @@ setting.saveinterval.name = Kayıt Aralığı
setting.seconds = {0} Saniye
setting.milliseconds = {0} milisaniye
setting.fullscreen.name = Tam Ekran
setting.borderlesswindow.name = Kenarsız Pencere [lightgray](yeniden açmak gerekebilir)
setting.borderlesswindow.name = Kenarsız Pencere
setting.borderlesswindow.description = Oyunu baştan açman gerekebilir.
setting.fps.name = FPS Göster
setting.smoothcamera.name = Yumuşak Geçişli Kamera
setting.vsync.name = VSync
Expand Down Expand Up @@ -994,6 +999,7 @@ rules.wavetimer = Dalga Zamanlayıcısı
rules.waves = Dalgalar
rules.attack = Saldırı Modu
rules.buildai = Yapay Zeka İnşası
rules.cleanupdeadteams = Kaybeden Takımın Bloklarını Temizle (PvP)
rules.corecapture = Yıkımca Çekirdeği Elegeçir
rules.polygoncoreprotection = Çokgenli Çekirdek Koruması
rules.enemyCheat = Sonsuz AI (Kırmızı Takım) Kaynakları
Expand Down Expand Up @@ -1288,7 +1294,6 @@ block.meltdown.name = Meltdown
block.foreshadow.name = Foreshadow
block.container.name = Konteyner
block.launch-pad.name = Kalkış Pisti
block.launch-pad-large.name = Büyük Kalkış Pisti
block.segment.name = Segment
block.command-center.name = Komuta Merkezi
block.ground-factory.name = Yer Birimi Fabrikası
Expand Down Expand Up @@ -1348,6 +1353,7 @@ hint.placeTurret = \uf861 [accent]Silahlar[] seni düşman birimlerinden korumak
hint.breaking = Blokları silmek için silmek istediğiniz objelerin üstüne [accent]Sağ Tıklayın[]. Birden fazla obje silmek için sağ tuşu basılı tutun ve farenizi sürükleyin.
hint.breaking.mobile = Ekranın sağ altındaki \ue817 [accent]çekiç[] tuşuna basın ve silmek istediğiniz objelere tıklayın. \n\nBirden fazla obje silmek için parmağınızı ekranda 1 saniye basılı tutun ve parmağınızı sürükleyin.
hint.blockInfo = Bir blok hakkında bilgiyi görüntülemek için [accent]inşa menüsüne[] tıklayın. Sonra sağdaki [accent][[?][] sembolüne tıklayın.
hint.derelict = [accent]Sahipsiz[] binalar artık çalışmaz durumdadır. \n\nBu binaları [accent]yıkarsanız[] size malzeme verirler.
hint.research = \ue875 [accent]Araştırma[] sekmesini kullanarak yeni teknolojiler araştırabilirsiniz.
hint.research.mobile = \ue88c [accent]Menüdeki[] \ue875 [accent]Araştırma[] sekmesini kullanarak yeni teknolojiler araştırabilirsiniz.
hint.unitControl = Kendi takımınızdaki taret ve birimleri kontrol etmek için [accent][[Sol CTRL][] tuşunu basılı tutarak istediğiniz taretin yada birimin üstüne sol tıklayın.
Expand All @@ -1369,8 +1375,6 @@ hint.generator = \uf879 [accent]Termik Jeneratör[] kömür yakarak enerji üret
hint.guardian = [accent]Gardiyan[] birimleri güçlü bir zırha sahiptir. [accent]bakır[] ve [accent]kurşun[] gibi mermilere karşı [scarlet]Dayanıklıdır[].\n\nGardiyanları öldürmek için [accent]salvo[] gibi daha güçlü taretleri ve \uf835 [accent]grafit[] gibi daha çok hasar veren mermileri kullanın.
hint.coreUpgrade = Merkezinizi, [accent]merkezinizin üstüne daha gelişmiş bir merkez[] koyarak geliştirebilirsiniz. \n\n[accent]Parçacık[] olarak adlandırılan fakirhanenizin üstüne [accent]Temel[] olarak adlandırılan merkezinizi koyun. Merkezinizin etrafında hiçbir yapı olmamalıdır.
hint.presetLaunch = [accent]Donmuş Ormanlar[] gibi [accent]ana sektörlere iniş[] herhangi bir yerden yapılabilir. Yakındaki bir sektörden fırlatma gerektirmez.\n\nBunun gibi [accent]sayı ile isimlendirilmiş[] sektörleri ele geçirmek [accent]isteğe bağlıdır.[].
hint.coreUpgrade = Bir çekirdeğin Üstüne başka bir çekirdek koayarak onu geliştirebilirsin!\n\n Daha gelişmiş çekirdekler daha fazla kapasite demektir.
hint.presetLaunch = Hikaye Sektörlerine her yerden fırltış yapabilirsin! Ancak Numaralı Sektörlere temas olmadan Fırlatış yapılamaz.
hint.coreIncinerate = Bir çekirdek ağzına kadar dolduktan sonra, ekstra itemler [accent]eritilir[].
hint.coopCampaign = Arkadaşlarınla Multiplayer Campaign oynarken, her yaptığınız Araştırma ve item aktarımı, senin oyun içi Campaign ine de aktarılır.
#Yukarıdaki bağzı cümleler Anti Dragon tarafından çevirildi.
Expand Down Expand Up @@ -1401,6 +1405,7 @@ liquid.slag.description = Çeşitli tipte erimiş metallerin birbirine karışı
liquid.oil.description = İleri seviye malzeme üretiminde kullanılan bir sıvıdır. Yakıt olarak kömür haline getirilebilir veya püskürtülüp ateşe verilerek bir silah olarak kullanılabilir.
liquid.cryofluid.description = Su ve titanyumdan oluşturulan inaktif bir sıvı. Son derece yüksek ısı kapasitesine sahiptir. Soğutucu olarak yaygın olarak kullanılır.

block.derelict = [lightgray] Sahipsiz
block.resupply-point.description = Yakındaki birimlere mermi verir. Elektikle çalışmaz.
block.armored-conveyor.description = Materyalleri titanyum konveyörlerle aynı hızda taşır ama daha fazla zırha sahiptir. Diğer konveyörler dışında yan taraflardan materyal kabul etmez.
block.illuminator.description = Küçük, kompakt, yapılandırılabilir bir ışık kaynağı. Çalışması için enerji gerekir.
Expand Down Expand Up @@ -1504,7 +1509,6 @@ block.vault.description = Her materyalden az miktarda saklar. Materyalleri kasad
block.container.description = Her materyalden az miktarda saklar. Materyalleri konteynerden almak için bir boşaltıcı bloğu kullanılabilir.
block.unloader.description = Materyalleri bir konteyner, kasa, veya çekirdekten çıkarıp; bir konveyöre veya dibindeki bir bloğa koyar. Çıkardığı materyal türü dokunularak değiştirilebilir.
block.launch-pad.description = Başka Bir Sektöre item gönderir.
block.launch-pad-large.description = Kalkış pistinin daha gelişmiş bir versiyonu. Daha fazla materyali daha sık gönderebilir.
block.duo.description = Küçük, ucuz bir taret. Yer birimlerine karşı etkilidir.
block.scatter.description = Önemli bir uçaksavar tareti. Düşman birimlerine hurda ya da kurşun uçaksavar mermileri atar.
block.scorch.description = Etrafındaki düşmanları ateşe verir. Yakın mesafede çok etkilidir.
Expand All @@ -1519,6 +1523,7 @@ block.ripple.description = Çok güçlü bir havan tareti. Uzak mesafedeki düş
block.cyclone.description = Büyük bir anti hava ve anti kara tareti. Yakınındaki düşmanlara patlayıcı uçaksavar mermi kümeleri atar.
block.spectre.description = Dev bir çift namlulu top. Hava ve kara birimlerine iri, zırh delici mermiler atar.
block.meltdown.description = Dev bir lazer topu. Yüklenip yakındaki düşmanlara uzun süreli lazer ışınları yollar. Çalışması için soğutucu gerekir.
block.foreshadow.description = Çok uzaktaki Tek bir hedefe inanılmaz güçlü bir şok ışını vurur. En fazla canı olan elemanı hedef alır.
block.repair-point.description = Kendisine en yakın hasarlı birimi tamir eder.
block.segment.description = Gelen mermilere zarar verir ve onları yok eder. Lazer mermilere etki etmez.
block.parallax.description = Çekici bir ışın fırlatarak hava düşmanlarını kendine çeker. Onlara az da olsa zarar verir.
Expand All @@ -1545,6 +1550,8 @@ block.memory-bank.description = Bilgi saklar. Yüksek kapasiteye sahiptir.
block.logic-display.description = Bir işlemciden bilgi alarak grafik gösteririr.
block.large-logic-display.description = Bir işlemciden bilgi alarak grafik gösteririr.
block.interplanetary-accelerator.description = Gezegenler Arası ulaşım şimdi parmaklarının ucunda...
block.repair-turret.description = Sürekli en yakın elemanı tamir eder. Soğutucu kullanabilir.
block.payload-propulsion-tower.description = Kütle sürücü gibi bir yerden başka bir yere fırlatır, ancak malzeme yerine yük fırlatmakta kullanılır.
#burdan sonraki her şeyi benim translate etmem gerekti!!! -RTOmega
unit.dagger.description = Düşmanlara basit mermilerle ateş eder.
unit.mace.description = Düşmanlara alev atar.
Expand Down Expand Up @@ -1579,6 +1586,11 @@ unit.omura.description = Uzun menzil bir ışın atıcıya sahiptir. Mermisi ner
unit.alpha.description = Çekirdeği korur. Bina inşa eder.
unit.beta.description = Çekirdeği korur. Bina inşa eder.
unit.gamma.description = Çekirdeği korur. Bina inşa eder.
unit.retusa.description = Sensörlü mayın döşer. Yakındakileri tamir eder.
unit.oxynoe.description = Tamir edici ateş fırlatır. Düşman mermilerini havada vurur.
unit.cyerce.description = Takipçi toplu füze atar. Yakındakileri tamir eder.
unit.aegires.description = Enerji alanına giren düşmanları şoklar. Yakındakileri tamir eder.
unit.navanax.description = Devasa patlayıcı EMP gülleleri fırlatır, düşman elektir sistemlerini yok eder ve müttefiklerini tamir eder. Yaklaşan düşmanları 4 mini oto-laser turreti ile eritir.

lst.read = Bağlı hafıza kutusundaki numarayı okur.
lst.write = Bağlı hafıza kutuaundaki numaraya yazar.
Expand All @@ -1593,6 +1605,8 @@ lst.sensor = Bloklardan bilgi alır.
lst.set = Bir değişken ata.
lst.operation = Değişkenlerle işlem yap.
lst.end = Döngünün sonuna atla.
lst.wait = Belli süre bekler.
lst.lookup = ID kullanarak herhangi bir blok,eleman,bina vs ye bak.\nToplam sayı kullanımı:\n[accent]@unitCount[] / [accent]@itemCount[] / [accent]@liquidCount[] / [accent]@blockCount[]
lst.jump = Bir yerden başka bir yere atla.
lst.unitbind = Bir birimi bağla: [accent]@unit[].
lst.unitcontrol = Bağlı birimi kontrol et.
Expand Down
3 changes: 3 additions & 0 deletions core/assets/icons/icons.properties
Original file line number Diff line number Diff line change
Expand Up @@ -353,3 +353,6 @@
63353=silicon-arc-furnace|block-silicon-arc-furnace-ui
63352=metal-floor-4|block-metal-floor-4-ui
63351=invincible|status-invincible-ui
63356=sharded|team-sharded
63357=crux|team-crux
63358=derelict|team-derelict
59 changes: 31 additions & 28 deletions core/src/mindustry/ai/BlockIndexer.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
import mindustry.gen.*;
import mindustry.type.*;
import mindustry.world.*;
import mindustry.world.blocks.*;
import mindustry.world.meta.*;

import java.util.*;
Expand All @@ -32,7 +31,7 @@ public class BlockIndexer{
/** Stores all ore quadrants on the map. Maps ID to qX to qY to a list of tiles with that ore. */
private IntSeq[][][] ores;
/** Stores all damaged tile entities by team. */
private ObjectSet<Building>[] damagedTiles = new ObjectSet[Team.all.length];
private Seq<Building>[] damagedTiles = new Seq[Team.all.length];
/** All ores available on this map. */
private ObjectSet<Item> allOres = new ObjectSet<>();
/** Stores teams that are present here as tiles. */
Expand All @@ -59,7 +58,7 @@ public BlockIndexer(){
});

Events.on(WorldLoadEvent.class, event -> {
damagedTiles = new ObjectSet[Team.all.length];
damagedTiles = new Seq[Team.all.length];
flagMap = new TileArray[Team.all.length][BlockFlag.all.length];
activeTeams = new Seq<>(Team.class);

Expand All @@ -74,10 +73,6 @@ public BlockIndexer(){
for(Tile tile : world.tiles){
process(tile);

if(tile.build != null && tile.build.damaged()){
notifyTileDamaged(tile.build);
}

var drop = tile.drop();

if(drop != null){
Expand All @@ -104,6 +99,7 @@ public BlockIndexer(){
public void removeIndex(Tile tile){
var team = tile.team();
if(tile.build != null && tile.isCenter()){
var build = tile.build;
var flags = tile.block().flags;
var data = team.data();

Expand All @@ -118,7 +114,15 @@ public void removeIndex(Tile tile){

//unregister building from building quadtree
if(data.buildings != null){
data.buildings.remove(tile.build);
data.buildings.remove(build);
}

//is no longer registered
build.wasDamaged = false;

//unregister damaged buildings
if(build.damaged() && damagedTiles[team.id] != null){
damagedTiles[team.id].remove(build);
}
}
}
Expand Down Expand Up @@ -175,25 +179,12 @@ public boolean hasOre(Item item){
}

/** Returns all damaged tiles by team. */
public ObjectSet<Building> getDamaged(Team team){
breturnArray.clear();

public Seq<Building> getDamaged(Team team){
if(damagedTiles[team.id] == null){
damagedTiles[team.id] = new ObjectSet<>();
return damagedTiles[team.id] = new Seq<>(false);
}

ObjectSet<Building> set = damagedTiles[team.id];
for(Building build : set){
if((!build.isValid() || build.team != team || !build.damaged()) || build.block instanceof ConstructBlock){
breturnArray.add(build);
}
}

for(Building tile : breturnArray){
set.remove(tile);
}

return set;
return damagedTiles[team.id];
}

/** Get all allied blocks with a flag. */
Expand Down Expand Up @@ -271,12 +262,22 @@ public Seq<Tile> getEnemy(Team team, BlockFlag type){
return returnArray;
}

public void notifyTileDamaged(Building entity){
if(damagedTiles[entity.team.id] == null){
damagedTiles[entity.team.id] = new ObjectSet<>();
public void notifyBuildHealed(Building build){
if(build.wasDamaged && !build.damaged() && damagedTiles[build.team.id] != null){
damagedTiles[build.team.id].remove(build);
build.wasDamaged = false;
}
}

public void notifyBuildDamaged(Building build){
if(build.wasDamaged || !build.damaged()) return;

if(damagedTiles[build.team.id] == null){
damagedTiles[build.team.id] = new Seq<>(false);
}

damagedTiles[entity.team.id].add(entity);
damagedTiles[build.team.id].add(build);
build.wasDamaged = true;
}

public void allBuildings(float x, float y, float range, Cons<Building> cons){
Expand Down Expand Up @@ -417,6 +418,8 @@ private void process(Tile tile){
data.buildings = new QuadTree<>(new Rect(0, 0, world.unitWidth(), world.unitHeight()));
}
data.buildings.insert(tile.build);

notifyBuildDamaged(tile.build);
}

if(!tile.block().isStatic()){
Expand Down
10 changes: 0 additions & 10 deletions core/src/mindustry/ai/formations/Formation.java
Original file line number Diff line number Diff line change
Expand Up @@ -175,16 +175,6 @@ private int findMemberSlot(FormationMember member){
return -1;
}

// debug
public SlotAssignment getSlotAssignmentAt(int index){
return slotAssignments.get(index);
}

// debug
public int getSlotAssignmentCount(){
return slotAssignments.size;
}

/** Writes new slot locations to each member */
public void updateSlots(){
positionOffset.set(anchor);
Expand Down
10 changes: 8 additions & 2 deletions core/src/mindustry/ai/types/LogicAI.java
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ protected void updateMovement(){
}

//look where moving if there's nothing to aim at
if(!shoot){
if(!shoot || !unit.type.omniMovement){
unit.lookAt(unit.prefRotation());
}else if(unit.hasWeapons() && unit.mounts.length > 0 && !unit.mounts[0].weapon.ignoreRotation){ //if there is, look at the object
unit.lookAt(unit.mounts[0].aimX, unit.mounts[0].aimY);
Expand Down Expand Up @@ -131,7 +131,13 @@ protected void moveTo(Position target, float circleLength, float smooth){
//do not move when infinite vectors are used.
if(vec.isNaN() || vec.isInfinite()) return;

unit.approach(vec);
if(unit.type.omniMovement){
unit.approach(vec);
}else{
unit.rotateMove(vec);
}


}

@Override
Expand Down
3 changes: 2 additions & 1 deletion core/src/mindustry/async/AsyncCore.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import arc.*;
import arc.struct.*;
import arc.util.async.*;
import mindustry.game.EventType.*;

import java.util.concurrent.*;
Expand Down Expand Up @@ -49,7 +50,7 @@ public void begin(){
executor = Executors.newFixedThreadPool(processes.size, r -> {
Thread thread = new Thread(r, "AsyncLogic-Thread");
thread.setDaemon(true);
thread.setUncaughtExceptionHandler((t, e) -> Core.app.post(() -> { throw new RuntimeException(e); }));
thread.setUncaughtExceptionHandler((t, e) -> Threads.throwAppException(e));
return thread;
});
}
Expand Down
5 changes: 4 additions & 1 deletion core/src/mindustry/content/Blocks.java
Original file line number Diff line number Diff line change
Expand Up @@ -702,7 +702,9 @@ public void load(){
craftTime = 40f;
updateEffect = Fx.pulverizeSmall;
hasItems = hasPower = true;
drawer = new DrawRotator();
drawer = new DrawRotator(){{
drawSpinSprite = true;
}};
ambientSound = Sounds.grinding;
ambientSoundVolume = 0.025f;

Expand Down Expand Up @@ -1295,6 +1297,7 @@ public void load(){
drillEffect = Fx.mineHuge;
rotateSpeed = 6f;
warmupSpeed = 0.01f;
itemCapacity = 20;

//more than the laser drill
liquidBoostIntensity = 1.8f;
Expand Down
Loading

0 comments on commit 45dfa9e

Please sign in to comment.