👽 interstellar delivery

This commit is contained in:
anyreso 2024-10-16 21:43:01 +00:00
parent 547c97bfba
commit 97c8292858
257 changed files with 7309 additions and 4637 deletions

View file

@ -1,36 +0,0 @@
# This file is part of open-fpsz.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
class_name DeathmatchScoringComponent extends Node
@export var ON_KILL_SCORE : int = 10
# this is the node that contains all players, typically the one populated via MultiplayerSpawner
@export var _players : Node
@export var _scoreboard : Scoreboard
# only subscribe once per player, per match
func subscribe_player(player : Player) -> void:
player.died.connect(_on_player_died)
func unsubscribe_player(player : Player) -> void:
player.died.disconnect(_on_player_died)
func _on_player_died(player : Player, killer_id : int) -> void:
if player.match_participant.player_id != killer_id:
var node_name : String = str(killer_id)
if _players.has_node(node_name):
var killer : Player = _players.get_node(node_name)
_scoreboard.increment_kill_count(killer.match_participant)
_scoreboard.add_score_to_player(killer.match_participant, 10)

View file

@ -1,53 +0,0 @@
# This file is part of open-fpsz.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
class_name RabbitScoringComponent extends Node
@export var ON_GRAB_SCORE : int = 10
@export var ON_HOLD_SCORE : int = 10
@export var HOLD_SCORING_TIMER : float = 10.0 # seconds
@export var _scoreboard : Scoreboard
var _flag_carrier_scoring_timer : Timer = Timer.new()
var _team_chasers : Team
var _team_rabbit : Team
func _ready() -> void:
_flag_carrier_scoring_timer.wait_time = HOLD_SCORING_TIMER
add_child(_flag_carrier_scoring_timer)
_team_chasers = Team.new(0)
_team_rabbit = Team.new(1)
# setup only once per match, per flag (tested only with one flag so far)
func setup(flag : Flag) -> void:
_flag_carrier_scoring_timer.timeout.connect(_on_flag_carrier_scoring_timer_timeout.bind(flag))
flag.grabbed.connect(_on_flag_grabbed)
flag.regrabbed.connect(_on_flag_regrabbed)
flag.dropped.connect(_on_flag_dropped)
func _on_flag_grabbed(grabber : Player) -> void:
grabber.match_participant.team_id = _team_rabbit.team_id
_scoreboard.add_score_to_player(grabber.match_participant, ON_GRAB_SCORE)
_flag_carrier_scoring_timer.start()
func _on_flag_regrabbed(grabber : Player) -> void:
grabber.match_participant.team_id = _team_rabbit.team_id
func _on_flag_dropped(dropper : Player) -> void:
dropper.match_participant.team_id = _team_chasers.team_id
_flag_carrier_scoring_timer.stop()
func _on_flag_carrier_scoring_timer_timeout(flag : Flag) -> void:
_scoreboard.add_score_to_player(flag.last_carrier.match_participant, ON_HOLD_SCORE)

Binary file not shown.

View file

@ -0,0 +1,42 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://b40ts3kdv4in0"
path="res://.godot/imported/boundaries.glb-55bd84dc617756c38b0a32e84b5db1c6.scn"
[deps]
source_file="res://maps/desert/assets/boundaries.glb"
dest_files=["res://.godot/imported/boundaries.glb-55bd84dc617756c38b0a32e84b5db1c6.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={
"nodes": {
"PATH:Cube-concave": {
"generate/physics": true,
"physics/mask": 9,
"physics/shape_type": 2
}
}
}
gltf/naming_version=1
gltf/embedded_image_handling=1

View file

@ -4,15 +4,16 @@ importer="texture"
type="CompressedTexture2D"
uid="uid://cngjywcua4vv8"
path.bptc="res://.godot/imported/ground054_alb_ht.png-460d3ac5c09d7955ca61b8b57742b1a9.bptc.ctex"
path.astc="res://.godot/imported/ground054_alb_ht.png-460d3ac5c09d7955ca61b8b57742b1a9.astc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://maps/desert/assets/textures/ground054_alb_ht.png"
dest_files=["res://.godot/imported/ground054_alb_ht.png-460d3ac5c09d7955ca61b8b57742b1a9.bptc.ctex"]
dest_files=["res://.godot/imported/ground054_alb_ht.png-460d3ac5c09d7955ca61b8b57742b1a9.bptc.ctex", "res://.godot/imported/ground054_alb_ht.png-460d3ac5c09d7955ca61b8b57742b1a9.astc.ctex"]
[params]

