Re-structured Renderer, bugfixes, implemented EnemySpawn system

This commit is contained in:
Anuken
2017-09-23 11:50:50 -04:00
parent 446e70c52b
commit b3ef1e2f2f
13 changed files with 192 additions and 167 deletions

View File

@@ -79,7 +79,7 @@ project(":core") {
apply plugin: "java" apply plugin: "java"
dependencies { dependencies {
compile 'com.github.anuken:ucore:42a04f8cb4' compile 'com.github.anuken:ucore:bded68dbb2'
compile "com.badlogicgames.gdx:gdx:$gdxVersion" compile "com.badlogicgames.gdx:gdx:$gdxVersion"
compile "com.badlogicgames.gdx:gdx-ai:1.8.1" compile "com.badlogicgames.gdx:gdx-ai:1.8.1"
} }

View File

@@ -22,16 +22,15 @@ import io.anuke.mindustry.io.SaveIO;
import io.anuke.mindustry.resource.Weapon; import io.anuke.mindustry.resource.Weapon;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.World; import io.anuke.mindustry.world.World;
import io.anuke.mindustry.world.blocks.ProductionBlocks; import io.anuke.ucore.UCore;
import io.anuke.ucore.core.*; import io.anuke.ucore.core.*;
import io.anuke.ucore.entities.Entities; import io.anuke.ucore.entities.Entities;
import io.anuke.ucore.entities.Entity; import io.anuke.ucore.entities.Entity;
import io.anuke.ucore.graphics.Atlas; import io.anuke.ucore.graphics.Atlas;
import io.anuke.ucore.modules.ControlModule; import io.anuke.ucore.modules.Module;
import io.anuke.ucore.scene.ui.layout.Unit;
import io.anuke.ucore.util.Mathf; import io.anuke.ucore.util.Mathf;
public class Control extends ControlModule{ public class Control extends Module{
int targetscale = baseCameraScale; int targetscale = baseCameraScale;
boolean showedTutorial; boolean showedTutorial;
@@ -53,9 +52,6 @@ public class Control extends ControlModule{
Vars.debug = true; Vars.debug = true;
} }
Core.cameraScale = baseCameraScale;
pixelate();
Gdx.input.setCatchBackKey(true); Gdx.input.setCatchBackKey(true);
if(android){ if(android){
@@ -65,9 +61,7 @@ public class Control extends ControlModule{
Effects.setShakeFalloff(10000f); Effects.setShakeFalloff(10000f);
Draw.addSurface("shadow", Core.cameraScale); Core.atlas = new Atlas("sprites.atlas");
atlas = new Atlas("sprites.atlas");
Sounds.load("shoot.wav", "place.wav", "explosion.wav", "enemyshoot.wav", Sounds.load("shoot.wav", "place.wav", "explosion.wav", "enemyshoot.wav",
"corexplode.wav", "break.wav", "spawn.wav", "flame.wav", "die.wav", "corexplode.wav", "break.wav", "spawn.wav", "flame.wav", "die.wav",
@@ -95,19 +89,19 @@ public class Control extends ControlModule{
} }
player = new Player(); player = new Player();
spawns = Array.with(
new EnemySpawn(Enemy.class){{
}}
);
printEnemies(100);
} }
/*
public void setCameraScale(int scale){
Core.cameraScale = scale;
resize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
setCamera(player.x, player.y);
Draw.getSurface("pixel").setScale(Core.cameraScale);
Draw.getSurface("shadow").setScale(Core.cameraScale);
}
*/
public void reset(){ public void reset(){
weapons.clear(); weapons.clear();
Renderer.clearTiles(); Vars.renderer.clearTiles();
weapons.add(Weapon.blaster); weapons.add(Weapon.blaster);
player.weapon = weapons.first(); player.weapon = weapons.first();
@@ -131,12 +125,12 @@ public class Control extends ControlModule{
} }
public void play(){ public void play(){
Renderer.clearTiles(); Vars.renderer.clearTiles();
player.x = World.core.worldx(); player.x = World.core.worldx();
player.y = World.core.worldy() - 8f - ((int)(Gdx.graphics.getWidth() / (float)Core.cameraScale * 2) % 2 == 0 ? 0.5f : 0); player.y = World.core.worldy() - 8f - ((int)(Gdx.graphics.getWidth() / (float)Core.cameraScale * 2) % 2 == 0 ? 0.5f : 0);
control.camera.position.set(player.x, player.y, 0); Core.camera.position.set(player.x, player.y, 0);
//multiplying by 2 so you start with more time in the beginning //multiplying by 2 so you start with more time in the beginning
wavetime = waveSpacing()*2; wavetime = waveSpacing()*2;
@@ -210,12 +204,22 @@ public class Control extends ControlModule{
wavetime = waveSpacing(); wavetime = waveSpacing();
} }
void printEnemies(int wave){
for(EnemySpawn spawn : spawns){
int spawnamount = spawn.evaluate(wave, 0);
if(spawnamount > 0){
UCore.log(ClassReflection.getSimpleName(spawn.type) + " x" + spawnamount);
}
}
}
public void enemyDeath(){ public void enemyDeath(){
enemies --; enemies --;
} }
public void coreDestroyed(){ public void coreDestroyed(){
Effects.shake(5, 6, camera.position.x, camera.position.y); Effects.shake(5, 6, Core.camera.position.x, Core.camera.position.y);
Sounds.play("corexplode"); Sounds.play("corexplode");
Tile core = World.core; Tile core = World.core;
for(int i = 0; i < 16; i ++){ for(int i = 0; i < 16; i ++){
@@ -260,21 +264,6 @@ public class Control extends ControlModule{
return wave; return wave;
} }
public void setCameraScale(int amount){
targetscale = amount;
clampScale();
Draw.getSurface("pixel").setScale(targetscale);
Draw.getSurface("shadow").setScale(targetscale);
}
public void scaleCamera(int amount){
setCameraScale(targetscale + amount);
}
public void clampScale(){
targetscale = Mathf.clamp(targetscale, Math.round(Unit.dp.inPixels(3)), Math.round(Unit.dp.inPixels((5))));
}
@Override @Override
public void init(){ public void init(){
Musics.shuffleAll(); Musics.shuffleAll();
@@ -293,14 +282,6 @@ public class Control extends ControlModule{
if(debug){ if(debug){
if(Inputs.keyUp(Keys.PLUS)){
scaleCamera(1);
}
if(Inputs.keyUp(Keys.MINUS)){
scaleCamera(-1);
}
if(Inputs.keyUp(Keys.SPACE)) if(Inputs.keyUp(Keys.SPACE))
Effects.sound("shoot", World.core.worldx(), World.core.worldy()); Effects.sound("shoot", World.core.worldx(), World.core.worldy());
@@ -314,7 +295,7 @@ public class Control extends ControlModule{
Timers.mark(); Timers.mark();
SaveIO.load(Gdx.files.local("mapsave.mins")); SaveIO.load(Gdx.files.local("mapsave.mins"));
log("Load time taken: " + Timers.elapsed()); log("Load time taken: " + Timers.elapsed());
Renderer.clearTiles(); Vars.renderer.clearTiles();
} }
if(Inputs.keyUp(Keys.C)){ if(Inputs.keyUp(Keys.C)){
@@ -333,25 +314,8 @@ public class Control extends ControlModule{
} }
} }
if(Core.cameraScale != targetscale){
float targetzoom = (float)Core.cameraScale / targetscale;
camera.zoom = Mathf.lerp(camera.zoom, targetzoom, 0.2f*Timers.delta());
if(Mathf.in(camera.zoom, targetzoom, 0.005f)){ if(!GameState.is(State.menu)){
camera.zoom = 1f;
Core.cameraScale = targetscale;
//super.resize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
camera.viewportWidth = Gdx.graphics.getWidth() / Core.cameraScale;
camera.viewportHeight = Gdx.graphics.getHeight() / Core.cameraScale;
AndroidInput.mousex = Gdx.graphics.getWidth()/2;
AndroidInput.mousey = Gdx.graphics.getHeight()/2;
}
}
if(GameState.is(State.menu)){
clearScreen();
}else{
if(Inputs.keyUp("menu")){ if(Inputs.keyUp("menu")){
if(GameState.is(State.paused)){ if(GameState.is(State.paused)){
@@ -391,74 +355,13 @@ public class Control extends ControlModule{
}else{ }else{
AndroidInput.doInput(); AndroidInput.doInput();
} }
} }
if(World.core.block() == ProductionBlocks.core){
smoothCamera(player.x, player.y, android ? 0.3f : 0.14f);
}else{
smoothCamera(World.core.worldx(), World.core.worldy(), 0.4f);
}
float prex = camera.position.x, prey = camera.position.y;
updateShake(0.75f);
float prevx = camera.position.x, prevy = camera.position.y;
clampCamera(-tilesize / 2f, -tilesize / 2f, World.pixsize - tilesize / 2f, World.pixsize - tilesize / 2f);
float deltax = camera.position.x - prex, deltay = camera.position.y - prey;
if(android){
player.x += camera.position.x-prevx;
player.y += camera.position.y-prevy;
}
float lastx = camera.position.x, lasty = camera.position.y;
if(android){
camera.position.set((int)camera.position.x, (int)camera.position.y, 0);
if(Gdx.graphics.getHeight()/Core.cameraScale % 2 == 1){
camera.position.add(0, -0.5f, 0);
}
}
drawDefault();
camera.position.set(lastx - deltax, lasty - deltay, 0);
if(Vars.debug){
record();
}
} }
if(!GameState.is(State.paused)){
Inputs.update();
Timers.update();
}
}
@Override
public void draw(){
Renderer.renderTiles();
Entities.draw();
Renderer.renderPixelOverlay();
} }
@Override @Override
public void dispose(){ public void dispose(){
super.dispose();
World.disposeMaps(); World.disposeMaps();
} }
@Override
public void resize(int width, int height){
super.resize(width, height);
AndroidInput.mousex = Gdx.graphics.getWidth()/2;
AndroidInput.mousey = Gdx.graphics.getHeight()/2;
camera.position.set(player.x, player.y, 0);
}
} }

View File

@@ -1,5 +1,8 @@
package io.anuke.mindustry; package io.anuke.mindustry;
import io.anuke.mindustry.GameState.State;
import io.anuke.ucore.core.Inputs;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.modules.ModuleCore; import io.anuke.ucore.modules.ModuleCore;
public class Mindustry extends ModuleCore { public class Mindustry extends ModuleCore {
@@ -8,6 +11,7 @@ public class Mindustry extends ModuleCore {
@Override @Override
public void init(){ public void init(){
add(Vars.control = new Control()); add(Vars.control = new Control());
add(Vars.renderer = new Renderer());
add(Vars.ui = new UI()); add(Vars.ui = new UI());
} }
@@ -26,5 +30,10 @@ public class Mindustry extends ModuleCore {
//Gdx.app.getClipboard().setContents(e.getMessage()); //Gdx.app.getClipboard().setContents(e.getMessage());
throw e; throw e;
} }
if(!GameState.is(State.paused)){
Inputs.update();
Timers.update();
}
} }
} }

View File

@@ -1,13 +1,16 @@
package io.anuke.mindustry; package io.anuke.mindustry;
import static io.anuke.mindustry.Vars.*; import static io.anuke.mindustry.Vars.*;
import static io.anuke.ucore.core.Core.camera;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Input.Buttons; import com.badlogic.gdx.Input.Buttons;
import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.math.MathUtils; import com.badlogic.gdx.math.MathUtils;
import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.math.Vector2;
import io.anuke.mindustry.GameState.State;
import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.input.AndroidInput; import io.anuke.mindustry.input.AndroidInput;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
@@ -20,16 +23,103 @@ import io.anuke.ucore.entities.Entities;
import io.anuke.ucore.entities.Entity; import io.anuke.ucore.entities.Entity;
import io.anuke.ucore.graphics.Cache; import io.anuke.ucore.graphics.Cache;
import io.anuke.ucore.graphics.Caches; import io.anuke.ucore.graphics.Caches;
import io.anuke.ucore.modules.RendererModule;
import io.anuke.ucore.scene.ui.layout.Unit;
import io.anuke.ucore.scene.utils.Cursors; import io.anuke.ucore.scene.utils.Cursors;
import io.anuke.ucore.util.GridMap; import io.anuke.ucore.util.GridMap;
import io.anuke.ucore.util.Mathf; import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Tmp; import io.anuke.ucore.util.Tmp;
public class Renderer{ public class Renderer extends RendererModule{
private static int chunksize = 32; int targetscale = baseCameraScale;
private static GridMap<Cache> caches = new GridMap<>(); int chunksize = 32;
GridMap<Cache> caches = new GridMap<>();
public static void renderTiles(){ public Renderer(){
Core.cameraScale = baseCameraScale;
pixelate();
Draw.addSurface("shadow", Core.cameraScale);
}
@Override
public void update(){
if(Core.cameraScale != targetscale){
float targetzoom = (float)Core.cameraScale / targetscale;
camera.zoom = Mathf.lerp(camera.zoom, targetzoom, 0.2f*Timers.delta());
if(Mathf.in(camera.zoom, targetzoom, 0.005f)){
camera.zoom = 1f;
Core.cameraScale = targetscale;
camera.viewportWidth = Gdx.graphics.getWidth() / Core.cameraScale;
camera.viewportHeight = Gdx.graphics.getHeight() / Core.cameraScale;
AndroidInput.mousex = Gdx.graphics.getWidth()/2;
AndroidInput.mousey = Gdx.graphics.getHeight()/2;
}
}
if(GameState.is(State.menu)){
clearScreen();
}else{
if(World.core.block() == ProductionBlocks.core){
smoothCamera(player.x, player.y, android ? 0.3f : 0.14f);
}else{
smoothCamera(World.core.worldx(), World.core.worldy(), 0.4f);
}
float prex = camera.position.x, prey = camera.position.y;
updateShake(0.75f);
float prevx = camera.position.x, prevy = camera.position.y;
clampCamera(-tilesize / 2f, -tilesize / 2f, World.pixsize - tilesize / 2f, World.pixsize - tilesize / 2f);
float deltax = camera.position.x - prex, deltay = camera.position.y - prey;
if(android){
player.x += camera.position.x-prevx;
player.y += camera.position.y-prevy;
}
float lastx = camera.position.x, lasty = camera.position.y;
if(android){
camera.position.set((int)camera.position.x, (int)camera.position.y, 0);
if(Gdx.graphics.getHeight()/Core.cameraScale % 2 == 1){
camera.position.add(0, -0.5f, 0);
}
}
drawDefault();
camera.position.set(lastx - deltax, lasty - deltay, 0);
if(Vars.debug){
record();
}
}
}
@Override
public void draw(){
renderTiles();
Entities.draw();
renderPixelOverlay();
}
@Override
public void resize(int width, int height){
super.resize(width, height);
AndroidInput.mousex = Gdx.graphics.getWidth()/2;
AndroidInput.mousey = Gdx.graphics.getHeight()/2;
camera.position.set(player.x, player.y, 0);
}
void renderTiles(){
int chunksx = World.width()/chunksize, chunksy = World.height()/chunksize; int chunksx = World.width()/chunksize, chunksy = World.height()/chunksize;
//render the entire map //render the entire map
@@ -48,7 +138,7 @@ public class Renderer{
} }
} }
OrthographicCamera camera = control.camera; OrthographicCamera camera = Core.camera;
Draw.end(); Draw.end();
@@ -105,14 +195,14 @@ public class Renderer{
} }
} }
public static void clearTiles(){ public void clearTiles(){
for(Cache cache : caches.values()) for(Cache cache : caches.values())
cache.dispose(); cache.dispose();
caches.clear(); caches.clear();
} }
public static void renderPixelOverlay(){ void renderPixelOverlay(){
if(player.recipe != null && Inventory.hasItems(player.recipe.requirements) && (!ui.hasMouse() || android)){ if(player.recipe != null && Inventory.hasItems(player.recipe.requirements) && (!ui.hasMouse() || android)){
float x = 0; float x = 0;
@@ -202,11 +292,11 @@ public class Renderer{
} }
} }
public static void drawHealth(float x, float y, float health, float maxhealth){ void drawHealth(float x, float y, float health, float maxhealth){
drawBar(Color.RED, x, y, health/maxhealth); drawBar(Color.RED, x, y, health/maxhealth);
} }
public static void drawBar(Color color, float x, float y, float fraction){ public void drawBar(Color color, float x, float y, float fraction){
float len = 3; float len = 3;
float offset = 7; float offset = 7;
@@ -226,4 +316,20 @@ public class Renderer{
Draw.line(x - len + 1, y - offset, x - len + w, y - offset); Draw.line(x - len + 1, y - offset, x - len + w, y - offset);
Draw.reset(); Draw.reset();
} }
public void setCameraScale(int amount){
targetscale = amount;
clampScale();
Draw.getSurface("pixel").setScale(targetscale);
Draw.getSurface("shadow").setScale(targetscale);
}
public void scaleCamera(int amount){
setCameraScale(targetscale + amount);
}
public void clampScale(){
targetscale = Mathf.clamp(targetscale, Math.round(Unit.dp.inPixels(3)), Math.round(Unit.dp.inPixels((5))));
}
} }

View File

@@ -285,15 +285,15 @@ public class UI extends SceneModule{
end(); end();
}}.right().bottom().uniformX(); }}.right().bottom().uniformX();
/*
row(); row();
if(!android){ if(!android){
new button("Upgrades", ()->{ new button("Upgrades", ()->{
upgrades.show(); upgrades.show();
}).uniformX().fillX(); }).uniformX().fillX();
} }*/
get().setVisible(play); visible(play);
}}.end(); }}.end();

