Added JSONLoader and JSONAsset
Signed-off-by: Robear Selwans <robear.selwans@outlook.com>
This commit is contained in:
@@ -14,6 +14,7 @@ mod_src = [
|
||||
|
||||
# Loaders
|
||||
'src/loaders/TextLoader/TextLoader.c',
|
||||
'src/loaders/JSONLoader/JSONLoader.c',
|
||||
]
|
||||
|
||||
mod_incdir = [
|
||||
|
||||
@@ -16,3 +16,10 @@ EV_NS_DEF_BEGIN(TextLoader)
|
||||
EV_NS_DEF_FN(TextAsset, loadAsset, (AssetHandle, handle))
|
||||
|
||||
EV_NS_DEF_END(TextLoader)
|
||||
|
||||
|
||||
EV_NS_DEF_BEGIN(JSONLoader)
|
||||
|
||||
EV_NS_DEF_FN(JSONAsset, loadAsset, (AssetHandle, handle))
|
||||
|
||||
EV_NS_DEF_END(JSONLoader)
|
||||
|
||||
@@ -5,3 +5,7 @@ TYPE(AssetHandle, GenericHandle)
|
||||
TYPE(TextAsset, struct {
|
||||
evstring text;
|
||||
})
|
||||
|
||||
TYPE(JSONAsset, struct {
|
||||
PTR json_data;
|
||||
})
|
||||
|
||||
16
src/mod.c
16
src/mod.c
@@ -8,6 +8,7 @@
|
||||
|
||||
#include "loaders/LoaderCommon.h"
|
||||
#include "loaders/TextLoader/TextLoader.h"
|
||||
#include "loaders/JSONLoader/JSONLoader.h"
|
||||
|
||||
#define AssetSysCheck(...) do { \
|
||||
assetsys_error_t res = __VA_ARGS__; \
|
||||
@@ -45,6 +46,16 @@ onRemoveTextAsset(
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
onRemoveJSONAsset(
|
||||
ECSQuery query)
|
||||
{
|
||||
JSONAsset *assets = ECS->getQueryColumn(query, sizeof(JSONAsset), 1);
|
||||
for(int i = 0; i < ECS->getQueryMatchCount(query); i++) {
|
||||
ev_jsonloader_jsonasset_destr(assets[i]);
|
||||
}
|
||||
}
|
||||
|
||||
EV_CONSTRUCTOR
|
||||
{
|
||||
static_assert(sizeof(AssetEntityID) == sizeof(AssetHandle), "AssetEntityID not the same size of AssetHandle");
|
||||
@@ -62,6 +73,9 @@ EV_CONSTRUCTOR
|
||||
|
||||
ev_textloader_setassettype(AssetECS->registerComponent("TextAsset", sizeof(TextAsset), EV_ALIGNOF(TextAsset)));
|
||||
AssetECS->setOnRemoveTrigger("TextAssetOnRemove", "TextAsset", onRemoveTextAsset);
|
||||
|
||||
ev_jsonloader_setassettype(AssetECS->registerComponent("JSONAsset", sizeof(JSONAsset), EV_ALIGNOF(JSONAsset)));
|
||||
AssetECS->setOnRemoveTrigger("JSONAssetOnRemove", "JSONAsset", onRemoveJSONAsset);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -158,5 +172,7 @@ EV_BINDINGS
|
||||
|
||||
EV_NS_BIND_FN(TextLoader, loadAsset, ev_textloader_loadasset);
|
||||
|
||||
EV_NS_BIND_FN(JSONLoader, loadAsset, ev_jsonloader_loadasset);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user