Merge remote-tracking branch 'origin/master'

This commit is contained in:
Anuken 2021-06-06 21:01:55 -04:00
commit 9be4461b54
6 changed files with 51 additions and 20 deletions

View File

@ -1365,7 +1365,7 @@ hint.coreUpgrade = Merkezinizi, [accent]merkezinizin üstüne daha gelişmiş bi
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 çekirden ağzına kadar dolduktan sonra, ekstra itemler [accent]eritilir[].
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.
item.copper.description = En basit materyal. Her türlü blokda kullanılır.
@ -1449,7 +1449,7 @@ block.phase-conveyor.description = Gelişmiş materyal taşıma bloğu. Materyal
block.sorter.description = Materyalleri ayıklar. Eğer materyal seçilen ile eşleşiyorsa geçmesine izin verilir. Yoksa materyal sağa ya da sola atılır.
block.inverted-sorter.description = Materyalleri sıradan bir ayıklayıcı gibi işler, ancak seçili öğeleri önden değil yanlardan geçirir.
block.router.description = Materyalleri bir yönden alıp diğer üç yöne eşit olarak dağıtır. Materyalleri bir kaynaktan birden fazla hedefe iletmek için kullanılır.\n\n[scarlet]Asla üretim yapan binaların dibine yerleştirmeyin, yoksa istenmeyen materyaller tarafından tıkanabilir.[]
block.router.details = Gerekli bir Şeytan. Üretim yerlerinin yakına koymayın, bu onraı bozabilir ve tıkanıklığa yol açabilir!
block.router.details = [#ff]Sakın, asla, kattiyen iki tanesini yan yana koyma! Yoksa Tüm evren parçalanabilir!
block.distributor.description = Gelişmiş bir yönlendirici. Materyalleri yedi farklı yöne dağıtabilir.
block.overflow-gate.description = Ayırıcı ve yönlendiricinin bir karışımı. Materyalleri sadece ön kısım kapalı olduğunda sağa ve sola atar.
block.underflow-gate.description = Taşma geçidinin zıttıdır. Sol ve sağ taraf kapalıysa materyalleri ön tarafa atar.
@ -1497,7 +1497,7 @@ block.core-nucleus.details = Üçüncü ve Son Aşama.
block.vault.description = Her materyalden az miktarda saklar. Materyalleri kasadan almak için bir boşaltıcı bloğu kullanılabilir.
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 = Çekirdek kalkışına gerek duymadan materyalleri üsse gönderir.
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.
@ -1619,13 +1619,13 @@ graphicstype.linepoly = İçi Boş Çokgen Çiz.
graphicstype.triangle = İçi Dolu Üçgen Çiz.
graphicstype.image = Bir ikon çiz. \nörnek: [accent]@router[] veya [accent]@dagger[].
lenum.always = Her Zaman Doğru.
lenum.idiv = Tamsayı Bölme.
lenum.div = Bölme.
lenum.mod = Mod.
lenum.equal = Eşit.
lenum.notequal = Eşit Değil.
lenum.strictequal = Aynı.
lenum.always = Her Zaman Doğru
lenum.idiv = Tamsayı Bölme
lenum.div = Bölme
lenum.mod = Mod
lenum.equal = Eşit
lenum.notequal = Eşit Değil
lenum.strictequal = Aynı
lenum.shl = Shift Sol
lenum.shr = Shift Sağ
lenum.or = Veya
@ -1639,20 +1639,20 @@ lenum.max = İki sayıdan en büyüğü.
lenum.angle = İki Işının yaptığıı.
lenum.len = Bir Işının Uzunluğu.
lenum.sin = Sin
lenum.cos = Cos
lenum.tan = Tan
lenum.sin = Sinüs
lenum.cos = Cosinüs
lenum.tan = Tanjant
lenum.asin = Arc sin
lenum.acos = Arc cos
lenum.atan = Arc tan
lenum.asin = Arc Sinüs
lenum.acos = Arc Cosinüs
lenum.atan = Arc Tanjant
#not a typo, look up 'range notation'
lenum.rand = [0 ile Sayı) arasında rastgele bir sayı.
lenum.log = Logaritma
lenum.log10 = Logaritma 10
lenum.noise = 2D Noise
lenum.abs = Abs
lenum.abs = Absulute
lenum.sqrt = KareKök
lenum.any = Herhangi bir Birim.

View File

@ -31,11 +31,16 @@ public class Damage{
/** Creates a dynamic explosion based on specified parameters. */
public static void dynamicExplosion(float x, float y, float flammability, float explosiveness, float power, float radius, boolean damage){
dynamicExplosion(x, y, flammability, explosiveness, power, radius, damage, true, null);
dynamicExplosion(x, y, flammability, explosiveness, power, radius, damage, true, null, Fx.dynamicExplosion);
}
/** Creates a dynamic explosion based on specified parameters. */
public static void dynamicExplosion(float x, float y, float flammability, float explosiveness, float power, float radius, boolean damage, boolean fire, @Nullable Team ignoreTeam){
dynamicExplosion(x, y, flammability, explosiveness, power, radius, damage, fire, ignoreTeam, Fx.dynamicExplosion);
}
/** Creates a dynamic explosion based on specified parameters. */
public static void dynamicExplosion(float x, float y, float flammability, float explosiveness, float power, float radius, boolean damage, boolean fire, @Nullable Team ignoreTeam, Effect explosion){
if(damage){
for(int i = 0; i < Mathf.clamp(power / 700, 0, 8); i++){
int length = 5 + Mathf.clamp((int)(power / 500), 1, 20);
@ -69,7 +74,7 @@ public class Damage{
float shake = Math.min(explosiveness / 4f + 3f, 9f);
Effect.shake(shake, shake, x, y);
Fx.dynamicExplosion.at(x, y, radius / 8f);
explosion.at(x, y, radius / 8f);
}
public static void createIncend(float x, float y, float range, int amount){

View File

@ -450,7 +450,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
float power = item().charge * stack().amount * 150f;
if(!spawnedByCore){
Damage.dynamicExplosion(x, y, flammability, explosiveness, power, bounds() / 2f, state.rules.damageExplosions, item().flammability > 1, team);
Damage.dynamicExplosion(x, y, flammability, explosiveness, power, bounds() / 2f, state.rules.damageExplosions, item().flammability > 1, team, type.deathExplosionEffect);
}
float shake = hitSize / 3f;

View File

@ -71,6 +71,7 @@ public class UnitType extends UnlockableContent{
public boolean omniMovement = true;
public Effect fallEffect = Fx.fallSmoke;
public Effect fallThrusterEffect = Fx.fallSmoke;
public Effect deathExplosionEffect = Fx.dynamicExplosion;
public Seq<Ability> abilities = new Seq<>();
public BlockFlag targetFlag = BlockFlag.generator;

View File

@ -0,0 +1,20 @@
package mindustry.world.blocks.power;
import arc.func.*;
import mindustry.gen.*;
import mindustry.world.consumers.*;
/** A power consumer that uses a dynamic amount of power. */
public class DynamicConsumePower extends ConsumePower{
private final Floatf<Building> usage;
public DynamicConsumePower(Floatf<Building> usage){
super(0, 0, false);
this.usage = usage;
}
@Override
public float requestedPower(Building entity){
return usage.get(entity);
}
}

View File

@ -68,6 +68,11 @@ public class Consumers{
return add(new ConditionalConsumePower(usage, (Boolf<Building>)cons));
}
/** Creates a consumer that consumes a dynamic amount of power. */
public <T extends Building> ConsumePower powerDynamic(Floatf<T> usage){
return add(new DynamicConsumePower((Floatf<Building>)usage));
}
/**
* Creates a consumer which stores power.
* @param powerCapacity The maximum capacity in power units.