From c55a47ff570ff34a2ae29a5dd42ec9e642788e77 Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 1 Nov 2017 23:06:31 -0400 Subject: [PATCH] Refactored some entity code to use new Hitbox code --- build.gradle | 2 +- core/src/io/anuke/mindustry/Renderer.java | 2 +- core/src/io/anuke/mindustry/entities/Player.java | 5 +++-- core/src/io/anuke/mindustry/entities/enemies/Enemy.java | 5 +++-- core/src/io/anuke/mindustry/entities/enemies/RapidEnemy.java | 2 +- core/src/io/anuke/mindustry/world/World.java | 5 ++--- 6 files changed, 11 insertions(+), 10 deletions(-) diff --git a/build.gradle b/build.gradle index 38af00ae1c..7e4e51500a 100644 --- a/build.gradle +++ b/build.gradle @@ -79,7 +79,7 @@ project(":core") { apply plugin: "java" dependencies { - compile 'com.github.anuken:ucore:6e2a3ed6e6' + compile 'com.github.anuken:ucore:01b71b6dbd' compile "com.badlogicgames.gdx:gdx:$gdxVersion" compile "com.badlogicgames.gdx:gdx-ai:1.8.1" } diff --git a/core/src/io/anuke/mindustry/Renderer.java b/core/src/io/anuke/mindustry/Renderer.java index 321939eecc..c25012e20e 100644 --- a/core/src/io/anuke/mindustry/Renderer.java +++ b/core/src/io/anuke/mindustry/Renderer.java @@ -163,7 +163,7 @@ public class Renderer extends RendererModule{ if(Tmp.r1.setSize(camera.viewportWidth, camera.viewportHeight) .setCenter(camera.position.x, camera.position.y) - .overlaps(Tmp.r2.setSize(enemy.hitsize).setCenter(enemy.x + enemy.hitoffsetx, enemy.y + enemy.hitoffsety))){ + .overlaps(enemy.hitbox.getRect(enemy.x, enemy.y))){ continue; } diff --git a/core/src/io/anuke/mindustry/entities/Player.java b/core/src/io/anuke/mindustry/entities/Player.java index 30a2d91cf3..b8105a3784 100644 --- a/core/src/io/anuke/mindustry/entities/Player.java +++ b/core/src/io/anuke/mindustry/entities/Player.java @@ -25,7 +25,8 @@ public class Player extends DestructibleEntity{ private float speed = 1f; public Player(){ - hitsize = 5; + hitbox.setSize(5); + hitboxTile.setSize(4f); maxhealth = 100; heal(); @@ -83,7 +84,7 @@ public class Player extends DestructibleEntity{ vector.limit(speed); - move(vector.x*Timers.delta(), vector.y*Timers.delta(), 4); + move(vector.x*Timers.delta(), vector.y*Timers.delta()); if(!shooting){ direction.add(vector.scl(Timers.delta())); diff --git a/core/src/io/anuke/mindustry/entities/enemies/Enemy.java b/core/src/io/anuke/mindustry/entities/enemies/Enemy.java index e76d99fe96..85183cb32a 100644 --- a/core/src/io/anuke/mindustry/entities/enemies/Enemy.java +++ b/core/src/io/anuke/mindustry/entities/enemies/Enemy.java @@ -43,7 +43,8 @@ public class Enemy extends DestructibleEntity{ public Enemy(int spawn){ this.spawn = spawn; - hitsize = 5; + hitbox.setSize(5f); + hitboxTile.setSize(4f); maxhealth = 60; heal(); @@ -57,7 +58,7 @@ public class Enemy extends DestructibleEntity{ Vector2 vec = Pathfind.find(this); vec.sub(x, y).setLength(speed); - move(vec.x*Timers.delta(), vec.y*Timers.delta(), Vars.tilesize-4); + move(vec.x*Timers.delta(), vec.y*Timers.delta()); if(Timers.get(this, 15)){ target = World.findTileTarget(x, y, null, range, false); diff --git a/core/src/io/anuke/mindustry/entities/enemies/RapidEnemy.java b/core/src/io/anuke/mindustry/entities/enemies/RapidEnemy.java index e5b7d42c03..c381615f06 100644 --- a/core/src/io/anuke/mindustry/entities/enemies/RapidEnemy.java +++ b/core/src/io/anuke/mindustry/entities/enemies/RapidEnemy.java @@ -11,9 +11,9 @@ public class RapidEnemy extends Enemy{ bullet = BulletType.smallfast; rotatespeed = 30f; maxhealth = 260; - hitsize = 8; speed = 0.27f; heal(); + hitbox.setSize(8f); range = 70; } diff --git a/core/src/io/anuke/mindustry/world/World.java b/core/src/io/anuke/mindustry/world/World.java index bb6370e275..eed56ab127 100644 --- a/core/src/io/anuke/mindustry/world/World.java +++ b/core/src/io/anuke/mindustry/world/World.java @@ -247,10 +247,9 @@ public class World{ Tmp.r2.setCenter(offset.x + x * Vars.tilesize, offset.y + y * Vars.tilesize); for(SolidEntity e : Entities.getNearby(x * tilesize, y * tilesize, tilesize * 2f)){ - Rectangle.tmp.setSize(e.hitsize); - Rectangle.tmp.setCenter(e.x, e.y); + Rectangle rect = e.hitbox.getRect(e.x, e.y); - if(Tmp.r2.overlaps(Rectangle.tmp)){ + if(Tmp.r2.overlaps(rect)){ return false; } }