You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
226 lines
8.3 KiB
226 lines
8.3 KiB
5 years ago
|
//========= 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
|