summaryrefslogtreecommitdiff
path: root/game/client/tf/vgui/collection_crafting_panel.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /game/client/tf/vgui/collection_crafting_panel.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'game/client/tf/vgui/collection_crafting_panel.h')
-rw-r--r--game/client/tf/vgui/collection_crafting_panel.h225
1 files changed, 225 insertions, 0 deletions
diff --git a/game/client/tf/vgui/collection_crafting_panel.h b/game/client/tf/vgui/collection_crafting_panel.h
new file mode 100644
index 0000000..491b40d
--- /dev/null
+++ b/game/client/tf/vgui/collection_crafting_panel.h
@@ -0,0 +1,225 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef COLLECTION_CRAFTING_PANEL_H
+#define COLLECTION_CRAFTING_PANEL_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "backpack_panel.h"
+#include "vgui_controls/ScrollableEditablePanel.h"
+#include "tf_gcmessages.h"
+#include "econ_gcmessages.h"
+#include "tf_imagepanel.h"
+#include "tf_controls.h"
+#include "item_selection_panel.h"
+#include "drawing_panel.h"
+#include "local_steam_shared_object_listener.h"
+
+
+//-----------------------------------------------------------------------------
+// Purpose:
+//-----------------------------------------------------------------------------
+class CCollectionCraftingSelectionPanel : public CItemCriteriaSelectionPanel
+{
+ DECLARE_CLASS_SIMPLE( CCollectionCraftingSelectionPanel, CItemCriteriaSelectionPanel );
+public:
+ CCollectionCraftingSelectionPanel( Panel *pParent ) : BaseClass( pParent, NULL ) {}
+
+ void SetCorrespondingItems( CCopyableUtlVector< const CEconItemView* >& vecSelectedItems )
+ {
+ m_vecCorrespondingItems = vecSelectedItems;
+ }
+
+ void ApplySchemeSettings( vgui::IScheme *pScheme )
+ {
+ BaseClass::ApplySchemeSettings( pScheme );
+
+ vgui::Label* pWeaponLabel = dynamic_cast<vgui::Label*>( FindChildByName( "ItemSlotLabel" ) );
+ if ( pWeaponLabel )
+ {
+ pWeaponLabel->SetVisible( false );
+ }
+ }
+
+ //-----------------------------------------------------------------------------
+ virtual const char *GetSelectionInvalidReason( const IEconItemInterface *pTestItem, const IEconItemInterface *pSourceItem ) const
+ {
+ return GetCollectionCraftingInvalidReason( pTestItem, pSourceItem );
+ }
+
+ //-----------------------------------------------------------------------------
+ // Purpose:
+ //-----------------------------------------------------------------------------
+ const char *GetItemNotSelectableReason( const CEconItemView *pItem ) const
+ {
+ if ( !pItem )
+ return NULL;
+
+ const CEconItemView* pSourceItem = m_vecCorrespondingItems.Count() ? m_vecCorrespondingItems[0] : NULL;
+
+ FOR_EACH_VEC( m_vecCorrespondingItems, i )
+ {
+ if ( pItem->GetItemID() == m_vecCorrespondingItems[i]->GetItemID() )
+ {
+ return "#TF_StrangeCount_Transfer_Self";
+ }
+ }
+
+ return GetSelectionInvalidReason( pItem, pSourceItem );
+ }
+
+ virtual bool ShouldDeleteOnClose( void ) OVERRIDE{ return false; }
+
+protected:
+ const char * m_pszTitleToken;
+ CUtlVector< const CEconItemView* > m_vecCorrespondingItems;
+};
+
+//-----------------------------------------------------------------------------
+// A panel to let users choose 10 weapons to craft up within collections
+//-----------------------------------------------------------------------------
+class CCollectionCraftingPanel : public vgui::EditablePanel, public CGameEventListener, public CLocalSteamSharedObjectListener
+{
+public:
+ DECLARE_CLASS_SIMPLE( CCollectionCraftingPanel, vgui::EditablePanel );
+ CCollectionCraftingPanel( vgui::Panel *parent, CItemModelPanelToolTip* pTooltip );
+ ~CCollectionCraftingPanel( void );
+
+ virtual const char *GetResFile( void ) { return "Resource/UI/econ/CollectionCraftingDialog.res"; }
+ virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
+ virtual void ApplySettings( KeyValues *inResourceData ) OVERRIDE;
+ virtual void PerformLayout() OVERRIDE;
+ virtual void FireGameEvent( IGameEvent *event ) OVERRIDE;
+ virtual void OnCommand( const char *command ) OVERRIDE;
+ virtual void SetVisible( bool bVisible ) OVERRIDE;
+
+ virtual void SOCreated( const CSteamID & steamIDOwner, const GCSDK::CSharedObject *pObject, GCSDK::ESOCacheEvent eEvent ) OVERRIDE;
+
+ virtual void Show( CUtlVector< const CEconItemView* >& vecStartingItems );
+ void SetWaitingForItem( eEconItemOrigin eOrigin );
+
+ virtual int GetInputItemCount() { return COLLECTION_CRAFTING_ITEM_COUNT; }
+ virtual int GetOutputItemCount() { return 0; } // For Ui Display Purposes
+
+ MESSAGE_FUNC_PTR( OnItemPanelMousePressed, "ItemPanelMousePressed", panel );
+ MESSAGE_FUNC_PARAMS( OnSelectionReturned, "SelectionReturned", data );
+
+protected:
+
+ virtual void SetItemPanelCount( );
+ virtual void CreateSelectionPanel();
+ virtual void CreateItemPanels();
+
+ void SelectPanel( int nPanel );
+ void UpdateOKButton();
+ void SetItem( const CEconItemView* pItem, int nIndex );
+ virtual void OnThink() OVERRIDE;
+
+ CItemModelPanelToolTip *m_pMouseOverTooltip;
+
+ DHANDLE<CCollectionCraftingSelectionPanel> m_hSelectionPanel;
+
+ CExButton *m_pOKButton;
+ CExButton *m_pNextItemButton;
+
+ EditablePanel* m_pTradeUpContainer;
+ CItemModelPanel* m_pSelectingItemModelPanel;
+ CUtlVector< EditablePanel* > m_vecItemContainers;
+ CUtlVector< ImagePanel* > m_vecImagePanels;
+ CUtlVector< CItemModelPanel* > m_vecItemPanels;
+
+ CUtlVector< EditablePanel* > m_vecOutputItemContainers;
+ CUtlVector< ImagePanel* > m_vecOutputImagePanels;
+ CUtlVector< CItemModelPanel* > m_vecOutputItemPanels;
+
+ CUtlVector< CUtlString > m_vecBoxTopNames;
+ CUtlVector< CUtlString > m_vecStampNames;
+ CUtlVector< CUtlString > m_vecResultStrings;
+ struct LocalizedPanelAction_t
+ {
+ CUtlString m_strPanel;
+ bool m_bShowForEnglish;
+ };
+ CUtlVector< LocalizedPanelAction_t > m_vecLocalizedPanels;
+ CBaseModelPanel *m_pModelPanel;
+ ImagePanel* m_pStampPanel;
+ CExButton* m_pStampButton;
+
+ CDrawingPanel *m_pDrawingPanel;
+ CTFItemInspectionPanel *m_pInspectPanel;
+ CItemModelPanel* m_pCosmeticResultItemModelPanel;
+ CItemModelPanel* m_pItemNamePanel;
+
+ KeyValues* m_pKVItemPanels;
+ bool m_bWaitingForGCResponse;
+ RealTimeCountdownTimer m_timerResponse;
+ CUtlVector<itemid_t> m_nFoundItemID;
+ bool m_bEnvelopeReadyToSend;
+ bool m_bShowing;
+ bool m_bShowImmediately;
+
+ eEconItemOrigin m_eEconItemOrigin;
+
+ CPanelAnimationVarAliasType( int, m_iButtonsStartX, "buttons_start_x", "0", "proportional_int" );
+ CPanelAnimationVarAliasType( int, m_iButtonsStartY, "buttons_start_y", "0", "proportional_int" );
+ CPanelAnimationVarAliasType( int, m_iButtonsStepX, "buttons_step_x", "0", "proportional_int" );
+ CPanelAnimationVarAliasType( int, m_iButtonsStepY, "buttons_step_y", "0", "proportional_int" );
+
+ CPanelAnimationVarAliasType( int, m_iOutputItemStartX, "output_start_x", "0", "proportional_int" );
+ CPanelAnimationVarAliasType( int, m_iOutputItemStartY, "output_start_y", "0", "proportional_int" );
+ CPanelAnimationVarAliasType( int, m_iOutputItemStepX, "output_step_x", "0", "proportional_int" );
+ CPanelAnimationVarAliasType( int, m_iOutputItemStepY, "output_step_y", "0", "proportional_int" );
+
+ CPanelAnimationVarAliasType( float, m_flSlideInTime, "slide_in_time", "1.0", "float" );
+ CPanelAnimationVarAliasType( int, m_iBGContainerTargetY, "bg_target_y", "0", "proportional_int" );
+};
+
+//-----------------------------------------------------------------------------
+// Purpose:
+//-----------------------------------------------------------------------------
+class CStatClockCraftingSelectionPanel : public CCollectionCraftingSelectionPanel
+{
+ DECLARE_CLASS_SIMPLE( CStatClockCraftingSelectionPanel, CCollectionCraftingSelectionPanel );
+public:
+ CStatClockCraftingSelectionPanel( Panel *pParent ) : BaseClass( pParent ) {}
+
+ //-----------------------------------------------------------------------------
+ virtual const char *GetSelectionInvalidReason( const IEconItemInterface *pTestItem, const IEconItemInterface *pSourceItem ) const
+ {
+ return GetCraftCommonStatClockInvalidReason( pTestItem, pSourceItem ); // FIX ME
+ }
+};
+
+
+//-----------------------------------------------------------------------------
+// A panel to let users choose 10 weapons to craft up within collections
+//-----------------------------------------------------------------------------
+class CCraftCommonStatClockPanel : public CCollectionCraftingPanel
+{
+public:
+ DECLARE_CLASS_SIMPLE( CCraftCommonStatClockPanel, CCollectionCraftingPanel );
+ CCraftCommonStatClockPanel( vgui::Panel *parent, CItemModelPanelToolTip* pTooltip );
+ ~CCraftCommonStatClockPanel( void );
+
+ virtual const char *GetResFile( void ) { return "Resource/UI/econ/MannCoTrade_CommonStatClock.res"; }
+ virtual void OnCommand( const char *command ) OVERRIDE;
+
+ virtual int GetInputItemCount() { return CRAFT_COMMON_STATCLOCK_ITEM_COUNT; }
+ virtual int GetOutputItemCount() { return 1; }
+
+ virtual void Show( CUtlVector< const CEconItemView* >& vecStartingItems );
+
+protected:
+
+ virtual void CreateSelectionPanel();
+
+ CEconItemView m_outputItem;
+};
+
+#endif // COLLECTION_CRAFTING_PANEL_H