DragonNest/Client/EtCutSceneTool/ActorProperty.h
2024-12-19 09:48:26 +08:00

57 lines
1.4 KiB
C++

#pragma once
#include <wx/wx.h>
#include "EternityEngine.h"
#include "ipropertydelegate.h"
class CActorProperty : public IPropertyDelegate
{
private:
enum
{
ACTOR_NAME,
ACTOR_RES_NAME, // 액터 변경을 위한 액터 리스트
POSITION,
//POS_X,
//POS_Y,
//POS_Z,
FIT_YPOS_TO_MAP,
ROTATION,
INFLUENCE_LIGHTMAP, // 라이트 맵 영향을 받는지 안받는지. (actor 는 기본적으로 받게 되어있음)
SCALE_LOCK, // 스케일 락이 걸려있으면 무조건 기본 스케일(1.0)으로 클라이언트에서 재생하도록 한다.
// 보스몹으로 따로 셋팅할 것인지. 같은 액터들이 조무래기로 있는 경우 같은 액터 테이블 ID 를 사용하면서 겉으로 보기에 스케일 값이 다르므로 툴에서
// 해당 스케일로 셋팅해주고 클라이언트에서도 실제로 돌릴 때 이 정보로 알 수 있도록 처리한다.
// 스케일 락이 꺼져 있을 경우에만 선택 가능하다.
SELECT_BOSS,
COUNT,
};
wxPGId m_aPGID[ COUNT ];
// 업데이트 직전 데이터를 갖고 있는다.
wxString m_strPrevActorName;
EtVector3 m_vPrevPos;
float m_fPrevRotation;
bool m_bPrevInfluenceLightmap;
bool m_bPrevScaleLock;
private:
void _RebuildProperty( void );
void _UpdateProp( void );
public:
CActorProperty( wxWindow* pParent, int id );
virtual ~CActorProperty(void);
// from IPropertyDelegate
void Initialize( void );
void OnShow( void );
void OnPropertyChanged( wxPropertyGridEvent& PGEvent );
void ClearTempData( void );
void CommandPerformed( ICommand* pCommand );
//
};