View file

@ -4,15 +4,16 @@ importer="texture"
type="CompressedTexture2D"
uid="uid://cbk7l6hs0yrcc"
path.bptc="res://.godot/imported/ground054_nrm_rgh.png-9ea209f1a7f6e48624db85005a037890.bptc.ctex"
path.astc="res://.godot/imported/ground054_nrm_rgh.png-9ea209f1a7f6e48624db85005a037890.astc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://maps/desert/assets/textures/ground054_nrm_rgh.png"
dest_files=["res://.godot/imported/ground054_nrm_rgh.png-9ea209f1a7f6e48624db85005a037890.bptc.ctex"]
dest_files=["res://.godot/imported/ground054_nrm_rgh.png-9ea209f1a7f6e48624db85005a037890.bptc.ctex", "res://.godot/imported/ground054_nrm_rgh.png-9ea209f1a7f6e48624db85005a037890.astc.ctex"]
[params]

View file

@ -4,15 +4,16 @@ importer="texture"
type="CompressedTexture2D"
uid="uid://dwk8islw7ebab"
path.bptc="res://.godot/imported/rock029_alb_ht.png-dd746789bc129bafaa8d1cc908de0e3e.bptc.ctex"
path.astc="res://.godot/imported/rock029_alb_ht.png-dd746789bc129bafaa8d1cc908de0e3e.astc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://maps/desert/assets/textures/rock029_alb_ht.png"
dest_files=["res://.godot/imported/rock029_alb_ht.png-dd746789bc129bafaa8d1cc908de0e3e.bptc.ctex"]
dest_files=["res://.godot/imported/rock029_alb_ht.png-dd746789bc129bafaa8d1cc908de0e3e.bptc.ctex", "res://.godot/imported/rock029_alb_ht.png-dd746789bc129bafaa8d1cc908de0e3e.astc.ctex"]
[params]

View file

@ -4,15 +4,16 @@ importer="texture"
type="CompressedTexture2D"
uid="uid://lgfhdcsb2ryx"
path.bptc="res://.godot/imported/rock029_nrm_rgh.png-3bf029664d0f58a1c79abd2d6666ba90.bptc.ctex"
path.astc="res://.godot/imported/rock029_nrm_rgh.png-3bf029664d0f58a1c79abd2d6666ba90.astc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"imported_formats": ["s3tc_bptc", "etc2_astc"],
"vram_texture": true
}
[deps]
source_file="res://maps/desert/assets/textures/rock029_nrm_rgh.png"
dest_files=["res://.godot/imported/rock029_nrm_rgh.png-3bf029664d0f58a1c79abd2d6666ba90.bptc.ctex"]
dest_files=["res://.godot/imported/rock029_nrm_rgh.png-3bf029664d0f58a1c79abd2d6666ba90.bptc.ctex", "res://.godot/imported/rock029_nrm_rgh.png-3bf029664d0f58a1c79abd2d6666ba90.astc.ctex"]
[params]

View file

