Bugfixes / Logic category (no icon) / Switch block

This commit is contained in:
Anuken 2020-08-10 17:09:54 -04:00
parent c560de9c53
commit 4f7d6fc018
25 changed files with 2879 additions and 2712 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 237 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 739 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 546 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 722 B

View File

@ -283,3 +283,4 @@
63461=logic-processor|block-logic-processor-medium
63460=micro-processor|block-micro-processor-medium
63459=logic-display|block-logic-display-medium
63458=switch|block-switch-medium

Binary file not shown.

Before

Width:  |  Height:  |  Size: 784 B

After

Width:  |  Height:  |  Size: 789 B

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 KiB

After

Width:  |  Height:  |  Size: 184 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 385 KiB

After

Width:  |  Height:  |  Size: 386 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 MiB

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 KiB

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 392 KiB

After

Width:  |  Height:  |  Size: 392 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 1.3 MiB

View File

@ -19,6 +19,7 @@ import mindustry.world.blocks.experimental.*;
import mindustry.world.blocks.legacy.*;
import mindustry.world.blocks.liquid.*;
import mindustry.world.blocks.logic.*;
import mindustry.world.blocks.logic.MessageBlock;
import mindustry.world.blocks.power.*;
import mindustry.world.blocks.production.*;
import mindustry.world.blocks.sandbox.*;
@ -49,7 +50,7 @@ public class Blocks implements ContentList{
melter, separator, disassembler, sporePress, pulverizer, incinerator, coalCentrifuge,
//sandbox
powerSource, powerVoid, itemSource, itemVoid, liquidSource, liquidVoid, message, illuminator,
powerSource, powerVoid, itemSource, itemVoid, liquidSource, liquidVoid, illuminator,
//defense
copperWall, copperWallLarge, titaniumWall, titaniumWallLarge, plastaniumWall, plastaniumWallLarge, thoriumWall, thoriumWallLarge, door, doorLarge,
@ -82,7 +83,7 @@ public class Blocks implements ContentList{
repairPoint, resupplyPoint,
//logic
microProcessor, logicProcessor, logicDisplay,
message, switchBlock, microProcessor, logicProcessor, logicDisplay,
//campaign
launchPad, launchPadLarge,
@ -1847,10 +1848,6 @@ public class Blocks implements ContentList{
alwaysUnlocked = true;
}};
message = new MessageBlock("message"){{
requirements(Category.effect, with(Items.graphite, 5));
}};
illuminator = new LightBlock("illuminator"){{
requirements(Category.effect, BuildVisibility.lightingOnly, with(Items.graphite, 12, Items.silicon, 8));
brightness = 0.67f;
@ -1891,8 +1888,16 @@ public class Blocks implements ContentList{
//endregion campaign
//region logic
message = new MessageBlock("message"){{
requirements(Category.logic, with(Items.graphite, 5));
}};
switchBlock = new SwitchBlock("switch"){{
requirements(Category.logic, with(Items.graphite, 5));
}};
microProcessor = new LogicBlock("micro-processor"){{
requirements(Category.effect, with(Items.copper, 30, Items.lead, 50, Items.silicon, 30));
requirements(Category.logic, with(Items.copper, 30, Items.lead, 50, Items.silicon, 30));
instructionsPerTick = 2;
memory = 32;
@ -1901,7 +1906,7 @@ public class Blocks implements ContentList{
}};
logicProcessor = new LogicBlock("logic-processor"){{
requirements(Category.effect, with(Items.copper, 200, Items.lead, 120, Items.silicon, 100, Items.metaglass, 50));
requirements(Category.logic, with(Items.copper, 200, Items.lead, 120, Items.silicon, 100, Items.metaglass, 50));
instructionsPerTick = 5;
memory = 128;
@ -1910,7 +1915,7 @@ public class Blocks implements ContentList{
}};
logicDisplay = new LogicDisplay("logic-display"){{
requirements(Category.effect, with(Items.copper, 200, Items.lead, 120, Items.silicon, 100, Items.metaglass, 50));
requirements(Category.logic, with(Items.copper, 200, Items.lead, 120, Items.silicon, 100, Items.metaglass, 50));
displaySize = 80;

View File

@ -114,9 +114,13 @@ public class Control implements ApplicationListener, Loadable{
Call.gameOver(event.winner);
});
//add player when world loads regardless
Events.on(WorldLoadEvent.class, e -> {
player.add();
});
//autohost for pvp maps
Events.on(WorldLoadEvent.class, event -> app.post(() -> {
player.add();
if(state.rules.pvp && !net.active()){
try{
net.host(port);

View File

@ -7,7 +7,7 @@ import mindustry.*;
import mindustry.ctype.*;
import mindustry.gen.*;
import mindustry.world.blocks.logic.LogicDisplay.*;
import mindustry.world.blocks.storage.MessageBlock.*;
import mindustry.world.blocks.logic.MessageBlock.*;
public class LExecutor{
//special variables

View File

@ -17,10 +17,10 @@ public enum Category{
crafting,
/** Blocks that create units. */
units,
/** Things that upgrade the player such as mech pads. */
upgrade,
/** Things for storage or passive effects. */
effect;
effect,
/** Blocks related to logic. */
logic;
public static final Category[] all = values();

View File

@ -284,7 +284,7 @@ public abstract class Turret extends Block{
}
protected boolean validateTarget(){
return !Units.invalidateTarget(target, team, x, y) || isControlled();
return !Units.invalidateTarget(target, team, x, y) || isControlled() || logicControlled();
}
protected void findTarget(){

View File

@ -1,4 +1,4 @@
package mindustry.world.blocks.storage;
package mindustry.world.blocks.logic;
import arc.*;
import arc.Input.*;

View File

@ -0,0 +1,45 @@
package mindustry.world.blocks.logic;
import arc.graphics.g2d.*;
import mindustry.annotations.Annotations.*;
import mindustry.gen.*;
import mindustry.logic.*;
import mindustry.world.*;
public class SwitchBlock extends Block{
public @Load("@-on") TextureRegion onRegion;
public SwitchBlock(String name){
super(name);
configurable = true;
update = true;
config(Boolean.class, (ButtonEntity entity, Boolean b) -> entity.on = b);
}
public class ButtonEntity extends Building{
public boolean on;
@Override
public double sense(LAccess sensor){
if(sensor == LAccess.enabled) return on ? 1 : 0;
return super.sense(sensor);
}
@Override
public boolean configTapped(){
configure(!on);
Sounds.click.at(this);
return false;
}
@Override
public void draw(){
super.draw();
if(on){
Draw.rect(onRegion, x, y);
}
}
}
}