From a4962c52251ea237e058da28e1fc37d9f7a5fa39 Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 16 Apr 2018 17:41:49 -0400 Subject: [PATCH] Basic documentation for fire/puddles --- core/assets/version.properties | 4 ++-- .../anuke/mindustry/entities/effect/Fire.java | 21 +++++++++++-------- .../mindustry/entities/effect/Puddle.java | 3 +++ core/src/io/anuke/mindustry/world/Block.java | 2 ++ 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/core/assets/version.properties b/core/assets/version.properties index 58fcb54a5c..a151039522 100644 --- a/core/assets/version.properties +++ b/core/assets/version.properties @@ -1,7 +1,7 @@ #Autogenerated file. Do not modify. -#Mon Apr 16 17:31:30 EDT 2018 +#Mon Apr 16 17:40:39 EDT 2018 version=release -androidBuildCode=928 +androidBuildCode=930 name=Mindustry code=3.5 build=custom build diff --git a/core/src/io/anuke/mindustry/entities/effect/Fire.java b/core/src/io/anuke/mindustry/entities/effect/Fire.java index 36902ce329..b40176a4c5 100644 --- a/core/src/io/anuke/mindustry/entities/effect/Fire.java +++ b/core/src/io/anuke/mindustry/entities/effect/Fire.java @@ -15,17 +15,25 @@ import io.anuke.ucore.util.Mathf; import static io.anuke.mindustry.Vars.*; public class Fire extends TimedEntity { - private static GridMap map = new GridMap<>(); + private static final GridMap map = new GridMap<>(); + private static final float baseLifetime = 1000f; private Tile tile; private float baseFlammability = -1, puddleFlammability; + /**Start a fire on the tile. If there already is a file there, refreshes its lifetime..*/ public static void create(Tile tile){ - if(!map.containsKey(tile.x, tile.y)){ - new Fire(tile).add(); + Fire fire = map.get(tile.x, tile.y); + + if(fire == null){ + map.put(tile.x, tile.y, new Fire(tile).add()); + }else{ + fire.lifetime = baseLifetime; + fire.time = 0f; } } + /**Attempts to extinguish a fire by shortening its life. If there is no fire here, does nothing.*/ public static void extinguish(Tile tile, float intensity){ if(map.containsKey(tile.x, tile.y)){ map.get(tile.x, tile.y).time += intensity * Timers.delta(); @@ -34,7 +42,7 @@ public class Fire extends TimedEntity { private Fire(Tile tile){ this.tile = tile; - lifetime = 1000f; + lifetime = baseLifetime; } @Override @@ -90,11 +98,6 @@ public class Fire extends TimedEntity { return add(effectGroup); } - @Override - public void added() { - map.put(tile.x, tile.y, this); - } - @Override public void removed() { map.remove(tile.x, tile.y); diff --git a/core/src/io/anuke/mindustry/entities/effect/Puddle.java b/core/src/io/anuke/mindustry/entities/effect/Puddle.java index 722341da38..9ef08df987 100644 --- a/core/src/io/anuke/mindustry/entities/effect/Puddle.java +++ b/core/src/io/anuke/mindustry/entities/effect/Puddle.java @@ -36,14 +36,17 @@ public class Puddle extends Entity { private int generation; private float accepting; + /**Deposists a puddle between tile and source.*/ public static void deposit(Tile tile, Tile source, Liquid liquid, float amount){ deposit(tile, source, liquid, amount, 0); } + /**Deposists a puddle at a tile.*/ public static void deposit(Tile tile, Liquid liquid, float amount){ deposit(tile, tile, liquid, amount, 0); } + /**Returns the puddle on the specified tile. May return null.*/ public static Puddle getPuddle(Tile tile){ return map.get(tile.x, tile.y); } diff --git a/core/src/io/anuke/mindustry/world/Block.java b/core/src/io/anuke/mindustry/world/Block.java index 4bf32b8719..950eb78375 100644 --- a/core/src/io/anuke/mindustry/world/Block.java +++ b/core/src/io/anuke/mindustry/world/Block.java @@ -243,6 +243,8 @@ public class Block extends BaseBlock { DamageArea.dynamicExplosion(x, y, flammability, explosiveness, power, tilesize * size/2f, tempColor); } + /**Returns the flammability of the tile. Used for fire calculations. + * Takes flammability of floor liquid into account.*/ public float getFlammability(Tile tile){ if(!hasInventory || tile.entity == null){ if(tile.floor().liquid && !solid){