Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 77a7441400 | |||
| d8b427de8f | |||
| 4ce0367f15 | |||
| 421a90ec17 | |||
| ec10f0e54b | |||
| cbcbcbbcee | |||
| dde4f18305 | |||
| 267a0b9556 |
@@ -0,0 +1 @@
|
||||
<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M4 11V4h7" fill="none" stroke="#fff" stroke-width="2" stroke-linejoin="round" stroke-linecap="round" stroke-opacity=".6"/></svg>
|
||||
|
After Width: | Height: | Size: 221 B |
@@ -2,16 +2,16 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cam7x7byvqtb2"
|
||||
path="res://.godot/imported/slice12.png-427a23b5c54a25e0e9f1c95432dc54e7.ctex"
|
||||
uid="uid://btc01wc11tiid"
|
||||
path="res://.godot/imported/GuiResizerTopLeft.svg-eb563f557424c74239e878a1213a5bf4.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/testingground/slice12.png"
|
||||
dest_files=["res://.godot/imported/slice12.png-427a23b5c54a25e0e9f1c95432dc54e7.ctex"]
|
||||
source_file="res://addons/anthonyec.camera_preview/GuiResizerTopLeft.svg"
|
||||
dest_files=["res://.godot/imported/GuiResizerTopLeft.svg-eb563f557424c74239e878a1213a5bf4.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
@@ -32,3 +32,6 @@ process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=2.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
||||
@@ -0,0 +1 @@
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M12 11V4h-7" fill="none" stroke="#fff" stroke-opacity=".6" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
|
||||
|
After Width: | Height: | Size: 223 B |
@@ -0,0 +1,37 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://04l05jxuyt7k"
|
||||
path="res://.godot/imported/GuiResizerTopRight.svg-cc1dc8556d51357c5eb0b01d09d8f049.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/anthonyec.camera_preview/GuiResizerTopRight.svg"
|
||||
dest_files=["res://.godot/imported/GuiResizerTopRight.svg-cc1dc8556d51357c5eb0b01d09d8f049.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=2.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
||||
@@ -0,0 +1 @@
|
||||
<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m4 1v1l1 1v3h6v-3l1-1v-1zm1 6-2 3h10l-2-3zm2 4v2l1 2 1-2v-2z" fill="#e0e0e0"/></svg>
|
||||
|
After Width: | Height: | Size: 177 B |
@@ -2,16 +2,16 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bednd2jncey0i"
|
||||
path="res://.godot/imported/slice11.png-9e0a2939255404bb93de200eee86f73e.ctex"
|
||||
uid="uid://do6d60od41vmg"
|
||||
path="res://.godot/imported/Pin.svg-83b09f5c00a829c5d8b136bf5bae65bc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/testingground/slice11.png"
|
||||
dest_files=["res://.godot/imported/slice11.png-9e0a2939255404bb93de200eee86f73e.ctex"]
|
||||
source_file="res://addons/anthonyec.camera_preview/Pin.svg"
|
||||
dest_files=["res://.godot/imported/Pin.svg-83b09f5c00a829c5d8b136bf5bae65bc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
@@ -32,3 +32,6 @@ process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=2.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
||||
@@ -0,0 +1,7 @@
|
||||
[plugin]
|
||||
|
||||
name="Little Camera Preview"
|
||||
description="Shows a picture-in-picture preview of the selected 2D or 3D camera"
|
||||
author="Anthony Cossins"
|
||||
version="1.3"
|
||||
script="plugin.gd"
|
||||
@@ -0,0 +1,87 @@
|
||||
@tool
|
||||
extends EditorPlugin
|
||||
|
||||
const preview_scene = preload("res://addons/anthonyec.camera_preview/preview.tscn")
|
||||
|
||||
var preview: CameraPreview
|
||||
var current_main_screen_name: String
|
||||
|
||||
func _enter_tree() -> void:
|
||||
main_screen_changed.connect(_on_main_screen_changed)
|
||||
EditorInterface.get_selection().selection_changed.connect(_on_editor_selection_changed)
|
||||
|
||||
# Initialise preview panel and add to main screen.
|
||||
preview = preview_scene.instantiate() as CameraPreview
|
||||
preview.request_hide()
|
||||
|
||||
var main_screen = EditorInterface.get_editor_main_screen()
|
||||
main_screen.add_child(preview)
|
||||
|
||||
func _exit_tree() -> void:
|
||||
if preview:
|
||||
preview.queue_free()
|
||||
|
||||
func _ready() -> void:
|
||||
# TODO: Currently there is no API to get the main screen name without
|
||||
# listening to the `EditorPlugin.main_screen_changed` signal:
|
||||
# https://github.com/godotengine/godot-proposals/issues/2081
|
||||
EditorInterface.set_main_screen_editor("Script")
|
||||
EditorInterface.set_main_screen_editor("3D")
|
||||
|
||||
func _on_main_screen_changed(screen_name: String) -> void:
|
||||
current_main_screen_name = screen_name
|
||||
|
||||
# TODO: Bit of a hack to prevent pinned staying between view changes on the same scene.
|
||||
preview.unlink_camera()
|
||||
_on_editor_selection_changed()
|
||||
|
||||
func _on_editor_selection_changed() -> void:
|
||||
if not is_main_screen_viewport():
|
||||
# This hides the preview "container" and not the preview itself, allowing
|
||||
# any locked previews to remain visible once switching back to 3D tab.
|
||||
preview.visible = false
|
||||
return
|
||||
|
||||
preview.visible = true
|
||||
|
||||
var selected_nodes = EditorInterface.get_selection().get_selected_nodes()
|
||||
|
||||
var selected_camera_3d: Camera3D = find_camera_3d_or_null(selected_nodes)
|
||||
var selected_camera_2d: Camera2D = find_camera_2d_or_null(selected_nodes)
|
||||
|
||||
if selected_camera_3d and current_main_screen_name == "3D":
|
||||
preview.link_with_camera_3d(selected_camera_3d)
|
||||
preview.request_show()
|
||||
|
||||
elif selected_camera_2d and current_main_screen_name == "2D":
|
||||
preview.link_with_camera_2d(selected_camera_2d)
|
||||
preview.request_show()
|
||||
|
||||
else:
|
||||
preview.request_hide()
|
||||
|
||||
func is_main_screen_viewport() -> bool:
|
||||
return current_main_screen_name == "3D" or current_main_screen_name == "2D"
|
||||
|
||||
func find_camera_3d_or_null(nodes: Array[Node]) -> Camera3D:
|
||||
var camera: Camera3D
|
||||
|
||||
for node in nodes:
|
||||
if node is Camera3D:
|
||||
camera = node as Camera3D
|
||||
break
|
||||
|
||||
return camera
|
||||
|
||||
func find_camera_2d_or_null(nodes: Array[Node]) -> Camera2D:
|
||||
var camera: Camera2D
|
||||
|
||||
for node in nodes:
|
||||
if node is Camera2D:
|
||||
camera = node as Camera2D
|
||||
break
|
||||
|
||||
return camera
|
||||
|
||||
func _on_selected_camera_3d_tree_exiting() -> void:
|
||||
preview.unlink_camera()
|
||||
@@ -0,0 +1,404 @@
|
||||
@tool
|
||||
|
||||
class_name CameraPreview
|
||||
extends Control
|
||||
|
||||
enum CameraType {
|
||||
CAMERA_2D,
|
||||
CAMERA_3D
|
||||
}
|
||||
|
||||
enum PinnedPosition {
|
||||
LEFT,
|
||||
RIGHT,
|
||||
}
|
||||
|
||||
enum InteractionState {
|
||||
NONE,
|
||||
RESIZE,
|
||||
DRAG,
|
||||
|
||||
# Animation is split into 2 seperate states so that the tween is only
|
||||
# invoked once in the "start" state.
|
||||
START_ANIMATE_INTO_PLACE,
|
||||
ANIMATE_INTO_PLACE,
|
||||
}
|
||||
|
||||
const margin_3d: Vector2 = Vector2(10, 10)
|
||||
const margin_2d: Vector2 = Vector2(20, 15)
|
||||
const panel_margin: float = 2
|
||||
const min_panel_size: float = 250
|
||||
|
||||
@onready var panel: Panel = %Panel
|
||||
@onready var placeholder: Panel = %Placeholder
|
||||
@onready var preview_camera_3d: Camera3D = %Camera3D
|
||||
@onready var preview_camera_2d: Camera2D = %Camera2D
|
||||
@onready var sub_viewport: SubViewport = %SubViewport
|
||||
@onready var sub_viewport_text_rect: TextureRect = %TextureRect
|
||||
@onready var resize_left_handle: Button = %ResizeLeftHandle
|
||||
@onready var resize_right_handle: Button = %ResizeRightHandle
|
||||
@onready var lock_button: Button = %LockButton
|
||||
@onready var gradient: TextureRect = %Gradient
|
||||
@onready var viewport_margin_container: MarginContainer = %ViewportMarginContainer
|
||||
@onready var overlay_margin_container: MarginContainer = %OverlayMarginContainer
|
||||
@onready var overlay_container: Control = %OverlayContainer
|
||||
|
||||
var camera_type: CameraType = CameraType.CAMERA_3D
|
||||
var pinned_position: PinnedPosition = PinnedPosition.RIGHT
|
||||
var viewport_ratio: float = 1
|
||||
var editor_scale: float = EditorInterface.get_editor_scale()
|
||||
var is_locked: bool
|
||||
var show_controls: bool
|
||||
var selected_camera_3d: Camera3D
|
||||
var selected_camera_2d: Camera2D
|
||||
|
||||
var state: InteractionState = InteractionState.NONE
|
||||
var initial_mouse_position: Vector2
|
||||
var initial_panel_size: Vector2
|
||||
var initial_panel_position: Vector2
|
||||
|
||||
func _ready() -> void:
|
||||
# Set initial width.
|
||||
panel.size.x = min_panel_size * editor_scale
|
||||
|
||||
# Setting texture to viewport in code instead of directly in the editor
|
||||
# because otherwise an error "Path to node is invalid: Panel/SubViewport"
|
||||
# on first load. This is harmless but doesn't look great.
|
||||
#
|
||||
# This is a known issue:
|
||||
# https://github.com/godotengine/godot/issues/27790#issuecomment-499740220
|
||||
sub_viewport_text_rect.texture = sub_viewport.get_texture()
|
||||
|
||||
# From what I can tell there's something wrong with how an editor theme
|
||||
# scales when used within a plugin. It seems to ignore the screen scale.
|
||||
# For instance, a 30x30px button will appear tiny on a retina display.
|
||||
#
|
||||
# Someone else had the issue with no luck:
|
||||
# https://forum.godotengine.org/t/how-to-scale-plugin-controls-to-look-the-same-in-4k-as-1080p/36151
|
||||
#
|
||||
# And seems Dialogic also scales buttons manually:
|
||||
# https://github.com/dialogic-godot/dialogic/blob/master/addons/dialogic/Editor/Common/sidebar.gd#L25C6-L38
|
||||
#
|
||||
# Maybe I don't know the correct way to do it, so for now the workaround is
|
||||
# to set the correct size in code using screen scale.
|
||||
var button_size = Vector2(30, 30) * editor_scale
|
||||
var margin_size: float = panel_margin * editor_scale
|
||||
|
||||
resize_left_handle.size = button_size
|
||||
resize_left_handle.pivot_offset = Vector2(0, 0) * editor_scale
|
||||
|
||||
resize_right_handle.size = button_size
|
||||
resize_right_handle.pivot_offset = Vector2(30, 30) * editor_scale
|
||||
|
||||
lock_button.size = button_size
|
||||
lock_button.pivot_offset = Vector2(0, 30) * editor_scale
|
||||
|
||||
viewport_margin_container.add_theme_constant_override("margin_left", margin_size)
|
||||
viewport_margin_container.add_theme_constant_override("margin_top", margin_size)
|
||||
viewport_margin_container.add_theme_constant_override("margin_right", margin_size)
|
||||
viewport_margin_container.add_theme_constant_override("margin_bottom", margin_size)
|
||||
|
||||
overlay_margin_container.add_theme_constant_override("margin_left", margin_size)
|
||||
overlay_margin_container.add_theme_constant_override("margin_top", margin_size)
|
||||
overlay_margin_container.add_theme_constant_override("margin_right", margin_size)
|
||||
overlay_margin_container.add_theme_constant_override("margin_bottom", margin_size)
|
||||
|
||||
# Parent node overlay size is not available on first ready, need to wait a
|
||||
# frame for it to be drawn.
|
||||
await get_tree().process_frame
|
||||
|
||||
# Anchors are set in code because setting them in the editor UI doesn't take
|
||||
# editor scale into account.
|
||||
resize_left_handle.position = Vector2(0, 0)
|
||||
resize_right_handle.set_anchors_preset(Control.PRESET_TOP_LEFT)
|
||||
|
||||
resize_right_handle.position = Vector2(overlay_container.size.x - button_size.x, 0)
|
||||
resize_right_handle.set_anchors_preset(Control.PRESET_TOP_RIGHT)
|
||||
|
||||
lock_button.position = Vector2(0, overlay_container.size.y - button_size.y)
|
||||
lock_button.set_anchors_preset(Control.PRESET_BOTTOM_LEFT)
|
||||
|
||||
func _process(_delta: float) -> void:
|
||||
if not visible: return
|
||||
|
||||
match state:
|
||||
InteractionState.NONE:
|
||||
panel.size = get_clamped_size(panel.size)
|
||||
panel.position = get_pinned_position(pinned_position)
|
||||
|
||||
InteractionState.RESIZE:
|
||||
var delta_mouse_position = initial_mouse_position - get_global_mouse_position()
|
||||
var resized_size = panel.size
|
||||
|
||||
if pinned_position == PinnedPosition.LEFT:
|
||||
resized_size = initial_panel_size - delta_mouse_position
|
||||
|
||||
if pinned_position == PinnedPosition.RIGHT:
|
||||
resized_size = initial_panel_size + delta_mouse_position
|
||||
|
||||
panel.size = get_clamped_size(resized_size)
|
||||
panel.position = get_pinned_position(pinned_position)
|
||||
|
||||
InteractionState.DRAG:
|
||||
placeholder.size = panel.size
|
||||
|
||||
var global_mouse_position = get_global_mouse_position()
|
||||
var offset = initial_mouse_position - initial_panel_position
|
||||
|
||||
panel.global_position = global_mouse_position - offset
|
||||
|
||||
if global_mouse_position.x < global_position.x + size.x / 2:
|
||||
pinned_position = PinnedPosition.LEFT
|
||||
else:
|
||||
pinned_position = PinnedPosition.RIGHT
|
||||
|
||||
placeholder.position = get_pinned_position(pinned_position)
|
||||
|
||||
InteractionState.START_ANIMATE_INTO_PLACE:
|
||||
var final_position: Vector2 = get_pinned_position(pinned_position)
|
||||
var tween = get_tree().create_tween()
|
||||
|
||||
tween.set_ease(Tween.EASE_OUT)
|
||||
tween.set_trans(Tween.TRANS_CUBIC)
|
||||
tween.tween_property(panel, "position", final_position, 0.3)
|
||||
|
||||
tween.finished.connect(func():
|
||||
panel.position = final_position
|
||||
state = InteractionState.NONE
|
||||
)
|
||||
|
||||
state = InteractionState.ANIMATE_INTO_PLACE
|
||||
|
||||
# I couldn't get `mouse_entered` and `mouse_exited` events to work
|
||||
# nicely, so I use rect method instead. Plus using this method it's easy to
|
||||
# grow the hit area size.
|
||||
var panel_hover_rect = Rect2(panel.global_position, panel.size)
|
||||
panel_hover_rect = panel_hover_rect.grow(40)
|
||||
|
||||
var mouse_position = get_global_mouse_position()
|
||||
|
||||
show_controls = state != InteractionState.NONE or panel_hover_rect.has_point(mouse_position)
|
||||
|
||||
# UI visibility.
|
||||
resize_left_handle.visible = show_controls and pinned_position == PinnedPosition.RIGHT
|
||||
resize_right_handle.visible = show_controls and pinned_position == PinnedPosition.LEFT
|
||||
lock_button.visible = show_controls or is_locked
|
||||
placeholder.visible = state == InteractionState.DRAG or state == InteractionState.ANIMATE_INTO_PLACE
|
||||
gradient.visible = show_controls
|
||||
|
||||
# Sync camera settings.
|
||||
if camera_type == CameraType.CAMERA_3D and selected_camera_3d:
|
||||
sub_viewport.size = panel.size
|
||||
|
||||
# Sync position and rotation without using a `RemoteTransform` node
|
||||
# because if you save a camera as a scene, the remote transform node will
|
||||
# be stored within the scene. Also it's harder to keep the remote
|
||||
# transform `remote_path` up-to-date with scene changes, which causes
|
||||
# many errors.
|
||||
preview_camera_3d.global_position = selected_camera_3d.global_position
|
||||
preview_camera_3d.global_rotation = selected_camera_3d.global_rotation
|
||||
|
||||
preview_camera_3d.fov = selected_camera_3d.fov
|
||||
preview_camera_3d.projection = selected_camera_3d.projection
|
||||
preview_camera_3d.size = selected_camera_3d.size
|
||||
preview_camera_3d.cull_mask = selected_camera_3d.cull_mask
|
||||
preview_camera_3d.keep_aspect = selected_camera_3d.keep_aspect
|
||||
preview_camera_3d.near = selected_camera_3d.near
|
||||
preview_camera_3d.far = selected_camera_3d.far
|
||||
preview_camera_3d.h_offset = selected_camera_3d.h_offset
|
||||
preview_camera_3d.v_offset = selected_camera_3d.v_offset
|
||||
preview_camera_3d.attributes = selected_camera_3d.attributes
|
||||
preview_camera_3d.environment = selected_camera_3d.environment
|
||||
|
||||
if camera_type == CameraType.CAMERA_2D and selected_camera_2d:
|
||||
var project_window_size = get_project_window_size()
|
||||
var ratio = project_window_size.x / panel.size.x
|
||||
|
||||
# TODO: Is there a better way to fix this?
|
||||
# The camera border is visible sometimes due to pixel rounding.
|
||||
# Subtract 1px from right and bottom to hide this.
|
||||
var hide_camera_border_fix = Vector2(1, 1)
|
||||
|
||||
sub_viewport.size = panel.size
|
||||
sub_viewport.size_2d_override = (panel.size - hide_camera_border_fix) * ratio
|
||||
sub_viewport.size_2d_override_stretch = true
|
||||
|
||||
preview_camera_2d.global_position = selected_camera_2d.global_position
|
||||
preview_camera_2d.global_rotation = selected_camera_2d.global_rotation
|
||||
|
||||
preview_camera_2d.offset = selected_camera_2d.offset
|
||||
preview_camera_2d.zoom = selected_camera_2d.zoom
|
||||
preview_camera_2d.ignore_rotation = selected_camera_2d.ignore_rotation
|
||||
preview_camera_2d.anchor_mode = selected_camera_2d.anchor_mode
|
||||
preview_camera_2d.limit_left = selected_camera_2d.limit_left
|
||||
preview_camera_2d.limit_right = selected_camera_2d.limit_right
|
||||
preview_camera_2d.limit_top = selected_camera_2d.limit_top
|
||||
preview_camera_2d.limit_bottom = selected_camera_2d.limit_bottom
|
||||
|
||||
func link_with_camera_3d(camera_3d: Camera3D) -> void:
|
||||
# TODO: Camera may not be ready since this method is called in `_enter_tree`
|
||||
# in the plugin because of a workaround for:
|
||||
# https://github.com/godotengine/godot-proposals/issues/2081
|
||||
if not preview_camera_3d:
|
||||
return request_hide()
|
||||
|
||||
var is_different_camera = camera_3d != preview_camera_3d
|
||||
|
||||
# TODO: A bit messy.
|
||||
if is_different_camera:
|
||||
if preview_camera_3d.tree_exiting.is_connected(unlink_camera):
|
||||
preview_camera_3d.tree_exiting.disconnect(unlink_camera)
|
||||
|
||||
if not camera_3d.tree_exiting.is_connected(unlink_camera):
|
||||
camera_3d.tree_exiting.connect(unlink_camera)
|
||||
|
||||
sub_viewport.disable_3d = false
|
||||
sub_viewport.world_3d = camera_3d.get_world_3d()
|
||||
|
||||
selected_camera_3d = camera_3d
|
||||
camera_type = CameraType.CAMERA_3D
|
||||
|
||||
func link_with_camera_2d(camera_2d: Camera2D) -> void:
|
||||
if not preview_camera_2d:
|
||||
return request_hide()
|
||||
|
||||
var is_different_camera = camera_2d != preview_camera_2d
|
||||
|
||||
# TODO: A bit messy.
|
||||
if is_different_camera:
|
||||
if preview_camera_2d.tree_exiting.is_connected(unlink_camera):
|
||||
preview_camera_2d.tree_exiting.disconnect(unlink_camera)
|
||||
|
||||
if not camera_2d.tree_exiting.is_connected(unlink_camera):
|
||||
camera_2d.tree_exiting.connect(unlink_camera)
|
||||
|
||||
sub_viewport.disable_3d = true
|
||||
sub_viewport.world_2d = camera_2d.get_world_2d()
|
||||
|
||||
selected_camera_2d = camera_2d
|
||||
camera_type = CameraType.CAMERA_2D
|
||||
|
||||
func unlink_camera() -> void:
|
||||
if selected_camera_3d:
|
||||
selected_camera_3d = null
|
||||
|
||||
if selected_camera_2d:
|
||||
selected_camera_2d = null
|
||||
|
||||
is_locked = false
|
||||
lock_button.button_pressed = false
|
||||
|
||||
func request_hide() -> void:
|
||||
if is_locked: return
|
||||
visible = false
|
||||
|
||||
func request_show() -> void:
|
||||
visible = true
|
||||
|
||||
func get_pinned_position(pinned_position: PinnedPosition) -> Vector2:
|
||||
var margin: Vector2 = margin_3d * editor_scale
|
||||
|
||||
if camera_type == CameraType.CAMERA_2D:
|
||||
margin = margin_2d * editor_scale
|
||||
|
||||
match pinned_position:
|
||||
PinnedPosition.LEFT:
|
||||
return Vector2.ZERO - Vector2(0, panel.size.y) - Vector2(-margin.x, margin.y)
|
||||
PinnedPosition.RIGHT:
|
||||
return size - panel.size - margin
|
||||
_:
|
||||
assert(false, "Unknown pinned position %s" % str(pinned_position))
|
||||
|
||||
return Vector2.ZERO
|
||||
|
||||
func get_clamped_size(desired_size: Vector2) -> Vector2:
|
||||
var viewport_ratio = get_project_window_ratio()
|
||||
var editor_viewport_size = get_editor_viewport_size()
|
||||
|
||||
var max_bounds = Vector2(
|
||||
editor_viewport_size.x * 0.6,
|
||||
editor_viewport_size.y * 0.8
|
||||
)
|
||||
|
||||
var clamped_size = desired_size
|
||||
|
||||
# Apply aspect ratio.
|
||||
clamped_size = Vector2(clamped_size.x, clamped_size.x * viewport_ratio)
|
||||
|
||||
# Clamp the max size while respecting the aspect ratio.
|
||||
if clamped_size.y >= max_bounds.y:
|
||||
clamped_size.x = max_bounds.y / viewport_ratio
|
||||
clamped_size.y = max_bounds.y
|
||||
|
||||
if clamped_size.x >= max_bounds.x:
|
||||
clamped_size.x = max_bounds.x
|
||||
clamped_size.y = max_bounds.x * viewport_ratio
|
||||
|
||||
# Clamp the min size based on if it's portrait or landscape. Portrait min
|
||||
# size should be based on it's height. Landscape min size is based on it's
|
||||
# width instead. Applying min width to a portrait size would make it too big.
|
||||
var is_portrait = viewport_ratio > 1
|
||||
|
||||
if is_portrait and clamped_size.y <= min_panel_size * editor_scale:
|
||||
clamped_size.x = min_panel_size / viewport_ratio
|
||||
clamped_size.y = min_panel_size
|
||||
clamped_size = clamped_size * editor_scale
|
||||
|
||||
if not is_portrait and clamped_size.x <= min_panel_size * editor_scale:
|
||||
clamped_size.x = min_panel_size
|
||||
clamped_size.y = min_panel_size * viewport_ratio
|
||||
clamped_size = clamped_size * editor_scale
|
||||
|
||||
# Round down to avoid sub-pixel artifacts, mainly seen around the margins.
|
||||
return clamped_size.floor()
|
||||
|
||||
func get_project_window_size() -> Vector2:
|
||||
var window_width = float(ProjectSettings.get_setting("display/window/size/viewport_width"))
|
||||
var window_height = float(ProjectSettings.get_setting("display/window/size/viewport_height"))
|
||||
|
||||
return Vector2(window_width, window_height)
|
||||
|
||||
func get_project_window_ratio() -> float:
|
||||
var project_window_size = get_project_window_size()
|
||||
|
||||
return project_window_size.y / project_window_size.x
|
||||
|
||||
func get_editor_viewport_size() -> Vector2:
|
||||
var fallback_size = EditorInterface.get_editor_main_screen().size
|
||||
|
||||
# There isn't an API for getting the viewport node. Instead it has to be
|
||||
# found by checking the parent's parent of the subviewport and find
|
||||
# the correct node based on name and class.
|
||||
var editor_sub_viewport_3d = EditorInterface.get_editor_viewport_3d(0)
|
||||
var editor_viewport_container = editor_sub_viewport_3d.get_parent().get_parent().get_parent()
|
||||
|
||||
# Early return incase editor tree structure has changed.
|
||||
if editor_viewport_container.get_class() != "Node3DEditorViewportContainer":
|
||||
return fallback_size
|
||||
|
||||
return editor_viewport_container.size
|
||||
|
||||
func _on_resize_handle_button_down() -> void:
|
||||
if state != InteractionState.NONE: return
|
||||
|
||||
state = InteractionState.RESIZE
|
||||
initial_mouse_position = get_global_mouse_position()
|
||||
initial_panel_size = panel.size
|
||||
|
||||
func _on_resize_handle_button_up() -> void:
|
||||
state = InteractionState.NONE
|
||||
|
||||
func _on_drag_handle_button_down() -> void:
|
||||
if state != InteractionState.NONE: return
|
||||
|
||||
state = InteractionState.DRAG
|
||||
initial_mouse_position = get_global_mouse_position()
|
||||
initial_panel_position = panel.global_position
|
||||
|
||||
func _on_drag_handle_button_up() -> void:
|
||||
if state != InteractionState.DRAG: return
|
||||
|
||||
state = InteractionState.START_ANIMATE_INTO_PLACE
|
||||
|
||||
func _on_lock_button_pressed() -> void:
|
||||
is_locked = !is_locked
|
||||
@@ -0,0 +1,200 @@
|
||||
[gd_scene load_steps=8 format=3 uid="uid://xybmfvufjuv"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/anthonyec.camera_preview/preview.gd" id="1_6b32r"]
|
||||
[ext_resource type="Texture2D" uid="uid://do6d60od41vmg" path="res://addons/anthonyec.camera_preview/Pin.svg" id="2_p0pa8"]
|
||||
[ext_resource type="Texture2D" uid="uid://btc01wc11tiid" path="res://addons/anthonyec.camera_preview/GuiResizerTopLeft.svg" id="2_t64ej"]
|
||||
[ext_resource type="Texture2D" uid="uid://04l05jxuyt7k" path="res://addons/anthonyec.camera_preview/GuiResizerTopRight.svg" id="3_6yuab"]
|
||||
|
||||
[sub_resource type="ViewportTexture" id="ViewportTexture_hchdq"]
|
||||
viewport_path = NodePath("Panel/SubViewport")
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_11p6r"]
|
||||
offsets = PackedFloat32Array(0, 0.3, 0.6, 1)
|
||||
colors = PackedColorArray(0, 0, 0, 0.235294, 0, 0, 0, 0.0784314, 0, 0, 0, 0.0784314, 0, 0, 0, 0.235294)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_4dkve"]
|
||||
gradient = SubResource("Gradient_11p6r")
|
||||
width = 256
|
||||
height = 256
|
||||
fill_to = Vector2(2.08165e-12, 1)
|
||||
|
||||
[node name="Preview" type="Control"]
|
||||
z_index = 999
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_6b32r")
|
||||
|
||||
[node name="Placeholder" type="Panel" parent="."]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
modulate = Color(1, 1, 1, 0.705882)
|
||||
layout_mode = 1
|
||||
anchors_preset = 3
|
||||
anchor_left = 1.0
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -40.0
|
||||
offset_top = -40.0
|
||||
offset_right = 410.0
|
||||
offset_bottom = 410.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 0
|
||||
|
||||
[node name="Panel" type="Panel" parent="."]
|
||||
unique_name_in_owner = true
|
||||
clip_contents = true
|
||||
layout_mode = 1
|
||||
anchors_preset = 3
|
||||
anchor_left = 1.0
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -520.0
|
||||
offset_top = -908.889
|
||||
offset_right = -20.0
|
||||
offset_bottom = -20.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 0
|
||||
pivot_offset = Vector2(450, 300)
|
||||
|
||||
[node name="SubViewport" type="SubViewport" parent="Panel"]
|
||||
unique_name_in_owner = true
|
||||
handle_input_locally = false
|
||||
gui_disable_input = true
|
||||
size_2d_override_stretch = true
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="Panel/SubViewport"]
|
||||
unique_name_in_owner = true
|
||||
current = true
|
||||
|
||||
[node name="Camera2D" type="Camera2D" parent="Panel/SubViewport"]
|
||||
unique_name_in_owner = true
|
||||
ignore_rotation = false
|
||||
|
||||
[node name="ViewportMarginContainer" type="MarginContainer" parent="Panel"]
|
||||
unique_name_in_owner = true
|
||||
clip_contents = true
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
theme_override_constants/margin_left = 4
|
||||
theme_override_constants/margin_top = 4
|
||||
theme_override_constants/margin_right = 4
|
||||
theme_override_constants/margin_bottom = 4
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="Panel/ViewportMarginContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
texture = SubResource("ViewportTexture_hchdq")
|
||||
expand_mode = 1
|
||||
|
||||
[node name="Gradient" type="TextureRect" parent="Panel"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
texture = SubResource("GradientTexture2D_4dkve")
|
||||
|
||||
[node name="OverlayMarginContainer" type="MarginContainer" parent="Panel"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
theme_override_constants/margin_left = 4
|
||||
theme_override_constants/margin_top = 4
|
||||
theme_override_constants/margin_right = 4
|
||||
theme_override_constants/margin_bottom = 4
|
||||
|
||||
[node name="OverlayContainer" type="Control" parent="Panel/OverlayMarginContainer"]
|
||||
unique_name_in_owner = true
|
||||
clip_contents = true
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="DragHandle" type="Button" parent="Panel/OverlayMarginContainer/OverlayContainer"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
focus_mode = 0
|
||||
flat = true
|
||||
|
||||
[node name="ResizeLeftHandle" type="Button" parent="Panel/OverlayMarginContainer/OverlayContainer"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
offset_right = 60.0
|
||||
offset_bottom = 60.0
|
||||
size_flags_horizontal = 0
|
||||
size_flags_vertical = 0
|
||||
mouse_default_cursor_shape = 12
|
||||
icon = ExtResource("2_t64ej")
|
||||
flat = true
|
||||
icon_alignment = 1
|
||||
expand_icon = true
|
||||
|
||||
[node name="ResizeRightHandle" type="Button" parent="Panel/OverlayMarginContainer/OverlayContainer"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 1
|
||||
anchor_left = 1.0
|
||||
anchor_right = 1.0
|
||||
offset_left = -60.0
|
||||
offset_bottom = 60.0
|
||||
pivot_offset = Vector2(60, 60)
|
||||
size_flags_horizontal = 8
|
||||
size_flags_vertical = 0
|
||||
mouse_default_cursor_shape = 11
|
||||
icon = ExtResource("3_6yuab")
|
||||
flat = true
|
||||
icon_alignment = 1
|
||||
expand_icon = true
|
||||
|
||||
[node name="LockButton" type="Button" parent="Panel/OverlayMarginContainer/OverlayContainer"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 2
|
||||
anchor_top = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_top = -60.0
|
||||
offset_right = 60.0
|
||||
pivot_offset = Vector2(0, 60)
|
||||
size_flags_horizontal = 0
|
||||
size_flags_vertical = 8
|
||||
tooltip_text = "Always Show Preview"
|
||||
toggle_mode = true
|
||||
icon = ExtResource("2_p0pa8")
|
||||
flat = true
|
||||
icon_alignment = 1
|
||||
expand_icon = true
|
||||
|
||||
[connection signal="button_down" from="Panel/OverlayMarginContainer/OverlayContainer/DragHandle" to="." method="_on_drag_handle_button_down"]
|
||||
[connection signal="button_up" from="Panel/OverlayMarginContainer/OverlayContainer/DragHandle" to="." method="_on_drag_handle_button_up"]
|
||||
[connection signal="renamed" from="Panel/OverlayMarginContainer/OverlayContainer/DragHandle" to="." method="_on_drag_handle_renamed"]
|
||||
[connection signal="button_down" from="Panel/OverlayMarginContainer/OverlayContainer/ResizeLeftHandle" to="." method="_on_resize_handle_button_down"]
|
||||
[connection signal="button_up" from="Panel/OverlayMarginContainer/OverlayContainer/ResizeLeftHandle" to="." method="_on_resize_handle_button_up"]
|
||||
[connection signal="button_down" from="Panel/OverlayMarginContainer/OverlayContainer/ResizeRightHandle" to="." method="_on_resize_handle_button_down"]
|
||||
[connection signal="button_up" from="Panel/OverlayMarginContainer/OverlayContainer/ResizeRightHandle" to="." method="_on_resize_handle_button_up"]
|
||||
[connection signal="pressed" from="Panel/OverlayMarginContainer/OverlayContainer/LockButton" to="." method="_on_lock_button_pressed"]
|
||||
|
After Width: | Height: | Size: 4.8 KiB |
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cg1cxmqbo1pa"
|
||||
path.s3tc="res://.godot/imported/darktree1.png-6c9c1843804e0501b0678ae7981cd027.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/mockups/darktree1.png"
|
||||
dest_files=["res://.godot/imported/darktree1.png-6c9c1843804e0501b0678ae7981cd027.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
After Width: | Height: | Size: 5.5 KiB |
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://fcm6etmmj65d"
|
||||
path.s3tc="res://.godot/imported/darktree2.png-bc0ff27335e63d23792e6feab3fd4ae4.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/mockups/darktree2.png"
|
||||
dest_files=["res://.godot/imported/darktree2.png-bc0ff27335e63d23792e6feab3fd4ae4.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
After Width: | Height: | Size: 5.0 KiB |
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c8h24ouqcqlxv"
|
||||
path.s3tc="res://.godot/imported/darktree3.png-402f41198d5cec5befc9ed8b825ec529.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/mockups/darktree3.png"
|
||||
dest_files=["res://.godot/imported/darktree3.png-402f41198d5cec5befc9ed8b825ec529.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
After Width: | Height: | Size: 4.5 KiB |
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dcimm8umxko8"
|
||||
path.s3tc="res://.godot/imported/darktree4.png-ae0a0014c089a2b4be72c1152d2d368a.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/mockups/darktree4.png"
|
||||
dest_files=["res://.godot/imported/darktree4.png-ae0a0014c089a2b4be72c1152d2d368a.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
After Width: | Height: | Size: 5.7 KiB |
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://rk30f4q2a1vm"
|
||||
path.s3tc="res://.godot/imported/darktree5.png-881d40bfdb6059f71c7e02910ea20291.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/mockups/darktree5.png"
|
||||
dest_files=["res://.godot/imported/darktree5.png-881d40bfdb6059f71c7e02910ea20291.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
After Width: | Height: | Size: 4.2 KiB |
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://xd1ob1jfq7pi"
|
||||
path.s3tc="res://.godot/imported/darktree6.png-521759c8c41c7d7d8b1927848573fb31.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/mockups/darktree6.png"
|
||||
dest_files=["res://.godot/imported/darktree6.png-521759c8c41c7d7d8b1927848573fb31.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
After Width: | Height: | Size: 5.0 KiB |
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bxfwua8h235xp"
|
||||
path.s3tc="res://.godot/imported/darktree7.png-792eec1560e1d356fcfe4dc06b6826b5.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/mockups/darktree7.png"
|
||||
dest_files=["res://.godot/imported/darktree7.png-792eec1560e1d356fcfe4dc06b6826b5.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
After Width: | Height: | Size: 4.8 KiB |
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bradm5u7vjjxq"
|
||||
path.s3tc="res://.godot/imported/darktree8.png-c82977a598fa7488efa01b0060f473e5.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/mockups/darktree8.png"
|
||||
dest_files=["res://.godot/imported/darktree8.png-c82977a598fa7488efa01b0060f473e5.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
After Width: | Height: | Size: 5.4 KiB |
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bryqg0hb4f0ry"
|
||||
path.s3tc="res://.godot/imported/darktree9.png-7e06c76477609c96f145e40553614f03.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/mockups/darktree9.png"
|
||||
dest_files=["res://.godot/imported/darktree9.png-7e06c76477609c96f145e40553614f03.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
After Width: | Height: | Size: 5.3 KiB |
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cygt1j1m0vpqg"
|
||||
path.s3tc="res://.godot/imported/field_placeholder.png-be0fb818475a680edf7ae1e8920c3ab2.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/mockups/field_placeholder.png"
|
||||
dest_files=["res://.godot/imported/field_placeholder.png-be0fb818475a680edf7ae1e8920c3ab2.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
After Width: | Height: | Size: 161 KiB |
@@ -2,16 +2,16 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c1iyeflkwaqxf"
|
||||
path="res://.godot/imported/slice1.png-b72999428ada44e964bd109576bfc6ec.ctex"
|
||||
uid="uid://btbggpuvn0tch"
|
||||
path="res://.godot/imported/oaktree1.png-ad126a82d92647ea93af44b84e642df4.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/testingground/slice1.png"
|
||||
dest_files=["res://.godot/imported/slice1.png-b72999428ada44e964bd109576bfc6ec.ctex"]
|
||||
source_file="res://graphics/mockups/oaktree1.png"
|
||||
dest_files=["res://.godot/imported/oaktree1.png-ad126a82d92647ea93af44b84e642df4.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
After Width: | Height: | Size: 85 KiB |
@@ -2,16 +2,16 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://clqou4xqud8br"
|
||||
path="res://.godot/imported/slice2.png-40fb0a59867b6b11340f8e63a2c69562.ctex"
|
||||
uid="uid://cm5llrc05fdug"
|
||||
path="res://.godot/imported/oaktree2.png-02c0a1b4d28a2428be8d4c1574734500.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/testingground/slice2.png"
|
||||
dest_files=["res://.godot/imported/slice2.png-40fb0a59867b6b11340f8e63a2c69562.ctex"]
|
||||
source_file="res://graphics/mockups/oaktree2.png"
|
||||
dest_files=["res://.godot/imported/oaktree2.png-02c0a1b4d28a2428be8d4c1574734500.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
After Width: | Height: | Size: 162 KiB |
@@ -2,16 +2,16 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://6xxebx7ry6o8"
|
||||
path="res://.godot/imported/slice10.png-c68dbaaae53cf5d3378876f496f1de74.ctex"
|
||||
uid="uid://cq8x8vu88bb6s"
|
||||
path="res://.godot/imported/oaktree_highlight.png-c155ce6c303671d8888692b41f789638.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/testingground/slice10.png"
|
||||
dest_files=["res://.godot/imported/slice10.png-c68dbaaae53cf5d3378876f496f1de74.ctex"]
|
||||
source_file="res://graphics/mockups/oaktree_highlight.png"
|
||||
dest_files=["res://.godot/imported/oaktree_highlight.png-c155ce6c303671d8888692b41f789638.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
@@ -3,25 +3,26 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dj1syhq0dmf3p"
|
||||
path="res://.godot/imported/Doll.png-6f0443c64ba885f03fa15b69fdd4a622.ctex"
|
||||
path.s3tc="res://.godot/imported/Doll.png-6f0443c64ba885f03fa15b69fdd4a622.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/testingground/Doll.png"
|
||||
dest_files=["res://.godot/imported/Doll.png-6f0443c64ba885f03fa15b69fdd4a622.ctex"]
|
||||
dest_files=["res://.godot/imported/Doll.png-6f0443c64ba885f03fa15b69fdd4a622.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
|
||||
@@ -3,25 +3,26 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bcah7lrg2oae1"
|
||||
path="res://.godot/imported/IveSeenSomeShit.png-a70e0f6edf8bc1e32ae477ef1b86b685.ctex"
|
||||
path.s3tc="res://.godot/imported/IveSeenSomeShit.png-a70e0f6edf8bc1e32ae477ef1b86b685.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/testingground/IveSeenSomeShit.png"
|
||||
dest_files=["res://.godot/imported/IveSeenSomeShit.png-a70e0f6edf8bc1e32ae477ef1b86b685.ctex"]
|
||||
dest_files=["res://.godot/imported/IveSeenSomeShit.png-a70e0f6edf8bc1e32ae477ef1b86b685.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
|
||||
@@ -3,25 +3,26 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cumdgxn0ibpv7"
|
||||
path="res://.godot/imported/TakeThatCandy.png-f01b70ef03aa14681b514f7be251778e.ctex"
|
||||
path.s3tc="res://.godot/imported/TakeThatCandy.png-f01b70ef03aa14681b514f7be251778e.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/testingground/TakeThatCandy.png"
|
||||
dest_files=["res://.godot/imported/TakeThatCandy.png-f01b70ef03aa14681b514f7be251778e.ctex"]
|
||||
dest_files=["res://.godot/imported/TakeThatCandy.png-f01b70ef03aa14681b514f7be251778e.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
|
||||
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bcjvoivg8mhng"
|
||||
path="res://.godot/imported/slice3.png-71a3b11b0d508c1e2a1969d98e5b5be8.ctex"
|
||||
path="res://.godot/imported/acorn1.png-feab6a809730967785fb4999d19def73.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/testingground/slice3.png"
|
||||
dest_files=["res://.godot/imported/slice3.png-71a3b11b0d508c1e2a1969d98e5b5be8.ctex"]
|
||||
source_file="res://graphics/testingground/acorn1.png"
|
||||
dest_files=["res://.godot/imported/acorn1.png-feab6a809730967785fb4999d19def73.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 178 KiB After Width: | Height: | Size: 178 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://widr8wxfj1lm"
|
||||
path="res://.godot/imported/slice13.png-47c69b50a464e7d26d045bb451691c4a.ctex"
|
||||
path="res://.godot/imported/berries1.png-49600dfa65d3a100b88dce254980b339.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/testingground/slice13.png"
|
||||
dest_files=["res://.godot/imported/slice13.png-47c69b50a464e7d26d045bb451691c4a.ctex"]
|
||||
source_file="res://graphics/testingground/berries1.png"
|
||||
dest_files=["res://.godot/imported/berries1.png-49600dfa65d3a100b88dce254980b339.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 75 KiB |
@@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://1iij1pwbteq6"
|
||||
path="res://.godot/imported/slice16.png-2256872f3f802bccca77d6191dc3f369.ctex"
|
||||
path="res://.godot/imported/berries2.png-3688225cafa02f13678322bbdae4a645.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/testingground/slice16.png"
|
||||
dest_files=["res://.godot/imported/slice16.png-2256872f3f802bccca77d6191dc3f369.ctex"]
|
||||
source_file="res://graphics/testingground/berries2.png"
|
||||
dest_files=["res://.godot/imported/berries2.png-3688225cafa02f13678322bbdae4a645.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
@@ -3,25 +3,26 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dfynp0xqtpcke"
|
||||
path="res://.godot/imported/slice14.png-07568f7ec42a492d90f54a1140b9ddbd.ctex"
|
||||
path.s3tc="res://.godot/imported/chestnut1.png-21a267aa266521f1b5d3f4d8a3c58228.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/testingground/slice14.png"
|
||||
dest_files=["res://.godot/imported/slice14.png-07568f7ec42a492d90f54a1140b9ddbd.ctex"]
|
||||
source_file="res://graphics/testingground/chestnut1.png"
|
||||
dest_files=["res://.godot/imported/chestnut1.png-21a267aa266521f1b5d3f4d8a3c58228.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 80 KiB |
@@ -3,25 +3,26 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://63rgrra0tdef"
|
||||
path="res://.godot/imported/slice15.png-ea2eb45f655d1c17a7eb181c15007abc.ctex"
|
||||
path.s3tc="res://.godot/imported/chestnut2.png-08cf9d087b4c2a8247e0363130550373.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/testingground/slice15.png"
|
||||
dest_files=["res://.godot/imported/slice15.png-ea2eb45f655d1c17a7eb181c15007abc.ctex"]
|
||||
source_file="res://graphics/testingground/chestnut2.png"
|
||||
dest_files=["res://.godot/imported/chestnut2.png-08cf9d087b4c2a8247e0363130550373.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
@@ -3,25 +3,26 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cvn2p215jq2am"
|
||||
path="res://.godot/imported/concerned.png-205741d8bc7fe187c462562cc67cb650.ctex"
|
||||
path.s3tc="res://.godot/imported/concerned.png-205741d8bc7fe187c462562cc67cb650.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/testingground/concerned.png"
|
||||
dest_files=["res://.godot/imported/concerned.png-205741d8bc7fe187c462562cc67cb650.ctex"]
|
||||
dest_files=["res://.godot/imported/concerned.png-205741d8bc7fe187c462562cc67cb650.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
|
||||
|
Before Width: | Height: | Size: 555 KiB After Width: | Height: | Size: 555 KiB |
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c1iyeflkwaqxf"
|
||||
path.s3tc="res://.godot/imported/mushroom1.png-e27fd7d2f556707904d2f859e371da23.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/testingground/mushroom1.png"
|
||||
dest_files=["res://.godot/imported/mushroom1.png-e27fd7d2f556707904d2f859e371da23.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bednd2jncey0i"
|
||||
path.s3tc="res://.godot/imported/mushroom10.png-7643aad497bc0ec349fbaa9d7d07927a.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/testingground/mushroom10.png"
|
||||
dest_files=["res://.godot/imported/mushroom10.png-7643aad497bc0ec349fbaa9d7d07927a.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 107 KiB After Width: | Height: | Size: 107 KiB |
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cam7x7byvqtb2"
|
||||
path.s3tc="res://.godot/imported/mushroom11.png-f358b483aa3f778bb3de2ca731fdf765.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/testingground/mushroom11.png"
|
||||
dest_files=["res://.godot/imported/mushroom11.png-f358b483aa3f778bb3de2ca731fdf765.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 169 KiB After Width: | Height: | Size: 169 KiB |
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://clqou4xqud8br"
|
||||
path.s3tc="res://.godot/imported/mushroom2.png-3d05f5ddfc64a24a97ae9ed335b94856.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/testingground/mushroom2.png"
|
||||
dest_files=["res://.godot/imported/mushroom2.png-3d05f5ddfc64a24a97ae9ed335b94856.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
@@ -3,25 +3,26 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cj1bfgpunfsoq"
|
||||
path="res://.godot/imported/slice4.png-bae35636a3b3a51b00ae84657060aa03.ctex"
|
||||
path.s3tc="res://.godot/imported/mushroom3.png-8d3ea6150747f891c0044b399a46a7b6.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/testingground/slice4.png"
|
||||
dest_files=["res://.godot/imported/slice4.png-bae35636a3b3a51b00ae84657060aa03.ctex"]
|
||||
source_file="res://graphics/testingground/mushroom3.png"
|
||||
dest_files=["res://.godot/imported/mushroom3.png-8d3ea6150747f891c0044b399a46a7b6.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
@@ -3,25 +3,26 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bnb3bjk274vgn"
|
||||
path="res://.godot/imported/slice5.png-1b997656a7d3ed5ee070ff09d5824722.ctex"
|
||||
path.s3tc="res://.godot/imported/mushroom4.png-225b82126c9976b66663819da707d84f.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/testingground/slice5.png"
|
||||
dest_files=["res://.godot/imported/slice5.png-1b997656a7d3ed5ee070ff09d5824722.ctex"]
|
||||
source_file="res://graphics/testingground/mushroom4.png"
|
||||
dest_files=["res://.godot/imported/mushroom4.png-225b82126c9976b66663819da707d84f.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 9.5 KiB |
@@ -3,25 +3,26 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://0oy8by6pd2wg"
|
||||
path="res://.godot/imported/slice6.png-fdbf06a9fbd3c01e310922f72bc86cdd.ctex"
|
||||
path.s3tc="res://.godot/imported/mushroom5.png-c59ec4efb34f378729e1d88ff8f24356.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/testingground/slice6.png"
|
||||
dest_files=["res://.godot/imported/slice6.png-fdbf06a9fbd3c01e310922f72bc86cdd.ctex"]
|
||||
source_file="res://graphics/testingground/mushroom5.png"
|
||||
dest_files=["res://.godot/imported/mushroom5.png-c59ec4efb34f378729e1d88ff8f24356.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB |
@@ -3,25 +3,26 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b1h55mnc1giqu"
|
||||
path="res://.godot/imported/slice7.png-52f07b27688ebc2d82cde6cb9cebe87d.ctex"
|
||||
path.s3tc="res://.godot/imported/mushroom6.png-28853bdab5924a577c8b03ddf5606732.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/testingground/slice7.png"
|
||||
dest_files=["res://.godot/imported/slice7.png-52f07b27688ebc2d82cde6cb9cebe87d.ctex"]
|
||||
source_file="res://graphics/testingground/mushroom6.png"
|
||||
dest_files=["res://.godot/imported/mushroom6.png-28853bdab5924a577c8b03ddf5606732.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
@@ -3,25 +3,26 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c5lsjern0iqmc"
|
||||
path="res://.godot/imported/slice8.png-f6e6619e54651e33ffaa0a0fa456d533.ctex"
|
||||
path.s3tc="res://.godot/imported/mushroom7.png-00f11afdca674c7e9c74d6dc31d3d14c.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/testingground/slice8.png"
|
||||
dest_files=["res://.godot/imported/slice8.png-f6e6619e54651e33ffaa0a0fa456d533.ctex"]
|
||||
source_file="res://graphics/testingground/mushroom7.png"
|
||||
dest_files=["res://.godot/imported/mushroom7.png-00f11afdca674c7e9c74d6dc31d3d14c.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
@@ -3,25 +3,26 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bg465y2vkrvfm"
|
||||
path="res://.godot/imported/slice9.png-222eebf940519e35931eabefa9522a4c.ctex"
|
||||
path.s3tc="res://.godot/imported/mushroom8.png-25b2fc63bd00dc22c8c7376f86d0c6b0.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/testingground/slice9.png"
|
||||
dest_files=["res://.godot/imported/slice9.png-222eebf940519e35931eabefa9522a4c.ctex"]
|
||||
source_file="res://graphics/testingground/mushroom8.png"
|
||||
dest_files=["res://.godot/imported/mushroom8.png-25b2fc63bd00dc22c8c7376f86d0c6b0.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://6xxebx7ry6o8"
|
||||
path.s3tc="res://.godot/imported/mushroom9.png-8c495f592b9590dd761af5dfd2b49b77.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://graphics/testingground/mushroom9.png"
|
||||
dest_files=["res://.godot/imported/mushroom9.png-8c495f592b9590dd761af5dfd2b49b77.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
@@ -11,13 +11,14 @@ config_version=5
|
||||
[application]
|
||||
|
||||
config/name="Babushka"
|
||||
run/main_scene="res://scenes/2DTestingGround.tscn"
|
||||
run/main_scene="res://scenes/mockups/abandoned_street_3d.tscn"
|
||||
config/features=PackedStringArray("4.3", "Forward Plus")
|
||||
config/icon="res://icon.svg"
|
||||
|
||||
[autoload]
|
||||
|
||||
Dialogic="*res://addons/dialogic/Core/DialogicGameHandler.gd"
|
||||
HelpBox="*res://scripts/HelpBox.gd"
|
||||
|
||||
[dialogic]
|
||||
|
||||
@@ -27,7 +28,9 @@ directories/dch_directory={
|
||||
directories/dtl_directory={
|
||||
"test_time_line": "res://dialog/test_time_line.dtl"
|
||||
}
|
||||
variables={}
|
||||
variables={
|
||||
"TestVariable": "none"
|
||||
}
|
||||
glossary/default_case_sensitive=true
|
||||
layout/style_list=[]
|
||||
layout/default_style="Default"
|
||||
@@ -65,11 +68,17 @@ text/autopauses={}
|
||||
|
||||
[display]
|
||||
|
||||
window/size/viewport_width=1920
|
||||
window/size/viewport_height=1080
|
||||
window/size/always_on_top=true
|
||||
|
||||
[dotnet]
|
||||
|
||||
project/assembly_name="Babushka"
|
||||
|
||||
[editor_plugins]
|
||||
|
||||
enabled=PackedStringArray("res://addons/dialogic/plugin.cfg")
|
||||
enabled=PackedStringArray("res://addons/anthonyec.camera_preview/plugin.cfg", "res://addons/dialogic/plugin.cfg")
|
||||
|
||||
[input]
|
||||
|
||||
@@ -102,7 +111,12 @@ dialogic_default_action={
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null)
|
||||
]
|
||||
}
|
||||
click={
|
||||
"deadzone": 0.5,
|
||||
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null)
|
||||
]
|
||||
}
|
||||
|
||||
[internationalization]
|
||||
|
||||
locale/translations=PackedStringArray("res://dialog/translations/dialogic_character_translations.en.translation", "res://dialog/translations/dialogic_test_time_line_translation.de.translation", "res://dialog/translations/dialogic_test_time_line_translation.en.translation", "res://dialog/translations/dialogic_character_translations.de.translation")
|
||||
locale/translations=PackedStringArray("res://dialog/translations/dialogic_character_translations.en.translation", "res://dialog/translations/dialogic_test_time_line_translation.de.translation", "res://dialog/translations/dialogic_test_time_line_translation.en.translation", "res://dialog/translations/dialogic_character_translations.de.translation", "res://dialog/translations/dialogic_semi_cat_translation.de.translation", "res://dialog/translations/dialogic_semi_cat_translation.en.translation")
|
||||
|
||||
@@ -1,49 +1,17 @@
|
||||
[gd_scene load_steps=8 format=3 uid="uid://b6qkpdal83kyr"]
|
||||
[gd_scene load_steps=4 format=3 uid="uid://b6qkpdal83kyr"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dd3giw31imfk4" path="res://scenes/player.tscn" id="1_c1tk0"]
|
||||
[ext_resource type="Script" path="res://scripts/camera_controller.gd" id="4_qljgx"]
|
||||
[ext_resource type="Script" path="res://scripts/player.gd" id="5_1bxee"]
|
||||
[ext_resource type="Texture2D" uid="uid://cumdgxn0ibpv7" path="res://graphics/testingground/TakeThatCandy.png" id="5_myle6"]
|
||||
[ext_resource type="Texture2D" uid="uid://dj1syhq0dmf3p" path="res://graphics/testingground/Doll.png" id="7_kqops"]
|
||||
[ext_resource type="PackedScene" uid="uid://txjiuosyfv34" path="res://scenes/props/test_world.tscn" id="7_yb6mq"]
|
||||
[ext_resource type="Texture2D" uid="uid://bcah7lrg2oae1" path="res://graphics/testingground/IveSeenSomeShit.png" id="8_576gf"]
|
||||
[ext_resource type="Texture2D" uid="uid://cvn2p215jq2am" path="res://graphics/testingground/concerned.png" id="9_7m3ec"]
|
||||
|
||||
[node name="2dTestingGround" type="Node2D"]
|
||||
y_sort_enabled = true
|
||||
|
||||
[node name="player" type="Node2D" parent="."]
|
||||
z_as_relative = false
|
||||
y_sort_enabled = true
|
||||
script = ExtResource("5_1bxee")
|
||||
speed = 300.0
|
||||
[node name="player" parent="." instance=ExtResource("1_c1tk0")]
|
||||
|
||||
[node name="TakeThatCandy" type="Sprite2D" parent="player"]
|
||||
visible = false
|
||||
scale = Vector2(0.4, 0.4)
|
||||
texture = ExtResource("5_myle6")
|
||||
offset = Vector2(16.71, -221.315)
|
||||
|
||||
[node name="Doll" type="Sprite2D" parent="player"]
|
||||
visible = false
|
||||
scale = Vector2(0.450315, 0.450315)
|
||||
texture = ExtResource("7_kqops")
|
||||
offset = Vector2(-8.925, -208.125)
|
||||
|
||||
[node name="IveSeenSomeShit" type="Sprite2D" parent="player"]
|
||||
visible = false
|
||||
scale = Vector2(0.367314, 0.367314)
|
||||
texture = ExtResource("8_576gf")
|
||||
offset = Vector2(-16.49, -269.615)
|
||||
|
||||
[node name="Concerned" type="Sprite2D" parent="player"]
|
||||
scale = Vector2(0.388489, 0.388489)
|
||||
texture = ExtResource("9_7m3ec")
|
||||
offset = Vector2(-24.175, -249.235)
|
||||
|
||||
[node name="Camera2D" type="Camera2D" parent="." node_paths=PackedStringArray("followNode")]
|
||||
[node name="Camera2D" type="Camera2D" parent="."]
|
||||
position = Vector2(166.03, 0)
|
||||
script = ExtResource("4_qljgx")
|
||||
multiplier = 100.0
|
||||
followNode = NodePath("../player")
|
||||
|
||||
[node name="World" parent="." instance=ExtResource("7_yb6mq")]
|
||||
|
||||
@@ -0,0 +1,202 @@
|
||||
[gd_scene load_steps=12 format=3 uid="uid://dx7gn5yiq1aki"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dd3giw31imfk4" path="res://scenes/player.tscn" id="1_i63wh"]
|
||||
[ext_resource type="Texture2D" uid="uid://cg1cxmqbo1pa" path="res://graphics/mockups/darktree1.png" id="2_mb5hf"]
|
||||
[ext_resource type="Texture2D" uid="uid://fcm6etmmj65d" path="res://graphics/mockups/darktree2.png" id="3_4vs7w"]
|
||||
[ext_resource type="Texture2D" uid="uid://c8h24ouqcqlxv" path="res://graphics/mockups/darktree3.png" id="4_88a82"]
|
||||
[ext_resource type="Texture2D" uid="uid://dcimm8umxko8" path="res://graphics/mockups/darktree4.png" id="5_ua5wd"]
|
||||
[ext_resource type="Texture2D" uid="uid://rk30f4q2a1vm" path="res://graphics/mockups/darktree5.png" id="6_5bpbl"]
|
||||
[ext_resource type="Texture2D" uid="uid://xd1ob1jfq7pi" path="res://graphics/mockups/darktree6.png" id="7_yup5b"]
|
||||
[ext_resource type="Texture2D" uid="uid://bxfwua8h235xp" path="res://graphics/mockups/darktree7.png" id="8_1cter"]
|
||||
[ext_resource type="Texture2D" uid="uid://bradm5u7vjjxq" path="res://graphics/mockups/darktree8.png" id="9_w3fwj"]
|
||||
[ext_resource type="Texture2D" uid="uid://bryqg0hb4f0ry" path="res://graphics/mockups/darktree9.png" id="10_dc0id"]
|
||||
[ext_resource type="Texture2D" uid="uid://c1iyeflkwaqxf" path="res://graphics/testingground/mushroom1.png" id="11_i1j1a"]
|
||||
|
||||
[node name="AbandonedStreet" type="Node2D"]
|
||||
|
||||
[node name="player" parent="." instance=ExtResource("1_i63wh")]
|
||||
z_index = 1
|
||||
z_as_relative = true
|
||||
position = Vector2(586, 343)
|
||||
|
||||
[node name="Camera2D" type="Camera2D" parent="."]
|
||||
position = Vector2(578, 327)
|
||||
|
||||
[node name="background" type="Node2D" parent="."]
|
||||
|
||||
[node name="Darktree1" type="Sprite2D" parent="background"]
|
||||
y_sort_enabled = true
|
||||
position = Vector2(159, 107.5)
|
||||
scale = Vector2(0.681208, 0.926282)
|
||||
texture = ExtResource("2_mb5hf")
|
||||
|
||||
[node name="Darktree2" type="Sprite2D" parent="background"]
|
||||
y_sort_enabled = true
|
||||
position = Vector2(290, 97)
|
||||
texture = ExtResource("3_4vs7w")
|
||||
|
||||
[node name="Darktree3" type="Sprite2D" parent="background"]
|
||||
y_sort_enabled = true
|
||||
position = Vector2(445, 108)
|
||||
texture = ExtResource("4_88a82")
|
||||
|
||||
[node name="Darktree4" type="Sprite2D" parent="background"]
|
||||
y_sort_enabled = true
|
||||
position = Vector2(50, 116)
|
||||
texture = ExtResource("5_ua5wd")
|
||||
|
||||
[node name="Darktree5" type="Sprite2D" parent="background"]
|
||||
y_sort_enabled = true
|
||||
position = Vector2(585, 95)
|
||||
texture = ExtResource("6_5bpbl")
|
||||
|
||||
[node name="Darktree6" type="Sprite2D" parent="background"]
|
||||
y_sort_enabled = true
|
||||
position = Vector2(716, 94)
|
||||
texture = ExtResource("7_yup5b")
|
||||
|
||||
[node name="Darktree7" type="Sprite2D" parent="background"]
|
||||
y_sort_enabled = true
|
||||
position = Vector2(826, 122)
|
||||
texture = ExtResource("8_1cter")
|
||||
|
||||
[node name="Darktree8" type="Sprite2D" parent="background"]
|
||||
y_sort_enabled = true
|
||||
position = Vector2(962, 114)
|
||||
texture = ExtResource("9_w3fwj")
|
||||
|
||||
[node name="Darktree9" type="Sprite2D" parent="background"]
|
||||
y_sort_enabled = true
|
||||
position = Vector2(1093, 93)
|
||||
texture = ExtResource("10_dc0id")
|
||||
|
||||
[node name="Darktree10" type="Sprite2D" parent="background"]
|
||||
z_index = -1
|
||||
y_sort_enabled = true
|
||||
position = Vector2(1018, 108)
|
||||
scale = Vector2(0.681208, 0.926282)
|
||||
texture = ExtResource("2_mb5hf")
|
||||
|
||||
[node name="Darktree11" type="Sprite2D" parent="background"]
|
||||
z_index = -1
|
||||
y_sort_enabled = true
|
||||
position = Vector2(72, 65)
|
||||
scale = Vector2(1.24457, 1)
|
||||
texture = ExtResource("3_4vs7w")
|
||||
|
||||
[node name="Darktree12" type="Sprite2D" parent="background"]
|
||||
z_index = -1
|
||||
y_sort_enabled = true
|
||||
position = Vector2(340, 79)
|
||||
scale = Vector2(0.66092, 1)
|
||||
texture = ExtResource("4_88a82")
|
||||
|
||||
[node name="Darktree13" type="Sprite2D" parent="background"]
|
||||
z_index = -1
|
||||
y_sort_enabled = true
|
||||
position = Vector2(647, 92)
|
||||
texture = ExtResource("5_ua5wd")
|
||||
|
||||
[node name="Darktree14" type="Sprite2D" parent="background"]
|
||||
z_index = -1
|
||||
y_sort_enabled = true
|
||||
position = Vector2(899, 50)
|
||||
texture = ExtResource("6_5bpbl")
|
||||
|
||||
[node name="Darktree15" type="Sprite2D" parent="background"]
|
||||
z_index = -1
|
||||
y_sort_enabled = true
|
||||
position = Vector2(785, 30.5)
|
||||
scale = Vector2(1, 1.41197)
|
||||
texture = ExtResource("7_yup5b")
|
||||
|
||||
[node name="Darktree16" type="Sprite2D" parent="background"]
|
||||
z_index = -1
|
||||
y_sort_enabled = true
|
||||
position = Vector2(510, 90)
|
||||
texture = ExtResource("8_1cter")
|
||||
|
||||
[node name="Darktree17" type="Sprite2D" parent="background"]
|
||||
z_index = -1
|
||||
y_sort_enabled = true
|
||||
position = Vector2(398, 74)
|
||||
texture = ExtResource("9_w3fwj")
|
||||
|
||||
[node name="Darktree18" type="Sprite2D" parent="background"]
|
||||
z_index = -1
|
||||
y_sort_enabled = true
|
||||
position = Vector2(211, 40)
|
||||
texture = ExtResource("10_dc0id")
|
||||
|
||||
[node name="foreground" type="Node2D" parent="."]
|
||||
position = Vector2(577, 365)
|
||||
scale = Vector2(3.64435, 0.128623)
|
||||
|
||||
[node name="Darktree19" type="Sprite2D" parent="foreground"]
|
||||
z_index = 2
|
||||
y_sort_enabled = true
|
||||
position = Vector2(-148.175, 1329.47)
|
||||
scale = Vector2(0.645939, 9.86782)
|
||||
texture = ExtResource("2_mb5hf")
|
||||
|
||||
[node name="Darktree20" type="Sprite2D" parent="foreground"]
|
||||
z_index = 2
|
||||
y_sort_enabled = true
|
||||
position = Vector2(-92.472, 1049.58)
|
||||
scale = Vector2(0.372823, 11.4754)
|
||||
texture = ExtResource("3_4vs7w")
|
||||
|
||||
[node name="Darktree21" type="Sprite2D" parent="foreground"]
|
||||
z_index = 2
|
||||
y_sort_enabled = true
|
||||
position = Vector2(-50.7635, 1438.31)
|
||||
scale = Vector2(0.313822, 9.20193)
|
||||
texture = ExtResource("4_88a82")
|
||||
|
||||
[node name="Darktree22" type="Sprite2D" parent="foreground"]
|
||||
z_index = 2
|
||||
y_sort_enabled = true
|
||||
position = Vector2(97.6169, 966)
|
||||
scale = Vector2(0.462093, 10.9798)
|
||||
texture = ExtResource("5_ua5wd")
|
||||
|
||||
[node name="Darktree23" type="Sprite2D" parent="foreground"]
|
||||
z_index = 2
|
||||
y_sort_enabled = true
|
||||
position = Vector2(-6.03674, 1142.87)
|
||||
scale = Vector2(0.393303, 10.4205)
|
||||
texture = ExtResource("6_5bpbl")
|
||||
|
||||
[node name="Darktree24" type="Sprite2D" parent="foreground"]
|
||||
z_index = 2
|
||||
y_sort_enabled = true
|
||||
position = Vector2(30.1837, 919.352)
|
||||
scale = Vector2(0.359898, 13.0444)
|
||||
texture = ExtResource("7_yup5b")
|
||||
|
||||
[node name="Darktree25" type="Sprite2D" parent="foreground"]
|
||||
z_index = 2
|
||||
y_sort_enabled = true
|
||||
position = Vector2(60.6419, 1321.69)
|
||||
scale = Vector2(0.394639, 10.7981)
|
||||
texture = ExtResource("8_1cter")
|
||||
|
||||
[node name="Darktree26" type="Sprite2D" parent="foreground"]
|
||||
z_index = 2
|
||||
y_sort_enabled = true
|
||||
position = Vector2(152.016, 1531.61)
|
||||
scale = Vector2(0.384475, 10.3028)
|
||||
texture = ExtResource("9_w3fwj")
|
||||
|
||||
[node name="Darktree27" type="Sprite2D" parent="foreground"]
|
||||
z_index = 2
|
||||
y_sort_enabled = true
|
||||
position = Vector2(126.223, 855.211)
|
||||
scale = Vector2(0.274398, 10.5544)
|
||||
texture = ExtResource("10_dc0id")
|
||||
|
||||
[node name="road" type="Sprite2D" parent="."]
|
||||
modulate = Color(0.368627, 0.368627, 0.368627, 0.898039)
|
||||
position = Vector2(577, 365)
|
||||
scale = Vector2(3.64435, 0.128623)
|
||||
texture = ExtResource("11_i1j1a")
|
||||
@@ -0,0 +1,36 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://dd3giw31imfk4"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/player.gd" id="1_rhqwr"]
|
||||
[ext_resource type="Texture2D" uid="uid://cumdgxn0ibpv7" path="res://graphics/testingground/TakeThatCandy.png" id="2_eul5n"]
|
||||
[ext_resource type="Texture2D" uid="uid://dj1syhq0dmf3p" path="res://graphics/testingground/Doll.png" id="3_mpdnl"]
|
||||
[ext_resource type="Texture2D" uid="uid://bcah7lrg2oae1" path="res://graphics/testingground/IveSeenSomeShit.png" id="4_631ct"]
|
||||
[ext_resource type="Texture2D" uid="uid://cvn2p215jq2am" path="res://graphics/testingground/concerned.png" id="5_ayafy"]
|
||||
|
||||
[node name="player" type="Node2D"]
|
||||
z_as_relative = false
|
||||
y_sort_enabled = true
|
||||
script = ExtResource("1_rhqwr")
|
||||
speed = 300.0
|
||||
|
||||
[node name="TakeThatCandy" type="Sprite2D" parent="."]
|
||||
visible = false
|
||||
scale = Vector2(0.4, 0.4)
|
||||
texture = ExtResource("2_eul5n")
|
||||
offset = Vector2(16.71, -221.315)
|
||||
|
||||
[node name="Doll" type="Sprite2D" parent="."]
|
||||
visible = false
|
||||
scale = Vector2(0.450315, 0.450315)
|
||||
texture = ExtResource("3_mpdnl")
|
||||
offset = Vector2(-8.925, -208.125)
|
||||
|
||||
[node name="IveSeenSomeShit" type="Sprite2D" parent="."]
|
||||
visible = false
|
||||
scale = Vector2(0.367314, 0.367314)
|
||||
texture = ExtResource("4_631ct")
|
||||
offset = Vector2(-16.49, -269.615)
|
||||
|
||||
[node name="Concerned" type="Sprite2D" parent="."]
|
||||
scale = Vector2(0.388489, 0.388489)
|
||||
texture = ExtResource("5_ayafy")
|
||||
offset = Vector2(-24.175, -249.235)
|
||||
@@ -1,6 +1,6 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://bs02r12yhvse3"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://cj1bfgpunfsoq" path="res://graphics/testingground/slice4.png" id="2_t84c7"]
|
||||
[ext_resource type="Texture2D" uid="uid://cj1bfgpunfsoq" path="res://graphics/testingground/mushroom3.png" id="2_t84c7"]
|
||||
|
||||
[node name="Mushroom1" type="Node2D"]
|
||||
z_as_relative = false
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://b1pbkxawpcwxc"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://bnb3bjk274vgn" path="res://graphics/testingground/slice5.png" id="1_dm7r2"]
|
||||
[ext_resource type="Texture2D" uid="uid://bnb3bjk274vgn" path="res://graphics/testingground/mushroom4.png" id="1_dm7r2"]
|
||||
|
||||
[node name="Mushroom1" type="Node2D"]
|
||||
z_as_relative = false
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://u5slo32os2oo"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://0oy8by6pd2wg" path="res://graphics/testingground/slice6.png" id="1_k1qpa"]
|
||||
[ext_resource type="Texture2D" uid="uid://0oy8by6pd2wg" path="res://graphics/testingground/mushroom5.png" id="1_k1qpa"]
|
||||
|
||||
[node name="Mushroom1" type="Node2D"]
|
||||
z_as_relative = false
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://cqnpqk1kg0hrc"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://b1h55mnc1giqu" path="res://graphics/testingground/slice7.png" id="1_qtwer"]
|
||||
[ext_resource type="Texture2D" uid="uid://b1h55mnc1giqu" path="res://graphics/testingground/mushroom6.png" id="1_qtwer"]
|
||||
|
||||
[node name="Mushroom1" type="Node2D"]
|
||||
z_as_relative = false
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://dblpcx0gljvxl"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://c5lsjern0iqmc" path="res://graphics/testingground/slice8.png" id="1_um1sv"]
|
||||
[ext_resource type="Texture2D" uid="uid://c5lsjern0iqmc" path="res://graphics/testingground/mushroom7.png" id="1_um1sv"]
|
||||
|
||||
[node name="Mushroom1" type="Node2D"]
|
||||
z_as_relative = false
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://cmmfoduf37cd5"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://bg465y2vkrvfm" path="res://graphics/testingground/slice9.png" id="1_y728e"]
|
||||
[ext_resource type="Texture2D" uid="uid://bg465y2vkrvfm" path="res://graphics/testingground/mushroom8.png" id="1_y728e"]
|
||||
|
||||
[node name="Mushroom1" type="Node2D"]
|
||||
z_as_relative = false
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://dhclggadclwm5"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://6xxebx7ry6o8" path="res://graphics/testingground/slice10.png" id="1_dhs3m"]
|
||||
[ext_resource type="Texture2D" uid="uid://6xxebx7ry6o8" path="res://graphics/testingground/mushroom9.png" id="1_dhs3m"]
|
||||
|
||||
[node name="Mushroom1" type="Node2D"]
|
||||
z_as_relative = false
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://cn77bho6ohd18"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://bednd2jncey0i" path="res://graphics/testingground/slice11.png" id="1_kcu8g"]
|
||||
[ext_resource type="Texture2D" uid="uid://bednd2jncey0i" path="res://graphics/testingground/mushroom10.png" id="1_kcu8g"]
|
||||
|
||||
[node name="Mushroom1" type="Node2D"]
|
||||
z_as_relative = false
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://bq58bkfjh4x7p"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://cam7x7byvqtb2" path="res://graphics/testingground/slice12.png" id="1_smq5e"]
|
||||
[ext_resource type="Texture2D" uid="uid://cam7x7byvqtb2" path="res://graphics/testingground/mushroom11.png" id="1_smq5e"]
|
||||
|
||||
[node name="Mushroom1" type="Node2D"]
|
||||
z_as_relative = false
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://dbd1niu3tp8y5"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://cvn2p215jq2am" path="res://graphics/testingground/concerned.png" id="1_5jpx2"]
|
||||
[ext_resource type="Script" path="res://scripts/player_3d.gd" id="1_08wm4"]
|
||||
[ext_resource type="Script" path="res://scripts/camera_pivot.gd" id="3_drcdp"]
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_1vdrh"]
|
||||
radius = 0.0478421
|
||||
height = 0.234557
|
||||
|
||||
[node name="Player3d" type="Node3D"]
|
||||
|
||||
[node name="CharacterBody3D" type="CharacterBody3D" parent="."]
|
||||
script = ExtResource("1_08wm4")
|
||||
SPEED = 0.5
|
||||
|
||||
[node name="Sprite" type="Sprite3D" parent="CharacterBody3D"]
|
||||
transform = Transform3D(0.04, 0, 0, 0, 0.04, 0, 0, 0, 0.04, 0, 0.110813, 0)
|
||||
billboard = 1
|
||||
shaded = true
|
||||
texture = ExtResource("1_5jpx2")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="CharacterBody3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.119886, 0)
|
||||
shape = SubResource("CapsuleShape3D_1vdrh")
|
||||
|
||||
[node name="CameraPivot" type="Node3D" parent="CharacterBody3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.159723, 0)
|
||||
script = ExtResource("3_drcdp")
|
||||
canPitch = true
|
||||
canYaw = true
|
||||
|
||||
[node name="SubPivot" type="Node3D" parent="CharacterBody3D/CameraPivot"]
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="CharacterBody3D/CameraPivot/SubPivot"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.871025, 0.491238, 0, -0.491238, 0.871025, 0, 0.658355, 1.24487)
|
||||
fov = 28.5
|
||||
@@ -0,0 +1,39 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://ba238rhu5e887"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/HelpBoxContainer.gd" id="1_qafrk"]
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ots6x"]
|
||||
|
||||
[node name="UiHelpOverlay" type="Node2D"]
|
||||
|
||||
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
||||
|
||||
[node name="PanelContainer" type="PanelContainer" parent="CanvasLayer"]
|
||||
anchors_preset = 3
|
||||
anchor_left = 1.0
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -77.0
|
||||
offset_top = -110.0
|
||||
offset_right = -19.0
|
||||
offset_bottom = -20.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 0
|
||||
theme_override_styles/panel = SubResource("StyleBoxEmpty_ots6x")
|
||||
|
||||
[node name="PanelContainer" type="PanelContainer" parent="CanvasLayer/PanelContainer"]
|
||||
layout_mode = 2
|
||||
script = ExtResource("1_qafrk")
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="CanvasLayer/PanelContainer/PanelContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_left = 10
|
||||
theme_override_constants/margin_top = 10
|
||||
theme_override_constants/margin_right = 10
|
||||
theme_override_constants/margin_bottom = 10
|
||||
|
||||
[node name="Label" type="Label" parent="CanvasLayer/PanelContainer/PanelContainer/MarginContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 51
|
||||
text = "H"
|
||||
@@ -0,0 +1,26 @@
|
||||
extends Node
|
||||
|
||||
var container: HelpBoxContainer
|
||||
|
||||
func showHelp(text:String)->void:
|
||||
container.showHelp(text)
|
||||
|
||||
func hideHelp()->void:
|
||||
container.hideHelp()
|
||||
|
||||
func registerContainer(container: HelpBoxContainer)->void:
|
||||
self.container = container
|
||||
|
||||
|
||||
|
||||
|
||||
func _input(event: InputEvent) -> void:
|
||||
|
||||
if event.is_action_pressed("ui_left"):
|
||||
HelpBox.showHelp("This is a test help text.")
|
||||
|
||||
if event.is_action_pressed("ui_right"):
|
||||
HelpBox.hideHelp()
|
||||
|
||||
if event.is_action_pressed("ui_up"):
|
||||
Dialogic.start_timeline("test_time_line")
|
||||
@@ -0,0 +1,55 @@
|
||||
extends PanelContainer
|
||||
class_name HelpBoxContainer
|
||||
|
||||
@onready var textLabel: Label = $MarginContainer/Label
|
||||
var animationTween:Tween
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
HelpBox.registerContainer(self)
|
||||
await get_tree().process_frame
|
||||
hideHelpInstant()
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta: float) -> void:
|
||||
pass
|
||||
|
||||
func showHelp(text: String) -> void:
|
||||
textLabel.text = text
|
||||
if animationTween:
|
||||
animationTween.kill()
|
||||
|
||||
visible = false
|
||||
visible = true
|
||||
|
||||
var offset = get_rect().size.x + 40
|
||||
|
||||
animationTween = get_tree().create_tween()
|
||||
animationTween.set_ease(Tween.EASE_OUT)
|
||||
animationTween.set_trans(Tween.TRANS_QUAD)
|
||||
animationTween.tween_property(self, "position:x", 0, .5).from(offset)
|
||||
|
||||
|
||||
func hideHelp() -> void:
|
||||
|
||||
if animationTween:
|
||||
animationTween.kill()
|
||||
|
||||
var offset = get_rect().size.x + 40
|
||||
|
||||
animationTween = get_tree().create_tween()
|
||||
animationTween.set_ease(Tween.EASE_IN)
|
||||
animationTween.set_trans(Tween.TRANS_QUAD)
|
||||
animationTween.tween_property(self, "position:x", offset, .5)
|
||||
|
||||
func hideHelpInstant() -> void:
|
||||
if animationTween:
|
||||
animationTween.kill()
|
||||
|
||||
var offset = get_rect().size.x + 40
|
||||
|
||||
animationTween = get_tree().create_tween()
|
||||
animationTween.set_ease(Tween.EASE_IN)
|
||||
animationTween.set_trans(Tween.TRANS_QUAD)
|
||||
animationTween.tween_property(self, "position:x", offset, 0)
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
extends Node3D
|
||||
|
||||
@export var canPitch: bool = false
|
||||
@export var canYaw: bool = false
|
||||
@export var rotateSpeed: float = 0.003
|
||||
@onready var sub_pivot: Node3D = $SubPivot
|
||||
|
||||
func _ready() -> void:
|
||||
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
|
||||
|
||||
func _input(event):
|
||||
if event.is_action_pressed("click"):
|
||||
if Input.mouse_mode == Input.MOUSE_MODE_VISIBLE:
|
||||
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
|
||||
|
||||
if event.is_action_pressed("ui_cancel"):
|
||||
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
|
||||
|
||||
if event is InputEventMouseMotion:
|
||||
if Input.mouse_mode != Input.MOUSE_MODE_CAPTURED: return
|
||||
if canYaw: sub_pivot.rotate_x(event.relative.y * -rotateSpeed)
|
||||
if canPitch: rotate_y(event.relative.x * -rotateSpeed)
|
||||
@@ -0,0 +1,30 @@
|
||||
extends CharacterBody3D
|
||||
|
||||
|
||||
@export var SPEED = 1.0
|
||||
|
||||
@onready var camera_3d: Camera3D = $CameraPivot/SubPivot/Camera3D
|
||||
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
# Add the gravity.
|
||||
if not is_on_floor():
|
||||
velocity += get_gravity() * delta
|
||||
|
||||
# Handle jump.
|
||||
#if Input.is_action_just_pressed("ui_accept") and is_on_floor():
|
||||
# velocity.y = JUMP_VELOCITY
|
||||
|
||||
# Get the input direction and handle the movement/deceleration.
|
||||
# As good practice, you should replace UI actions with custom gameplay actions.
|
||||
var input_dir := Input.get_vector("move_left", "move_right", "move_up", "move_down")
|
||||
input_dir = input_dir.rotated(-camera_3d.global_rotation.y)
|
||||
var direction := (transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
|
||||
if direction:
|
||||
velocity.x = direction.x * SPEED
|
||||
velocity.z = direction.z * SPEED
|
||||
else:
|
||||
velocity.x = move_toward(velocity.x, 0, SPEED)
|
||||
velocity.z = move_toward(velocity.z, 0, SPEED)
|
||||
|
||||
move_and_slide()
|
||||