diff options
author | jacopograndi <jacopo.grandi@outlook.it> | 2022-01-14 13:06:22 +0100 |
---|---|---|
committer | jacopograndi <jacopo.grandi@outlook.it> | 2022-01-14 13:06:22 +0100 |
commit | ad8002a8aadd7f537ef1c1d6c47d48f9e13d2015 (patch) | |
tree | e07c243def4499b0d220429364d9b9a3f23c1453 /addons/voxel-core/controls/tiles_viewer/tiles_viewer.gd | |
parent | 4bfbf641dc2b8aca8de9f86a9908063f39bd6e31 (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/controls/tiles_viewer/tiles_viewer.gd')
-rw-r--r-- | addons/voxel-core/controls/tiles_viewer/tiles_viewer.gd | 199 |
1 files changed, 0 insertions, 199 deletions
diff --git a/addons/voxel-core/controls/tiles_viewer/tiles_viewer.gd b/addons/voxel-core/controls/tiles_viewer/tiles_viewer.gd deleted file mode 100644 index 2bea836..0000000 --- a/addons/voxel-core/controls/tiles_viewer/tiles_viewer.gd +++ /dev/null @@ -1,199 +0,0 @@ -tool -extends TextureRect -# Shows tiles of VoxelSet and allows for the selection of Tile(s) - - - -## Signals -# Emitted when a uv position has been selected -signal selected_uv(uv) -# Emitted when a uv position has been unselected -signal unselected_uv(uv) - - - -## Exported Variables -# Maximum number of uv positions that can be selected at any one time -export(int, -1, 256) var selection_max := 0 setget set_selection_max - -# Color to applyed to border of hovered uv position(s) -export var hovered_color := Color(1, 1, 1, 0.6) setget set_hovered_color - -# Color to applyed to border of selected uv position(s) -export var selected_color := Color.white setget set_selection_color - -# Color to applyed to border of invalid uv position(s) -export var invalid_color := Color.red setget set_invalid_color - -# VoxelSet being used -export(Resource) var voxel_set = null setget set_voxel_set - - - -## Private Variables -# Stores last uv position hovered -var _last_uv_hovered := -Vector2.ONE - -# Selected uv positions -var _selections := [] - - - -## Built-In Virtual Methods -func _gui_input(event : InputEvent): - if event is InputEventMouse: - _last_uv_hovered = world_to_uv(event.position) - if selection_max != 0 and event is InputEventMouseButton: - if is_valid_uv(_last_uv_hovered) and event.button_index == BUTTON_LEFT and not event.is_pressed(): - if _selections.has(_last_uv_hovered): - unselect(_last_uv_hovered) - else: - select(_last_uv_hovered) - update() - - -func _draw(): - if is_instance_valid(voxel_set) and voxel_set.uv_ready(): - texture = voxel_set.tiles - if selection_max != 0: - for selection in _selections: - draw_rect(Rect2( - selection * voxel_set.tile_size, - voxel_set.tile_size), - selected_color, false, 3) - - if _last_uv_hovered == -Vector2.ONE: - hint_tooltip = "" - else: - hint_tooltip = str(_last_uv_hovered) - draw_rect(Rect2( - _last_uv_hovered * voxel_set.tile_size, - voxel_set.tile_size), - hovered_color if is_valid_uv(_last_uv_hovered) else invalid_color, - false, 3) - - - -## Public Methods -# Sets selection_max, shrinks _selections to new maximum if needed and calls on update by default -func set_selection_max(value : int, update := true) -> void: - selection_max = clamp(value, -1, 256) - unselect_shrink() - if update: - self.update() - - -# Sets hovered_color, and calls on update by default -func set_hovered_color(value : Color, update := true) -> void: - hovered_color = value - if update: - self.update() - - -# Sets selected_color, and calls on update by default -func set_selection_color(value : Color, update := true) -> void: - selected_color = value - if update: - self.update() - - -# Sets invalid_color, and calls on update by default -func set_invalid_color(value : Color, update := true) -> void: - invalid_color = value - if update: - self.update() - - -# Sets voxel_set, calls update_mesh if needed and not told otherwise -func set_voxel_set(value : Resource, update := true) -> void: - if not (typeof(value) == TYPE_NIL or value is VoxelSet): - printerr("Invalid Resource given expected VoxelSet") - return - - if is_instance_valid(voxel_set): - if voxel_set.is_connected("requested_refresh", self, "update"): - voxel_set.disconnect("requested_refresh", self, "update") - - voxel_set = value - if is_instance_valid(voxel_set): - if not voxel_set.is_connected("requested_refresh", self, "update"): - voxel_set.connect("requested_refresh", self, "update") - - if update: - self.update() - - -# Returns true if uv is selected -func has_selected(uv : Vector2) -> bool: - return _selections.has(uv) - - -# Returns uv selected at given index -func get_selected(index : int) -> Vector2: - return _selections[index] - - -# Returns array of selected faces -func get_selections() -> Array: - return _selections.duplicate() - - -# Returns number of faces selected -func get_selected_size() -> int: - return _selections.size() - - -# Returns world position as uv position -func world_to_uv(world : Vector2) -> Vector2: - return (world / voxel_set.tile_size).floor() if is_instance_valid(voxel_set) and voxel_set.uv_ready() else -Vector2.ONE - - -# Returns true if uv position is valid -func is_valid_uv(uv : Vector2) -> bool: - if is_instance_valid(voxel_set) and voxel_set.uv_ready(): - var bounds = voxel_set.tiles.get_size() / voxel_set.tile_size - return uv.x >= 0 and uv.y >= 0 and uv.x < bounds.x and uv.y < bounds.y - return false - - -# Returns true if world position is valid uv position -func is_valid_world(world : Vector2) -> bool: - return is_valid_uv(world_to_uv(world)) - - -# Selects given uv position, and emits selected_uv -func select(uv : Vector2, emit := true) -> void: - # TODO UV within bounds - if selection_max != 0: - unselect_shrink(selection_max - 1) - _selections.append(uv) - if emit: - emit_signal("selected_uv", uv) - - -# Unselects given uv position, and emits unselected_uv -func unselect(uv : Vector2, emit := true) -> void: - if _selections.has(uv): - _selections.erase(uv) - if emit: - emit_signal("unselected_uv", uv) - - -# Unselects all uv position -func unselect_all() -> void: - while not _selections.empty(): - unselect(_selections.back()) - - -# Unselects all uv position until given size is met -func unselect_shrink(size := selection_max, emit := true) -> void: - if size >= 0: - while _selections.size() > size: - unselect(_selections.back(), emit) - - - -## Private Methods -func _on_TilesViewer_mouse_exited(): - _last_uv_hovered = -Vector2.ONE - update() |