diff --git a/core/assets-raw/sprites/blocks/turrets/afflict/afflict.png b/core/assets-raw/sprites/blocks/turrets/afflict/afflict.png index 1ca2900675..d075c56d0b 100644 Binary files a/core/assets-raw/sprites/blocks/turrets/afflict/afflict.png and b/core/assets-raw/sprites/blocks/turrets/afflict/afflict.png differ diff --git a/core/src/mindustry/logic/Senseable.java b/core/src/mindustry/logic/Senseable.java index 6ae99afbfa..f82c485b83 100644 --- a/core/src/mindustry/logic/Senseable.java +++ b/core/src/mindustry/logic/Senseable.java @@ -6,7 +6,10 @@ public interface Senseable{ Object noSensed = new Object(); double sense(LAccess sensor); - double sense(Content content); + + default double sense(Content content){ + return 0; + } default Object senseObject(LAccess sensor){ return noSensed; diff --git a/core/src/mindustry/type/Item.java b/core/src/mindustry/type/Item.java index fde04f9363..d740b9a116 100644 --- a/core/src/mindustry/type/Item.java +++ b/core/src/mindustry/type/Item.java @@ -9,12 +9,13 @@ import mindustry.ctype.*; import mindustry.game.EventType.*; import mindustry.graphics.*; import mindustry.graphics.MultiPacker.*; +import mindustry.logic.*; import mindustry.world.blocks.environment.*; import mindustry.world.meta.*; import static mindustry.Vars.*; -public class Item extends UnlockableContent{ +public class Item extends UnlockableContent implements Senseable{ public Color color; /** how explosive this item is. */ @@ -129,6 +130,18 @@ public class Item extends UnlockableContent{ } } + @Override + public double sense(LAccess sensor){ + if(sensor == LAccess.color) return color.toFloatBits(); + return 0; + } + + @Override + public Object senseObject(LAccess sensor){ + if(sensor == LAccess.name) return name; + return noSensed; + } + /** Allocates a new array containing all items that generate ores. */ public static Seq getAllOres(){ return content.blocks().select(b -> b instanceof OreBlock).map(b -> b.itemDrop); diff --git a/core/src/mindustry/type/Liquid.java b/core/src/mindustry/type/Liquid.java index d68af2a30b..dddde8968d 100644 --- a/core/src/mindustry/type/Liquid.java +++ b/core/src/mindustry/type/Liquid.java @@ -10,12 +10,13 @@ import mindustry.entities.*; import mindustry.game.*; import mindustry.gen.*; import mindustry.graphics.*; +import mindustry.logic.*; import mindustry.world.meta.*; import static mindustry.entities.Puddles.*; /** A better name for this class would be "fluid", but it's too late for that. */ -public class Liquid extends UnlockableContent{ +public class Liquid extends UnlockableContent implements Senseable{ //must be static and global so conduits don't conflict - DO NOT INTERACT WITH THESE IN MODS OR I WILL PERSONALLY YELL AT YOU public static final int animationFrames = 50; public static float animationScaleGas = 190f, animationScaleLiquid = 230f; @@ -147,6 +148,18 @@ public class Liquid extends UnlockableContent{ stats.addPercent(Stat.viscosity, viscosity); } + @Override + public double sense(LAccess sensor){ + if(sensor == LAccess.color) return color.toFloatBits(); + return 0; + } + + @Override + public Object senseObject(LAccess sensor){ + if(sensor == LAccess.name) return name; + return noSensed; + } + @Override public String toString(){ return localizedName; diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index 1195767a33..2276995b94 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -1153,7 +1153,7 @@ public class Block extends UnlockableContent implements Senseable{ @Override public double sense(LAccess sensor){ return switch(sensor){ - case color -> Color.toDoubleBits(mapColor.r, mapColor.g, mapColor.b, mapColor.a); + case color -> mapColor.toDoubleBits(); case health, maxHealth -> health; case size -> size * tilesize; case itemCapacity -> itemCapacity; diff --git a/gradle.properties b/gradle.properties index c50f6b3d4d..f3173d6724 100644 --- a/gradle.properties +++ b/gradle.properties @@ -24,4 +24,4 @@ android.useAndroidX=true #used for slow jitpack builds; TODO see if this actually works org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.connectionTimeout=100000 -archash=f95111f269 +archash=df5b4b832c