@ -1,14 +1,19 @@
[gd_scene load_steps=5 format=3 uid="uid://btlkog4b87p4x"]
[gd_scene load_steps=7 format=3 uid="uid://btlkog4b87p4x"]
[ext_resource type="Terrain3DStorage" uid="uid://wgmg245njt8e" path="res://maps/desert/resources/storage.res" id="1_lmk23"]
[ext_resource type="Terrain3DMaterial" uid="uid://c3isipd4wqxpk" path="res://maps/desert/resources/material.tres" id="2_n44fh"]
[ext_resource type="Terrain3DTextureList" uid="uid://d1j24k8sq8qpj" path="res://maps/desert/resources/textures.tres" id="3_w1yus"]
[ext_resource type="Terrain3DTextureList" uid="uid://d1j24k8sq8qpj" path="res://maps/desert/resources/textures.tres" id="3_w6mwl"]
[ext_resource type="Environment" uid="uid://nw62ce5cglvs" path="res://maps/desert/resources/env.tres" id="4_m7p64"]
[ext_resource type="PackedScene" uid="uid://b40ts3kdv4in0" path="res://maps/desert/assets/boundaries.glb" id="5_dyuqn"]
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_wu2oa"]
data = PackedVector3Array(-1024, -1024, 1024, -1024, 1024, -1024, -1024, 1024, 1024, -1024, -1024, 1024, -1024, -1024, -1024, -1024, 1024, -1024, -1024, -1024, -1024, 1024, 1024, -1024, -1024, 1024, -1024, -1024, -1024, -1024, 1024, -1024, -1024, 1024, 1024, -1024, 1024, -1024, -1024, 1024, 1024, 1024, 1024, 1024, -1024, 1024, -1024, -1024, 1024, -1024, 1024, 1024, 1024, 1024, 1024, -1024, 1024, -1024, 1024, 1024, 1024, 1024, 1024, 1024, -1024, 1024, -1024, -1024, 1024, -1024, 1024, 1024, -1024, -1024, -1024, 1024, -1024, 1024, 1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, 1024, 1024, -1024, 1024, 1024, 1024, -1024, -1024, 1024, 1024, -1024, 1024, -1024, 1024, 1024, -1024, 1024, 1024, 1024, -1024, 1024, 1024)
backface_collision = true
[node name="Desert" type="Terrain3D"]
storage = ExtResource("1_lmk23")
material = ExtResource("2_n44fh")
texture_list = ExtResource("3_w1yus")
texture_list = ExtResource("3_w6mwl")
collision_layer = 2147483648
collision_mask = 2147483648
@ -28,7 +33,16 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1024, 172.13, 1024)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1161.42, 174.535, 909.901)
[node name="FlagStand" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 895.356, 144.835, 888.261)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 895.356, 145.367, 888.261)
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(-0.642788, 0.586824, -0.492404, 0, 0.642788, 0.766044, 0.766045, 0.492404, -0.413176, 800, 320, 846.595)
transform = Transform3D(-0.642788, 0.586824, -0.492404, 0, 0.642788, 0.766044, 0.766044, 0.492404, -0.413176, 800, 320, 846.595)
[node name="Boundaries" parent="." instance=ExtResource("5_dyuqn")]
transform = Transform3D(0.99, 0, 0, 0, 0.99, 0, 0, 0, 0.99, 1024, 1024, 1024)
visible = false
[node name="CollisionShape3D" parent="Boundaries/Cube-concave/StaticBody3D" index="0"]
shape = SubResource("ConcavePolygonShape3D_wu2oa")
[editable path="Boundaries"]

View file

@ -14,7 +14,7 @@ sky_material = SubResource("ProceduralSkyMaterial_8mbvu")
background_mode = 2
sky = SubResource("Sky_mobku")
tonemap_mode = 3
tonemap_exposure = 0.85
ssr_enabled = true
fog_density = 0.001
volumetric_fog_density = 0.005
adjustment_brightness = 0.85

View file

@ -29,9 +29,9 @@ _shader_parameters = {
"auto_overlay_texture": 1,
"auto_slope": 1.0,
"blend_sharpness": 0.85,
"dual_scale_far": 350.0,
"dual_scale_far": 100.0,
"dual_scale_near": 0.0,
"dual_scale_reduction": 1.0,
"dual_scale_reduction": 0.8,
"dual_scale_texture": 1,
"height_blending": true,
"macro_variation1": Color(1, 1, 1, 1),
@ -39,13 +39,14 @@ _shader_parameters = {
"noise1_angle": 0.0,
"noise1_offset": Vector2(0.5, 0.5),
"noise1_scale": 0.4,
"noise2_scale": 0.5,
"noise2_scale": 0.076,
"noise3_scale": 0.225,
"noise_texture": SubResource("NoiseTexture2D_esvkc"),
"tri_scale_reduction": 0.075,
"vertex_normals_distance": null,
"world_noise_blend_far": 1.0,
"world_noise_blend_near": 0.75,
"world_noise_height": 40.0,
"world_noise_height": 50.0,
"world_noise_lod_distance": 500.0,
"world_noise_max_octaves": 6,
"world_noise_min_octaves": 5,

Binary file not shown.