| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #include "BsScriptStringTableManager.h"
- #include "BsScriptMeta.h"
- #include "BsMonoField.h"
- #include "BsMonoClass.h"
- #include "BsMonoManager.h"
- #include "BsMonoUtil.h"
- #include "BsScriptResourceManager.h"
- #include "BsScriptStringTable.h"
- namespace BansheeEngine
- {
- ScriptStringTableManager::ScriptStringTableManager(MonoObject* instance)
- :ScriptObject(instance)
- { }
- void ScriptStringTableManager::initRuntimeData()
- {
- metaData.scriptClass->addInternalCall("Internal_GetActiveLanguage", &ScriptStringTableManager::internal_GetActiveLanguage);
- metaData.scriptClass->addInternalCall("Internal_SetActiveLanguage", &ScriptStringTableManager::internal_SetActiveLanguage);
- metaData.scriptClass->addInternalCall("Internal_GetTable", &ScriptStringTableManager::internal_GetTable);
- metaData.scriptClass->addInternalCall("Internal_SetTable", &ScriptStringTableManager::internal_SetTable);
- metaData.scriptClass->addInternalCall("Internal_RemoveTable", &ScriptStringTableManager::internal_RemoveTable);
- }
- void ScriptStringTableManager::internal_GetActiveLanguage(Language* value)
- {
- *value = StringTableManager::instance().getActiveLanguage();
- }
- void ScriptStringTableManager::internal_SetActiveLanguage(Language value)
- {
- StringTableManager::instance().setActiveLanguage(value);
- }
- MonoObject* ScriptStringTableManager::internal_GetTable(UINT32 id)
- {
- HStringTable table = StringTableManager::instance().getTable(id);
- ScriptStringTable* scriptStringTable;
- ScriptResourceManager::instance().getScriptResource(table, &scriptStringTable, true);
- return scriptStringTable->getManagedInstance();
- }
- void ScriptStringTableManager::internal_SetTable(UINT32 id, MonoObject* table)
- {
- HStringTable nativeTable;
- if (table != nullptr)
- nativeTable = ScriptStringTable::toNative(table)->getStringTableHandle();
- StringTableManager::instance().setTable(id, nativeTable);
- }
- void ScriptStringTableManager::internal_RemoveTable(UINT32 id)
- {
- StringTableManager::instance().removeTable(id);
- }
- }
|