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
|
# Loaders
|
||||||
'src/loaders/TextLoader/TextLoader.c',
|
'src/loaders/TextLoader/TextLoader.c',
|
||||||
|
'src/loaders/JSONLoader/JSONLoader.c',
|
||||||
]
|
]
|
||||||
|
|
||||||
mod_incdir = [
|
mod_incdir = [
|
||||||
|
|||||||
@@ -16,3 +16,10 @@ EV_NS_DEF_BEGIN(TextLoader)
|
|||||||
EV_NS_DEF_FN(TextAsset, loadAsset, (AssetHandle, handle))
|
EV_NS_DEF_FN(TextAsset, loadAsset, (AssetHandle, handle))
|
||||||
|
|
||||||
EV_NS_DEF_END(TextLoader)
|
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 {
|
TYPE(TextAsset, struct {
|
||||||
evstring text;
|
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/LoaderCommon.h"
|
||||||
#include "loaders/TextLoader/TextLoader.h"
|
#include "loaders/TextLoader/TextLoader.h"
|
||||||
|
#include "loaders/JSONLoader/JSONLoader.h"
|
||||||
|
|
||||||
#define AssetSysCheck(...) do { \
|
#define AssetSysCheck(...) do { \
|
||||||
assetsys_error_t res = __VA_ARGS__; \
|
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
|
EV_CONSTRUCTOR
|
||||||
{
|
{
|
||||||
static_assert(sizeof(AssetEntityID) == sizeof(AssetHandle), "AssetEntityID not the same size of AssetHandle");
|
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)));
|
ev_textloader_setassettype(AssetECS->registerComponent("TextAsset", sizeof(TextAsset), EV_ALIGNOF(TextAsset)));
|
||||||
AssetECS->setOnRemoveTrigger("TextAssetOnRemove", "TextAsset", onRemoveTextAsset);
|
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(TextLoader, loadAsset, ev_textloader_loadasset);
|
||||||
|
|
||||||
|
EV_NS_BIND_FN(JSONLoader, loadAsset, ev_jsonloader_loadasset);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user