public override void OnPush() { // Local items always points to player inventory localItems = PlayerEntity.Items; // Start a new dropped items target droppedItems.Clear(); remoteItems = droppedItems; remoteTargetType = RemoteTargetTypes.Dropped; // Use custom loot target if specified if (lootTarget != null) { remoteItems = lootTarget.Items; remoteTargetType = RemoteTargetTypes.Loot; lootTarget.OnInventoryOpen(); } // Clear wagon button state on open if (wagonButton != null) { usingWagon = false; wagonButton.BackgroundTexture = wagonNotSelected; } // Set default button by context if (removeButton != null && lootTarget != null) { // When looting, make "remove" default action so player does not accidentially equip when picking up SelectActionMode(ActionModes.Remove); } else if (equipButton != null && lootTarget == null) { // When managing inventory only, make "equip" default action so player can manage gear SelectActionMode(ActionModes.Equip); } // Reset scrollbars if (localItemsScrollBar != null) localItemsScrollBar.ScrollIndex = 0; if (remoteItemsScrollBar != null) remoteItemsScrollBar.ScrollIndex = 0; // Refresh window Refresh(); }
void ShowWagon(bool show) { if (show) { // Save current target and switch to wagon wagonButton.BackgroundTexture = wagonSelected; lastRemoteItems = remoteItems; lastRemoteTargetType = remoteTargetType; remoteItems = PlayerEntity.WagonItems; remoteTargetType = RemoteTargetTypes.Wagon; } else { // Restore previous target or default to dropped items wagonButton.BackgroundTexture = wagonNotSelected; if (lastRemoteItems != null) { remoteItems = lastRemoteItems; remoteTargetType = lastRemoteTargetType; lastRemoteItems = null; } else { remoteItems = droppedItems; remoteTargetType = RemoteTargetTypes.Dropped; lastRemoteItems = null; } } usingWagon = show; Refresh(false); }