Changed GridMap usage to IntMap

This commit is contained in:
Anuken
2018-04-17 09:06:55 -04:00
parent 7f2a0a77c7
commit 47d61c4a0e
3 changed files with 15 additions and 15 deletions

View File

@@ -1,6 +1,7 @@
package io.anuke.mindustry.entities.effect;
import com.badlogic.gdx.math.GridPoint2;
import com.badlogic.gdx.utils.IntMap;
import io.anuke.mindustry.content.StatusEffects;
import io.anuke.mindustry.content.fx.EnvironmentFx;
import io.anuke.mindustry.entities.TileEntity;
@@ -9,13 +10,12 @@ import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.entities.TimedEntity;
import io.anuke.ucore.util.Geometry;
import io.anuke.ucore.util.GridMap;
import io.anuke.ucore.util.Mathf;
import static io.anuke.mindustry.Vars.*;
public class Fire extends TimedEntity {
private static final GridMap<Fire> map = new GridMap<>();
private static final IntMap<Fire> map = new IntMap<>();
private static final float baseLifetime = 1000f;
private Tile tile;
@@ -23,10 +23,10 @@ public class Fire extends TimedEntity {
/**Start a fire on the tile. If there already is a file there, refreshes its lifetime..*/
public static void create(Tile tile){
Fire fire = map.get(tile.x, tile.y);
Fire fire = map.get(tile.packedPosition());
if(fire == null){
map.put(tile.x, tile.y, new Fire(tile).add());
map.put(tile.packedPosition(), new Fire(tile).add());
}else{
fire.lifetime = baseLifetime;
fire.time = 0f;
@@ -35,8 +35,8 @@ public class Fire extends TimedEntity {
/**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();
if(map.containsKey(tile.packedPosition())){
map.get(tile.packedPosition()).time += intensity * Timers.delta();
}
}
@@ -100,6 +100,6 @@ public class Fire extends TimedEntity {
@Override
public void removed() {
map.remove(tile.x, tile.y);
map.remove(tile.packedPosition());
}
}

View File

@@ -3,6 +3,7 @@ package io.anuke.mindustry.entities.effect;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.math.GridPoint2;
import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.utils.IntMap;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.content.blocks.Blocks;
import io.anuke.mindustry.content.fx.BlockFx;
@@ -18,13 +19,12 @@ import io.anuke.ucore.graphics.Fill;
import io.anuke.ucore.graphics.Hue;
import io.anuke.ucore.util.Angles;
import io.anuke.ucore.util.Geometry;
import io.anuke.ucore.util.GridMap;
import io.anuke.ucore.util.Mathf;
import static io.anuke.mindustry.Vars.world;
public class Puddle extends Entity {
private static final GridMap<Puddle> map = new GridMap<>();
private static final IntMap<Puddle> map = new IntMap<>();
private static final float maxLiquid = 70f;
private static final int maxGeneration = 2;
private static final Color tmp = new Color();
@@ -48,14 +48,14 @@ public class Puddle extends Entity {
/**Returns the puddle on the specified tile. May return null.*/
public static Puddle getPuddle(Tile tile){
return map.get(tile.x, tile.y);
return map.get(tile.packedPosition());
}
private static void deposit(Tile tile, Tile source, Liquid liquid, float amount, int generation){
Puddle p = map.get(tile.x, tile.y);
Puddle p = map.get(tile.packedPosition());
if(p == null){
Puddle puddle = new Puddle(tile, source, liquid, amount, generation).add();
map.put(tile.x, tile.y, puddle);
map.put(tile.packedPosition(), puddle);
}else if(p.liquid == liquid){
p.accepting = Math.max(amount, p.accepting);
@@ -156,7 +156,7 @@ public class Puddle extends Entity {
@Override
public void removed() {
map.remove(tile.x, tile.y);
map.remove(tile.packedPosition());
}
@Override