protected sealed override bool GetTime(ITempNode source, ITileNode target, MovementType movementType, out float time) { switch (movementType) { case MovementType.Linear: time = GetLinearTime(source.Position, target.Position); return(true); case MovementType.Teleport: time = GetTeleportTime(source, target); return(true); default: time = -1; return(false); } }
void INodeVisitor.Visit(ITempNode source, ITempNode target, MovementType movementType) { canPass = GetTime(source, target, movementType, out resTime); }
/// <summary> /// Gets if it is possible to get from <paramref name="source"/> TEMP node to <paramref name="target"/> TEMP node, /// if true, then returns the time needed in <paramref name="time"/> /// </summary> /// <param name="source">Source node</param> /// <param name="target">Target node</param> /// <param name="time">Result time it will take to get from <paramref name="source"/> to <paramref name="target"/></param> /// <returns>If it is possible to get to the</returns> protected virtual bool GetTime(ITempNode source, ITempNode target, MovementType movementType, out float time) { time = -1; return(false); }
public void Accept(INodeVisitor visitor, ITempNode source, MovementType movementType) { visitor.Visit(source, this, movementType); }
public abstract void Accept(INodeVisitor visitor, ITempNode source, MovementType movementType);