Fixed bug with tile cache not updating after map change
This commit is contained in:
@@ -10,7 +10,9 @@ import com.badlogic.gdx.utils.Array;
|
||||
|
||||
import io.anuke.mindustry.GameState.State;
|
||||
import io.anuke.mindustry.ai.Pathfind;
|
||||
import io.anuke.mindustry.entities.*;
|
||||
import io.anuke.mindustry.entities.Player;
|
||||
import io.anuke.mindustry.entities.Weapon;
|
||||
import io.anuke.mindustry.entities.enemies.*;
|
||||
import io.anuke.mindustry.input.AndroidInput;
|
||||
import io.anuke.mindustry.input.GestureHandler;
|
||||
import io.anuke.mindustry.input.Input;
|
||||
@@ -85,6 +87,7 @@ public class Control extends RendererModule{
|
||||
|
||||
public void reset(){
|
||||
weapons.clear();
|
||||
Renderer.clearTiles();
|
||||
|
||||
weapons.add(Weapon.blaster);
|
||||
player.weapon = weapons.first();
|
||||
@@ -108,6 +111,8 @@ public class Control extends RendererModule{
|
||||
}
|
||||
|
||||
public void play(){
|
||||
Renderer.clearTiles();
|
||||
|
||||
player.x = World.core.worldx();
|
||||
player.y = World.core.worldy()-8;
|
||||
|
||||
|
||||
@@ -1,73 +1,73 @@
|
||||
package io.anuke.mindustry;
|
||||
|
||||
import static io.anuke.mindustry.Vars.*;
|
||||
import static io.anuke.mindustry.Vars.respawnduration;
|
||||
|
||||
import com.badlogic.gdx.graphics.Color;
|
||||
|
||||
import io.anuke.ucore.core.Draw;
|
||||
import io.anuke.ucore.entities.Effect;
|
||||
import io.anuke.ucore.core.Effects;
|
||||
import io.anuke.ucore.graphics.Hue;
|
||||
|
||||
public class EffectLoader{
|
||||
|
||||
public static void create(){
|
||||
|
||||
Effect.create("place", 16, e -> {
|
||||
Effects.create("place", 16, e -> {
|
||||
Draw.thickness(3f - e.ifract() * 2f);
|
||||
Draw.square(e.x, e.y, tilesize / 2f + e.ifract() * 3f);
|
||||
Draw.square(e.x, e.y, Vars.tilesize / 2f + e.ifract() * 3f);
|
||||
Draw.reset();
|
||||
});
|
||||
|
||||
Effect.create("spark", 10, e -> {
|
||||
Effects.create("spark", 10, e -> {
|
||||
Draw.thickness(1f);
|
||||
Draw.color(Hue.mix(Color.WHITE, Color.GRAY, e.ifract()));
|
||||
Draw.spikes(e.x, e.y, e.ifract() * 5f, 2, 8);
|
||||
Draw.reset();
|
||||
});
|
||||
|
||||
Effect.create("smelt", 10, e -> {
|
||||
Effects.create("smelt", 10, e -> {
|
||||
Draw.thickness(1f);
|
||||
Draw.color(Hue.mix(Color.YELLOW, Color.RED, e.ifract()));
|
||||
Draw.spikes(e.x, e.y, e.ifract() * 5f, 2, 8);
|
||||
Draw.reset();
|
||||
});
|
||||
|
||||
Effect.create("break", 12, e -> {
|
||||
Effects.create("break", 12, e -> {
|
||||
Draw.thickness(2f);
|
||||
Draw.color(Color.WHITE, Color.GRAY, e.ifract());
|
||||
Draw.spikes(e.x, e.y, e.ifract() * 5f, 2, 5);
|
||||
Draw.reset();
|
||||
});
|
||||
|
||||
Effect.create("hit", 10, e -> {
|
||||
Effects.create("hit", 10, e -> {
|
||||
Draw.thickness(1f);
|
||||
Draw.color(Hue.mix(Color.WHITE, Color.ORANGE, e.ifract()));
|
||||
Draw.spikes(e.x, e.y, e.ifract() * 3f, 2, 8);
|
||||
Draw.reset();
|
||||
});
|
||||
|
||||
Effect.create("shoot", 8, e -> {
|
||||
Effects.create("shoot", 8, e -> {
|
||||
Draw.thickness(1f);
|
||||
Draw.color(Hue.mix(Color.WHITE, Color.GOLD, e.ifract()));
|
||||
Draw.spikes(e.x, e.y, e.ifract() * 2f, 2, 5);
|
||||
Draw.reset();
|
||||
});
|
||||
|
||||
Effect.create("shoot2", 8, e -> {
|
||||
Effects.create("shoot2", 8, e -> {
|
||||
Draw.thickness(1f);
|
||||
Draw.color(Hue.mix(Color.WHITE, Color.SKY, e.ifract()));
|
||||
Draw.spikes(e.x, e.y, e.ifract() * 2f, 1, 5);
|
||||
Draw.reset();
|
||||
});
|
||||
|
||||
Effect.create("shoot3", 8, e -> {
|
||||
Effects.create("shoot3", 8, e -> {
|
||||
Draw.thickness(1f);
|
||||
Draw.color(Hue.mix(Color.WHITE, Color.GOLD, e.ifract()));
|
||||
Draw.spikes(e.x, e.y, e.ifract() * 2f, 1, 5);
|
||||
Draw.reset();
|
||||
});
|
||||
|
||||
Effect.create("explosion", 15, e -> {
|
||||
Effects.create("explosion", 15, e -> {
|
||||
Draw.thickness(2f);
|
||||
Draw.color(Hue.mix(Color.ORANGE, Color.GRAY, e.ifract()));
|
||||
Draw.spikes(e.x, e.y, 2f + e.ifract() * 3f, 4, 6);
|
||||
@@ -75,7 +75,7 @@ public class EffectLoader{
|
||||
Draw.reset();
|
||||
});
|
||||
|
||||
Effect.create("coreexplosion", 13, e -> {
|
||||
Effects.create("coreexplosion", 13, e -> {
|
||||
Draw.thickness(3f-e.ifract()*2f);
|
||||
Draw.color(Hue.mix(Color.ORANGE, Color.WHITE, e.ifract()));
|
||||
Draw.spikes(e.x, e.y, 5f + e.ifract() * 40f, 6, 6);
|
||||
@@ -83,28 +83,28 @@ public class EffectLoader{
|
||||
Draw.reset();
|
||||
});
|
||||
|
||||
Effect.create("smoke", 100, e -> {
|
||||
Effects.create("smoke", 100, e -> {
|
||||
Draw.color(Color.GRAY, new Color(0.3f, 0.3f, 0.3f, 1f), e.ifract());
|
||||
float size = 7f-e.ifract()*7f;
|
||||
Draw.rect("circle", e.x, e.y, size, size);
|
||||
Draw.reset();
|
||||
});
|
||||
|
||||
Effect.create("spawn", 23, e -> {
|
||||
Effects.create("spawn", 23, e -> {
|
||||
Draw.thickness(2f);
|
||||
Draw.color(Hue.mix(Color.DARK_GRAY, Color.SCARLET, e.ifract()));
|
||||
Draw.circle(e.x, e.y, 7f - e.ifract() * 6f);
|
||||
Draw.reset();
|
||||
});
|
||||
|
||||
Effect.create("ind", 100, e -> {
|
||||
Effects.create("ind", 100, e -> {
|
||||
Draw.thickness(3f);
|
||||
Draw.color("royal");
|
||||
Draw.circle(e.x, e.y, 3);
|
||||
Draw.reset();
|
||||
});
|
||||
|
||||
Effect.create("respawn", respawnduration, e -> {
|
||||
Effects.create("respawn", respawnduration, e -> {
|
||||
Draw.tcolor(Color.SCARLET);
|
||||
Draw.tscl(0.25f);
|
||||
Draw.text("Respawning in " + (int)((e.lifetime-e.time)/60), e.x, e.y);
|
||||
|
||||
@@ -33,7 +33,6 @@ public class Renderer{
|
||||
|
||||
//render the entire map
|
||||
if(caches.size() == 0){
|
||||
|
||||
for(int cx = 0; cx < chunksx; cx ++){
|
||||
for(int cy = 0; cy < chunksy; cy ++){
|
||||
Caches.begin(1600);
|
||||
@@ -102,6 +101,13 @@ public class Renderer{
|
||||
}
|
||||
}
|
||||
|
||||
public static void clearTiles(){
|
||||
for(Cache cache : caches.values())
|
||||
cache.dispose();
|
||||
|
||||
caches.clear();
|
||||
}
|
||||
|
||||
public static void renderPixelOverlay(){
|
||||
|
||||
if(player.recipe != null && (!ui.hasMouse() || android)){
|
||||
|
||||
@@ -7,7 +7,7 @@ import com.badlogic.gdx.math.Vector2;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
|
||||
import io.anuke.mindustry.World;
|
||||
import io.anuke.mindustry.entities.Enemy;
|
||||
import io.anuke.mindustry.entities.enemies.Enemy;
|
||||
import io.anuke.mindustry.world.Tile;
|
||||
public class Pathfind{
|
||||
static MHueristic heuristic = new MHueristic();
|
||||
|
||||
@@ -3,6 +3,7 @@ package io.anuke.mindustry.entities;
|
||||
import com.badlogic.gdx.utils.ObjectMap;
|
||||
|
||||
import io.anuke.mindustry.Vars;
|
||||
import io.anuke.mindustry.entities.enemies.Enemy;
|
||||
import io.anuke.mindustry.resource.Item;
|
||||
import io.anuke.mindustry.world.Tile;
|
||||
import io.anuke.mindustry.world.blocks.Blocks;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package io.anuke.mindustry.entities;
|
||||
package io.anuke.mindustry.entities.enemies;
|
||||
|
||||
import io.anuke.mindustry.entities.BulletType;
|
||||
import io.anuke.ucore.core.Draw;
|
||||
|
||||
public class BossEnemy extends Enemy{
|
||||
@@ -1,10 +1,13 @@
|
||||
package io.anuke.mindustry.entities;
|
||||
package io.anuke.mindustry.entities.enemies;
|
||||
|
||||
import com.badlogic.gdx.math.Vector2;
|
||||
|
||||
import io.anuke.mindustry.Vars;
|
||||
import io.anuke.mindustry.World;
|
||||
import io.anuke.mindustry.ai.Pathfind;
|
||||
import io.anuke.mindustry.entities.Bullet;
|
||||
import io.anuke.mindustry.entities.BulletType;
|
||||
import io.anuke.mindustry.entities.Player;
|
||||
import io.anuke.mindustry.world.Tile;
|
||||
import io.anuke.ucore.core.Draw;
|
||||
import io.anuke.ucore.core.Effects;
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.anuke.mindustry.entities;
|
||||
package io.anuke.mindustry.entities.enemies;
|
||||
|
||||
import io.anuke.ucore.core.Draw;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package io.anuke.mindustry.entities;
|
||||
package io.anuke.mindustry.entities.enemies;
|
||||
|
||||
import io.anuke.mindustry.entities.BulletType;
|
||||
import io.anuke.ucore.core.Draw;
|
||||
|
||||
public class FlameEnemy extends Enemy{
|
||||
@@ -6,6 +6,7 @@ import com.badlogic.gdx.math.MathUtils;
|
||||
|
||||
import io.anuke.mindustry.Vars;
|
||||
import io.anuke.mindustry.entities.*;
|
||||
import io.anuke.mindustry.entities.enemies.Enemy;
|
||||
import io.anuke.mindustry.resource.Item;
|
||||
import io.anuke.mindustry.world.Block;
|
||||
import io.anuke.mindustry.world.Tile;
|
||||
|
||||
5
core/src/io/anuke/ucore/function/BiConsumer.java
Normal file
5
core/src/io/anuke/ucore/function/BiConsumer.java
Normal file
@@ -0,0 +1,5 @@
|
||||
package io.anuke.ucore.function;
|
||||
|
||||
public interface BiConsumer<T, N>{
|
||||
public void accept(T t, N n);
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package io.anuke.ucore.function;
|
||||
|
||||
import com.badlogic.gdx.math.Rectangle;
|
||||
|
||||
public interface BoundingBoxProvider<T>{
|
||||
public void getBoundingBox(T type, Rectangle out);
|
||||
}
|
||||
7
core/src/io/anuke/ucore/function/CollisionMap.java
Normal file
7
core/src/io/anuke/ucore/function/CollisionMap.java
Normal file
@@ -0,0 +1,7 @@
|
||||
package io.anuke.ucore.function;
|
||||
|
||||
import io.anuke.ucore.aabb.Collider;
|
||||
|
||||
public interface CollisionMap{
|
||||
public boolean valid(Collider c, float x, float y);
|
||||
}
|
||||
7
core/src/io/anuke/ucore/function/ContactFilter.java
Normal file
7
core/src/io/anuke/ucore/function/ContactFilter.java
Normal file
@@ -0,0 +1,7 @@
|
||||
package io.anuke.ucore.function;
|
||||
|
||||
import io.anuke.ucore.aabb.Collider;
|
||||
|
||||
public interface ContactFilter{
|
||||
public boolean collide(Collider a, Collider b);
|
||||
}
|
||||
7
core/src/io/anuke/ucore/function/ContactListener.java
Normal file
7
core/src/io/anuke/ucore/function/ContactListener.java
Normal file
@@ -0,0 +1,7 @@
|
||||
package io.anuke.ucore.function;
|
||||
|
||||
import io.anuke.ucore.aabb.Collider;
|
||||
|
||||
public interface ContactListener{
|
||||
public void onContact(Collider a, Collider b);
|
||||
}
|
||||
7
core/src/io/anuke/ucore/function/EffectProvider.java
Normal file
7
core/src/io/anuke/ucore/function/EffectProvider.java
Normal file
@@ -0,0 +1,7 @@
|
||||
package io.anuke.ucore.function;
|
||||
|
||||
import com.badlogic.gdx.graphics.Color;
|
||||
|
||||
public interface EffectProvider{
|
||||
public void createEffect(String name, Color color, float x, float y);
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package io.anuke.ucore.function;
|
||||
|
||||
import io.anuke.ucore.entities.Effect;
|
||||
import io.anuke.ucore.core.Effects.EffectContainer;
|
||||
|
||||
public interface EffectRenderer{
|
||||
public void render(Effect effect);
|
||||
public void render(EffectContainer effect);
|
||||
}
|
||||
|
||||
5
core/src/io/anuke/ucore/function/Supplier.java
Normal file
5
core/src/io/anuke/ucore/function/Supplier.java
Normal file
@@ -0,0 +1,5 @@
|
||||
package io.anuke.ucore.function;
|
||||
|
||||
public interface Supplier<T>{
|
||||
public T get();
|
||||
}
|
||||
Reference in New Issue
Block a user