debug level and character added
2
.gitattributes
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
# Normalize EOL for all files that Git considers text files.
|
||||
* text=auto eol=lf
|
||||
3
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
# Godot 4+ specific ignores
|
||||
.godot/
|
||||
/android/
|
||||
207
export_presets.cfg
Normal file
|
|
@ -0,0 +1,207 @@
|
|||
[preset.0]
|
||||
|
||||
name="Android"
|
||||
platform="Android"
|
||||
runnable=true
|
||||
advanced_options=false
|
||||
dedicated_server=false
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path="./monsterfangen.apk"
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
encrypt_pck=false
|
||||
encrypt_directory=false
|
||||
script_export_mode=2
|
||||
|
||||
[preset.0.options]
|
||||
|
||||
custom_template/debug=""
|
||||
custom_template/release=""
|
||||
gradle_build/use_gradle_build=false
|
||||
gradle_build/gradle_build_directory=""
|
||||
gradle_build/android_source_template=""
|
||||
gradle_build/compress_native_libraries=false
|
||||
gradle_build/export_format=0
|
||||
gradle_build/min_sdk=""
|
||||
gradle_build/target_sdk=""
|
||||
architectures/armeabi-v7a=false
|
||||
architectures/arm64-v8a=true
|
||||
architectures/x86=false
|
||||
architectures/x86_64=false
|
||||
version/code=1
|
||||
version/name=""
|
||||
package/unique_name="com.luca.monsterfangen"
|
||||
package/name="Monsterfangen"
|
||||
package/signed=true
|
||||
package/app_category=2
|
||||
package/retain_data_on_uninstall=false
|
||||
package/exclude_from_recents=false
|
||||
package/show_in_android_tv=false
|
||||
package/show_in_app_library=true
|
||||
package/show_as_launcher_app=false
|
||||
launcher_icons/main_192x192=""
|
||||
launcher_icons/adaptive_foreground_432x432=""
|
||||
launcher_icons/adaptive_background_432x432=""
|
||||
graphics/opengl_debug=false
|
||||
xr_features/xr_mode=0
|
||||
screen/immersive_mode=true
|
||||
screen/support_small=true
|
||||
screen/support_normal=true
|
||||
screen/support_large=true
|
||||
screen/support_xlarge=true
|
||||
user_data_backup/allow=false
|
||||
command_line/extra_args=""
|
||||
apk_expansion/enable=false
|
||||
apk_expansion/SALT=""
|
||||
apk_expansion/public_key=""
|
||||
permissions/custom_permissions=PackedStringArray()
|
||||
permissions/access_checkin_properties=false
|
||||
permissions/access_coarse_location=false
|
||||
permissions/access_fine_location=false
|
||||
permissions/access_location_extra_commands=false
|
||||
permissions/access_mock_location=false
|
||||
permissions/access_network_state=false
|
||||
permissions/access_surface_flinger=false
|
||||
permissions/access_wifi_state=false
|
||||
permissions/account_manager=false
|
||||
permissions/add_voicemail=false
|
||||
permissions/authenticate_accounts=false
|
||||
permissions/battery_stats=false
|
||||
permissions/bind_accessibility_service=false
|
||||
permissions/bind_appwidget=false
|
||||
permissions/bind_device_admin=false
|
||||
permissions/bind_input_method=false
|
||||
permissions/bind_nfc_service=false
|
||||
permissions/bind_notification_listener_service=false
|
||||
permissions/bind_print_service=false
|
||||
permissions/bind_remoteviews=false
|
||||
permissions/bind_text_service=false
|
||||
permissions/bind_vpn_service=false
|
||||
permissions/bind_wallpaper=false
|
||||
permissions/bluetooth=false
|
||||
permissions/bluetooth_admin=false
|
||||
permissions/bluetooth_privileged=false
|
||||
permissions/brick=false
|
||||
permissions/broadcast_package_removed=false
|
||||
permissions/broadcast_sms=false
|
||||
permissions/broadcast_sticky=false
|
||||
permissions/broadcast_wap_push=false
|
||||
permissions/call_phone=false
|
||||
permissions/call_privileged=false
|
||||
permissions/camera=false
|
||||
permissions/capture_audio_output=false
|
||||
permissions/capture_secure_video_output=false
|
||||
permissions/capture_video_output=false
|
||||
permissions/change_component_enabled_state=false
|
||||
permissions/change_configuration=false
|
||||
permissions/change_network_state=false
|
||||
permissions/change_wifi_multicast_state=false
|
||||
permissions/change_wifi_state=false
|
||||
permissions/clear_app_cache=false
|
||||
permissions/clear_app_user_data=false
|
||||
permissions/control_location_updates=false
|
||||
permissions/delete_cache_files=false
|
||||
permissions/delete_packages=false
|
||||
permissions/device_power=false
|
||||
permissions/diagnostic=false
|
||||
permissions/disable_keyguard=false
|
||||
permissions/dump=false
|
||||
permissions/expand_status_bar=false
|
||||
permissions/factory_test=false
|
||||
permissions/flashlight=false
|
||||
permissions/force_back=false
|
||||
permissions/get_accounts=false
|
||||
permissions/get_package_size=false
|
||||
permissions/get_tasks=false
|
||||
permissions/get_top_activity_info=false
|
||||
permissions/global_search=false
|
||||
permissions/hardware_test=false
|
||||
permissions/inject_events=false
|
||||
permissions/install_location_provider=false
|
||||
permissions/install_packages=false
|
||||
permissions/install_shortcut=false
|
||||
permissions/internal_system_window=false
|
||||
permissions/internet=false
|
||||
permissions/kill_background_processes=false
|
||||
permissions/location_hardware=false
|
||||
permissions/manage_accounts=false
|
||||
permissions/manage_app_tokens=false
|
||||
permissions/manage_documents=false
|
||||
permissions/manage_external_storage=false
|
||||
permissions/master_clear=false
|
||||
permissions/media_content_control=false
|
||||
permissions/modify_audio_settings=false
|
||||
permissions/modify_phone_state=false
|
||||
permissions/mount_format_filesystems=false
|
||||
permissions/mount_unmount_filesystems=false
|
||||
permissions/nfc=false
|
||||
permissions/persistent_activity=false
|
||||
permissions/post_notifications=false
|
||||
permissions/process_outgoing_calls=false
|
||||
permissions/read_calendar=false
|
||||
permissions/read_call_log=false
|
||||
permissions/read_contacts=false
|
||||
permissions/read_external_storage=false
|
||||
permissions/read_frame_buffer=false
|
||||
permissions/read_history_bookmarks=false
|
||||
permissions/read_input_state=false
|
||||
permissions/read_logs=false
|
||||
permissions/read_phone_state=false
|
||||
permissions/read_profile=false
|
||||
permissions/read_sms=false
|
||||
permissions/read_social_stream=false
|
||||
permissions/read_sync_settings=false
|
||||
permissions/read_sync_stats=false
|
||||
permissions/read_user_dictionary=false
|
||||
permissions/reboot=false
|
||||
permissions/receive_boot_completed=false
|
||||
permissions/receive_mms=false
|
||||
permissions/receive_sms=false
|
||||
permissions/receive_wap_push=false
|
||||
permissions/record_audio=false
|
||||
permissions/reorder_tasks=false
|
||||
permissions/restart_packages=false
|
||||
permissions/send_respond_via_message=false
|
||||
permissions/send_sms=false
|
||||
permissions/set_activity_watcher=false
|
||||
permissions/set_alarm=false
|
||||
permissions/set_always_finish=false
|
||||
permissions/set_animation_scale=false
|
||||
permissions/set_debug_app=false
|
||||
permissions/set_orientation=false
|
||||
permissions/set_pointer_speed=false
|
||||
permissions/set_preferred_applications=false
|
||||
permissions/set_process_limit=false
|
||||
permissions/set_time=false
|
||||
permissions/set_time_zone=false
|
||||
permissions/set_wallpaper=false
|
||||
permissions/set_wallpaper_hints=false
|
||||
permissions/signal_persistent_processes=false
|
||||
permissions/status_bar=false
|
||||
permissions/subscribed_feeds_read=false
|
||||
permissions/subscribed_feeds_write=false
|
||||
permissions/system_alert_window=false
|
||||
permissions/transmit_ir=false
|
||||
permissions/uninstall_shortcut=false
|
||||
permissions/update_device_stats=false
|
||||
permissions/use_credentials=false
|
||||
permissions/use_sip=false
|
||||
permissions/vibrate=false
|
||||
permissions/wake_lock=false
|
||||
permissions/write_apn_settings=false
|
||||
permissions/write_calendar=false
|
||||
permissions/write_call_log=false
|
||||
permissions/write_contacts=false
|
||||
permissions/write_external_storage=false
|
||||
permissions/write_gservices=false
|
||||
permissions/write_history_bookmarks=false
|
||||
permissions/write_profile=false
|
||||
permissions/write_secure_settings=false
|
||||
permissions/write_settings=false
|
||||
permissions/write_sms=false
|
||||
permissions/write_social_stream=false
|
||||
permissions/write_sync_settings=false
|
||||
permissions/write_user_dictionary=false
|
||||
1
icon.svg
Normal file
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128"><rect width="124" height="124" x="2" y="2" fill="#363d52" stroke="#212532" stroke-width="4" rx="14"/><g fill="#fff" transform="translate(12.322 12.322)scale(.101)"><path d="M105 673v33q407 354 814 0v-33z"/><path fill="#478cbf" d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 814 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H446l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z"/><path d="M483 600c0 34 58 34 58 0v-86c0-34-58-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042" transform="translate(12.322 12.322)scale(.101)"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></svg>
|
||||
|
After Width: | Height: | Size: 994 B |
37
icon.svg.import
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b6pcv758bw37x"
|
||||
path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://icon.svg"
|
||||
dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.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=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
||||
31
project.godot
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
; Engine configuration file.
|
||||
; It's best edited using the editor UI and not directly,
|
||||
; since the parameters that go here are not all obvious.
|
||||
;
|
||||
; Format:
|
||||
; [section] ; section goes between []
|
||||
; param=value ; assign values to parameters
|
||||
|
||||
config_version=5
|
||||
|
||||
[application]
|
||||
|
||||
config/name="monsterfangen"
|
||||
run/main_scene="res://scenes/main.tscn"
|
||||
config/features=PackedStringArray("4.3", "Mobile")
|
||||
config/icon="res://icon.svg"
|
||||
|
||||
[display]
|
||||
|
||||
window/size/viewport_width=648
|
||||
window/size/viewport_height=1152
|
||||
window/handheld/orientation=1
|
||||
|
||||
[input_devices]
|
||||
|
||||
pointing/emulate_touch_from_mouse=true
|
||||
|
||||
[rendering]
|
||||
|
||||
renderer/rendering_method="mobile"
|
||||
textures/vram_compression/import_etc2_astc=true
|
||||
BIN
resources/fonts/BreatheFireIii-PKLOB.ttf
Normal file
34
resources/fonts/BreatheFireIii-PKLOB.ttf.import
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://dmc6dygxrekja"
|
||||
path="res://.godot/imported/BreatheFireIii-PKLOB.ttf-42a31f99cb6e70d41f8a1514f6c42167.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://resources/fonts/BreatheFireIii-PKLOB.ttf"
|
||||
dest_files=["res://.godot/imported/BreatheFireIii-PKLOB.ttf-42a31f99cb6e70d41f8a1514f6c42167.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
Rendering=null
|
||||
antialiasing=1
|
||||
generate_mipmaps=false
|
||||
disable_embedded_bitmaps=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8
|
||||
msdf_size=48
|
||||
allow_system_fallback=true
|
||||
force_autohinter=false
|
||||
hinting=1
|
||||
subpixel_positioning=1
|
||||
oversampling=0.0
|
||||
Fallbacks=null
|
||||
fallbacks=[]
|
||||
Compress=null
|
||||
compress=true
|
||||
preload=[]
|
||||
language_support={}
|
||||
script_support={}
|
||||
opentype_features={}
|
||||
2
resources/fonts/info.txt
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
license: Freeware, Non-Commercial
|
||||
link: https://www.fontspace.com/breathe-fire-iii-font-f69367
|
||||
BIN
resources/logo/logo.png
Normal file
|
After Width: | Height: | Size: 2.3 MiB |
34
resources/logo/logo.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b6ylra30qxf30"
|
||||
path="res://.godot/imported/logo.png-a67b1256ab61e566443c158465db32f1.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://resources/logo/logo.png"
|
||||
dest_files=["res://.godot/imported/logo.png-a67b1256ab61e566443c158465db32f1.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
|
||||
96
resources/models/gobot/gobot_skin.gd
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
extends Node3D
|
||||
|
||||
## Emitted when Gobot's feet hit the ground will running.
|
||||
signal foot_step
|
||||
## Gobot's MeshInstance3D model.
|
||||
@export var gobot_model: MeshInstance3D
|
||||
## Determines whether blinking is enabled or disabled.
|
||||
@export var blink = true : set = _set_blink
|
||||
@export var _left_eye_mat_override: String
|
||||
@export var _right_eye_mat_override: String
|
||||
@export var _open_eye: CompressedTexture2D
|
||||
@export var _close_eye: CompressedTexture2D
|
||||
|
||||
@onready var _animation_tree: AnimationTree = %AnimationTree
|
||||
@onready var _state_machine: AnimationNodeStateMachinePlayback = _animation_tree.get(
|
||||
"parameters/StateMachine/playback"
|
||||
)
|
||||
|
||||
@onready var _flip_shot_path: String = "parameters/FlipShot/request"
|
||||
@onready var _hurt_shot_path: String = "parameters/HurtShot/request"
|
||||
|
||||
@onready var _blink_timer = %BlinkTimer
|
||||
@onready var _closed_eyes_timer = %ClosedEyesTimer
|
||||
|
||||
@onready var _left_eye_mat: StandardMaterial3D = gobot_model.get(_left_eye_mat_override)
|
||||
@onready var _right_eye_mat: StandardMaterial3D = gobot_model.get(_right_eye_mat_override)
|
||||
|
||||
|
||||
func _ready():
|
||||
_blink_timer.connect(
|
||||
"timeout",
|
||||
func():
|
||||
_left_eye_mat.albedo_texture = _close_eye
|
||||
_right_eye_mat.albedo_texture = _close_eye
|
||||
_closed_eyes_timer.start(0.2)
|
||||
)
|
||||
|
||||
_closed_eyes_timer.connect(
|
||||
"timeout",
|
||||
func():
|
||||
_left_eye_mat.albedo_texture = _open_eye
|
||||
_right_eye_mat.albedo_texture = _open_eye
|
||||
_blink_timer.start(randf_range(1.0, 8.0))
|
||||
)
|
||||
|
||||
|
||||
func _set_blink(state: bool):
|
||||
if blink == state:
|
||||
return
|
||||
blink = state
|
||||
if blink:
|
||||
_blink_timer.start(0.2)
|
||||
#else:
|
||||
#_blink_timer.stop()
|
||||
#_closed_eyes_timer.stop()
|
||||
|
||||
## Sets the model to a neutral, action-free state.
|
||||
func idle():
|
||||
_state_machine.travel("Idle")
|
||||
|
||||
## Sets the model to a running animation or forward movement.
|
||||
func run():
|
||||
_state_machine.travel("Run")
|
||||
|
||||
## Sets the model to an upward-leaping animation, simulating a jump.
|
||||
func jump():
|
||||
_state_machine.travel("Jump")
|
||||
|
||||
## Sets the model to a downward animation, imitating a fall.
|
||||
func fall():
|
||||
_state_machine.travel("Fall")
|
||||
|
||||
## Sets the model to an edge-grabbing animation.
|
||||
func edge_grab():
|
||||
_state_machine.travel("EdgeGrab")
|
||||
|
||||
## Sets the model to a wall-sliding animation.
|
||||
func wall_slide():
|
||||
_state_machine.travel("WallSlide")
|
||||
|
||||
## Plays a one-shot front-flip animation.
|
||||
## This animation does not play in parallel with other states.
|
||||
func flip():
|
||||
_animation_tree.set(_flip_shot_path, true)
|
||||
|
||||
## Makes a victory sign.
|
||||
func victory_sign():
|
||||
_state_machine.travel("VictorySign")
|
||||
|
||||
## Plays a one-shot hurt animation.
|
||||
## This animation plays in parallel with other states.
|
||||
func hurt():
|
||||
_animation_tree.set(_hurt_shot_path, true)
|
||||
var tween := create_tween().set_ease(Tween.EASE_OUT)
|
||||
tween.tween_property(self, "scale", Vector3(1.2, 0.8, 1.2), 0.1)
|
||||
tween.tween_property(self, "scale", Vector3.ONE, 0.2)
|
||||
2174
resources/models/gobot/gobot_skin.tscn
Normal file
10
resources/models/gobot/materials/eye_mat.tres
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://div0enqs04w5j"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://dq675fmt1rg8c" path="res://resources/models/gobot/textures/open_eye.png" id="1_5dt3l"]
|
||||
|
||||
[resource]
|
||||
resource_local_to_scene = true
|
||||
albedo_texture = ExtResource("1_5dt3l")
|
||||
roughness = 0.6
|
||||
uv1_offset = Vector3(0.1, 0, 0)
|
||||
texture_repeat = false
|
||||
BIN
resources/models/gobot/model/custom/custom_lib.res
Normal file
BIN
resources/models/gobot/model/custom/hurt.res
Normal file
BIN
resources/models/gobot/model/custom/run_step.res
Normal file
BIN
resources/models/gobot/model/gobot.glb
Normal file
5436
resources/models/gobot/model/gobot.glb.import
Normal file
BIN
resources/models/gobot/model/gobot_gobot_diffuse.png
Normal file
|
After Width: | Height: | Size: 100 KiB |
35
resources/models/gobot/model/gobot_gobot_diffuse.png.import
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bt5o0sr6peltq"
|
||||
path="res://.godot/imported/gobot_gobot_diffuse.png-3a09c07c2f365b6cf38415d4f01e0232.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
generator_parameters={}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://resources/models/gobot/model/gobot_gobot_diffuse.png"
|
||||
dest_files=["res://.godot/imported/gobot_gobot_diffuse.png-3a09c07c2f365b6cf38415d4f01e0232.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=3
|
||||
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
|
||||
BIN
resources/models/gobot/model/gobot_gobot_normal.png
Normal file
|
After Width: | Height: | Size: 338 KiB |
35
resources/models/gobot/model/gobot_gobot_normal.png.import
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://d28w5bql3g21l"
|
||||
path="res://.godot/imported/gobot_gobot_normal.png-1b6403f54d98d8c969769148dd9cbf43.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
generator_parameters={}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://resources/models/gobot/model/gobot_gobot_normal.png"
|
||||
dest_files=["res://.godot/imported/gobot_gobot_normal.png-1b6403f54d98d8c969769148dd9cbf43.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=3
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=1
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=1
|
||||
roughness/src_normal="res://gobot_gobot_normal.png"
|
||||
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
resources/models/gobot/model/gobot_gobot_roughness.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
|
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cgkj45d67dalm"
|
||||
path="res://.godot/imported/gobot_gobot_roughness.png-3453d84acb579664ca9350901634695c.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
generator_parameters={}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://resources/models/gobot/model/gobot_gobot_roughness.png"
|
||||
dest_files=["res://.godot/imported/gobot_gobot_roughness.png-3453d84acb579664ca9350901634695c.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=3
|
||||
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
|
||||
BIN
resources/models/gobot/textures/closed_eyes.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
36
resources/models/gobot/textures/closed_eyes.png.import
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cfdf62ci74tew"
|
||||
path.s3tc="res://.godot/imported/closed_eyes.png-80501b2aef93a2e67ccfe982a2d17bf8.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/closed_eyes.png-80501b2aef93a2e67ccfe982a2d17bf8.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://resources/models/gobot/textures/closed_eyes.png"
|
||||
dest_files=["res://.godot/imported/closed_eyes.png-80501b2aef93a2e67ccfe982a2d17bf8.s3tc.ctex", "res://.godot/imported/closed_eyes.png-80501b2aef93a2e67ccfe982a2d17bf8.etc2.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
|
||||
BIN
resources/models/gobot/textures/hurt_eyes.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
36
resources/models/gobot/textures/hurt_eyes.png.import
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://yj5yx07nva6l"
|
||||
path.s3tc="res://.godot/imported/hurt_eyes.png-fdffc9723dccbd5767c0f80fa5acb35a.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/hurt_eyes.png-fdffc9723dccbd5767c0f80fa5acb35a.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://resources/models/gobot/textures/hurt_eyes.png"
|
||||
dest_files=["res://.godot/imported/hurt_eyes.png-fdffc9723dccbd5767c0f80fa5acb35a.s3tc.ctex", "res://.godot/imported/hurt_eyes.png-fdffc9723dccbd5767c0f80fa5acb35a.etc2.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
|
||||
BIN
resources/models/gobot/textures/open_eye.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
36
resources/models/gobot/textures/open_eye.png.import
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dq675fmt1rg8c"
|
||||
path.s3tc="res://.godot/imported/open_eye.png-61c7e46592ec9c244fff28cc237fd4c9.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/open_eye.png-61c7e46592ec9c244fff28cc237fd4c9.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://resources/models/gobot/textures/open_eye.png"
|
||||
dest_files=["res://.godot/imported/open_eye.png-61c7e46592ec9c244fff28cc237fd4c9.s3tc.ctex", "res://.godot/imported/open_eye.png-61c7e46592ec9c244fff28cc237fd4c9.etc2.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
|
||||
52
scenes/debug_level.tscn
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
[gd_scene load_steps=9 format=3 uid="uid://p8agd0dfam0p"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://be5bc5gjbo875" path="res://scenes/player.tscn" id="1_ra6oo"]
|
||||
|
||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_g80j5"]
|
||||
sky_horizon_color = Color(0.64625, 0.65575, 0.67075, 1)
|
||||
ground_horizon_color = Color(0.64625, 0.65575, 0.67075, 1)
|
||||
|
||||
[sub_resource type="Sky" id="Sky_wlahx"]
|
||||
sky_material = SubResource("ProceduralSkyMaterial_g80j5")
|
||||
|
||||
[sub_resource type="Environment" id="Environment_rwve8"]
|
||||
background_mode = 2
|
||||
sky = SubResource("Sky_wlahx")
|
||||
tonemap_mode = 2
|
||||
glow_enabled = true
|
||||
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_wak6a"]
|
||||
size = Vector2(1000, 1000)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_8wti1"]
|
||||
albedo_color = Color(0.157906, 0.300646, 0.191269, 1)
|
||||
|
||||
[sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_m4bnl"]
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_5i27t"]
|
||||
size = Vector3(2, 2, 2)
|
||||
|
||||
[node name="DebugLevel" type="Node3D"]
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
transform = Transform3D(-0.866025, -0.433013, 0.25, 0, 0.5, 0.866025, -0.5, 0.75, -0.433013, 0, 0, 0)
|
||||
shadow_enabled = true
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||
environment = SubResource("Environment_rwve8")
|
||||
|
||||
[node name="Floor" type="StaticBody3D" parent="."]
|
||||
|
||||
[node name="FloorMesh" type="MeshInstance3D" parent="Floor"]
|
||||
mesh = SubResource("PlaneMesh_wak6a")
|
||||
skeleton = NodePath("../..")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_8wti1")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Floor"]
|
||||
shape = SubResource("WorldBoundaryShape3D_m4bnl")
|
||||
|
||||
[node name="Player" parent="." instance=ExtResource("1_ra6oo")]
|
||||
|
||||
[node name="DebugCube" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, -10)
|
||||
mesh = SubResource("BoxMesh_5i27t")
|
||||
76
scenes/main.tscn
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://cswuap81n7t3f"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://b6ylra30qxf30" path="res://resources/logo/logo.png" id="1_fpt28"]
|
||||
[ext_resource type="PackedScene" uid="uid://p8agd0dfam0p" path="res://scenes/debug_level.tscn" id="1_j851n"]
|
||||
[ext_resource type="FontFile" uid="uid://dmc6dygxrekja" path="res://resources/fonts/BreatheFireIii-PKLOB.ttf" id="2_vjast"]
|
||||
|
||||
[node name="Main" type="Node3D"]
|
||||
|
||||
[node name="CurrentLevel" type="Node3D" parent="."]
|
||||
|
||||
[node name="DebugLevel" parent="CurrentLevel" instance=ExtResource("1_j851n")]
|
||||
|
||||
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
||||
visible = false
|
||||
|
||||
[node name="MainMenu" type="Control" parent="CanvasLayer"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/MainMenu"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_constants/separation = 50
|
||||
|
||||
[node name="Logo" type="TextureRect" parent="CanvasLayer/MainMenu/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
texture = ExtResource("1_fpt28")
|
||||
expand_mode = 4
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="Label" type="Label" parent="CanvasLayer/MainMenu/VBoxContainer/Logo"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 12
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_top = -23.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
theme_override_colors/font_color = Color(0.945573, 0.745802, 0.348774, 1)
|
||||
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
|
||||
theme_override_constants/outline_size = 30
|
||||
theme_override_fonts/font = ExtResource("2_vjast")
|
||||
theme_override_font_sizes/font_size = 70
|
||||
text = "M O N S T E R
|
||||
F A N G E N"
|
||||
horizontal_alignment = 1
|
||||
max_lines_visible = 2
|
||||
|
||||
[node name="MenuButtons" type="VBoxContainer" parent="CanvasLayer/MainMenu/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
|
||||
[node name="NewGameButton" type="Button" parent="CanvasLayer/MainMenu/VBoxContainer/MenuButtons"]
|
||||
layout_mode = 2
|
||||
text = "New Game"
|
||||
|
||||
[node name="ContinueGameButton" type="Button" parent="CanvasLayer/MainMenu/VBoxContainer/MenuButtons"]
|
||||
layout_mode = 2
|
||||
text = "Continue"
|
||||
|
||||
[node name="OptionsButton" type="Button" parent="CanvasLayer/MainMenu/VBoxContainer/MenuButtons"]
|
||||
layout_mode = 2
|
||||
text = "Options"
|
||||
|
||||
[node name="ExitButton" type="Button" parent="CanvasLayer/MainMenu/VBoxContainer/MenuButtons"]
|
||||
layout_mode = 2
|
||||
text = "Exit"
|
||||
20
scenes/player.tscn
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://be5bc5gjbo875"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/player.gd" id="1_3fea3"]
|
||||
[ext_resource type="PackedScene" uid="uid://cy36aygvs66pn" path="res://resources/models/gobot/gobot_skin.tscn" id="2_vivad"]
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_xuba7"]
|
||||
height = 1.7
|
||||
|
||||
[node name="Player" type="CharacterBody3D"]
|
||||
script = ExtResource("1_3fea3")
|
||||
|
||||
[node name="GobotSkin" parent="." instance=ExtResource("2_vivad")]
|
||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.965926, 0.258819, 0, -0.258819, 0.965926, 0, 2.66637, 3.20599)
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.85, 0)
|
||||
shape = SubResource("CapsuleShape3D_xuba7")
|
||||
44
scripts/player.gd
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
extends CharacterBody3D
|
||||
|
||||
@onready var animated_mesh = $GobotSkin
|
||||
|
||||
const SPEED = 5.0
|
||||
const JUMP_VELOCITY = 4.5
|
||||
|
||||
func _ready() -> void:
|
||||
pass
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
animated_mesh.idle()
|
||||
|
||||
# Add the gravity.
|
||||
if not is_on_floor():
|
||||
velocity += get_gravity() * delta
|
||||
animated_mesh.fall()
|
||||
|
||||
# Handle jump.
|
||||
if Input.is_action_just_pressed("ui_accept"):
|
||||
print("jump")
|
||||
animated_mesh.run()
|
||||
|
||||
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("ui_left", "ui_right", "ui_up", "ui_down")
|
||||
|
||||
if input_dir.length() > 0 and is_on_floor():
|
||||
animated_mesh.run()
|
||||
if input_dir.length() > 0 and not is_on_floor():
|
||||
animated_mesh.fall()
|
||||
|
||||
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()
|
||||