protected bool TryFindVobType(Dictionary <int, Effect> effectByID, out VobType vobType) { vobType = VobType.Undefined; if (effectByID == null) { MakeLogWarning("Provided null-value for effectByID in TryFindVobType!"); return(false); } return(TryFindVobDefType(effectByID, effectByID.Keys.ToList(), out vobType)); }
public static Vob createVob(VobType vt) { Vob v = null; if (vt == VobType.Npc) { v = new NPC(); } else if (vt == VobType.Player) { v = new Player(); } else if (vt == VobType.Item) { v = new Item(); } else if (vt == VobType.Vob) { v = new Vob(); } else if (vt == VobType.MobInter) { v = new MobInter(); } else if (vt == VobType.MobBed) { v = new MobBed(); } else if (vt == VobType.MobContainer) { v = new MobContainer(); } else if (vt == VobType.MobDoor) { v = new MobDoor(); } else if (vt == VobType.MobSwitch) { v = new MobSwitch(); } if (v != null) { v.VobType = vt; } return(v); }
protected bool TryFindVobDefType(Dictionary <int, Effect> effectByID, List <int> effectIDs, out VobType vobType) { // checks, checks, checks vobType = VobType.Undefined; if (effectByID == null) { MakeLogWarning("Provided null-value for effectByID in TryFindVobType!"); return(false); } if (effectByID.Count < 1) { MakeLogWarning("Provided empty effectByID in TryFindVobType!"); return(false); } if (effectIDs == null) { MakeLogWarning("Provided null-value for effectIDs in TryFindVobType!"); return(false); } if (effectIDs.Count < 1) { MakeLogWarning("Provided empty effectIDs in TryFindVobType!"); return(false); } int effectID; Effect effect = null; for (int e = 0; e < effectIDs.Count; e++) { effectID = effectIDs[e]; if (!effectByID.TryGetValue(effectID, out effect)) { continue; } if (TryFindVobDefType(effect, out vobType)) { break; } } return(true); }
protected bool TryFindVobDefType(Effect effect, out VobType vobType) { vobType = VobType.Undefined; foreach (var change in effect.GetChanges()) { if (change.GetChangeType() == ChangeType.Vob_VobType_Set) { try { vobType = (VobType)change.GetParameters()[0]; break; } catch (Exception ex) { MakeLogError(ex); } } } return(true); }