public void UpdateDisplayItem(Gate gate) { _currentGate = gate; UpdateItemPopupDrawer(gate.Type); if (_allowSubgates) { gate.RefreshSubGates(); _subGateListAdaptor = new GenericClassListAdaptor <Gate>(gate.SubGates, 20, () => { return(new Gate()); }, (position, subGate, index) => { if (index < _subGatesDrawers.Count) { _subGatesDrawers[index].Draw(new Rect(position.x + 10, position.y, position.width * 0.5f, position.height), subGate); } return(subGate); }, (subGate) => { if (_subGatesDrawers.Count > 0) { return(_subGatesDrawers[0].CalculateHeight(subGate)); } return(20); }); } }
private void OnRemoveMission(object sender, ItemRemovingEventArgs args) { GenericClassListAdaptor <Mission> listAdaptor = args.adaptor as GenericClassListAdaptor <Mission>; Mission mission = listAdaptor[args.itemIndex]; if (listAdaptor != null) { if (EditorUtility.DisplayDialog("Confirm to delete", "Confirm to delete mission [" + mission.ID + "]?", "OK", "Cancel")) { args.Cancel = false; GameKit.Config.UpdateMapsAndTree(); GameKitEditorWindow.GetInstance().Repaint(); MissionTreeExplorer missionTreeExplorer = GameKitEditorWindow.GetInstance().GetTreeExplorer( GameKitEditorWindow.TabType.Missions) as MissionTreeExplorer; if (missionTreeExplorer.CurrentSelectedItem == mission) { missionTreeExplorer.SelectItem(null); } } else { args.Cancel = true; } } }
protected override void DoOnExplorerSelectionChange(IItem item) { if (item == null) { _currentWorldOfMission = null; } else if (item is Mission) { Mission mission = item as Mission; _currentWorldOfMission = GameKit.Config.FindWorldThatMissionBelongsTo(mission); _gateDrawer.UpdateDisplayItem(mission.Gate); _listAdaptor = new GenericClassListAdaptor <Reward>((item as Mission).Rewards, 18, () => { return(new Reward()); }, (rect, reward, index) => { RewardPropertyView.Draw(rect, reward); return(reward); }, (reward) => { return(RewardPropertyView.CalculateHeight(reward)); }); } }
private void OnRemoveSubGate(object sender, ItemRemovingEventArgs args) { GenericClassListAdaptor <Gate> listAdaptor = args.adaptor as GenericClassListAdaptor <Gate>; Gate gate = listAdaptor[args.itemIndex]; (_currentGate as Gate).SubGatesID.Remove(gate.ID); GameKit.Config.SubGates.Remove(gate); GameKit.Config.UpdateMapsAndTree(); UpdateSubGatesPopupDrawers(); }
protected override void DoOnExplorerSelectionChange(IItem item) { World world = item as World; if (world == null) { return; } _gateView.UpdateDisplayItem(world.Gate); world.RefreshSubWorlds(); _subWorldListAdaptor = new GenericClassListAdaptor <World>(world.SubWorlds, 20, () => { return(new World()); }, (position, theItem, index) => { var size = GUI.skin.GetStyle("label").CalcSize(new GUIContent(theItem.ID)); GUI.Label(new Rect(position.x, position.y, size.x, position.height), theItem.ID); if (GUI.Button(new Rect(position.x + size.x + 10, position.y, 50, position.height), "Edit")) { _treeExplorer.SelectItem(theItem); } return(theItem); }); _scoreListAdaptor = new GenericClassListAdaptor <Score>(world.Scores, 20, () => { return(new Score()); }, (position, theItem, index) => { var size = GUI.skin.GetStyle("label").CalcSize(new GUIContent(theItem.ID)); GUI.Label(new Rect(position.x, position.y, size.x, position.height), theItem.ID); if (GUI.Button(new Rect(position.x + size.x + 10, position.y, 50, position.height), "Edit")) { ScoreTreeExplorer scoreTreeExplorer = (GameKitEditorWindow.GetInstance().GetTreeExplorer( GameKitEditorWindow.TabType.Scores) as ScoreTreeExplorer); GameKitEditorWindow.GetInstance().SelectTab(GameKitEditorWindow.TabType.Scores); scoreTreeExplorer.SelectItem(theItem); } return(theItem); }); _missionListAdaptor = new GenericClassListAdaptor <Mission>(world.Missions, 20, () => { return(new Mission()); }, (position, theItem, index) => { var size = GUI.skin.GetStyle("label").CalcSize(new GUIContent(theItem.ID)); GUI.Label(new Rect(position.x, position.y, size.x, position.height), theItem.ID); if (GUI.Button(new Rect(position.x + size.x + 10, position.y, 50, position.height), "Edit")) { MissionTreeExplorer missionTreeExplorer = (GameKitEditorWindow.GetInstance().GetTreeExplorer( GameKitEditorWindow.TabType.Missions) as MissionTreeExplorer); GameKitEditorWindow.GetInstance().SelectTab(GameKitEditorWindow.TabType.Missions); missionTreeExplorer.SelectItem(theItem); } return(theItem); }); }
public void UpdateDisplayItem(PurchasableItem item) { _currentPurchasableItem = item; if (item != null) { _listAdaptor = new GenericClassListAdaptor <Purchase>(item.PurchaseInfo, 18, CreatePurchase, DrawOnePurchase); UpdatePurchasePopupDrawers(); } }
public void UpdateDisplayItem(VirtualItemPack pack) { _currentDisplayedPack = pack; if (pack != null) { _listAdaptor = new GenericClassListAdaptor <PackElement>(pack.PackElements, 18, CreatePackElement, DrawPackElement); UpdateItemPopupDrawers(); } }
private void OnInsertUpgradeItem(object sender, ItemInsertedEventArgs args) { int upgradeIndex = args.itemIndex + 1; string suffix = upgradeIndex < 10 ? "00" + upgradeIndex : upgradeIndex < 100 ? "0" + upgradeIndex : upgradeIndex.ToString(); GenericClassListAdaptor <UpgradeItem> listAdaptor = args.adaptor as GenericClassListAdaptor <UpgradeItem>; UpgradeItem upgradeItem = listAdaptor[args.itemIndex]; upgradeItem.ID = string.Format("{0}-upgrade{1}", _currentDisplayItem.ID, suffix); upgradeItem.RelatedItemID = _currentDisplayItem.ID; GameKit.Config.Upgrades.Add(upgradeItem); GameKit.Config.UpdateMapsAndTree(); (_treeExplorer as VirtualItemsTreeExplorer).OnVirtualItemUpgradesChange(_currentDisplayItem as VirtualItem); }
private void OnInsertSubworld(object sender, ItemInsertedEventArgs args) { GenericClassListAdaptor <World> listAdaptor = args.adaptor as GenericClassListAdaptor <World>; World world = listAdaptor[args.itemIndex]; (_currentDisplayItem as World).SubWorldsID.Add(world.ID); GameKit.Config.Worlds.Add(world); GameKit.Config.UpdateMapsAndTree(); (_treeExplorer as WorldTreeExplorer).AddWorld(world); ScoreTreeExplorer scoreTreeExplorer = (GameKitEditorWindow.GetInstance().GetTreeExplorer( GameKitEditorWindow.TabType.Scores) as ScoreTreeExplorer); scoreTreeExplorer.AddWorld(world); }
public VirtualItemsTreeExplorer() { _virtualCurrencyListAdaptor = new GenericClassListAdaptor <VirtualCurrency>(GameKit.Config.VirtualCurrencies, 20, () => { return(new VirtualCurrency()); }, DrawItem <VirtualCurrency>); _virtualCurrencyListControl = new ReorderableListControl(ReorderableListFlags.DisableDuplicateCommand); _virtualCurrencyListControl.ItemRemoving += OnItemRemoving <VirtualCurrency>; _virtualCurrencyListControl.ItemInserted += OnItemInsert <VirtualCurrency>; _singleuseItemListAdaptor = new GenericClassListAdaptor <SingleUseItem>(GameKit.Config.SingleUseItems, 20, () => { return(new SingleUseItem()); }, DrawItem <SingleUseItem>); _singleuseItemListControl = new ReorderableListControl(ReorderableListFlags.DisableDuplicateCommand); _singleuseItemListControl.ItemRemoving += OnItemRemoving <SingleUseItem>; _singleuseItemListControl.ItemInserted += OnItemInsert <SingleUseItem>; _lifetimeItemListAdaptor = new GenericClassListAdaptor <LifeTimeItem>(GameKit.Config.LifeTimeItems, 20, () => { return(new LifeTimeItem()); }, DrawItem <LifeTimeItem>); _lifetimeItemListControl = new ReorderableListControl(ReorderableListFlags.DisableDuplicateCommand); _lifetimeItemListControl.ItemRemoving += OnItemRemoving <LifeTimeItem>; _lifetimeItemListControl.ItemInserted += OnItemInsert <LifeTimeItem>; _packListAdaptor = new GenericClassListAdaptor <VirtualItemPack>(GameKit.Config.ItemPacks, 20, () => { return(new VirtualItemPack()); }, DrawItem <VirtualItemPack>); _packListControl = new ReorderableListControl(ReorderableListFlags.DisableDuplicateCommand); _packListControl.ItemRemoving += OnItemRemoving <VirtualItemPack>; _packListControl.ItemInserted += OnItemInsert <VirtualItemPack>; _categoryListAdaptor = new GenericClassListAdaptor <VirtualCategory>(GameKit.Config.Categories, 20, () => { return(new VirtualCategory()); }, DrawItem <VirtualCategory>); _categoryListControl = new ReorderableListControl(ReorderableListFlags.DisableDuplicateCommand); _categoryListControl.ItemInserted += OnItemInsert <VirtualCategory>; _categoryListControl.ItemRemoving += OnItemRemoving <VirtualCategory>; _upgradesListAdaptors = new Dictionary <VirtualItem, UpgradeItemListAdaptor>(); _upgradesListControls = new Dictionary <VirtualItem, ReorderableListControl>(); foreach (var item in GameKit.Config.VirtualItems) { AddUpgradeListForItem(item); } }
private void OnItemInsert <T>(object sender, ItemInsertedEventArgs args) where T : SerializableItem { GenericClassListAdaptor <T> listAdaptor = args.adaptor as GenericClassListAdaptor <T>; if (listAdaptor != null) { if (listAdaptor[args.itemIndex] is UpgradeItem) { int upgradeIndex = args.itemIndex + 1; string suffix = upgradeIndex < 10 ? "00" + upgradeIndex : upgradeIndex < 100 ? "0" + upgradeIndex : upgradeIndex.ToString(); UpgradeItem upgradeItem = (listAdaptor[args.itemIndex] as UpgradeItem); upgradeItem.RelatedItemID = (listAdaptor[0] as UpgradeItem).RelatedItemID; upgradeItem.ID = string.Format("{0}-upgrade{1}", upgradeItem.RelatedItemID, suffix); GameKit.Config.Upgrades.Add(upgradeItem); } SelectItem(listAdaptor[args.itemIndex]); GameKitEditorWindow.GetInstance().Repaint(); } }
private void OnRemoveUpgradeItem(object sender, ItemRemovingEventArgs args) { GenericClassListAdaptor <UpgradeItem> listAdaptor = args.adaptor as GenericClassListAdaptor <UpgradeItem>; UpgradeItem upgradeItem = listAdaptor[args.itemIndex]; if (listAdaptor != null) { if (EditorUtility.DisplayDialog("Confirm to delete", "Confirm to delete upgrade [" + upgradeItem.ID + "]?", "OK", "Cancel")) { args.Cancel = false; GameKit.Config.Upgrades.Remove(upgradeItem); GameKit.Config.UpdateMapsAndTree(); (_treeExplorer as VirtualItemsTreeExplorer).OnVirtualItemUpgradesChange(_currentDisplayItem as VirtualItem); } else { args.Cancel = true; } } }
private void OnRemoveScore(object sender, ItemRemovingEventArgs args) { GenericClassListAdaptor <Score> listAdaptor = args.adaptor as GenericClassListAdaptor <Score>; Score score = listAdaptor[args.itemIndex]; if (listAdaptor != null) { ScorePropertyInspector scoreInspector = GameKitEditorWindow.GetInstance().GetPropertyInsepctor( GameKitEditorWindow.TabType.Scores) as ScorePropertyInspector; IItem[] items = scoreInspector.GetAffectedItems(score.ID); if (items.Length > 0) { EditorUtility.DisplayDialog("Warning", "Not allowed to delete becase the item is still used by following items: " + scoreInspector.GetAffectedItemsWarningString(items), "OK"); args.Cancel = true; } else { if (EditorUtility.DisplayDialog("Confirm to delete", "Confirm to delete score [" + score.ID + "]?", "OK", "Cancel")) { args.Cancel = false; GameKit.Config.UpdateMapsAndTree(); GameKitEditorWindow.GetInstance().Repaint(); ScoreTreeExplorer scoreTreeExplorer = GameKitEditorWindow.GetInstance().GetTreeExplorer( GameKitEditorWindow.TabType.Scores) as ScoreTreeExplorer; if (scoreTreeExplorer.CurrentSelectedItem == score) { scoreTreeExplorer.SelectItem(null); } } else { args.Cancel = true; } } } }
private void OnItemRemoving <T>(object sender, ItemRemovingEventArgs args) where T : SerializableItem { GenericClassListAdaptor <T> listAdaptor = args.adaptor as GenericClassListAdaptor <T>; T item = listAdaptor[args.itemIndex]; if (listAdaptor != null) { VirtualItemsPropertyInspector virtualItemInspector = GameKitEditorWindow.GetInstance().GetPropertyInsepctor( GameKitEditorWindow.TabType.VirtualItems) as VirtualItemsPropertyInspector; IItem[] items = virtualItemInspector.GetAffectedItems(item.ID); if (items.Length > 0) { EditorUtility.DisplayDialog("Warning", "Not allowed to delete becase the item is still used by following items: " + virtualItemInspector.GetAffectedItemsWarningString(items), "OK"); args.Cancel = true; } else { if (EditorUtility.DisplayDialog("Confirm to delete", "Confirm to delete item [" + item.ID + "]?", "OK", "Cancel")) { args.Cancel = false; if (item is UpgradeItem) { GameKit.Config.Upgrades.Remove((item as UpgradeItem)); } SelectItem(null); GameKitEditorWindow.GetInstance().Repaint(); } else { args.Cancel = true; } } } }
private void OnRemoveSubworld(object sender, ItemRemovingEventArgs args) { GenericClassListAdaptor <World> listAdaptor = args.adaptor as GenericClassListAdaptor <World>; World world = listAdaptor[args.itemIndex]; if (listAdaptor != null) { IItem[] items = GetAffectedItems(world.ID); if (items.Length > 0) { EditorUtility.DisplayDialog("Warning", "Not allowed to delete becase the item is still used by following items: " + GetAffectedItemsWarningString(items), "OK"); args.Cancel = true; } else { if (EditorUtility.DisplayDialog("Confirm to delete", "Confirm to delete world [" + world.ID + "]?", "OK", "Cancel")) { args.Cancel = false; (_currentDisplayItem as World).SubWorldsID.Remove(world.ID); RemoveSubWorldAndSubGateRecursivity(world); (_treeExplorer as WorldTreeExplorer).RemoveWorld(world); ScoreTreeExplorer scoreTreeExplorer = (GameKitEditorWindow.GetInstance().GetTreeExplorer( GameKitEditorWindow.TabType.Scores) as ScoreTreeExplorer); scoreTreeExplorer.RemoveWorld(world); GameKit.Config.UpdateMapsAndTree(); GameKitEditorWindow.GetInstance().Repaint(); } else { args.Cancel = true; } } } }
public void UpdateDisplayItem(VirtualCategory category) { _currentCategory = category; _categoryItemListAdaptor = new GenericClassListAdaptor <string>(category.ItemIDs, 20, null, DrawItemInCategory); UpdateItemsWithoutCategory(); }