#include "voxel_node.h" #include "../edition/voxel_tool.h" #include "../generators/voxel_generator.h" #include "../meshers/voxel_mesher.h" #include "../streams/voxel_stream.h" namespace zylann::voxel { void VoxelNode::set_mesher(Ref mesher) { // Implemented in subclasses } Ref VoxelNode::get_mesher() const { // Implemented in subclasses return Ref(); } void VoxelNode::set_stream(Ref stream) { // Implemented in subclasses } Ref VoxelNode::get_stream() const { // Implemented in subclasses return Ref(); } void VoxelNode::set_generator(Ref generator) { // Implemented in subclasses } Ref VoxelNode::get_generator() const { // Implemented in subclasses return Ref(); } void VoxelNode::restart_stream() { // Not implemented } void VoxelNode::remesh_all_blocks() { // Not implemented } uint32_t VoxelNode::get_volume_id() const { CRASH_NOW_MSG("Not implemented"); return 0; } std::shared_ptr VoxelNode::get_streaming_dependency() const { CRASH_NOW_MSG("Not implemented"); return nullptr; } Ref VoxelNode::get_voxel_tool() { CRASH_NOW_MSG("Not implemented"); return Ref(); } #ifdef TOOLS_ENABLED TypedArray VoxelNode::get_configuration_warnings() const { Ref mesher = get_mesher(); Ref stream = get_stream(); Ref generator = get_generator(); TypedArray warnings = Node3D::get_configuration_warnings(); if (mesher.is_null()) { warnings.append(TTR("This node has no mesher assigned, it wont produce any mesh visuals. " "You can assign one on the `mesher` property.")); } if (stream.is_valid()) { Ref