76 lines
2.4 KiB
C
76 lines
2.4 KiB
C
////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Crytek Engine Source File.
|
|
// Copyright (C), Crytek Studios, 2001-2004.
|
|
// -------------------------------------------------------------------------
|
|
// File name: IDataBaseItem.h
|
|
// Version: v1.00
|
|
// Created: 3/5/2004 by Timur.
|
|
// Compilers: Visual Studio.NET 2003
|
|
// Description:
|
|
// -------------------------------------------------------------------------
|
|
// History:
|
|
//
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef __IDataBaseItem_h__
|
|
#define __IDataBaseItem_h__
|
|
#pragma once
|
|
|
|
|
|
struct IDataBaseLibrary;
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
/** Base class for all items contained in BaseLibraray.
|
|
*/
|
|
struct IDataBaseItem
|
|
{
|
|
struct SerializeContext
|
|
{
|
|
XmlNodeRef node;
|
|
bool bLoading;
|
|
bool bCopyPaste;
|
|
bool bIgnoreChilds;
|
|
bool bUniqName;
|
|
SerializeContext() : node(0),bLoading(false),bCopyPaste(false),bIgnoreChilds(false),bUniqName(false) {};
|
|
SerializeContext( XmlNodeRef _node,bool bLoad ) : node(_node),bLoading(bLoad),bCopyPaste(false),bIgnoreChilds(false),bUniqName(false) {};
|
|
SerializeContext( const SerializeContext &ctx ) : node(ctx.node),bLoading(ctx.bLoading),
|
|
bCopyPaste(ctx.bCopyPaste),bIgnoreChilds(ctx.bIgnoreChilds),bUniqName(ctx.bUniqName) {};
|
|
};
|
|
|
|
//! Return Library this item are contained in.
|
|
//! Item can only be at one library.
|
|
virtual IDataBaseLibrary* GetLibrary() const = 0;
|
|
|
|
//! Change item name.
|
|
virtual void SetName( const CString &name ) = 0;
|
|
//! Get item name.
|
|
virtual const CString& GetName() const = 0;
|
|
|
|
//! Get full item name, including name of library.
|
|
//! Name formed by adding dot after name of library
|
|
//! eg. library Pickup and item PickupRL form full item name: "Pickups.PickupRL".
|
|
virtual CString GetFullName() const = 0;
|
|
|
|
//! Get only nameof group from prototype.
|
|
virtual CString GetGroupName() = 0;
|
|
//! Get short name of prototype without group.
|
|
virtual CString GetShortName() = 0;
|
|
|
|
//! Serialize library item to archive.
|
|
virtual void Serialize( SerializeContext &ctx ) = 0;
|
|
|
|
//! Generate new unique id for this item.
|
|
virtual void GenerateId() = 0;
|
|
//! Returns GUID of this material.
|
|
virtual REFGUID GetGUID() const = 0;
|
|
|
|
//! Validate item for errors.
|
|
virtual void Validate() {};
|
|
|
|
//! Gathers resources by this item.
|
|
virtual void GatherUsedResources( CUsedResources &resources ) {};
|
|
};
|
|
|
|
#endif // __IDataBaseItem_h__
|