Added coal purifier block

This commit is contained in:
Anuken
2017-09-21 16:11:14 -04:00
parent ec0b4b5dc4
commit f68de4d69f
32 changed files with 210 additions and 98 deletions

View File

@@ -79,7 +79,7 @@ project(":core") {
apply plugin: "java" apply plugin: "java"
dependencies { dependencies {
compile 'com.github.anuken:ucore:779c75e1b2' compile 'com.github.anuken:ucore:073aa61a1c'
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"
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 B

View File

@@ -46,104 +46,111 @@ blocks/coaldrill
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/conduit blocks/coalpurifier
rotate: false rotate: false
xy: 331, 23 xy: 331, 23
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/conduitbottom blocks/conduit
rotate: false rotate: false
xy: 341, 23 xy: 341, 23
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/conduitliquid blocks/conduitbottom
rotate: false rotate: false
xy: 351, 23 xy: 351, 23
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/conduittop blocks/conduitliquid
rotate: false rotate: false
xy: 361, 23 xy: 361, 23
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/conveyor blocks/conduittop
rotate: false rotate: false
xy: 371, 23 xy: 371, 23
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/conveyormove blocks/conveyor
rotate: false rotate: false
xy: 381, 23 xy: 381, 23
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/core blocks/conveyormove
rotate: false rotate: false
xy: 391, 23 xy: 391, 23
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/cross blocks/core
rotate: false rotate: false
xy: 401, 23 xy: 401, 23
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/crucible blocks/cross
rotate: false rotate: false
xy: 411, 23 xy: 411, 23
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/deepwater blocks/crucible
rotate: false rotate: false
xy: 421, 23 xy: 421, 23
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/dirt1 blocks/deepwater
rotate: false rotate: false
xy: 431, 23 xy: 431, 23
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/dirt2 blocks/dirt1
rotate: false rotate: false
xy: 441, 23 xy: 441, 23
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/dirt3 blocks/dirt2
rotate: false rotate: false
xy: 451, 23 xy: 451, 23
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/dirtblock blocks/dirt3
rotate: false rotate: false
xy: 461, 23 xy: 461, 23
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/dirtblock
rotate: false
xy: 471, 23
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/dirtedge blocks/dirtedge
rotate: false rotate: false
xy: 85, 19 xy: 85, 19
@@ -160,7 +167,7 @@ blocks/doubleturret
index: -1 index: -1
blocks/drill blocks/drill
rotate: false rotate: false
xy: 471, 23 xy: 481, 23
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
@@ -174,35 +181,35 @@ blocks/flameturret
index: -1 index: -1
blocks/grass1 blocks/grass1
rotate: false rotate: false
xy: 491, 23 xy: 501, 23
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/grass2 blocks/grass2
rotate: false rotate: false
xy: 501, 23 xy: 128, 11
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/grass3 blocks/grass3
rotate: false rotate: false
xy: 128, 11 xy: 128, 1
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/grassblock blocks/grassblock
rotate: false rotate: false
xy: 128, 1 xy: 138, 11
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/grassblock2 blocks/grassblock2
rotate: false rotate: false
xy: 138, 11 xy: 138, 1
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
@@ -216,42 +223,42 @@ blocks/grassedge
index: -1 index: -1
blocks/iron1 blocks/iron1
rotate: false rotate: false
xy: 168, 1 xy: 178, 11
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/iron2 blocks/iron2
rotate: false rotate: false
xy: 178, 11 xy: 178, 1
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/iron3 blocks/iron3
rotate: false rotate: false
xy: 178, 1 xy: 188, 11
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/irondrill blocks/irondrill
rotate: false rotate: false
xy: 188, 11 xy: 188, 1
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/ironwall blocks/ironwall
rotate: false rotate: false
xy: 188, 1 xy: 198, 11
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/junction blocks/junction
rotate: false rotate: false
xy: 198, 11 xy: 198, 1
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
@@ -286,21 +293,21 @@ blocks/mortarturret
index: -1 index: -1
blocks/mossblock blocks/mossblock
rotate: false rotate: false
xy: 208, 11 xy: 208, 1
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/mossstone blocks/mossstone
rotate: false rotate: false
xy: 208, 11 xy: 208, 1
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/omnidrill blocks/omnidrill
rotate: false rotate: false
xy: 208, 1 xy: 218, 11
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
@@ -314,7 +321,7 @@ blocks/plasmaturret
index: -1 index: -1
blocks/pump blocks/pump
rotate: false rotate: false
xy: 218, 1 xy: 228, 11
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
@@ -328,35 +335,35 @@ blocks/repairturret
index: -1 index: -1
blocks/rock blocks/rock
rotate: false rotate: false
xy: 228, 11 xy: 228, 1
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/rock2 blocks/rock2
rotate: false rotate: false
xy: 228, 1 xy: 238, 11
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/rock2shadow blocks/rock2shadow
rotate: false rotate: false
xy: 238, 11 xy: 238, 1
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/rockshadow blocks/rockshadow
rotate: false rotate: false
xy: 238, 1 xy: 248, 11
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/router blocks/router
rotate: false rotate: false
xy: 248, 11 xy: 248, 1
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
@@ -377,21 +384,21 @@ blocks/shotgunturret
index: -1 index: -1
blocks/shrub blocks/shrub
rotate: false rotate: false
xy: 248, 1 xy: 258, 11
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/shrubshadow blocks/shrubshadow
rotate: false rotate: false
xy: 258, 11 xy: 258, 1
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/smelter blocks/smelter
rotate: false rotate: false
xy: 258, 1 xy: 268, 11
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
@@ -405,21 +412,21 @@ blocks/sniperturret
index: -1 index: -1
blocks/steelconveyor blocks/steelconveyor
rotate: false rotate: false
xy: 268, 11 xy: 268, 1
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/steelconveyormove blocks/steelconveyormove
rotate: false rotate: false
xy: 268, 1 xy: 278, 13
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/steelwall blocks/steelwall
rotate: false rotate: false
xy: 278, 13 xy: 278, 3
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
@@ -433,49 +440,49 @@ blocks/stone
index: -1 index: -1
blocks/stone1 blocks/stone1
rotate: false rotate: false
xy: 278, 3 xy: 288, 13
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/stone2 blocks/stone2
rotate: false rotate: false
xy: 288, 13 xy: 288, 3
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/stone3 blocks/stone3
rotate: false rotate: false
xy: 288, 3 xy: 298, 13
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/stoneblock blocks/stoneblock
rotate: false rotate: false
xy: 298, 13 xy: 298, 3
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/stoneblock2 blocks/stoneblock2
rotate: false rotate: false
xy: 298, 3 xy: 308, 13
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/stoneblock3 blocks/stoneblock3
rotate: false rotate: false
xy: 308, 13 xy: 308, 3
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/stonedrill blocks/stonedrill
rotate: false rotate: false
xy: 308, 3 xy: 318, 13
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
@@ -489,42 +496,42 @@ blocks/stoneedge
index: -1 index: -1
blocks/stonewall blocks/stonewall
rotate: false rotate: false
xy: 318, 13 xy: 318, 3
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/titanium1 blocks/titanium1
rotate: false rotate: false
xy: 318, 3 xy: 328, 13
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/titanium2 blocks/titanium2
rotate: false rotate: false
xy: 328, 13 xy: 328, 3
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/titanium3 blocks/titanium3
rotate: false rotate: false
xy: 328, 3 xy: 338, 13
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/titaniumdrill blocks/titaniumdrill
rotate: false rotate: false
xy: 338, 13 xy: 338, 3
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
blocks/titaniumwall blocks/titaniumwall
rotate: false rotate: false
xy: 338, 3 xy: 348, 13
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
@@ -538,7 +545,7 @@ blocks/turret
index: -1 index: -1
blocks/water blocks/water
rotate: false rotate: false
xy: 348, 13 xy: 348, 3
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
@@ -580,7 +587,7 @@ enemies/bossmech
index: -1 index: -1
enemies/fastmech enemies/fastmech
rotate: false rotate: false
xy: 481, 23 xy: 491, 23
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
@@ -594,49 +601,49 @@ enemies/firemech
index: -1 index: -1
enemies/mech1 enemies/mech1
rotate: false rotate: false
xy: 198, 1 xy: 208, 11
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
icon-coal icon-coal
rotate: false rotate: false
xy: 138, 1 xy: 148, 11
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
icon-dirium icon-dirium
rotate: false rotate: false
xy: 148, 11 xy: 148, 1
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
icon-iron icon-iron
rotate: false rotate: false
xy: 148, 1 xy: 158, 11
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
icon-steel icon-steel
rotate: false rotate: false
xy: 158, 11 xy: 158, 1
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
icon-stone icon-stone
rotate: false rotate: false
xy: 158, 1 xy: 168, 11
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
index: -1 index: -1
icon-titanium icon-titanium
rotate: false rotate: false
xy: 168, 11 xy: 168, 1
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0
@@ -657,7 +664,7 @@ laserend
index: -1 index: -1
player player
rotate: false rotate: false
xy: 218, 11 xy: 218, 1
size: 8, 8 size: 8, 8
orig: 8, 8 orig: 8, 8
offset: 0, 0 offset: 0, 0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

View File

@@ -402,7 +402,7 @@ public class Control extends ControlModule{
if(!GameState.is(State.paused)){ if(!GameState.is(State.paused)){
Inputs.update(); Inputs.update();
Timers.update(Gdx.graphics.getDeltaTime()*60f); Timers.update();
} }
} }

View File

@@ -36,6 +36,13 @@ public class EffectLoader{
Draw.reset(); Draw.reset();
}); });
Effects.create("purify", 10, e -> {
Draw.color(Hue.mix(Color.ROYAL, Color.GRAY, e.ifract()));
Draw.thickness(2f);
Draw.spikes(e.x, e.y, e.ifract() * 4f, 2, 6);
Draw.reset();
});
Effects.create("spark", 10, e -> { Effects.create("spark", 10, e -> {
Draw.thickness(1f); Draw.thickness(1f);
Draw.color(Hue.mix(Color.WHITE, Color.GRAY, e.ifract())); Draw.color(Hue.mix(Color.WHITE, Color.GRAY, e.ifract()));

View File

@@ -108,7 +108,7 @@ public abstract class BulletType extends BaseBulletType<Bullet>{
Draw.reset(); Draw.reset();
} }
}, },
plasmaflame = new BulletType(0.8f, 15){ plasmaflame = new BulletType(0.8f, 17){
{ {
lifetime = 65f; lifetime = 65f;
} }

View File

@@ -51,7 +51,7 @@ public class Player extends DestructibleEntity{
float speed = this.speed; float speed = this.speed;
if(Vars.debug) if(Vars.debug)
speed = 2f; speed *= 3f;
if(health < maxhealth && Timers.get(this, 50)) if(health < maxhealth && Timers.get(this, 50))
health ++; health ++;
@@ -76,10 +76,10 @@ public class Player extends DestructibleEntity{
vector.limit(speed); vector.limit(speed);
move(vector.x*delta, vector.y*delta, 4); move(vector.x*Timers.delta(), vector.y*Timers.delta(), 4);
if(!shooting){ if(!shooting){
direction.add(vector.scl(delta)); direction.add(vector.scl(Timers.delta()));
direction.limit(speed*6); direction.limit(speed*6);
}else{ }else{
float angle = Angles.mouseAngle(x, y); float angle = Angles.mouseAngle(x, y);

View File

@@ -13,6 +13,7 @@ import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.Blocks; import io.anuke.mindustry.world.blocks.Blocks;
import io.anuke.mindustry.world.blocks.ProductionBlocks; import io.anuke.mindustry.world.blocks.ProductionBlocks;
import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.entities.Entity; import io.anuke.ucore.entities.Entity;
import io.anuke.ucore.util.Mathf; import io.anuke.ucore.util.Mathf;
@@ -67,7 +68,7 @@ public class TileEntity extends Entity{
@Override @Override
public void update(){ public void update(){
if(health != 0 && !tile.block().name().contains("block") && if(health != 0 && !tile.block().name().contains("block") &&
Mathf.chance(0.009f*delta*(1f-(float)health/maxhealth))){ Mathf.chance(0.009f*Timers.delta()*(1f-(float)health/maxhealth))){
Effects.effect("smoke", x+Mathf.range(4), y+Mathf.range(4)); Effects.effect("smoke", x+Mathf.range(4), y+Mathf.range(4));
} }
@@ -87,6 +88,10 @@ public class TileEntity extends Entity{
return items.get(item, 0) > 0; return items.get(item, 0) > 0;
} }
public boolean hasItem(Item item, int amount){
return items.get(item, 0) >= amount;
}
public void addItem(Item item, int amount){ public void addItem(Item item, int amount){
items.put(item, items.get(item, 0) + amount); items.put(item, items.get(item, 0) + amount);
} }

View File

@@ -48,7 +48,7 @@ public class Enemy extends DestructibleEntity{
Vector2 vec = Pathfind.find(this); Vector2 vec = Pathfind.find(this);
vec.sub(x, y).setLength(speed); vec.sub(x, y).setLength(speed);
move(vec.x*delta, vec.y*delta, Vars.tilesize-4); move(vec.x*Timers.delta(), vec.y*Timers.delta(), Vars.tilesize-4);
if(Timers.get(this, 15)){ if(Timers.get(this, 15)){
target = World.findTileTarget(x, y, null, range, false); target = World.findTileTarget(x, y, null, range, false);

View File

@@ -76,7 +76,7 @@ public class Input{
Tile cursor = World.cursorTile(); Tile cursor = World.cursorTile();
//block breaking //block breaking
if(Inputs.buttonDown(Buttons.RIGHT) && World.cursorNear() && cursor.breakable() if(cursor != null && Inputs.buttonDown(Buttons.RIGHT) && World.cursorNear() && cursor.breakable()
&& cursor.block() != ProductionBlocks.core){ && cursor.block() != ProductionBlocks.core){
Tile tile = cursor; Tile tile = cursor;
player.breaktime += Timers.delta(); player.breaktime += Timers.delta();

View File

@@ -27,8 +27,8 @@ public enum Recipe{
sniperturret(defense, WeaponBlocks.sniperturret, stack(Item.iron, 30), stack(Item.steel, 20)), sniperturret(defense, WeaponBlocks.sniperturret, stack(Item.iron, 30), stack(Item.steel, 20)),
laserturret(defense, WeaponBlocks.laserturret, stack(Item.steel, 20), stack(Item.titanium, 20)), laserturret(defense, WeaponBlocks.laserturret, stack(Item.steel, 20), stack(Item.titanium, 20)),
mortarturret(defense, WeaponBlocks.mortarturret, stack(Item.steel, 40), stack(Item.titanium, 30)), mortarturret(defense, WeaponBlocks.mortarturret, stack(Item.steel, 40), stack(Item.titanium, 30)),
waveturret(defense, WeaponBlocks.teslaturret, stack(Item.steel, 20), stack(Item.titanium, 20), stack(Item.dirium, 20)), teslaturret(defense, WeaponBlocks.teslaturret, stack(Item.steel, 20), stack(Item.titanium, 30), stack(Item.dirium, 30)),
plasmaturret(defense, WeaponBlocks.plasmaturret, stack(Item.steel, 40), stack(Item.titanium, 30), stack(Item.dirium, 25)), plasmaturret(defense, WeaponBlocks.plasmaturret, stack(Item.steel, 20), stack(Item.titanium, 20), stack(Item.dirium, 30)),
healturret(defense, WeaponBlocks.repairturret, stack(Item.iron, 50)), healturret(defense, WeaponBlocks.repairturret, stack(Item.iron, 50)),
megahealturret(defense, WeaponBlocks.megarepairturret, stack(Item.iron, 30), stack(Item.steel, 50)), megahealturret(defense, WeaponBlocks.megarepairturret, stack(Item.iron, 30), stack(Item.steel, 50)),
@@ -40,6 +40,7 @@ public enum Recipe{
omnidrill(production, ProductionBlocks.omnidrill, stack(Item.steel, 50), stack(Item.titanium, 50)), omnidrill(production, ProductionBlocks.omnidrill, stack(Item.steel, 50), stack(Item.titanium, 50)),
smelter(production, ProductionBlocks.smelter, stack(Item.stone, 80), stack(Item.iron, 80)), smelter(production, ProductionBlocks.smelter, stack(Item.stone, 80), stack(Item.iron, 80)),
crucible(production, ProductionBlocks.crucible, stack(Item.titanium, 80), stack(Item.steel, 80)), crucible(production, ProductionBlocks.crucible, stack(Item.titanium, 80), stack(Item.steel, 80)),
coalpurifier(production, ProductionBlocks.coalpurifier, stack(Item.steel, 20), stack(Item.iron, 20)),
conduit(distribution, ProductionBlocks.conduit, stack(Item.steel, 1)), conduit(distribution, ProductionBlocks.conduit, stack(Item.steel, 1)),
pump(production, ProductionBlocks.pump, stack(Item.steel, 20)); pump(production, ProductionBlocks.pump, stack(Item.steel, 20));

View File

@@ -62,7 +62,7 @@ public class Generator{
floor = Blocks.coal; floor = Blocks.coal;
} }
if(Noise.nnoise(x, y, 5, 1) > 0.2){ if(Noise.nnoise(x, y, 9, 1) > 0.254){
floor = Blocks.titanium; floor = Blocks.titanium;
} }
} }

View File

@@ -7,6 +7,7 @@ import io.anuke.mindustry.Inventory;
import io.anuke.mindustry.Renderer; import io.anuke.mindustry.Renderer;
import io.anuke.mindustry.Vars; import io.anuke.mindustry.Vars;
import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.Item;
import io.anuke.mindustry.resource.Liquid;
import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.types.*; import io.anuke.mindustry.world.blocks.types.*;
@@ -154,6 +155,20 @@ public class ProductionBlocks{
} }
}, },
coalpurifier = new Purifier("coalpurifier"){
{
formalName = "coal purifier";
input = Item.stone;
inputLiquid = Liquid.water;
output = Item.coal;
}
@Override
public String description(){
return "Takes in stone + water, outputs coal.";
}
},
stonedrill = new Drill("stonedrill"){{ stonedrill = new Drill("stonedrill"){{
resource = Blocks.stone; resource = Blocks.stone;
result = Item.stone; result = Item.stone;

View File

@@ -141,7 +141,7 @@ public class WeaponBlocks{
reload = 20f; reload = 20f;
bullet = BulletType.shell; bullet = BulletType.shell;
ammo = Item.stone; ammo = Item.stone;
health = 1100; health = 140;
} }
@Override @Override
@@ -150,7 +150,7 @@ public class WeaponBlocks{
Angles.translation(entity.rotation, 4); Angles.translation(entity.rotation, 4);
new TeslaOrb(tile.worldx() + Angles.x(), tile.worldy() + Angles.y(), new TeslaOrb(tile.worldx() + Angles.x(), tile.worldy() + Angles.y(),
70, (int)(10*Vars.multiplier)).add(); 70, (int)(8*Vars.multiplier)).add();
} }
}, },

View File

@@ -12,7 +12,7 @@ import io.anuke.ucore.core.Draw;
import io.anuke.ucore.core.Timers; import io.anuke.ucore.core.Timers;
public class Conduit extends Block{ public class Conduit extends Block{
protected float capacity = 10f; protected float liquidCapacity = 10f;
protected float flowfactor = 4f; protected float flowfactor = 4f;
public Conduit(String name) { public Conduit(String name) {
@@ -26,9 +26,9 @@ public class Conduit extends Block{
ConduitEntity entity = tile.entity(); ConduitEntity entity = tile.entity();
Draw.rect(name() + "bottom", tile.worldx(), tile.worldy(), tile.rotation * 90); Draw.rect(name() + "bottom", tile.worldx(), tile.worldy(), tile.rotation * 90);
if(entity.liquid != null && entity.amount > 0.01f){ if(entity.liquid != null && entity.liquidAmount > 0.01f){
Draw.color(entity.liquid.color); Draw.color(entity.liquid.color);
Draw.alpha(entity.amount / capacity); Draw.alpha(entity.liquidAmount / liquidCapacity);
Draw.rect("conduitliquid", tile.worldx(), tile.worldy(), tile.rotation * 90); Draw.rect("conduitliquid", tile.worldx(), tile.worldy(), tile.rotation * 90);
Draw.color(); Draw.color();
} }
@@ -45,7 +45,7 @@ public class Conduit extends Block{
public void update(Tile tile){ public void update(Tile tile){
ConduitEntity entity = tile.entity(); ConduitEntity entity = tile.entity();
if(entity.amount > 0.01f && Timers.get(entity, "flow", 3)){ if(entity.liquidAmount > 0.01f && Timers.get(entity, "flow", 3)){
tryMoveLiquid(tile, tile.getNearby()[tile.rotation]); tryMoveLiquid(tile, tile.getNearby()[tile.rotation]);
} }
@@ -54,7 +54,7 @@ public class Conduit extends Block{
public void tryDumpLiquid(Tile tile){ public void tryDumpLiquid(Tile tile){
ConduitEntity entity = tile.entity(); ConduitEntity entity = tile.entity();
if(entity.amount > 0.01f){ if(entity.liquidAmount > 0.01f){
tryMoveLiquid(tile, tile.getNearby()[tile.dump]); tryMoveLiquid(tile, tile.getNearby()[tile.dump]);
tile.dump ++; tile.dump ++;
tile.dump %= 4; tile.dump %= 4;
@@ -66,47 +66,47 @@ public class Conduit extends Block{
Liquid liquid = entity.liquid; Liquid liquid = entity.liquid;
if(next != null && next.block() instanceof Conduit && entity.amount > 0.01f){ if(next != null && next.block() instanceof Conduit && entity.liquidAmount > 0.01f){
Conduit other = (Conduit)next.block(); Conduit other = (Conduit)next.block();
ConduitEntity otherentity = next.entity(); ConduitEntity otherentity = next.entity();
float flow = Math.min(other.capacity - otherentity.amount - 0.001f, Math.min(entity.amount/flowfactor, entity.amount)); float flow = Math.min(other.liquidCapacity - otherentity.liquidAmount - 0.001f, Math.min(entity.liquidAmount/flowfactor, entity.liquidAmount));
if(flow <= 0f || entity.amount < flow) return; if(flow <= 0f || entity.liquidAmount < flow) return;
if(other.accept(next, tile, liquid, flow)){ if(other.acceptLiquid(next, tile, liquid, flow)){
other.addLiquid(next, tile, liquid, flow); other.addLiquid(next, tile, liquid, flow);
entity.amount -= flow; entity.liquidAmount -= flow;
} }
} }
} }
public boolean accept(Tile tile, Tile source, Liquid liquid, float amount){ public boolean acceptLiquid(Tile tile, Tile source, Liquid liquid, float amount){
ConduitEntity entity = tile.entity(); ConduitEntity entity = tile.entity();
return entity.amount + amount < capacity && (entity.liquid == liquid || entity.amount <= 0.01f); return entity.liquidAmount + amount < liquidCapacity && (entity.liquid == liquid || entity.liquidAmount <= 0.01f);
} }
public void addLiquid(Tile tile, Tile source, Liquid liquid, float amount){ public void addLiquid(Tile tile, Tile source, Liquid liquid, float amount){
ConduitEntity entity = tile.entity(); ConduitEntity entity = tile.entity();
entity.liquid = liquid; entity.liquid = liquid;
entity.amount += amount; entity.liquidAmount += amount;
} }
static class ConduitEntity extends TileEntity{ static class ConduitEntity extends TileEntity{
Liquid liquid; Liquid liquid;
float amount; float liquidAmount;
@Override @Override
public void write(DataOutputStream stream) throws IOException{ public void write(DataOutputStream stream) throws IOException{
stream.writeByte(liquid.ordinal()); stream.writeByte(liquid.ordinal());
stream.writeByte((byte)(amount)); stream.writeByte((byte)(liquidAmount));
} }
@Override @Override
public void read(DataInputStream stream) throws IOException{ public void read(DataInputStream stream) throws IOException{
liquid = Liquid.values()[stream.readByte()]; liquid = Liquid.values()[stream.readByte()];
amount = stream.readByte(); liquidAmount = stream.readByte();
} }
} }
} }

View File

@@ -27,7 +27,7 @@ public class Drill extends Block{
Effects.effect("spark", tile.worldx(), tile.worldy()); Effects.effect("spark", tile.worldx(), tile.worldy());
} }
if(Timers.get(tile.hashCode() + "dump", 30)){ if(Timers.get(tile.hashCode(), "dump", 30)){
tryDump(tile); tryDump(tile);
} }
} }

View File

@@ -14,7 +14,7 @@ public class Pump extends Conduit{
} }
@Override @Override
public boolean accept(Tile tile, Tile source, Liquid liquid, float amount){ public boolean acceptLiquid(Tile tile, Tile source, Liquid liquid, float amount){
return false; return false;
} }
@@ -27,9 +27,9 @@ public class Pump extends Conduit{
public void update(Tile tile){ public void update(Tile tile){
ConduitEntity entity = tile.entity(); ConduitEntity entity = tile.entity();
if(Timers.get(tile, "pump", 8) && entity.amount < capacity){ if(Timers.get(tile, "pump", 8) && entity.liquidAmount < liquidCapacity){
entity.liquid = Liquid.water; entity.liquid = Liquid.water;
entity.amount += pumpspeed; entity.liquidAmount += pumpspeed;
} }
if(Timers.get(tile, "dump", 1)){ if(Timers.get(tile, "dump", 1)){

View File

@@ -0,0 +1,77 @@
package io.anuke.mindustry.world.blocks.types;
import com.badlogic.gdx.graphics.Color;
import io.anuke.mindustry.Renderer;
import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.resource.Item;
import io.anuke.mindustry.resource.Liquid;
import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Draw;
import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Timers;
public class Purifier extends Conduit{
public Item input = null;
public int inputAmount = 5;
public Liquid inputLiquid = null;
public float liquidAmount = 19.99f;
public Item output = null;
public int itemCapacity = 100;
public int purifyTime = 90;
public Purifier(String name) {
super(name);
update = true;
rotate = false;
liquidCapacity = 20f;
}
@Override
public void draw(Tile tile){
ConduitEntity entity = tile.entity();
Draw.rect(name(), tile.worldx(), tile.worldy());
Draw.color(Color.ROYAL);
Draw.alpha(entity.liquidAmount / liquidCapacity);
Draw.rect("blank", tile.worldx(), tile.worldy(), 2, 2);
Draw.color();
}
@Override
public void update(Tile tile){
ConduitEntity entity = tile.entity();
if(Timers.get(tile, "purify", purifyTime) && entity.liquidAmount >= liquidAmount &&
entity.hasItem(input, inputAmount)){
entity.removeItem(input, inputAmount);
entity.liquidAmount -= liquidAmount;
offloadNear(tile, output);
Effects.effect("purify", tile.worldx(), tile.worldy());
}
if(Timers.get(tile.hashCode(), "dump", 30)){
tryDump(tile, -1, output);
}
}
@Override
public void drawPixelOverlay(Tile tile){
float fract = (float)tile.entity.items.get(input, 0) / itemCapacity;
Renderer.drawBar(Color.GREEN, tile.worldx(), tile.worldy() + 13, fract);
}
@Override
public boolean acceptLiquid(Tile tile, Tile source, Liquid liquid, float amount){
return super.acceptLiquid(tile, source, liquid, amount) && liquid == inputLiquid;
}
@Override
public boolean accept(Item item, Tile tile, Tile source){
TileEntity entity = tile.entity();
return item == input && entity.items.get(item, 0) < itemCapacity;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 850 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 999 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB