public void Add(string bldName) { BuildingIcon icn = new BuildingIcon(bldName, reg); Tip.SetToolTip(icn, bldName); base.Controls.Add(icn); Arrange(); }
public void UpdateSelection(BuildingIcon select) { selected = select; if (ghost != null) { Destroy(ghost.gameObject); ghost = null; } if (selected != null) { ghost = Instantiate(selected.buildingPrefab); ghost.enabled = false; foreach (var behavior in ghost.toDisableAsGhost) { behavior.enabled = false; } ghost.GetComponent <MeshRenderer>().material = ghostMaterial; } }
private void Start() { selected = null; }
void initCategories(ContentManager content) { var categories = Enum.GetValues(typeof(BuildingCategory)); var buildings = Enum.GetValues(typeof(Building)).OfType <Building>().ToList(); foreach (BuildingCategory category in categories) { var inCategory = (List <Building>)buildings .Where(building => world.GetBuildingProperties(building).Category == category) .ToList(); buildingIcons[category] = new List <BuildingIcon>(); foreach (var building in inCategory) { var properties = world.GetBuildingProperties(building); var texture = content.Load <Texture2D>(properties.IconTexture); var icon = new BuildingIcon( texture, properties.Description, 0, 4); icon.OnClick += delegate { var purchase = world.CreateBuilding(building); var buildingScreen = new BuildingScreen(purchase, world, false); buildingScreen.OnPurchase += delegate { ExitScreen(); }; ScreenManager.AddScreen(buildingScreen); }; buildingIcons[category].Add(icon); } } var rowWidth = (BuildingIcon.Size.X + iconPadding) * iconsPerRow; var offsetX = (menuTexture.Width - rowWidth) / 2; iconPositions = new Vector2[maxRows * iconsPerRow]; for (int i = 0; i < categories.Length; i++) { int row = i / iconsPerRow; iconPositions[i] = new Vector2() { X = offsetX + (i * (BuildingIcon.Size.X + iconPadding)), Y = iconYOffset + (row * (BuildingIcon.Size.Y + iconPadding)) }; } }