Sensors, SetProp, and SetRule (#9943)

* some fun things for world proc only

* fix the format artifact

* SetProp and reformating

* Wildcard imports

* Wildcard imports

* velocity conversion

* compacting description

Co-authored-by: Anuken <arnukren@gmail.com>

* Update core/src/mindustry/world/blocks/defense/turrets/Turret.java

---------

Co-authored-by: Anuken <arnukren@gmail.com>
This commit is contained in:
TripleToxic
2024-07-07 11:28:19 -04:00
committed by GitHub
parent e07a739ae2
commit 82bcf5966e
8 changed files with 38 additions and 2 deletions

View File

@@ -4,6 +4,7 @@ import arc.struct.*;
import mindustry.content.*;
import mindustry.entities.bullet.*;
import mindustry.gen.*;
import mindustry.logic.*;
import mindustry.type.*;
import mindustry.world.consumers.*;
import mindustry.world.meta.*;
@@ -77,6 +78,14 @@ public class ContinuousLiquidTurret extends ContinuousTurret{
super.updateTile();
}
@Override
public Object senseObject(LAccess sensor){
return switch(sensor){
case currentAmmoType -> liquids.current();
default -> super.senseObject(sensor);
};
}
@Override
public boolean canConsume(){
return hasCorrectAmmo() && super.canConsume();

View File

@@ -11,6 +11,7 @@ import mindustry.entities.bullet.*;
import mindustry.game.EventType.*;
import mindustry.gen.*;
import mindustry.graphics.*;
import mindustry.logic.*;
import mindustry.type.*;
import mindustry.ui.*;
import mindustry.world.consumers.*;
@@ -107,6 +108,14 @@ public class ItemTurret extends Turret{
}
}
@Override
public Object senseObject(LAccess sensor){
return switch(sensor){
case currentAmmoType -> ammo.size > 0 ? ((ItemEntry)ammo.peek()).item : null;
default -> super.senseObject(sensor);
};
}
@Override
public void updateTile(){
unit.ammo((float)unit.type().ammoCapacity * totalAmmo / maxAmmo);

View File

@@ -6,6 +6,7 @@ import mindustry.core.*;
import mindustry.entities.*;
import mindustry.entities.bullet.*;
import mindustry.gen.*;
import mindustry.logic.*;
import mindustry.type.*;
import mindustry.world.*;
import mindustry.world.consumers.*;
@@ -72,6 +73,14 @@ public class LiquidTurret extends Turret{
super.updateTile();
}
@Override
public Object senseObject(LAccess sensor){
return switch(sensor){
case currentAmmoType -> liquids.current();
default -> super.senseObject(sensor);
};
}
@Override
protected void findTarget(){
if(extinguish && liquids.current().canExtinguish()){