Rule for Serpulo core unloaders taking items from the core
This commit is contained in:
@@ -1444,6 +1444,8 @@ rules.hidebannedblocks = Hide Banned Blocks
|
|||||||
rules.infiniteresources = Infinite Resources
|
rules.infiniteresources = Infinite Resources
|
||||||
rules.fillitems = Fill Core With Items
|
rules.fillitems = Fill Core With Items
|
||||||
rules.onlydepositcore = Only Allow Core Depositing
|
rules.onlydepositcore = Only Allow Core Depositing
|
||||||
|
rules.coreunloaders = Allow Core Unloaders
|
||||||
|
rules.coreunloaders.info = When enabled, Serpulo unloaders can take items from the core.\nDoes not affect Erekir unloaders.
|
||||||
rules.derelictrepair = Allow Derelict Block Repair
|
rules.derelictrepair = Allow Derelict Block Repair
|
||||||
rules.reactorexplosions = Reactor Explosions
|
rules.reactorexplosions = Reactor Explosions
|
||||||
rules.coreincinerates = Core Incinerates Overflow
|
rules.coreincinerates = Core Incinerates Overflow
|
||||||
|
|||||||
@@ -120,6 +120,8 @@ public class Rules{
|
|||||||
public boolean cleanupDeadTeams = true;
|
public boolean cleanupDeadTeams = true;
|
||||||
/** If true, items can only be deposited in the core. */
|
/** If true, items can only be deposited in the core. */
|
||||||
public boolean onlyDepositCore = false;
|
public boolean onlyDepositCore = false;
|
||||||
|
/** If true, Serpulo unloaders can take items from the core. */
|
||||||
|
public boolean allowCoreUnloaders = true;
|
||||||
/** Cooldown, in seconds, of item depositing for players. */
|
/** Cooldown, in seconds, of item depositing for players. */
|
||||||
public float itemDepositCooldown = 0.5f;
|
public float itemDepositCooldown = 0.5f;
|
||||||
/** If true, every enemy block in the radius of the (enemy) core is destroyed upon death. Used for campaign maps. */
|
/** If true, every enemy block in the radius of the (enemy) core is destroyed upon death. Used for campaign maps. */
|
||||||
|
|||||||
@@ -394,6 +394,13 @@ public class ContentParser{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Object newInstance(Class type){
|
||||||
|
Object o = super.newInstance(type);
|
||||||
|
onNewInstance(o, type);
|
||||||
|
return o;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T readValue(Class<T> type, Class elementType, JsonValue jsonData, Class keyType){
|
public <T> T readValue(Class<T> type, Class elementType, JsonValue jsonData, Class keyType){
|
||||||
T t = internalRead(type, elementType, jsonData, keyType);
|
T t = internalRead(type, elementType, jsonData, keyType);
|
||||||
@@ -1347,6 +1354,8 @@ public class ContentParser{
|
|||||||
Log.warn(string, format);
|
Log.warn(string, format);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void onNewInstance(Object object, Class<?> type){}
|
||||||
|
|
||||||
public Json getJson(){
|
public Json getJson(){
|
||||||
checkInit();
|
checkInit();
|
||||||
return parser;
|
return parser;
|
||||||
|
|||||||
@@ -162,6 +162,7 @@ public class CustomRulesDialog extends BaseDialog{
|
|||||||
check("@rules.alloweditworldprocessors", b -> rules.allowEditWorldProcessors = b, () -> rules.allowEditWorldProcessors);
|
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.coreunloaders", b -> rules.allowCoreUnloaders = b, () -> rules.allowCoreUnloaders);
|
||||||
check("@rules.derelictrepair", b -> rules.derelictRepair = b, () -> rules.derelictRepair);
|
check("@rules.derelictrepair", b -> rules.derelictRepair = b, () -> rules.derelictRepair);
|
||||||
check("@rules.reactorexplosions", b -> rules.reactorExplosions = b, () -> rules.reactorExplosions);
|
check("@rules.reactorexplosions", b -> rules.reactorExplosions = b, () -> rules.reactorExplosions);
|
||||||
check("@rules.schematic", b -> rules.schematicsAllowed = b, () -> rules.schematicsAllowed);
|
check("@rules.schematic", b -> rules.schematicsAllowed = b, () -> rules.schematicsAllowed);
|
||||||
|
|||||||
@@ -276,6 +276,11 @@ public class CoreBlock extends StorageBlock{
|
|||||||
commandPos = target;
|
commandPos = target;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canUnload(){
|
||||||
|
return block.unloadable && state.rules.allowCoreUnloaders;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void draw(){
|
public void draw(){
|
||||||
//draw thrusters when just landed
|
//draw thrusters when just landed
|
||||||
|
|||||||
@@ -53,6 +53,11 @@ public class StorageBlock extends Block{
|
|||||||
return linkedCore != null ? linkedCore.acceptItem(source, item) : items.get(item) < getMaximumAccepted(item);
|
return linkedCore != null ? linkedCore.acceptItem(source, item) : items.get(item) < getMaximumAccepted(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canUnload(){
|
||||||
|
return linkedCore == null ? super.canUnload() : linkedCore.canUnload();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleItem(Building source, Item item){
|
public void handleItem(Building source, Item item){
|
||||||
if(linkedCore != null){
|
if(linkedCore != null){
|
||||||
|
|||||||
Reference in New Issue
Block a user