package net.fourbytes.shadow.mod; import net.fourbytes.shadow.Layer; import net.fourbytes.shadow.Level; import net.fourbytes.shadow.ParticleType; import net.fourbytes.shadow.blocks.BlockType; import net.fourbytes.shadow.network.Data; import net.fourbytes.shadow.systems.ISystem; /** * The ModAPIDefault is the default IModAPI used by * Shadow Engine itself. It extends and is not to be * confused with IModAPIStandard. */ public class ModAPIDefault implements IModAPIStandard { @Override public String apiName() { return "Default Shadow Engine ModAPI"; } @Override public String apiAuthor() { return "Fourbytes and GitHub contributors"; } @Override public String apiVersion() { return "Not counted..."; } @Override public IMod getModule() { return null; } @Override public void preTick(float delta) { for (int i = 0; i < ModManager.mods.size; i++) { IMod mod = ModManager.mods.items[i]; if (mod instanceof IModStandard) { ((IModStandard) mod).preTick(delta); } } } @Override public void postTick(float delta) { for (int i = 0; i < ModManager.mods.size; i++) { IMod mod = ModManager.mods.items[i]; if (mod instanceof IModStandard) { ((IModStandard) mod).postTick(delta); } } } @Override public void preRender(float delta) { for (int i = 0; i < ModManager.mods.size; i++) { IMod mod = ModManager.mods.items[i]; if (mod instanceof IModStandard) { ((IModStandard) mod).preRender(delta); } } } @Override public void postRender(float delta) { for (int i = 0; i < ModManager.mods.size; i++) { IMod mod = ModManager.mods.items[i]; if (mod instanceof IModStandard) { ((IModStandard) mod).postRender(delta); } } } @Override public BlockType getTypeBlock(String subtype, float x, float y, Layer layer) { BlockType b = null; for (int i = 0; i < ModManager.mods.size; i++) { IMod mod = ModManager.mods.items[i]; if (mod instanceof IModStandard) { b = ((IModStandard) mod).getTypeBlock(subtype, x, y, layer); if (b != null) { break; } } } return b; } @Override public boolean generateTile(Level genLevel, int xx, int x, int y, int ln) { for (int i = 0; i < ModManager.mods.size; i++) { IMod mod = ModManager.mods.items[i]; if (mod instanceof IModStandard) { if (!((IModStandard) mod).generateTile(genLevel, xx, x, y, ln)) { return false; } } } return true; } @Override public void create() { for (int i = 0; i < ModManager.mods.size; i++) { IMod mod = ModManager.mods.items[i]; mod.create(); } } @Override public void dispose() { for (int i = 0; i < ModManager.mods.size; i++) { IMod mod = ModManager.mods.items[i]; mod.dispose(); } } @Override public void initLevelSystems(Level level) { for (int i = 0; i < ModManager.mods.size; i++) { IMod mod = ModManager.mods.items[i]; if (mod instanceof IModStandard) { ((IModStandard) mod).initLevelSystems(level); } } } @Override public ISystem initLevelSystem(Level level, String name) { ISystem system = null; for (int i = 0; i < ModManager.mods.size; i++) { IMod mod = ModManager.mods.items[i]; if (mod instanceof IModStandard) { system = ((IModStandard) mod).initLevelSystem(level, name); if (system != null) { break; } } } return system; } @Override public ParticleType getParticleType(String typeName) { ParticleType pt = null; for (int i = 0; i < ModManager.mods.size; i++) { IMod mod = ModManager.mods.items[i]; if (mod instanceof IModStandard) { pt = ((IModStandard) mod).getParticleType(typeName); if (pt != null) { break; } } } return pt; } @Override public boolean handleClient(Data data, Object target) { for (int i = 0; i < ModManager.mods.size; i++) { IMod mod = ModManager.mods.items[i]; if (mod instanceof IModStandard) { if (((IModStandard) mod).handleClient(data, target)) { return true; } } } return false; } @Override public boolean handleServer(Data data, Object target) { for (int i = 0; i < ModManager.mods.size; i++) { IMod mod = ModManager.mods.items[i]; if (mod instanceof IModStandard) { if (((IModStandard) mod).handleServer(data, target)) { return true; } } } return false; } }