generated from krampus/template-godot4
Custom stickers can be loaded from user://stickers
Some checks failed
linting & formatting / build (push) Failing after 20s
Some checks failed
linting & formatting / build (push) Failing after 20s
This commit is contained in:
parent
3d1e5dda38
commit
980efdb5e6
BIN
assets/stickers/hundred_points_3d.png
(Stored with Git LFS)
Normal file
BIN
assets/stickers/hundred_points_3d.png
(Stored with Git LFS)
Normal file
Binary file not shown.
34
assets/stickers/hundred_points_3d.png.import
Normal file
34
assets/stickers/hundred_points_3d.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://ck6n427v1uh4m"
|
||||||
|
path="res://.godot/imported/hundred_points_3d.png-60516c05d8945ed8a9024154cfc0db6b.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/stickers/hundred_points_3d.png"
|
||||||
|
dest_files=["res://.godot/imported/hundred_points_3d.png-60516c05d8945ed8a9024154cfc0db6b.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=0
|
BIN
assets/stickers/rolling_on_the_floor_laughing_3d.png
(Stored with Git LFS)
Normal file
BIN
assets/stickers/rolling_on_the_floor_laughing_3d.png
(Stored with Git LFS)
Normal file
Binary file not shown.
34
assets/stickers/rolling_on_the_floor_laughing_3d.png.import
Normal file
34
assets/stickers/rolling_on_the_floor_laughing_3d.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dgoceatem5kd4"
|
||||||
|
path="res://.godot/imported/rolling_on_the_floor_laughing_3d.png-80f304d04a0b0e7474c7719f656ead4a.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/stickers/rolling_on_the_floor_laughing_3d.png"
|
||||||
|
dest_files=["res://.godot/imported/rolling_on_the_floor_laughing_3d.png-80f304d04a0b0e7474c7719f656ead4a.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=0
|
@ -1,25 +1,43 @@
|
|||||||
extends SurfaceSnapTool
|
extends SurfaceSnapTool
|
||||||
|
|
||||||
const USER_STICKER_DIR := "user://stickers"
|
const USER_STICKER_PATH := "user://stickers"
|
||||||
|
|
||||||
const RUMBLE_INTENSITY = 0.0009
|
const RUMBLE_INTENSITY = 0.0009
|
||||||
const RUMBLE_DROPOFF = 0.8
|
const RUMBLE_DROPOFF = 0.8
|
||||||
|
|
||||||
@export var stickers_available: Array[Texture2D] = []
|
@export var builtin_stickers: Array[Texture2D] = []
|
||||||
@export var selection_idx: int = 0:
|
@export var selection_idx: int = 0:
|
||||||
set = _set_selection_idx
|
set = _set_selection_idx
|
||||||
|
|
||||||
@export_category("Game Scenes")
|
@export_category("Game Scenes")
|
||||||
@export var sticker_scene: PackedScene
|
@export var sticker_scene: PackedScene
|
||||||
|
|
||||||
|
var stickers_available: Array[Texture2D]
|
||||||
@onready var rumbler: Rumbler3D = %Rumbler
|
@onready var rumbler: Rumbler3D = %Rumbler
|
||||||
@onready var sticker_texture: TextureRect = %StickerTexture
|
@onready var sticker_texture: TextureRect = %StickerTexture
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
|
_import_stickers()
|
||||||
_set_selection_idx(0)
|
_set_selection_idx(0)
|
||||||
|
|
||||||
|
|
||||||
|
func _import_stickers() -> void:
|
||||||
|
print_debug("Loading custom stickers from ", USER_STICKER_PATH)
|
||||||
|
|
||||||
|
var custom_stickers: Array[Texture2D] = []
|
||||||
|
for filename: String in DirAccess.get_files_at(USER_STICKER_PATH):
|
||||||
|
var fullpath := USER_STICKER_PATH.path_join(filename)
|
||||||
|
var image := Image.new()
|
||||||
|
var err := image.load(fullpath)
|
||||||
|
if err != OK:
|
||||||
|
continue
|
||||||
|
custom_stickers.append(ImageTexture.create_from_image(image))
|
||||||
|
print_debug("Loaded custom sticker from ", fullpath)
|
||||||
|
|
||||||
|
stickers_available = builtin_stickers + custom_stickers
|
||||||
|
|
||||||
|
|
||||||
func unlocked() -> bool:
|
func unlocked() -> bool:
|
||||||
return World.instance.manager.stickers_unlocked
|
return World.instance.manager.stickers_unlocked
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=9 format=3 uid="uid://cmnokjbv3vuqt"]
|
[gd_scene load_steps=11 format=3 uid="uid://cmnokjbv3vuqt"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://b274q7uvn0cvp" path="res://src/ui/rumbler_3d.gd" id="1_8t584"]
|
[ext_resource type="Script" uid="uid://b274q7uvn0cvp" path="res://src/ui/rumbler_3d.gd" id="1_8t584"]
|
||||||
[ext_resource type="Script" uid="uid://bgj4es0w5b30e" path="res://src/equipment/sticker_pack/sticker_pack.gd" id="1_eaw05"]
|
[ext_resource type="Script" uid="uid://bgj4es0w5b30e" path="res://src/equipment/sticker_pack/sticker_pack.gd" id="1_eaw05"]
|
||||||
@ -7,11 +7,13 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://cl8ui8nnoaa1i" path="res://assets/stickers/heart_suit_3d.png" id="3_8t584"]
|
[ext_resource type="Texture2D" uid="uid://cl8ui8nnoaa1i" path="res://assets/stickers/heart_suit_3d.png" id="3_8t584"]
|
||||||
[ext_resource type="Texture2D" uid="uid://db85cfwlticnb" path="res://assets/ui/hud/tools/hand_bg.png" id="3_o1h4s"]
|
[ext_resource type="Texture2D" uid="uid://db85cfwlticnb" path="res://assets/ui/hud/tools/hand_bg.png" id="3_o1h4s"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dsrm2mw4e4gx1" path="res://assets/stickers/glowing_star_3d.png" id="3_p2skl"]
|
[ext_resource type="Texture2D" uid="uid://dsrm2mw4e4gx1" path="res://assets/stickers/glowing_star_3d.png" id="3_p2skl"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dgoceatem5kd4" path="res://assets/stickers/rolling_on_the_floor_laughing_3d.png" id="4_rw51e"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cju4oxjgaf0ee" path="res://assets/ui/hud/tools/hand_fg.png" id="4_vcsmi"]
|
[ext_resource type="Texture2D" uid="uid://cju4oxjgaf0ee" path="res://assets/ui/hud/tools/hand_fg.png" id="4_vcsmi"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://ck6n427v1uh4m" path="res://assets/stickers/hundred_points_3d.png" id="5_rkig1"]
|
||||||
|
|
||||||
[node name="StickerPack" type="Node3D"]
|
[node name="StickerPack" type="Node3D"]
|
||||||
script = ExtResource("1_eaw05")
|
script = ExtResource("1_eaw05")
|
||||||
stickers_available = Array[Texture2D]([ExtResource("3_8t584"), ExtResource("3_p2skl")])
|
builtin_stickers = Array[Texture2D]([ExtResource("3_8t584"), ExtResource("3_p2skl"), ExtResource("4_rw51e"), ExtResource("5_rkig1")])
|
||||||
sticker_scene = ExtResource("2_yigow")
|
sticker_scene = ExtResource("2_yigow")
|
||||||
|
|
||||||
[node name="Raycast" type="RayCast3D" parent="."]
|
[node name="Raycast" type="RayCast3D" parent="."]
|
||||||
|
@ -14,7 +14,7 @@ func place(texture: Texture2D, point: Vector3, normal: Vector3, src_up: Vector3)
|
|||||||
global_position = point
|
global_position = point
|
||||||
|
|
||||||
# Build basis
|
# Build basis
|
||||||
var up := normal
|
var up := -normal
|
||||||
var right := up.cross(src_up).normalized()
|
var right := up.cross(src_up).normalized()
|
||||||
var forward := -right.cross(up).normalized()
|
var forward := -right.cross(up).normalized()
|
||||||
global_basis = Basis(right, up, forward)
|
global_basis = Basis(right, up, forward)
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
[ext_resource type="Resource" uid="uid://tgac5tnfx56r" path="res://src/world/world_manager.tres" id="2_5kmgb"]
|
[ext_resource type="Resource" uid="uid://tgac5tnfx56r" path="res://src/world/world_manager.tres" id="2_5kmgb"]
|
||||||
[ext_resource type="PackedScene" uid="uid://byvjsvavbg5xe" path="res://src/ui/menus/pause_menu/pause_menu.tscn" id="2_6fy3g"]
|
[ext_resource type="PackedScene" uid="uid://byvjsvavbg5xe" path="res://src/ui/menus/pause_menu/pause_menu.tscn" id="2_6fy3g"]
|
||||||
[ext_resource type="Resource" uid="uid://0i72bf8ip1lx" path="res://src/world/spook_manager.tres" id="3_l0av5"]
|
[ext_resource type="Resource" uid="uid://0i72bf8ip1lx" path="res://src/world/spook_manager.tres" id="3_l0av5"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dc4tts6342cuj" path="res://levels/prop_test/prop_test.tscn" id="4_5kmgb"]
|
[ext_resource type="PackedScene" uid="uid://bov4ok76woyc" path="res://levels/ghost_ship/ghost_ship.tscn" id="4_5kmgb"]
|
||||||
[ext_resource type="PackedScene" uid="uid://c0uitm5cg88h1" path="res://src/ui/menus/kill_screen/kill_screen.tscn" id="6_l0av5"]
|
[ext_resource type="PackedScene" uid="uid://c0uitm5cg88h1" path="res://src/ui/menus/kill_screen/kill_screen.tscn" id="6_l0av5"]
|
||||||
[ext_resource type="PackedScene" uid="uid://brknr57xc2cp0" path="res://src/ui/elements/save_icon/save_icon.tscn" id="7_5kmgb"]
|
[ext_resource type="PackedScene" uid="uid://brknr57xc2cp0" path="res://src/ui/elements/save_icon/save_icon.tscn" id="7_5kmgb"]
|
||||||
|
|
||||||
|
@ -4,16 +4,18 @@
|
|||||||
- [x] Clear rate checking / signals
|
- [x] Clear rate checking / signals
|
||||||
- [x] [[nodules]]
|
- [x] [[nodules]]
|
||||||
- [ ] #equipment
|
- [ ] #equipment
|
||||||
- [ ] [[spray beam]]
|
- [x] [[spray beam]]
|
||||||
- [x] Spray nozzle asset
|
- [x] Spray nozzle asset
|
||||||
- [x] Point spray
|
- [x] Point spray
|
||||||
- [x] Wide-angle spray
|
- [x] Wide-angle spray
|
||||||
- [x] Tall-angle spray?
|
- [x] Tall-angle spray?
|
||||||
- [ ] #maybe Spray-can
|
- [ ] #maybe Spray-can
|
||||||
- [x] [[toothbrush]]
|
- [x] [[toothbrush]]
|
||||||
- [ ] [[radar]]
|
- [ ] #maybe [[radar]]
|
||||||
- [ ] [[mp3 player]]
|
- [x] [[mp3 player]]
|
||||||
- [ ] [[manual]]
|
- [ ] [[manual]]
|
||||||
|
- [x] stickers
|
||||||
|
- [ ] NOTE redo sticker mechanics to use shader layer, not decals
|
||||||
- [ ] [[roomba]]
|
- [ ] [[roomba]]
|
||||||
- [ ] #mechanics
|
- [ ] #mechanics
|
||||||
- [x] [[grunk alert]]
|
- [x] [[grunk alert]]
|
||||||
@ -40,12 +42,20 @@
|
|||||||
- [x] [[medbay]]
|
- [x] [[medbay]]
|
||||||
- [x] [[ops center]]
|
- [x] [[ops center]]
|
||||||
- [ ] [[cargo bay]]
|
- [ ] [[cargo bay]]
|
||||||
|
- [ ] puzzle design
|
||||||
|
- [x] airlock?
|
||||||
|
- [ ] mess hall
|
||||||
|
- [ ] crew quarters
|
||||||
|
- [x] medbay
|
||||||
|
- [ ] ops center
|
||||||
|
- [ ] cargo bay
|
||||||
- [ ] [[story]]
|
- [ ] [[story]]
|
||||||
- [ ] ***ASSETS***
|
- [ ] ***ASSETS***
|
||||||
- [ ] HUD tools:
|
- [ ] HUD tools:
|
||||||
- [x] [[spray beam]]
|
- [x] [[spray beam]]
|
||||||
- [x] [[toothbrush]]
|
- [x] [[toothbrush]]
|
||||||
- [x] [[mp3 player]]
|
- [x] [[mp3 player]]
|
||||||
|
- [x] stickers
|
||||||
- [ ] [[manual]]
|
- [ ] [[manual]]
|
||||||
- [ ] [[radar]]
|
- [ ] [[radar]]
|
||||||
- [ ] [[roomba]]
|
- [ ] [[roomba]]
|
||||||
@ -98,6 +108,9 @@
|
|||||||
- [ ] #maybe ops ambiance
|
- [ ] #maybe ops ambiance
|
||||||
- [ ] #maybe cargo bay ambiance
|
- [ ] #maybe cargo bay ambiance
|
||||||
- [ ] #maybe grunk node ambiance
|
- [ ] #maybe grunk node ambiance
|
||||||
|
- [ ] sticker sticking
|
||||||
|
- [ ] tool switch noise
|
||||||
|
- [ ] mp3 player ui noises
|
||||||
- [ ] models:
|
- [ ] models:
|
||||||
- [ ] [[grunk]] nodes:
|
- [ ] [[grunk]] nodes:
|
||||||
- [x] [[alarm]]
|
- [x] [[alarm]]
|
||||||
@ -117,6 +130,7 @@
|
|||||||
- [x] tall crate
|
- [x] tall crate
|
||||||
- [ ] other scatter
|
- [ ] other scatter
|
||||||
- [ ] external station model
|
- [ ] external station model
|
||||||
|
- [ ] audio cassette
|
||||||
- [ ] [[player ship]] props:
|
- [ ] [[player ship]] props:
|
||||||
- [ ] ship
|
- [ ] ship
|
||||||
- [ ] bunk
|
- [ ] bunk
|
||||||
|
Loading…
x
Reference in New Issue
Block a user