public void BeginPlacing(PlacementInformation info) { Clear(); IoCManager.Resolve<IUserInterfaceManager>().CancelTargeting(); IoCManager.Resolve<IUserInterfaceManager>().DragInfo.Reset(); CurrentPermission = info; if (!_modeDictionary.Any(pair => pair.Key.Equals(CurrentPermission.PlacementOption))) { Clear(); return; } Type modeType = _modeDictionary.First(pair => pair.Key.Equals(CurrentPermission.PlacementOption)).Value; CurrentMode = (PlacementMode) Activator.CreateInstance(modeType, this); if (info.IsTile) PreparePlacementTile((Tile)info.TileType); else PreparePlacement(info.EntityType); }
public void Clear() { CurrentBaseSprite = null; CurrentTemplate = null; CurrentPermission = null; CurrentMode = null; if (PlacementCanceled != null && IsActive && !Eraser) PlacementCanceled(this, null); IsActive = false; Eraser = false; }