added BinStore
This commit is contained in:
51
src/kernel/binstore/BinStore.hx
Normal file
51
src/kernel/binstore/BinStore.hx
Normal file
@@ -0,0 +1,51 @@
|
||||
package kernel.binstore;
|
||||
|
||||
import bin.Turtle;
|
||||
import bin.Terminal;
|
||||
import haxe.ds.ReadOnlyArray;
|
||||
import bin.Redstone;
|
||||
import bin.Net;
|
||||
import bin.KernelLog;
|
||||
import bin.HelloWorld;
|
||||
import bin.GPS;
|
||||
import bin.Disk;
|
||||
|
||||
class BinStore {
|
||||
public static var instance: BinStore;
|
||||
|
||||
private final store:ReadOnlyArray<Bin> = [
|
||||
{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"]}
|
||||
];
|
||||
|
||||
@:allow(kernel.Init)
|
||||
private function new() {
|
||||
|
||||
}
|
||||
|
||||
public function getBinByName(name:String):Null<Bin> {
|
||||
for (bin in store) {
|
||||
if (bin.name == name) {
|
||||
return bin;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public function getBinByAlias(alias:String):Null<Bin> {
|
||||
for (bin in store) {
|
||||
for (a in bin.aliases) {
|
||||
if (a == alias) {
|
||||
return bin;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user