| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #include "BsScriptStringTable.h"
- #include "BsScriptMeta.h"
- #include "BsMonoField.h"
- #include "BsMonoClass.h"
- #include "BsMonoManager.h"
- #include "BsMonoUtil.h"
- using namespace CamelotFramework;
- namespace BansheeEngine
- {
- void ScriptStringTable::initMetaData()
- {
- metaData = ScriptMeta(BansheeEngineAssemblyName, "BansheeEngine", "StringTable", &ScriptStringTable::initRuntimeData);
- MonoManager::registerScriptType(&metaData);
- }
- void ScriptStringTable::initRuntimeData()
- {
- metaData.scriptClass->addInternalCall("Internal_GetActiveLanguage", &ScriptStringTable::internal_GetActiveLanguage);
- metaData.scriptClass->addInternalCall("Internal_SetActiveLanguage", &ScriptStringTable::internal_SetActiveLanguage);
- metaData.scriptClass->addInternalCall("Internal_SetString", &ScriptStringTable::internal_SetString);
- metaData.scriptClass->addInternalCall("Internal_RemoveString", &ScriptStringTable::internal_RemoveString);
- metaData.scriptClass->addInternalCall("Internal_GetLocalizedString", &ScriptStringTable::internal_GetLocalizedString);
- }
- void ScriptStringTable::internal_GetActiveLanguage(CM::Language* value)
- {
- *value = StringTable::instance().getActiveLanguage();
- }
- void ScriptStringTable::internal_SetActiveLanguage(CM::Language value)
- {
- StringTable::instance().setActiveLanguage(value);
- }
- void ScriptStringTable::internal_SetString(MonoString* identifier, CM::Language language, MonoString* value)
- {
- StringTable::instance().setString(MonoUtil::monoToWString(identifier), language, MonoUtil::monoToWString(value));
- }
- void ScriptStringTable::internal_RemoveString(MonoString* identifier)
- {
- StringTable::instance().removeString(MonoUtil::monoToWString(identifier));
- }
- void ScriptStringTable::internal_GetLocalizedString(MonoString* identifier, MonoString** value)
- {
- CM::HString stringHandle(MonoUtil::monoToWString(identifier));
- WString outString = stringHandle;
- *value = MonoUtil::wstringToMono(MonoManager::instance().getDomain(), outString);
- }
- }
|