public void BeginPlacing(PlacementInformation info) { Clear(); 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; CurrentPrototype = null; CurrentPermission = null; CurrentMode = null; if (PlacementCanceled != null && IsActive && !Eraser) { PlacementCanceled(this, null); } IsActive = false; Eraser = false; }