package kernel.binstore; import bin.Service; import bin.LSPS; import bin.Turtle; import bin.Terminal; import bin.Redstone; import bin.Net; import bin.KernelLog; import bin.HelloWorld; import bin.GPS; import bin.Disk; import haxe.ds.ReadOnlyArray; class BinStore { public static var instance: BinStore; private final store:ReadOnlyArray = [ {c: Disk, name: "Disk", aliases: ["disk"]}, {c: GPS, name: "GPS", aliases: ["gps"]}, {c: HelloWorld, name: "HelloWorld", aliases: ["hello"]}, {c: KernelLog, name: "KernelLog", aliases: ["log"]}, {c: Net, name: "Net", aliases: ["net"]}, {c: Redstone, name: "Redstone", aliases: ["redstone","rs"]}, {c: Terminal, name: "Terminal", aliases: ["terminal","term"]}, {c: Turtle, name: "Turtle", aliases: ["turtle"]}, {c: LSPS, name: "PM", aliases: ["lsps"]}, {c: Service, name: "Service", aliases: ["service","srv"]} ]; @:allow(kernel.Init) private function new() { } public function getBinByName(name:String):Null { for (bin in store) { if (bin.name == name) { return bin; } } return null; } public function getBinByAlias(alias:String):Null { for (bin in store) { for (a in bin.aliases) { if (a == alias) { return bin; } } } return null; } }