/*==LICENSE==* CyanWorlds.com Engine - MMOG client, server and tools Copyright (C) 2011 Cyan Worlds, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . You can contact Cyan Worlds, Inc. by email legal@cyan.com or by snail mail at: Cyan Worlds, Inc. 14617 N Newport Hwy Mead, WA 99021 *==LICENSE==*/ #ifndef _pyVault_h_ #define _pyVault_h_ ////////////////////////////////////////////////////////////////////// // // pyVault - a wrapper class to provide interface to the plVault and the RelVaultNode // ////////////////////////////////////////////////////////////////////// #include "hsTypes.h" #include #include "pyGlueHelpers.h" class plKey; class plDniCoordinateInfo; class pyVaultNode; class pyVaultAgeLinkNode; class pyVaultFolderNode; class pyVaultPlayerInfoListNode; class pyVaultAgeInfoListNode; class pyVaultAgeInfoNode; class pyVaultChronicleNode; class pyVaultTextNoteNode; class pyAgeInfoStruct; class pyAgeLinkStruct; class pySDLStateDataRecord; class pyVault { #ifndef BUILDING_PYPLASMA protected: pyVault() {}; public: // required functions for PyObject interoperability PYTHON_CLASS_NEW_FRIEND(ptVault); PYTHON_CLASS_NEW_DEFINITION; PYTHON_CLASS_CHECK_DEFINITION; // returns true if the PyObject is a pyVault object PYTHON_CLASS_CONVERT_FROM_DEFINITION(pyVault); // converts a PyObject to a pyVault (throws error if not correct type) static void AddPlasmaClasses(PyObject *m); #else public: #endif // BUILDING_PYPLASMA static void AddPlasmaConstantsClasses(PyObject *m); enum VaultCallbackType { kVaultConnected = 1, kVaultNodeSaved, kVaultNodeRefAdded, kVaultRemovingNodeRef, kVaultNodeRefRemoved, kVaultNodeInitialized, kVaultOperationFailed, kVaultNodeAdded, kVaultDisconnected, }; #ifndef BUILDING_PYPLASMA ////////////////////////////////////////////////// PyObject* GetPlayerInfo( void ); // returns pyVaultNode PyObject* GetKIUsage(void); PyObject* GetAvatarOutfitFolder( void ); // returns pyVaultFolderNode PyObject* GetAvatarClosetFolder( void ); // returns pyVaultFolderNode PyObject* GetInbox( void ); // returns pyVaultFolderNode PyObject* GetChronicleFolder( void ); // returns pyVaultFolderNode PyObject* GetAgeJournalsFolder( void ); // returns pyVaultFolderNode PyObject* GetIgnoreListFolder( void ); // returns pyVaultPlayerInfoListNode PyObject* GetBuddyListFolder( void ); // returns pyVaultPlayerInfoListNode PyObject* GetPeopleIKnowAboutFolder( void ); // returns pyVaultPlayerInfoListNode PyObject* GetAgesICanVisitFolder(); // returns pyVaultFolderNode PyObject* GetAgesIOwnFolder(); // returns pyVaultFolderNode PyObject* GetInviteFolder(); // returns pyVaultFolderNode /////////////// PyObject* GetLinkToMyNeighborhood() const; // returns pyVaultAgeLinkNode PyObject* GetLinkToCity() const; // returns pyVaultAgeLinkNode /////////////// // Owned ages PyObject* GetOwnedAgeLink( const pyAgeInfoStruct & info ); // returns pyVaultAgeLinkNode // Visit ages PyObject* GetVisitAgeLink( const pyAgeInfoStruct & info ); // returns pyVaultAgeLinkNode /////////////// // Chronicle PyObject* FindChronicleEntry( const char * entryName ); // returns pyVaultChronicleNode void AddChronicleEntry( const char * name, UInt32 type, const char * value ); /////////////// // publishing void SendToDevice( pyVaultNode& node, const char * deviceName ); /////////////// // yeesha pages, etc. PyObject* GetPsnlAgeSDL() const; // returns pySDLStateDataRecord void UpdatePsnlAgeSDL( pySDLStateDataRecord & rec ); /////////////// // true if we are joined to our personal age. bool InMyPersonalAge( void ) const; // true if we are joined to our neighborhood age. bool InMyNeighborhoodAge( void ) const; // true if we own the age we are in bool AmOwnerOfCurrentAge() const; // true if we are czar of the age we are in bool AmCzarOfCurrentAge() const; // true if we own the given age bool AmAgeOwner( const pyAgeInfoStruct * ageInfo ); // true if we are czar of the given age bool AmAgeCzar( const pyAgeInfoStruct * ageInfo ); /////////////// // Registser the given age as owned by player. void RegisterOwnedAge( const pyAgeLinkStruct & link ); void UnRegisterOwnedAge( const char * ageFilename ); // Register the given age as visitable by player void RegisterVisitAge( const pyAgeLinkStruct & link ); void UnRegisterVisitAge( const char * guid ); // Register a nexus station void RegisterMTStation( const char * stationName, const char * mtSpawnPt ); /////////////// // Invite player to visit an age. void InvitePlayerToAge( const pyAgeLinkStruct & link, UInt32 playerID ); void UnInvitePlayerToAge( const char * guid, UInt32 playerID ); // Offer link to player void OfferLinkToPlayer( const pyAgeLinkStruct & link, UInt32 playerID ); /////////////// // Creates neighborhood and joins the player to it as the mayor/czar. void CreateNeighborhood(); // set an age's public status. will fail if you aren't czar of age. bool SetAgePublic( const pyAgeInfoStruct * ageInfo, bool makePublic ); PyObject* GetGlobalInbox( void ); // returns pyVaultFolderNode #ifdef GlobalInboxTestCode void CreateGlobalInbox( void ); #endif // find matching node PyObject* FindNode( pyVaultNode* templateNode ) const; // returns pyVaultNode #endif // BUILDING_PYPLASMA }; #endif // _pyVault_h_