Add data-driven fish selection and catch showcase

This commit is contained in:
Alexander Sellite 2026-07-25 15:15:24 -04:00
parent ae2f724fe2
commit bd2768b676
39 changed files with 1226 additions and 58 deletions

View file

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="64" viewBox="0 0 128 64">
<path fill="#39713b" d="M30 32 8 12v40l22-20Z"/>
<ellipse cx="72" cy="32" rx="46" ry="24" fill="#73a94d"/>
<path fill="#2f6237" d="M35 29c24-8 48-7 74 1-27 2-51 5-74 1Z"/>
<circle cx="104" cy="26" r="3" fill="#142518"/>
</svg>

After

Width:  |  Height:  |  Size: 321 B

View file

@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b2510mmpn6cos"
path="res://.godot/imported/bass.svg-61a5b49cdcc6e48a0677d179d664071b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://fish/species/bass/bass.svg"
dest_files=["res://.godot/imported/bass.svg-61a5b49cdcc6e48a0677d179d664071b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" load_steps=5 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/bass_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability_script"]
[ext_resource type="Texture2D" path="res://fish/species/bass/bass.svg" id="4_texture"]
[sub_resource type="Resource" id="BassAvailability"]
script = ExtResource("3_availability_script")
allow_day = true
allow_night = true
preferred_bait_tags = Array[StringName]([&"worm", &"minnow"])
preferred_bait_weight_multiplier = 1.4
[resource]
script = ExtResource("1_fish_data")
id = &"bass"
display_name = "Bass"
rarity = 1
base_catch_weight = 4.0
catch_profile = ExtResource("2_profile")
availability = SubResource("BassAvailability")
weight_min_lb = 1.5
weight_max_lb = 8.0
display_scale_min = 0.9
display_scale_max = 1.5
display_scale_curve = 0.9
display_texture = ExtResource("4_texture")

View file

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="64" viewBox="0 0 128 64">
<path fill="#197da8" d="M30 32 8 12v40l22-20Z"/>
<ellipse cx="72" cy="32" rx="46" ry="24" fill="#35bddd"/>
<path fill="#177595" d="M45 18c16-8 38-8 56 2-20-3-38 0-56 8Z"/>
<circle cx="104" cy="26" r="3" fill="#102533"/>
</svg>

After

Width:  |  Height:  |  Size: 321 B

View file

@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dye6e87xuabvm"
path="res://.godot/imported/bluegill.svg-e8296ec8dd9d840b3ba713e441cd7e1e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://fish/species/bluegill/bluegill.svg"
dest_files=["res://.godot/imported/bluegill.svg-e8296ec8dd9d840b3ba713e441cd7e1e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View file

@ -0,0 +1,21 @@
[gd_resource type="Resource" load_steps=5 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Resource" path="res://fish/default_availability.tres" id="3_availability"]
[ext_resource type="Texture2D" path="res://fish/species/bluegill/bluegill.svg" id="4_texture"]
[resource]
script = ExtResource("1_fish_data")
id = &"bluegill"
display_name = "Bluegill"
rarity = 0
base_catch_weight = 10.0
catch_profile = ExtResource("2_profile")
availability = ExtResource("3_availability")
weight_min_lb = 0.3
weight_max_lb = 2.0
display_scale_min = 0.7
display_scale_max = 1.1
display_scale_curve = 1.0
display_texture = ExtResource("4_texture")

View file

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="64" viewBox="0 0 128 64">
<path fill="#9b5f20" d="M30 32 8 12v40l22-20Z"/>
<ellipse cx="72" cy="32" rx="46" ry="24" fill="#d89b38"/>
<path fill="#b47728" d="M39 39c20 7 44 7 67-1-21 1-43-2-67-8Z"/>
<circle cx="104" cy="26" r="3" fill="#30200f"/>
</svg>

After

Width:  |  Height:  |  Size: 321 B

View file

@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cv0egn63xwn3c"
path="res://.godot/imported/carp.svg-0d5425bc65e17d4f31a20a81115b2a99.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://fish/species/carp/carp.svg"
dest_files=["res://.godot/imported/carp.svg-0d5425bc65e17d4f31a20a81115b2a99.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" load_steps=5 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/carp_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability_script"]
[ext_resource type="Texture2D" path="res://fish/species/carp/carp.svg" id="4_texture"]
[sub_resource type="Resource" id="CarpAvailability"]
script = ExtResource("3_availability_script")
allow_day = true
allow_night = true
preferred_bait_tags = Array[StringName]([&"corn", &"bread"])
preferred_bait_weight_multiplier = 1.5
[resource]
script = ExtResource("1_fish_data")
id = &"carp"
display_name = "Carp"
rarity = 2
base_catch_weight = 1.5
catch_profile = ExtResource("2_profile")
availability = SubResource("CarpAvailability")
weight_min_lb = 3.0
weight_max_lb = 18.0
display_scale_min = 1.0
display_scale_max = 1.8
display_scale_curve = 0.85
display_texture = ExtResource("4_texture")