aboutsummaryrefslogtreecommitdiff
path: root/addons/voxel-core/classes/voxel_set.gd
diff options
context:
space:
mode:
authorjacopograndi <jacopo.grandi@outlook.it>2022-01-14 13:06:22 +0100
committerjacopograndi <jacopo.grandi@outlook.it>2022-01-14 13:06:22 +0100
commitad8002a8aadd7f537ef1c1d6c47d48f9e13d2015 (patch)
treee07c243def4499b0d220429364d9b9a3f23c1453 /addons/voxel-core/classes/voxel_set.gd
parent4bfbf641dc2b8aca8de9f86a9908063f39bd6e31 (diff)
deleted: LICENSE
deleted: README.md deleted: addons/voxel-core/assets/classes/voxel.png deleted: addons/voxel-core/assets/classes/voxel.png.import deleted: addons/voxel-core/assets/classes/voxel_core.png deleted: addons/voxel-core/assets/classes/voxel_core.png.import deleted: addons/voxel-core/assets/classes/voxel_mesh.png deleted: addons/voxel-core/assets/classes/voxel_mesh.png.import deleted: addons/voxel-core/assets/classes/voxel_set.png deleted: addons/voxel-core/assets/classes/voxel_set.png.import deleted: addons/voxel-core/assets/classes/voxel_world.png deleted: addons/voxel-core/assets/classes/voxel_world.png.import deleted: addons/voxel-core/assets/controls/about.png deleted: addons/voxel-core/assets/controls/about.png.import deleted: addons/voxel-core/assets/controls/add.png deleted: addons/voxel-core/assets/controls/add.png.import deleted: addons/voxel-core/assets/controls/area.png deleted: addons/voxel-core/assets/controls/area.png.import deleted: addons/voxel-core/assets/controls/autosave.png deleted: addons/voxel-core/assets/controls/autosave.png.import deleted: addons/voxel-core/assets/controls/cancel.png deleted: addons/voxel-core/assets/controls/cancel.png.import deleted: addons/voxel-core/assets/controls/commit.png deleted: addons/voxel-core/assets/controls/commit.png.import deleted: addons/voxel-core/assets/controls/confirm.png deleted: addons/voxel-core/assets/controls/confirm.png.import deleted: addons/voxel-core/assets/controls/cursor.png deleted: addons/voxel-core/assets/controls/cursor.png.import deleted: addons/voxel-core/assets/controls/docs.png deleted: addons/voxel-core/assets/controls/docs.png.import deleted: addons/voxel-core/assets/controls/down.png deleted: addons/voxel-core/assets/controls/down.png.import deleted: addons/voxel-core/assets/controls/duplicate.png deleted: addons/voxel-core/assets/controls/duplicate.png.import deleted: addons/voxel-core/assets/controls/edit.png deleted: addons/voxel-core/assets/controls/edit.png.import deleted: addons/voxel-core/assets/controls/effects.png deleted: addons/voxel-core/assets/controls/effects.png.import deleted: addons/voxel-core/assets/controls/export.png deleted: addons/voxel-core/assets/controls/export.png.import deleted: addons/voxel-core/assets/controls/extrude.png deleted: addons/voxel-core/assets/controls/extrude.png.import deleted: addons/voxel-core/assets/controls/fill.png deleted: addons/voxel-core/assets/controls/fill.png.import deleted: addons/voxel-core/assets/controls/floor.png deleted: addons/voxel-core/assets/controls/floor.png.import deleted: addons/voxel-core/assets/controls/general.png deleted: addons/voxel-core/assets/controls/general.png.import deleted: addons/voxel-core/assets/controls/grid.png deleted: addons/voxel-core/assets/controls/grid.png.import deleted: addons/voxel-core/assets/controls/import.png deleted: addons/voxel-core/assets/controls/import.png.import deleted: addons/voxel-core/assets/controls/individual.png deleted: addons/voxel-core/assets/controls/individual.png.import deleted: addons/voxel-core/assets/controls/info.png deleted: addons/voxel-core/assets/controls/info.png.import deleted: addons/voxel-core/assets/controls/issues.png deleted: addons/voxel-core/assets/controls/issues.png.import deleted: addons/voxel-core/assets/controls/lock.png deleted: addons/voxel-core/assets/controls/lock.png.import deleted: addons/voxel-core/assets/controls/mirrorx.png deleted: addons/voxel-core/assets/controls/mirrorx.png.import deleted: addons/voxel-core/assets/controls/mirrory.png deleted: addons/voxel-core/assets/controls/mirrory.png.import deleted: addons/voxel-core/assets/controls/mirrorz.png deleted: addons/voxel-core/assets/controls/mirrorz.png.import deleted: addons/voxel-core/assets/controls/paint.png deleted: addons/voxel-core/assets/controls/paint.png.import deleted: addons/voxel-core/assets/controls/pan.png deleted: addons/voxel-core/assets/controls/pan.png.import deleted: addons/voxel-core/assets/controls/pick.png deleted: addons/voxel-core/assets/controls/pick.png.import deleted: addons/voxel-core/assets/controls/primary.png deleted: addons/voxel-core/assets/controls/primary.png.import deleted: addons/voxel-core/assets/controls/raw.png deleted: addons/voxel-core/assets/controls/raw.png.import deleted: addons/voxel-core/assets/controls/refresh.png deleted: addons/voxel-core/assets/controls/refresh.png.import deleted: addons/voxel-core/assets/controls/reset.png deleted: addons/voxel-core/assets/controls/reset.png.import deleted: addons/voxel-core/assets/controls/secondary.png deleted: addons/voxel-core/assets/controls/secondary.png.import deleted: addons/voxel-core/assets/controls/select.png deleted: addons/voxel-core/assets/controls/select.png.import deleted: addons/voxel-core/assets/controls/settings.png deleted: addons/voxel-core/assets/controls/settings.png.import deleted: addons/voxel-core/assets/controls/solid.png deleted: addons/voxel-core/assets/controls/solid.png.import deleted: addons/voxel-core/assets/controls/sub.png deleted: addons/voxel-core/assets/controls/sub.png.import deleted: addons/voxel-core/assets/controls/swap.png deleted: addons/voxel-core/assets/controls/swap.png.import deleted: addons/voxel-core/assets/controls/tools.png deleted: addons/voxel-core/assets/controls/tools.png.import deleted: addons/voxel-core/assets/controls/unlock.png deleted: addons/voxel-core/assets/controls/unlock.png.import deleted: addons/voxel-core/assets/controls/up.png deleted: addons/voxel-core/assets/controls/up.png.import deleted: addons/voxel-core/assets/controls/visible.png deleted: addons/voxel-core/assets/controls/visible.png.import deleted: addons/voxel-core/assets/controls/wired.png deleted: addons/voxel-core/assets/controls/wired.png.import deleted: addons/voxel-core/assets/logos/GitHub.png deleted: addons/voxel-core/assets/logos/GitHub.png.import deleted: addons/voxel-core/assets/logos/Godot.png deleted: addons/voxel-core/assets/logos/Godot.png.import deleted: addons/voxel-core/assets/logos/MagicaVoxel.png deleted: addons/voxel-core/assets/logos/MagicaVoxel.png.import deleted: addons/voxel-core/classes/reader.gd deleted: addons/voxel-core/classes/readers/gpl.gd deleted: addons/voxel-core/classes/readers/image.gd deleted: addons/voxel-core/classes/readers/vox.gd deleted: addons/voxel-core/classes/voxel.gd deleted: addons/voxel-core/classes/voxel_mesh.gd deleted: addons/voxel-core/classes/voxel_object.gd deleted: addons/voxel-core/classes/voxel_set.gd deleted: addons/voxel-core/classes/voxel_tool.gd deleted: addons/voxel-core/controls/tiles_viewer/tiles_viewer.gd deleted: addons/voxel-core/controls/tiles_viewer/tiles_viewer.tscn deleted: addons/voxel-core/controls/voxel_button/voxel_button.gd deleted: addons/voxel-core/controls/voxel_button/voxel_button.tscn deleted: addons/voxel-core/controls/voxel_set_viewer/voxel_set_viewer.gd deleted: addons/voxel-core/controls/voxel_set_viewer/voxel_set_viewer.tscn deleted: addons/voxel-core/controls/voxel_viewer/voxel_viewer.gd deleted: addons/voxel-core/controls/voxel_viewer/voxel_viewer.tscn deleted: addons/voxel-core/controls/voxel_viewer/voxel_viewer_env.tres deleted: addons/voxel-core/defaults/voxel_set.tres deleted: addons/voxel-core/engine/importers/meshes.gd deleted: addons/voxel-core/engine/importers/voxel_objects.gd deleted: addons/voxel-core/engine/importers/voxel_sets.gd deleted: addons/voxel-core/engine/voxel_object_editor/editor_selection/editor_selection.gd deleted: addons/voxel-core/engine/voxel_object_editor/editor_selection/editor_selections/area.gd deleted: addons/voxel-core/engine/voxel_object_editor/editor_selection/editor_selections/extrude.gd deleted: addons/voxel-core/engine/voxel_object_editor/editor_selection/editor_selections/individual.gd deleted: addons/voxel-core/engine/voxel_object_editor/editor_tool/editor_tool.gd deleted: addons/voxel-core/engine/voxel_object_editor/editor_tool/editor_tools/add.gd deleted: addons/voxel-core/engine/voxel_object_editor/editor_tool/editor_tools/fill.gd deleted: addons/voxel-core/engine/voxel_object_editor/editor_tool/editor_tools/pick.gd deleted: addons/voxel-core/engine/voxel_object_editor/editor_tool/editor_tools/sub.gd deleted: addons/voxel-core/engine/voxel_object_editor/editor_tool/editor_tools/swap.gd deleted: addons/voxel-core/engine/voxel_object_editor/voxel_cursor/voxel_cursor.gd deleted: addons/voxel-core/engine/voxel_object_editor/voxel_grid/voxel_grid.gd deleted: addons/voxel-core/engine/voxel_object_editor/voxel_object_editor.gd deleted: addons/voxel-core/engine/voxel_object_editor/voxel_object_editor.tscn deleted: addons/voxel-core/engine/voxel_set_editor/voxel_set_editor.gd deleted: addons/voxel-core/engine/voxel_set_editor/voxel_set_editor.tscn deleted: addons/voxel-core/plugin.cfg deleted: addons/voxel-core/voxel-core.gd deleted: models/attach.mtl deleted: models/attach.obj deleted: models/attach.obj.import deleted: models/cube.mtl deleted: models/cube.obj deleted: models/cube.obj.import deleted: models/pointer.mtl deleted: models/pointer.obj deleted: models/pointer.obj.import deleted: models/shapes/Enemy.material deleted: models/shapes/T.glb deleted: models/shapes/T.glb.import deleted: models/shapes/aT.glb deleted: models/shapes/aT.glb.import deleted: models/shapes/aaT.glb deleted: models/shapes/aaT.glb.import deleted: models/shapes/aaaT.glb deleted: models/shapes/aaaT.glb.import deleted: models/shapes/aasT.glb deleted: models/shapes/aasT.glb.import deleted: models/shapes/asT.glb deleted: models/shapes/asT.glb.import deleted: models/shapes/cube.mtl deleted: models/shapes/daT.glb deleted: models/shapes/daT.glb.import deleted: models/shapes/daaT.glb deleted: models/shapes/daaT.glb.import deleted: models/shapes/daaaT.glb deleted: models/shapes/daaaT.glb.import deleted: models/shapes/daasT.glb deleted: models/shapes/daasT.glb.import deleted: models/shapes/dasT.glb deleted: models/shapes/dasT.glb.import deleted: models/shapes/dkT.glb deleted: models/shapes/dkT.glb.import deleted: models/shapes/dkaT.glb deleted: models/shapes/dkaT.glb.import deleted: models/shapes/dkdaT.glb deleted: models/shapes/dkdaT.glb.import deleted: models/shapes/dkdaaT.glb deleted: models/shapes/dkdaaT.glb.import deleted: models/shapes/dkdasT.glb deleted: models/shapes/dkdasT.glb.import deleted: models/shapes/dkdsT.glb deleted: models/shapes/dkdsT.glb.import deleted: models/shapes/dksT.glb deleted: models/shapes/dksT.glb.import deleted: models/shapes/dodecahedron.mtl deleted: models/shapes/dsT.glb deleted: models/shapes/dsT.glb.import deleted: models/shapes/dsaT.glb deleted: models/shapes/dsaT.glb.import deleted: models/shapes/dssT.glb deleted: models/shapes/dssT.glb.import deleted: models/shapes/icosahedron.mtl deleted: models/shapes/kT.glb deleted: models/shapes/kT.glb.import deleted: models/shapes/kaT.glb deleted: models/shapes/kaT.glb.import deleted: models/shapes/kdaT.glb deleted: models/shapes/kdaT.glb.import deleted: models/shapes/kdaaT.glb deleted: models/shapes/kdaaT.glb.import deleted: models/shapes/kdasT.glb deleted: models/shapes/kdasT.glb.import deleted: models/shapes/kdsT.glb deleted: models/shapes/kdsT.glb.import deleted: models/shapes/ksT.glb deleted: models/shapes/ksT.glb.import deleted: models/shapes/octahedron.mtl deleted: models/shapes/sT.glb deleted: models/shapes/sT.glb.import deleted: models/shapes/saT.glb deleted: models/shapes/saT.glb.import deleted: models/shapes/sphere.mtl deleted: models/shapes/ssT.glb deleted: models/shapes/ssT.glb.import deleted: models/shapes/tetrahedron.mtl deleted: models/turrets/GunMat.material deleted: models/turrets/MountMat.material deleted: models/turrets/laser.glb deleted: models/turrets/laser.glb.import deleted: models/turrets/laser1.mtl deleted: models/turrets/plastic.glb deleted: models/turrets/plastic.glb.import deleted: models/turrets/shotgun.glb deleted: models/turrets/shotgun.glb.import deleted: models/turrets/slower.glb deleted: models/turrets/slower.glb.import deleted: models/turrets/sniper.glb deleted: models/turrets/sniper.glb.import deleted: models/turrets/structI.glb deleted: models/turrets/structI.glb.import deleted: models/turrets/structT.glb deleted: models/turrets/structT.glb.import deleted: models/turrets/structX.glb deleted: models/turrets/structX.glb.import
Diffstat (limited to 'addons/voxel-core/classes/voxel_set.gd')
-rw-r--r--addons/voxel-core/classes/voxel_set.gd234
1 files changed, 0 insertions, 234 deletions
diff --git a/addons/voxel-core/classes/voxel_set.gd b/addons/voxel-core/classes/voxel_set.gd
deleted file mode 100644
index d0bccac..0000000
--- a/addons/voxel-core/classes/voxel_set.gd
+++ /dev/null
@@ -1,234 +0,0 @@
-tool
-class_name VoxelSet, "res://addons/voxel-core/assets/classes/voxel_set.png"
-extends Resource
-# Library of Voxels used by VoxelObjects.
-
-
-
-## Signals
-# Emitted on request_refresh
-signal requested_refresh
-
-
-
-## Exported Variables
-# Size of each tile in tiles in pixels
-export var tile_size := Vector2(32.0, 32.0) setget set_tile_size
-
-# Texture used for tiles / uv mapping
-export var tiles : Texture = null setget set_tiles
-
-# Materials used by voxels
-export(Array, Material) var materials := [
- SpatialMaterial.new(),
-] setget set_materials
-
-
-
-## Private Variables
-# Voxels stored by their id
-var _voxels := []
-
-# Flag indicating whether _uv_scale, tile_size and tiles texture is set
-var _uv_ready := false
-
-# World UV Scale, calculated on request_refresh
-var _uv_scale := Vector2.ONE
-
-
-
-## Built-In Virtual Methods
-func _get(property : String):
- if property == "VOXELS":
- return _voxels
-
-
-func _set(property : String, value) -> bool:
- if property == "VOXELS":
- if typeof(value) == TYPE_DICTIONARY:
- for key in value:
- var voxel : Dictionary = value[key]
- if voxel.has("vsn"):
- Voxel.set_name(voxel, voxel["vsn"])
- voxel.erase("vsn")
- _voxels.append(value[key])
- else:
- _voxels = value
- return true
- return false
-
-
-func _get_property_list():
- var properties = []
-
- properties.append({
- "name": "VOXELS",
- "type": TYPE_ARRAY,
- "hint": PROPERTY_HINT_NONE,
- "usage": PROPERTY_USAGE_STORAGE,
- })
-
- return properties
-
-
-
-## Public Methods
-# Sets tile_size, calls on request_refresh by default
-func set_tile_size(value : Vector2, refresh := true) -> void:
- tile_size = Vector2(
- floor(clamp(value.x, 1, 256)),
- floor(clamp(value.y, 1, 256)))
-
- if refresh:
- request_refresh()
-
-
-# Sets tiles, calls on request_refresh by default
-func set_tiles(value : Texture, refresh := true) -> void:
- tiles = value
-
- if refresh:
- request_refresh()
-
-
-# Sets materials used by voxels in VoxelSet
-func set_materials(values : Array, refresh := true) -> void:
- for index in range(values.size()):
- var material = values[index]
- if is_instance_valid(material) and not (material is SpatialMaterial or material is ShaderMaterial):
- printerr("VoxelSet : Expected Spatial or Shader material got " + str(material))
- values[index] = null
-
- if values.empty():
- materials.resize(1)
- else:
- materials = values
- property_list_changed_notify()
-
- if refresh:
- request_refresh()
-
-
-# Returns VoxelSet material with id if present, otherwise returns null
-func get_material(id : int) -> Material:
- return materials[id] if id > -1 and id < materials.size() else null
-
-
-# Returns number of voxels in VoxelSet
-func size() -> int:
- return _voxels.size()
-
-
-# Returns true if VoxelSet has no voxels
-func empty() -> bool:
- return _voxels.empty()
-
-
-# Returns true if VoxelSet has voxel with given id
-func has_id(id : int) -> bool:
- return id > -1 and id < _voxels.size()
-
-
-# Returns true if VoxelSet has everything necessary for uv mapping
-func uv_ready() -> bool:
- return _uv_ready
-
-
-# Returns the uv scale
-func uv_scale() -> Vector2:
- return _uv_scale
-
-
-# Returns true if given id is valid
-static func is_valid_id(id : int) -> bool:
- return id > -1
-
-
-# Returns a list of all the voxel ids
-# returns : Array<int> : contained voxel ids
-func get_ids() -> Array:
- return range(_voxels.size())
-
-
-# Returns name associated with the given id, returns a empty string if id isn't found
-func id_to_name(id : int) -> String:
- return Voxel.get_name(get_voxel(id))
-
-
-# Returns the id of the voxel with the given name, returns -1 if not found
-func name_to_id(name : String) -> int:
- name = name.to_lower()
- for id in get_ids():
- if id_to_name(id) == name:
- return id
- return -1
-
-
-# Appends voxel to end of VoxelSet
-func add_voxel(voxel : Dictionary) -> void:
- _voxels.append(voxel)
-
-
-# Sets the voxel at given id
-func set_voxel(id : int, voxel : Dictionary) -> void:
- if not has_id(id):
- printerr("VoxelSet : given id `" + str(id) + "` is out of range")
- return
-
- _voxels[id] = voxel
-
-
-# Insert voxel with given id
-func insert_voxel(id : int, voxel : Dictionary) -> void:
- if id < -1 and id > _voxels.size():
- printerr("VoxelSet : given id `" + str(id) + "` is out of range")
- return
-
- _voxels.insert(id, voxel)
-
-
-# Replaces all _voxels
-func set_voxels(voxels : Array) -> void:
- _voxels = voxels
-
-
-# Gets voxel Dictionary by their id, returns an empty Dictionary if not found
-func get_voxel(id : int) -> Dictionary:
- return _voxels[id] if has_id(id) else {}
-
-
-# Erase voxel from VoxelSet
-func erase_voxel(id : int) -> void:
- _voxels.remove(id)
-
-
-# Erases all voxels in VoxelSet
-func erase_voxels() -> void:
- _voxels.clear()
-
-
-# Should be called when noticable changes have been committed to voxels.
-# Emits requested_refresh, calculates _uv_scale and updates _uv_ready
-func request_refresh() -> void:
- _uv_ready = is_instance_valid(tiles)
- if _uv_ready:
- _uv_scale = Vector2.ONE / (tiles.get_size() / tile_size)
- else:
- _uv_scale = Vector2.ONE
- emit_signal("requested_refresh")
-
-
-# Loads file's content as voxels
-# NOTE: Reference Reader.gd for valid file imports
-# source_file : String : Path to file to be loaded
-# return int : int : Error code
-func load_file(source_file : String, append := false) -> int:
- var read := Reader.read_file(source_file)
- var error : int = read.get("error", FAILED)
- if error == OK:
- if append:
- for voxel in read["palette"]:
- add_voxel(voxel)
- else:
- set_voxels(read["palette"])
- return error