public void Init(Dictionary<string, FSM> fsms) { if (!fsms.ContainsKey(name)) throw new Exception("Unknown FSM: " + name); fsm = fsms[name]; fsm.Init(fsms); }