Rule for Serpulo core unloaders taking items from the core
This commit is contained in:
@@ -120,6 +120,8 @@ public class Rules{
|
||||
public boolean cleanupDeadTeams = true;
|
||||
/** If true, items can only be deposited in the core. */
|
||||
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. */
|
||||
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. */
|
||||
|
||||
@@ -394,6 +394,13 @@ public class ContentParser{
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Object newInstance(Class type){
|
||||
Object o = super.newInstance(type);
|
||||
onNewInstance(o, type);
|
||||
return o;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T readValue(Class<T> type, Class elementType, JsonValue jsonData, Class keyType){
|
||||
T t = internalRead(type, elementType, jsonData, keyType);
|
||||
@@ -1347,6 +1354,8 @@ public class ContentParser{
|
||||
Log.warn(string, format);
|
||||
}
|
||||
|
||||
void onNewInstance(Object object, Class<?> type){}
|
||||
|
||||
public Json getJson(){
|
||||
checkInit();
|
||||
return parser;
|
||||
|
||||
@@ -162,6 +162,7 @@ public class CustomRulesDialog extends BaseDialog{
|
||||
check("@rules.alloweditworldprocessors", b -> rules.allowEditWorldProcessors = b, () -> rules.allowEditWorldProcessors);
|
||||
check("@rules.infiniteresources", b -> rules.infiniteResources = b, () -> rules.infiniteResources);
|
||||
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.reactorexplosions", b -> rules.reactorExplosions = b, () -> rules.reactorExplosions);
|
||||
check("@rules.schematic", b -> rules.schematicsAllowed = b, () -> rules.schematicsAllowed);
|
||||
|
||||
@@ -276,6 +276,11 @@ public class CoreBlock extends StorageBlock{
|
||||
commandPos = target;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canUnload(){
|
||||
return block.unloadable && state.rules.allowCoreUnloaders;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void draw(){
|
||||
//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);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canUnload(){
|
||||
return linkedCore == null ? super.canUnload() : linkedCore.canUnload();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleItem(Building source, Item item){
|
||||
if(linkedCore != null){
|
||||
|
||||
Reference in New Issue
Block a user