15auto internal_m2n_model_get_enabled(entt::entity
id) ->
bool
19 return comp->is_enabled();
25void internal_m2n_model_set_enabled(entt::entity
id,
bool enabled)
33auto internal_m2n_model_get_shared_material(entt::entity
id, uint32_t
index) -> hpp::uuid
37 return comp->get_model().get_material(
index).uid();
43auto internal_m2n_model_get_shared_material_count(entt::entity
id) ->
int
47 return comp->get_model().get_materials().size();
53auto internal_m2n_model_get_material_instance(entt::entity
id, uint32_t
index)
58 auto instance = comp->get_model().get_material_instance(
index);
65void internal_m2n_model_set_shared_material(entt::entity
id,
const hpp::uuid& uid, uint32_t
index)
70 auto& am = ctx.get_cached<asset_manager>();
71 auto asset = am.get_asset<
material>(uid);
73 auto model = comp->get_model();
74 model.set_material(asset,
index);
75 comp->set_model(model);
79void internal_m2n_model_set_material_instance(entt::entity
id,
83 using converter = dotnet::managed_interface::converter;
87 auto model = comp->get_model();
91 auto material = model.get_or_emplace_material_instance(
index);
97 model.set_material_instance(
nullptr,
index);
99 comp->set_model(model);
103auto internal_m2n_model_get_material_instance_count(entt::entity
id) ->
int
107 return comp->get_model().get_material_instances().size();
121 auto reg = dotnet::internal_call_registry(
"Unravel.Core.ModelComponent");
122 reg.add_internal_call(
"internal_m2n_model_get_enabled", dotnet_internal_call(internal_m2n_model_get_enabled));
123 reg.add_internal_call(
"internal_m2n_model_set_enabled", dotnet_internal_call(internal_m2n_model_set_enabled));
124 reg.add_internal_call(
"internal_m2n_model_get_shared_material",
125 dotnet_internal_call(internal_m2n_model_get_shared_material));
126 reg.add_internal_call(
"internal_m2n_model_get_shared_material_count",
127 dotnet_internal_call(internal_m2n_model_get_shared_material_count));
128 reg.add_internal_call(
"internal_m2n_model_set_shared_material",
129 dotnet_internal_call(internal_m2n_model_set_shared_material));
130 reg.add_internal_call(
"internal_m2n_model_set_material_instance",
131 dotnet_internal_call(internal_m2n_model_set_material_instance));
132 reg.add_internal_call(
"internal_m2n_model_get_material_instance",
133 dotnet_internal_call(internal_m2n_model_get_material_instance));
134 reg.add_internal_call(
"internal_m2n_model_get_material_instance_count",
135 dotnet_internal_call(internal_m2n_model_get_material_instance_count));
#define APPLOG_TRACE(...)
void register_model_component_script_bindings()
void set_material_properties(const material::sptr &material, const dotnetpp_backend::managed_interface::material_properties &props)
auto safe_get_component(entt::entity id) -> T *
auto get_material_properties(const material::sptr &material) -> dotnetpp_backend::managed_interface::material_properties
static auto context() -> rtti::context &