Added laser router block

This commit is contained in:
Anuken
2017-10-31 11:49:16 -04:00
parent 2e8f0a9d1a
commit 431e6c5571
11 changed files with 134 additions and 68 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

View File

@ -445,13 +445,20 @@ blocks/powerlaser
orig: 8, 8
offset: 0, 0
index: -1
blocks/pump
blocks/powerlaserrouter
rotate: false
xy: 499, 387
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/pump
rotate: false
xy: 389, 224
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/repairturret
rotate: false
xy: 177, 2
@ -461,35 +468,35 @@ blocks/repairturret
index: -1
blocks/rock
rotate: false
xy: 389, 214
xy: 389, 204
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/rock2
rotate: false
xy: 389, 204
xy: 332, 197
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/rock2shadow
rotate: false
xy: 332, 197
xy: 332, 187
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/rockshadow
rotate: false
xy: 332, 187
xy: 342, 197
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/router
rotate: false
xy: 342, 197
xy: 332, 177
size: 8, 8
orig: 8, 8
offset: 0, 0
@ -503,7 +510,7 @@ blocks/shadow
index: -1
blocks/shieldgenerator
rotate: false
xy: 332, 177
xy: 342, 187
size: 8, 8
orig: 8, 8
offset: 0, 0
@ -517,21 +524,21 @@ blocks/shotgunturret
index: -1
blocks/shrub
rotate: false
xy: 342, 187
xy: 342, 177
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/shrubshadow
rotate: false
xy: 342, 177
xy: 352, 192
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/smelter
rotate: false
xy: 352, 192
xy: 352, 182
size: 8, 8
orig: 8, 8
offset: 0, 0
@ -545,21 +552,21 @@ blocks/sniperturret
index: -1
blocks/steelconveyor
rotate: false
xy: 352, 182
xy: 362, 192
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/steelconveyormove
rotate: false
xy: 362, 192
xy: 362, 182
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/steelwall
rotate: false
xy: 362, 182
xy: 372, 192
size: 8, 8
orig: 8, 8
offset: 0, 0
@ -573,49 +580,49 @@ blocks/stone
index: -1
blocks/stone1
rotate: false
xy: 372, 192
xy: 372, 182
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/stone2
rotate: false
xy: 372, 182
xy: 382, 192
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/stone3
rotate: false
xy: 382, 192
xy: 382, 182
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/stoneblock
rotate: false
xy: 382, 182
xy: 352, 172
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/stoneblock2
rotate: false
xy: 352, 172
xy: 362, 172
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/stoneblock3
rotate: false
xy: 362, 172
xy: 372, 172
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/stonedrill
rotate: false
xy: 372, 172
xy: 382, 172
size: 8, 8
orig: 8, 8
offset: 0, 0
@ -629,63 +636,63 @@ blocks/stoneedge
index: -1
blocks/stonewall
rotate: false
xy: 382, 172
xy: 392, 194
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/thermalgenerator
rotate: false
xy: 392, 194
xy: 392, 184
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/titanium1
rotate: false
xy: 392, 184
xy: 392, 174
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/titanium2
rotate: false
xy: 392, 174
xy: 332, 167
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/titanium3
rotate: false
xy: 332, 167
xy: 342, 167
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/titaniumdrill
rotate: false
xy: 342, 167
xy: 352, 162
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/titaniumpurifier
rotate: false
xy: 352, 162
xy: 362, 162
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/titaniumshieldwall
rotate: false
xy: 362, 162
xy: 372, 162
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/titaniumwall
rotate: false
xy: 372, 162
xy: 382, 162
size: 8, 8
orig: 8, 8
offset: 0, 0
@ -699,35 +706,35 @@ blocks/turret
index: -1
blocks/uranium1
rotate: false
xy: 392, 164
xy: 389, 282
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/uranium2
rotate: false
xy: 389, 282
xy: 389, 272
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/uranium3
rotate: false
xy: 389, 272
xy: 389, 262
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/uraniumdrill
rotate: false
xy: 389, 262
xy: 389, 252
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
blocks/water
rotate: false
xy: 389, 252
xy: 391, 242
size: 8, 8
orig: 8, 8
offset: 0, 0
@ -1381,14 +1388,14 @@ weapons/multigun
index: -1
weapons/railgun
rotate: false
xy: 389, 224
xy: 389, 214
size: 8, 8
orig: 8, 8
offset: 0, 0
index: -1
weapons/triblaster
rotate: false
xy: 382, 162
xy: 392, 164
size: 8, 8
orig: 8, 8
offset: 0, 0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 41 KiB

View File

@ -33,24 +33,27 @@ public class Tutorial{
public void buildUI(table table){
//TODO maybe align it to the bottom?
table.atop();
new table("pane"){{
atop();
get().pad(Unit.dp.inPixels(14));
get().pad(Unit.dp.inPixels(12));
info = new label(()->stage.text).pad(10f).padBottom(5f).width(340f).units(Unit.dp).colspan(2).get();
info.setWrap(true);
row();
prev = new button("< Prev", ()->{
if(!prev.isDisabled())
move(false);
}).get();
info = new label(()->stage.text).pad(10f).width(340f).units(Unit.dp).get();
info.setWrap(true);
}).left().get();
next = new button("Next >", ()->{
if(!next.isDisabled())
move(true);
}).get();
}).right().get();
}}.end();