View File

@@ -35,6 +35,7 @@ public class Vars{
public static final int tilesize = 8; public static final int tilesize = 8;
public static Control control; public static Control control;
public static Renderer renderer;
public static UI ui; public static UI ui;
public static Player player; public static Player player;

View File

@@ -6,13 +6,17 @@ public class EnemySpawn{
public final Class<? extends Enemy> type; public final Class<? extends Enemy> type;
int before = Integer.MAX_VALUE; int before = Integer.MAX_VALUE;
int after; int after;
int spacing; int spacing = 1;
float scaling = 9999f;
public EnemySpawn(Class<? extends Enemy> type){ public EnemySpawn(Class<? extends Enemy> type){
this.type = type; this.type = type;
} }
public int evaluate(int wave, int lane){ public int evaluate(int wave, int lane){
return 0; if(wave < after || wave > before || wave % spacing != 0){
return 0;
}
return 1 * Math.max((int)((wave / spacing) / scaling), 1);
} }
} }

View File

@@ -35,8 +35,8 @@ public class GestureHandler extends GestureAdapter{
@Override @Override
public boolean pan(float x, float y, float deltaX, float deltaY){ public boolean pan(float x, float y, float deltaX, float deltaY){
if(player.recipe == null){ if(player.recipe == null){
player.x -= deltaX*control.camera.zoom/Core.cameraScale; player.x -= deltaX*Core.camera.zoom/Core.cameraScale;
player.y += deltaY*control.camera.zoom/Core.cameraScale; player.y += deltaY*Core.camera.zoom/Core.cameraScale;
}else{ }else{
AndroidInput.mousex += deltaX; AndroidInput.mousex += deltaX;
AndroidInput.mousey += deltaY; AndroidInput.mousey += deltaY;
@@ -57,8 +57,8 @@ public class GestureHandler extends GestureAdapter{
Vector2 vec = (vector.set(pointer1).add(pointer2).scl(0.5f)).sub(pinch1.add(pinch2).scl(0.5f)); Vector2 vec = (vector.set(pointer1).add(pointer2).scl(0.5f)).sub(pinch1.add(pinch2).scl(0.5f));
player.x -= vec.x*control.camera.zoom/Core.cameraScale; player.x -= vec.x*Core.camera.zoom/Core.cameraScale;
player.y += vec.y*control.camera.zoom/Core.cameraScale; player.y += vec.y*Core.camera.zoom/Core.cameraScale;
pinch1.set(pointer1); pinch1.set(pointer1);
pinch2.set(pointer2); pinch2.set(pointer2);
@@ -74,7 +74,7 @@ public class GestureHandler extends GestureAdapter{
if(Math.abs(distance - initzoom) > Unit.dp.inPixels(100f) && !zoomed){ if(Math.abs(distance - initzoom) > Unit.dp.inPixels(100f) && !zoomed){
int amount = (distance > initzoom ? 1 : -1); int amount = (distance > initzoom ? 1 : -1);
control.scaleCamera(Math.round(Unit.dp.inPixels(amount))); renderer.scaleCamera(Math.round(Unit.dp.inPixels(amount)));
initzoom = distance; initzoom = distance;
zoomed = true; zoomed = true;
return true; return true;

View File

@@ -23,7 +23,7 @@ public class Input{
if(player.health <= 0) return; if(player.health <= 0) return;
if(Inputs.scrolled()){ if(Inputs.scrolled()){
Vars.control.scaleCamera(Inputs.scroll()); Vars.renderer.scaleCamera(Inputs.scroll());
//TODO //TODO
/* /*
int index = currentWeapon(); int index = currentWeapon();

View File

@@ -14,7 +14,8 @@ import com.badlogic.gdx.utils.ObjectMap;
import com.badlogic.gdx.utils.TimeUtils; import com.badlogic.gdx.utils.TimeUtils;
import com.badlogic.gdx.utils.reflect.ClassReflection; import com.badlogic.gdx.utils.reflect.ClassReflection;
import io.anuke.mindustry.*; import io.anuke.mindustry.Inventory;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.entities.enemies.*; import io.anuke.mindustry.entities.enemies.*;
import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.Item;
import io.anuke.mindustry.resource.Weapon; import io.anuke.mindustry.resource.Weapon;
@@ -22,6 +23,7 @@ import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.World; import io.anuke.mindustry.world.World;
import io.anuke.mindustry.world.blocks.Blocks; import io.anuke.mindustry.world.blocks.Blocks;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.entities.Entities; import io.anuke.ucore.entities.Entities;
import io.anuke.ucore.entities.Entity; import io.anuke.ucore.entities.Entity;
@@ -85,16 +87,17 @@ public class SaveIO{
private static FormatProvider provider = null; private static FormatProvider provider = null;
//TODO automatic registration of types? //TODO automatic registration of types?
private static final ObjectMap<Class<? extends Enemy>, Byte> enemyIDs = new ObjectMap<Class<? extends Enemy>, Byte>(){{ private static final Array<Class<? extends Enemy>> enemyIDs = Array.with(
put(Enemy.class, (byte)0); Enemy.class,
put(FastEnemy.class, (byte)1); FastEnemy.class,
put(BossEnemy.class, (byte)2); BossEnemy.class,
put(FlameEnemy.class, (byte)3); FlameEnemy.class
}}; );
private static final ObjectMap<Byte, Class<? extends Enemy>> idEnemies = new ObjectMap<Byte, Class<? extends Enemy>>(){{ private static final ObjectMap<Class<? extends Enemy>, Byte> idEnemies = new ObjectMap<Class<? extends Enemy>, Byte>(){{
for(Class<? extends Enemy> value : enemyIDs.keys()) for(int i = 0; i < enemyIDs.size; i ++){
put(enemyIDs.get(value), value); put(enemyIDs.get(i), (byte)i);
}
}}; }};
public static void saveToSlot(int slot){ public static void saveToSlot(int slot){
@@ -179,7 +182,7 @@ public class SaveIO{
for(Entity entity : Entities.all()){ for(Entity entity : Entities.all()){
if(entity instanceof Enemy){ if(entity instanceof Enemy){
Enemy enemy = (Enemy)entity; Enemy enemy = (Enemy)entity;
stream.writeByte(enemyIDs.get(enemy.getClass())); //type stream.writeByte(idEnemies.get(enemy.getClass())); //type
stream.writeByte(enemy.spawn); //lane stream.writeByte(enemy.spawn); //lane
stream.writeFloat(enemy.x); //x stream.writeFloat(enemy.x); //x
stream.writeFloat(enemy.y); //y stream.writeFloat(enemy.y); //y
@@ -266,7 +269,7 @@ public class SaveIO{
Vars.player.x = playerx; Vars.player.x = playerx;
Vars.player.y = playery; Vars.player.y = playery;
Vars.player.health = playerhealth; Vars.player.health = playerhealth;
Vars.control.camera.position.set(playerx, playery, 0); Core.camera.position.set(playerx, playery, 0);
//weapons //weapons
@@ -308,7 +311,7 @@ public class SaveIO{
int health = stream.readInt(); int health = stream.readInt();
try{ try{
Enemy enemy = (Enemy)ClassReflection.getConstructor(idEnemies.get(type), int.class).newInstance(lane); Enemy enemy = (Enemy)ClassReflection.getConstructor(enemyIDs.get(type), int.class).newInstance(lane);
enemy.health = health; enemy.health = health;
enemy.x = x; enemy.x = x;
enemy.y = y; enemy.y = y;
@@ -331,7 +334,7 @@ public class SaveIO{
int tiles = stream.readInt(); int tiles = stream.readInt();
World.loadMap(mapid, seed); World.loadMap(mapid, seed);
Renderer.clearTiles(); Vars.renderer.clearTiles();
for(Enemy enemy : enemiesToUpdate){ for(Enemy enemy : enemiesToUpdate){
enemy.findClosestNode(); enemy.findClosestNode();

View File

@@ -2,7 +2,7 @@ package io.anuke.mindustry.world.blocks.types;
import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Color;
import io.anuke.mindustry.Renderer; import io.anuke.mindustry.Vars;
import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.Item;
import io.anuke.mindustry.resource.Liquid; import io.anuke.mindustry.resource.Liquid;
@@ -62,7 +62,7 @@ public class Purifier extends Conduit{
public void drawPixelOverlay(Tile tile){ public void drawPixelOverlay(Tile tile){
float fract = (float)tile.entity.items.get(input, 0) / itemCapacity; float fract = (float)tile.entity.items.get(input, 0) / itemCapacity;
Renderer.drawBar(Color.GREEN, tile.worldx(), tile.worldy() + 13, fract); Vars.renderer.drawBar(Color.GREEN, tile.worldx(), tile.worldy() + 13, fract);
} }
@Override @Override

View File

@@ -3,7 +3,7 @@ package io.anuke.mindustry.world.blocks.types;
import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.utils.ObjectMap; import com.badlogic.gdx.utils.ObjectMap;
import io.anuke.mindustry.Renderer; import io.anuke.mindustry.Vars;
import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.Item;
import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
@@ -47,7 +47,7 @@ public class Router extends Block{
float fract = (float)tile.entity.totalItems()/maxitems; float fract = (float)tile.entity.totalItems()/maxitems;
Renderer.drawBar(Color.GREEN, tile.worldx(), tile.worldy() + 13, fract); Vars.renderer.drawBar(Color.GREEN, tile.worldx(), tile.worldy() + 13, fract);
} }
@Override @Override

View File

@@ -6,7 +6,6 @@ import java.io.IOException;
import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.math.MathUtils; import com.badlogic.gdx.math.MathUtils;
import io.anuke.mindustry.Renderer;
import io.anuke.mindustry.Vars; import io.anuke.mindustry.Vars;
import io.anuke.mindustry.entities.Bullet; import io.anuke.mindustry.entities.Bullet;
import io.anuke.mindustry.entities.BulletType; import io.anuke.mindustry.entities.BulletType;
@@ -65,7 +64,7 @@ public class Turret extends Block{
if(fract > 0) if(fract > 0)
fract = Mathf.clamp(fract, 0.24f, 1f); fract = Mathf.clamp(fract, 0.24f, 1f);
Renderer.drawBar(Color.GREEN, tile.worldx(), tile.worldy() + 13, fract); Vars.renderer.drawBar(Color.GREEN, tile.worldx(), tile.worldy() + 13, fract);
} }
@Override @Override