Added rule for editing world processors in-game
This commit is contained in:
@@ -1340,6 +1340,8 @@ rules.wavetimer = Wave Timer
|
|||||||
rules.wavesending = Wave Sending
|
rules.wavesending = Wave Sending
|
||||||
rules.allowedit = Allow Editing Rules
|
rules.allowedit = Allow Editing Rules
|
||||||
rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu.
|
rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu.
|
||||||
|
rules.alloweditworldprocessors = Allow Editing World Processors
|
||||||
|
rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor.
|
||||||
rules.waves = Waves
|
rules.waves = Waves
|
||||||
rules.airUseSpawns = Air units use spawn points
|
rules.airUseSpawns = Air units use spawn points
|
||||||
rules.attack = Attack Mode
|
rules.attack = Attack Mode
|
||||||
|
|||||||
@@ -5916,7 +5916,7 @@ public class Blocks{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
worldProcessor = new LogicBlock("world-processor"){{
|
worldProcessor = new LogicBlock("world-processor"){{
|
||||||
requirements(Category.logic, BuildVisibility.editorOnly, with());
|
requirements(Category.logic, BuildVisibility.worldProcessorOnly, with());
|
||||||
|
|
||||||
canOverdrive = false;
|
canOverdrive = false;
|
||||||
targetable = false;
|
targetable = false;
|
||||||
@@ -5929,7 +5929,7 @@ public class Blocks{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
worldCell = new MemoryBlock("world-cell"){{
|
worldCell = new MemoryBlock("world-cell"){{
|
||||||
requirements(Category.logic, BuildVisibility.editorOnly, with());
|
requirements(Category.logic, BuildVisibility.worldProcessorOnly, with());
|
||||||
|
|
||||||
targetable = false;
|
targetable = false;
|
||||||
privileged = true;
|
privileged = true;
|
||||||
@@ -5938,14 +5938,14 @@ public class Blocks{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
worldMessage = new MessageBlock("world-message"){{
|
worldMessage = new MessageBlock("world-message"){{
|
||||||
requirements(Category.logic, BuildVisibility.editorOnly, with());
|
requirements(Category.logic, BuildVisibility.worldProcessorOnly, with());
|
||||||
|
|
||||||
targetable = false;
|
targetable = false;
|
||||||
privileged = true;
|
privileged = true;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
worldSwitch = new SwitchBlock("world-switch"){{
|
worldSwitch = new SwitchBlock("world-switch"){{
|
||||||
requirements(Category.logic, BuildVisibility.editorOnly, with());
|
requirements(Category.logic, BuildVisibility.worldProcessorOnly, with());
|
||||||
|
|
||||||
targetable = false;
|
targetable = false;
|
||||||
privileged = true;
|
privileged = true;
|
||||||
|
|||||||
@@ -85,6 +85,8 @@ public class Rules{
|
|||||||
public boolean ghostBlocks = true;
|
public boolean ghostBlocks = true;
|
||||||
/** Whether to allow units to build with logic. */
|
/** Whether to allow units to build with logic. */
|
||||||
public boolean logicUnitBuild = true;
|
public boolean logicUnitBuild = true;
|
||||||
|
/** If true, world processors can be edited and placed on this map. */
|
||||||
|
public boolean allowEditWorldProcessors = false;
|
||||||
/** If true, world processors no longer update. Used for testing. */
|
/** If true, world processors no longer update. Used for testing. */
|
||||||
public boolean disableWorldProcessors = false;
|
public boolean disableWorldProcessors = false;
|
||||||
/** How much health blocks start with. */
|
/** How much health blocks start with. */
|
||||||
|
|||||||
@@ -230,6 +230,7 @@ public class CustomRulesDialog extends BaseDialog{
|
|||||||
number("@rules.dropzoneradius", false, f -> rules.dropZoneRadius = f * tilesize, () -> rules.dropZoneRadius / tilesize, () -> rules.waves);
|
number("@rules.dropzoneradius", false, f -> rules.dropZoneRadius = f * tilesize, () -> rules.dropZoneRadius / tilesize, () -> rules.waves);
|
||||||
|
|
||||||
category("resourcesbuilding");
|
category("resourcesbuilding");
|
||||||
|
check("@rules.alloweditworldprocessors", b -> rules.allowEditWorldProcessors = b, () -> rules.allowEditWorldProcessors);
|
||||||
check("@rules.infiniteresources", b -> rules.infiniteResources = b, () -> rules.infiniteResources);
|
check("@rules.infiniteresources", b -> rules.infiniteResources = b, () -> rules.infiniteResources);
|
||||||
check("@rules.onlydepositcore", b -> rules.onlyDepositCore = b, () -> rules.onlyDepositCore);
|
check("@rules.onlydepositcore", b -> rules.onlyDepositCore = b, () -> rules.onlyDepositCore);
|
||||||
check("@rules.derelictrepair", b -> rules.derelictRepair = b, () -> rules.derelictRepair);
|
check("@rules.derelictrepair", b -> rules.derelictRepair = b, () -> rules.derelictRepair);
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ public class LogicBlock extends Block{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean accessible(){
|
public boolean accessible(){
|
||||||
return !privileged || state.rules.editor || state.playtestingMap != null;
|
return !privileged || state.rules.editor || state.playtestingMap != null || state.rules.allowEditWorldProcessors;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ public class MemoryBlock extends Block{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean accessible(){
|
public boolean accessible(){
|
||||||
return !privileged || state.rules.editor;
|
return !privileged || state.rules.editor || state.rules.allowEditWorldProcessors;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ public class MessageBlock extends Block{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean accessible(){
|
public boolean accessible(){
|
||||||
return !privileged || state.rules.editor;
|
return !privileged || state.rules.editor || state.rules.allowEditWorldProcessors;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ public class SwitchBlock extends Block{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean accessible(){
|
public boolean accessible(){
|
||||||
return !privileged || state.rules.editor;
|
return !privileged || state.rules.editor || state.rules.allowEditWorldProcessors;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ public class BuildVisibility{
|
|||||||
shown = new BuildVisibility(() -> true),
|
shown = new BuildVisibility(() -> true),
|
||||||
debugOnly = new BuildVisibility(() -> false),
|
debugOnly = new BuildVisibility(() -> false),
|
||||||
editorOnly = new BuildVisibility(() -> Vars.state.rules.editor),
|
editorOnly = new BuildVisibility(() -> Vars.state.rules.editor),
|
||||||
|
worldProcessorOnly = new BuildVisibility(() -> Vars.state.rules.editor || Vars.state.rules.allowEditWorldProcessors),
|
||||||
sandboxOnly = new BuildVisibility(() -> Vars.state == null || Vars.state.rules.infiniteResources),
|
sandboxOnly = new BuildVisibility(() -> Vars.state == null || Vars.state.rules.infiniteResources),
|
||||||
campaignOnly = new BuildVisibility(() -> Vars.state == null || Vars.state.isCampaign()),
|
campaignOnly = new BuildVisibility(() -> Vars.state == null || Vars.state.isCampaign()),
|
||||||
lightingOnly = new BuildVisibility(() -> Vars.state == null || Vars.state.rules.lighting || Vars.state.isCampaign()),
|
lightingOnly = new BuildVisibility(() -> Vars.state == null || Vars.state.rules.lighting || Vars.state.isCampaign()),
|
||||||
|
|||||||
Reference in New Issue
Block a user