finsihed oktoberfest for now
This commit is contained in:
parent
ae30f91abb
commit
8ada8dcbda
15 changed files with 1087 additions and 149 deletions
BIN
Florian/Audio/oktoberfestambience.mp3.ogg
Normal file
BIN
Florian/Audio/oktoberfestambience.mp3.ogg
Normal file
Binary file not shown.
|
|
@ -46,12 +46,16 @@ animations = [{
|
||||||
"speed": 3.0
|
"speed": 3.0
|
||||||
}]
|
}]
|
||||||
|
|
||||||
[node name="AnimatedSprite3D" type="AnimatedSprite3D"]
|
[node name="Accor" type="AnimatedSprite3D"]
|
||||||
|
pixel_size = 0.05
|
||||||
shaded = true
|
shaded = true
|
||||||
alpha_cut = 2
|
alpha_cut = 2
|
||||||
texture_filter = 0
|
texture_filter = 0
|
||||||
sprite_frames = SubResource("SpriteFrames_80p6a")
|
sprite_frames = SubResource("SpriteFrames_80p6a")
|
||||||
|
autoplay = "default"
|
||||||
|
|
||||||
[node name="PointThing" parent="." instance=ExtResource("2_rc5w7")]
|
[node name="PointThing" parent="." instance=ExtResource("2_rc5w7")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.7, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.7, 0)
|
||||||
|
points_worth = 50
|
||||||
points_name = "Accordion"
|
points_name = "Accordion"
|
||||||
|
points_multiplier = 1.5
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://chnnth68vivc0"]
|
[gd_scene load_steps=3 format=3 uid="uid://bb7tbf4brakvg"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://npc_path_follower.gd" id="1_tpf6l"]
|
[ext_resource type="Script" uid="uid://bgolfgrq66diw" path="res://npc_path_follower.gd" id="1_tpf6l"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bfq21ks4r8gma" path="res://Florian/Entity/People/accor.tscn" id="2_tpf6l"]
|
[ext_resource type="PackedScene" uid="uid://c4fw8rjct7vms" path="res://Florian/Entity/People/accor.tscn" id="2_tpf6l"]
|
||||||
|
|
||||||
[node name="SaxophonePath" type="PathFollow3D"]
|
[node name="AccorPath" type="PathFollow3D"]
|
||||||
script = ExtResource("1_tpf6l")
|
script = ExtResource("1_tpf6l")
|
||||||
|
|
||||||
[node name="Accor" parent="." instance=ExtResource("2_tpf6l")]
|
[node name="Accor" parent="." instance=ExtResource("2_tpf6l")]
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
13
Florian/Map/accor_animation.gd
Normal file
13
Florian/Map/accor_animation.gd
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
extends AnimationPlayer
|
||||||
|
|
||||||
|
var already_played = false
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
#_play_animation()
|
||||||
|
pass
|
||||||
|
|
||||||
|
func _play_animation():
|
||||||
|
if already_played:
|
||||||
|
return
|
||||||
|
already_played = true
|
||||||
|
self.play("accordGoesOnStage")
|
||||||
1
Florian/Map/accor_animation.gd.uid
Normal file
1
Florian/Map/accor_animation.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://btok1rqmtms4o
|
||||||
87
Florian/PhysicsProps/DrunkFollow.tscn
Normal file
87
Florian/PhysicsProps/DrunkFollow.tscn
Normal file
|
|
@ -0,0 +1,87 @@
|
||||||
|
[gd_scene load_steps=12 format=3 uid="uid://v86q0i25q2dj"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://g0sldpbn2yiu" path="res://Florian/PhysicsProps/drunk_follow.gd" id="1_m5yqb"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dkt1ynydnm1k5" path="res://Amanda/Sprite assets/guy_drink-2.png" id="2_1cami"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://c8gnb0kut2n5h" path="res://Florian/PointsLogic/point_thing.tscn" id="3_1cami"]
|
||||||
|
|
||||||
|
[sub_resource type="CylinderShape3D" id="CylinderShape3D_fwpe3"]
|
||||||
|
radius = 4.0
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_63ekj"]
|
||||||
|
atlas = ExtResource("2_1cami")
|
||||||
|
region = Rect2(0, 0, 50, 50)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_1wlxe"]
|
||||||
|
atlas = ExtResource("2_1cami")
|
||||||
|
region = Rect2(0, 50, 50, 50)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_yp4i5"]
|
||||||
|
atlas = ExtResource("2_1cami")
|
||||||
|
region = Rect2(50, 0, 50, 50)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_rsn4b"]
|
||||||
|
atlas = ExtResource("2_1cami")
|
||||||
|
region = Rect2(50, 50, 50, 50)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_sq3k7"]
|
||||||
|
atlas = ExtResource("2_1cami")
|
||||||
|
region = Rect2(0, 100, 50, 50)
|
||||||
|
|
||||||
|
[sub_resource type="SpriteFrames" id="SpriteFrames_vjsfa"]
|
||||||
|
animations = [{
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_63ekj")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_1wlxe")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_yp4i5")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_rsn4b")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_sq3k7")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"default",
|
||||||
|
"speed": 3.0
|
||||||
|
}]
|
||||||
|
|
||||||
|
[sub_resource type="CylinderShape3D" id="CylinderShape3D_1cami"]
|
||||||
|
height = 2.4
|
||||||
|
|
||||||
|
[node name="DrunkFollow" type="RigidBody3D"]
|
||||||
|
axis_lock_angular_x = true
|
||||||
|
axis_lock_angular_z = true
|
||||||
|
mass = 30.0
|
||||||
|
script = ExtResource("1_m5yqb")
|
||||||
|
speed = 1
|
||||||
|
|
||||||
|
[node name="SeeArea" type="Area3D" parent="."]
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="SeeArea"]
|
||||||
|
shape = SubResource("CylinderShape3D_fwpe3")
|
||||||
|
|
||||||
|
[node name="guy_drinking" type="AnimatedSprite3D" parent="."]
|
||||||
|
modulate = Color(1, 0.972549, 0, 1)
|
||||||
|
pixel_size = 0.07
|
||||||
|
billboard = 2
|
||||||
|
shaded = true
|
||||||
|
alpha_cut = 2
|
||||||
|
texture_filter = 0
|
||||||
|
sprite_frames = SubResource("SpriteFrames_vjsfa")
|
||||||
|
autoplay = "default"
|
||||||
|
frame_progress = 0.372896
|
||||||
|
|
||||||
|
[node name="PointThing2" parent="guy_drinking" instance=ExtResource("3_1cami")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
|
||||||
|
points_worth = 100
|
||||||
|
points_name = "Golden Drunk Guy"
|
||||||
|
points_multiplier = 3.0
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.2, 0)
|
||||||
|
shape = SubResource("CylinderShape3D_1cami")
|
||||||
35
Florian/PhysicsProps/drunk_follow.gd
Normal file
35
Florian/PhysicsProps/drunk_follow.gd
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
extends RigidBody3D
|
||||||
|
|
||||||
|
@export var item_want : RigidBody3D = null
|
||||||
|
@export var speed : int = 10
|
||||||
|
@onready var see_area: Area3D = $SeeArea
|
||||||
|
|
||||||
|
var following_item : RigidBody3D = null
|
||||||
|
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
see_area.body_entered.connect(check_for_item_want)
|
||||||
|
see_area.body_exited.connect(check_for_item_want)
|
||||||
|
assert(item_want)
|
||||||
|
|
||||||
|
func _process(delta: float) -> void:
|
||||||
|
_follow_item_want()
|
||||||
|
|
||||||
|
func check_for_item_want(obj):
|
||||||
|
print("Checking for item")
|
||||||
|
var bodies = see_area.get_overlapping_bodies()
|
||||||
|
for body in bodies:
|
||||||
|
if body == item_want:
|
||||||
|
following_item = body
|
||||||
|
return
|
||||||
|
following_item = null # Reset if no valid item is found
|
||||||
|
|
||||||
|
|
||||||
|
func _follow_item_want():
|
||||||
|
|
||||||
|
if not following_item:
|
||||||
|
return
|
||||||
|
print("Checking for item")
|
||||||
|
var wish_dir = (following_item.global_position - self.global_position).normalized()
|
||||||
|
var velocity = wish_dir * speed
|
||||||
|
self.linear_velocity = velocity
|
||||||
1
Florian/PhysicsProps/drunk_follow.gd.uid
Normal file
1
Florian/PhysicsProps/drunk_follow.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://g0sldpbn2yiu
|
||||||
|
|
@ -3,8 +3,8 @@
|
||||||
[ext_resource type="PackedScene" uid="uid://d3ynlus2dwtle" path="res://Florian/Entity/People/beer.tscn" id="1_aypp7"]
|
[ext_resource type="PackedScene" uid="uid://d3ynlus2dwtle" path="res://Florian/Entity/People/beer.tscn" id="1_aypp7"]
|
||||||
|
|
||||||
[sub_resource type="CylinderShape3D" id="CylinderShape3D_aypp7"]
|
[sub_resource type="CylinderShape3D" id="CylinderShape3D_aypp7"]
|
||||||
height = 0.682813
|
height = 1.13535
|
||||||
radius = 0.3
|
radius = 0.7
|
||||||
|
|
||||||
[node name="PhysicsBeer" type="RigidBody3D"]
|
[node name="PhysicsBeer" type="RigidBody3D"]
|
||||||
axis_lock_angular_x = true
|
axis_lock_angular_x = true
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@ func _calculate_picture_objects():
|
||||||
|
|
||||||
var points = takeable.points_worth
|
var points = takeable.points_worth
|
||||||
if duplicates.get(takeable.points_name):
|
if duplicates.get(takeable.points_name):
|
||||||
points = int(points * 0.5)
|
points = int(points * 0.2)
|
||||||
points_string += "Duplicate: {name} {points}\n".format(
|
points_string += "Duplicate: {name} {points}\n".format(
|
||||||
{"name" : takeable.points_name, "points": points}
|
{"name" : takeable.points_name, "points": points}
|
||||||
)
|
)
|
||||||
|
|
|
||||||
46
Florian/Props/door.gd
Normal file
46
Florian/Props/door.gd
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
extends Node3D
|
||||||
|
|
||||||
|
|
||||||
|
@onready var animation_player:AnimationPlayer = $AnimationPlayer
|
||||||
|
@onready var interactable = $DoorHinge/Interactable
|
||||||
|
|
||||||
|
@export var locked : bool = false
|
||||||
|
|
||||||
|
|
||||||
|
signal door_interact
|
||||||
|
signal door_opened
|
||||||
|
signal door_closed
|
||||||
|
signal door_tried_open
|
||||||
|
|
||||||
|
@onready var door_hinge = $DoorHinge
|
||||||
|
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
door_hinge.top_level = true #Damit das nicht so komisch warped idk wie ich sont fixe
|
||||||
|
if animation_player:
|
||||||
|
multiplayer.peer_connected.connect(_on_player_connected)
|
||||||
|
interactable.interact.connect(try_open_door)
|
||||||
|
|
||||||
|
func _on_player_connected(_id):
|
||||||
|
if not multiplayer.is_server():
|
||||||
|
animation_player.stop()
|
||||||
|
animation_player.set_active(false)
|
||||||
|
|
||||||
|
var is_open = false
|
||||||
|
func open_door():
|
||||||
|
door_interact.emit()
|
||||||
|
if is_open:
|
||||||
|
door_opened.emit()
|
||||||
|
is_open = false
|
||||||
|
animation_player.play_backwards("door_open")
|
||||||
|
else:
|
||||||
|
door_closed.emit()
|
||||||
|
is_open = true
|
||||||
|
animation_player.play("door_open")
|
||||||
|
print("Opening")
|
||||||
|
|
||||||
|
func try_open_door():
|
||||||
|
door_tried_open.emit()
|
||||||
|
if not locked:
|
||||||
|
open_door()
|
||||||
|
|
||||||
1
Florian/Props/door.gd.uid
Normal file
1
Florian/Props/door.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://cs286n0kwgm4l
|
||||||
83
Florian/Props/door.tscn
Normal file
83
Florian/Props/door.tscn
Normal file
|
|
@ -0,0 +1,83 @@
|
||||||
|
[gd_scene load_steps=10 format=3 uid="uid://b85ujwx0p8gvn"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://byhsp6ujjsh8m" path="res://Florian/Entity/interactable.tscn" id="1_ba8gm"]
|
||||||
|
[ext_resource type="Script" uid="uid://cs286n0kwgm4l" path="res://Florian/Props/door.gd" id="1_f758y"]
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_v6xrn"]
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_emhi6"]
|
||||||
|
albedo_color = Color(0.64319, 0.418889, 0.248661, 1)
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_0phs7"]
|
||||||
|
material = SubResource("StandardMaterial3D_emhi6")
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_0phs7"]
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("DoorHinge:rotation")
|
||||||
|
tracks/0/interp = 2
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 1),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector3(0, 0, 0), Vector3(0, 1.5708, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_v6xrn"]
|
||||||
|
resource_name = "door_open"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("DoorHinge:rotation")
|
||||||
|
tracks/0/interp = 2
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 1),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector3(0, 0, 0), Vector3(0, 1.5708, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_50cdl"]
|
||||||
|
_data = {
|
||||||
|
&"RESET": SubResource("Animation_0phs7"),
|
||||||
|
&"door_open": SubResource("Animation_v6xrn")
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_yrqr4"]
|
||||||
|
properties/0/path = NodePath(".:rotation")
|
||||||
|
properties/0/spawn = true
|
||||||
|
properties/0/replication_mode = 1
|
||||||
|
|
||||||
|
[node name="Door" type="Node3D"]
|
||||||
|
script = ExtResource("1_f758y")
|
||||||
|
|
||||||
|
[node name="DoorHinge" type="Node3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 2, 0, 0, 0, 0.1, 0, 1, 0)
|
||||||
|
|
||||||
|
[node name="Interactable" parent="DoorHinge" instance=ExtResource("1_ba8gm")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0, -0.5)
|
||||||
|
visible = false
|
||||||
|
|
||||||
|
[node name="StaticBody3D" type="StaticBody3D" parent="DoorHinge"]
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="DoorHinge/StaticBody3D"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0, -0.5)
|
||||||
|
shape = SubResource("BoxShape3D_v6xrn")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="DoorHinge/StaticBody3D"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0, -0.5)
|
||||||
|
mesh = SubResource("BoxMesh_0phs7")
|
||||||
|
skeleton = NodePath("")
|
||||||
|
|
||||||
|
[node name="Rotator" type="Node3D" parent="DoorHinge"]
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
|
libraries = {
|
||||||
|
&"": SubResource("AnimationLibrary_50cdl")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="."]
|
||||||
|
replication_config = SubResource("SceneReplicationConfig_yrqr4")
|
||||||
BIN
Florian/Textures/bush.jpg
Normal file
BIN
Florian/Textures/bush.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 390 KiB |
Loading…
Add table
Reference in a new issue