View File

@ -345,6 +345,12 @@ public class UI extends SceneModule{
}}.end();
new table(){{
control.tutorial.buildUI(this);
visible(()->control.tutorial.active());
}}.end();
//paused table
new table(){{
visible(()->GameState.is(State.paused));
@ -377,12 +383,6 @@ public class UI extends SceneModule{
get().setVisible(play);
}}.end();
new table(){{
control.tutorial.buildUI(this);
visible(()->control.tutorial.active());
}}.end();
//menu table
new table(){{

View File

@ -59,6 +59,7 @@ public enum Recipe{
nuclearreactor(power, ProductionBlocks.nuclearReactor, stack(Item.titanium, 10), stack(Item.dirium, 10)),
powerbooster(power, DistributionBlocks.powerbooster, stack(Item.titanium, 10), stack(Item.dirium, 10)),
powerlaser(power, DistributionBlocks.powerlaser, stack(Item.titanium, 10), stack(Item.dirium, 10)),
powerlaserrouter(power, DistributionBlocks.powerlaserrouter, stack(Item.titanium, 10), stack(Item.dirium, 10)),
pump(production, ProductionBlocks.pump, stack(Item.steel, 10));

View File

@ -70,7 +70,7 @@ public class Generator{
floor = Blocks.titanium;
}
if(Noise.nnoise(x + 99999, y + 99999, 6, 1) > 0.256){
if(Noise.nnoise(x + 99999, y + 99999, 7, 1) > 0.257){
floor = Blocks.uranium;
}
}

View File

@ -308,6 +308,7 @@ public class World{
if(!tile.block().isMultiblock() && !tile.isLinked()){
tile.setBlock(Blocks.air);
Effects.effect("break", tile.worldx(), tile.worldy());
}else{
Tile target = tile.isLinked() ? tile.getLinked() : tile;
Array<Tile> removals = target.getLinkedTiles();

View File

@ -51,5 +51,10 @@ public class DistributionBlocks{
{
formalName = "power laser";
}
},
powerlaserrouter = new PowerLaserRouter("powerlaserrouter"){
{
formalName = "laser router";
}
};
}

View File

@ -26,12 +26,32 @@ public class PowerLaser extends PowerBlock{
@Override
public void drawOver(Tile tile){
Tile target = target(tile);
PowerEntity entity = tile.entity();
if(target != null && entity.power > powerAmount){
Angles.translation(tile.rotation * 90, 6f);
if(entity.power > powerAmount){
drawLaserTo(tile, tile.rotation);
}
}
@Override
public void update(Tile tile){
PowerEntity entity = tile.entity();
Tile target = target(tile, tile.rotation);
if(target == null) return;
PowerAcceptor p = (PowerAcceptor)target.block();
if(p.acceptsPower(target) && entity.power >= powerAmount){
entity.power -= (powerAmount - p.addPower(target, powerAmount));
}
}
protected void drawLaserTo(Tile tile, int rotation){
Tile target = target(tile, rotation);
if(target != null){
Angles.translation(rotation * 90, 6f);
Draw.color(Color.GRAY, Color.WHITE, 0.902f + Mathf.sin(Timers.time(), 1.7f, 0.08f));
Draw.alpha(1f);
@ -47,21 +67,11 @@ public class PowerLaser extends PowerBlock{
}
}
@Override
public void update(Tile tile){
PowerEntity entity = tile.entity();
Tile target = target(tile);
if(target == null) return;
PowerAcceptor p = (PowerAcceptor)target.block();
if(p.acceptsPower(target) && entity.power >= powerAmount){
entity.power -= (powerAmount - p.addPower(target, powerAmount));
}
}
private Tile target(Tile tile){
GridPoint2 point = Geometry.getD4Points()[tile.rotation];
protected Tile target(Tile tile, int rotation){
if(rotation < 0)
rotation += 4;
rotation %= 4;
GridPoint2 point = Geometry.getD4Points()[rotation];
int i = 0;

View File

@ -0,0 +1,39 @@
package io.anuke.mindustry.world.blocks.types.distribution;
import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.types.PowerAcceptor;
public class PowerLaserRouter extends PowerLaser{
public PowerLaserRouter(String name) {
super(name);
}
@Override
public void drawOver(Tile tile){
PowerEntity entity = tile.entity();
if(entity.power > powerAmount){
for(int i = -1; i <= 1; i ++){
drawLaserTo(tile, tile.rotation + i);
}
}
}
@Override
public void update(Tile tile){
PowerEntity entity = tile.entity();
for(int i = -1; i <= 1; i ++){
Tile target = target(tile, tile.rotation + i);
if(target == null) return;
PowerAcceptor p = (PowerAcceptor)target.block();
if(p.acceptsPower(target) && entity.power >= powerAmount/3f){
entity.power -= (powerAmount/3f - p.addPower(target, powerAmount/3f));
}
}
}
}