This commit is contained in:
Holly Stubbs 2025-02-11 08:06:09 +00:00
parent ae8b17a347
commit c2afe78d7f
Signed by: tgpholly
GPG key ID: B8583C4B7D18119E
7 changed files with 55 additions and 48 deletions

View file

@ -1,7 +1,8 @@
[gd_scene load_steps=6 format=3 uid="uid://bw0tk6ml7gayq"] [gd_scene load_steps=7 format=3 uid="uid://bw0tk6ml7gayq"]
[ext_resource type="Script" path="res://src/DynamicMap.gd" id="1_mytgt"] [ext_resource type="Script" path="res://src/DynamicMap.gd" id="1_mytgt"]
[ext_resource type="Script" path="res://src/TempDebugCamera.gd" id="2_co6fy"] [ext_resource type="Script" path="res://src/TempDebugCamera.gd" id="2_co6fy"]
[ext_resource type="PackedScene" uid="uid://dm33ofcbh8sht" path="res://scenes/world/Player.tscn" id="3_58gow"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_tvhkv"] [sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_tvhkv"]
sky_top_color = Color(0.483795, 0.593484, 0.746094, 1) sky_top_color = Color(0.483795, 0.593484, 0.746094, 1)
@ -22,8 +23,10 @@ script = ExtResource("1_mytgt")
environment = SubResource("Environment_d5g72") environment = SubResource("Environment_d5g72")
[node name="CameraPivot" type="Node3D" parent="."] [node name="CameraPivot" type="Node3D" parent="."]
visible = false
[node name="Camera3D" type="Camera3D" parent="CameraPivot"] [node name="Camera3D" type="Camera3D" parent="CameraPivot"]
fov = 74.0
script = ExtResource("2_co6fy") script = ExtResource("2_co6fy")
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] [node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
@ -35,3 +38,6 @@ use_collision = true
size = Vector3(15.4238, 0.866943, 15.2599) size = Vector3(15.4238, 0.866943, 15.2599)
[node name="Label3D" type="Label3D" parent="."] [node name="Label3D" type="Label3D" parent="."]
[node name="Player" parent="." instance=ExtResource("3_58gow")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.74637, 0)

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=10 format=3 uid="uid://dm33ofcbh8sht"] [gd_scene load_steps=9 format=3 uid="uid://dm33ofcbh8sht"]
[ext_resource type="Script" path="res://src/Player.gd" id="1_n772d"] [ext_resource type="Script" path="res://src/Player.gd" id="1_n772d"]
[ext_resource type="Texture2D" uid="uid://rfpsi4xnxdu" path="res://GFX/BlinkIcon.png" id="2_kjp08"] [ext_resource type="Texture2D" uid="uid://rfpsi4xnxdu" path="res://GFX/BlinkIcon.png" id="2_kjp08"]
@ -7,10 +7,9 @@
[ext_resource type="Texture2D" uid="uid://c5p7utpptgtww" path="res://GFX/BlinkMeter.jpg" id="5_iwhsa"] [ext_resource type="Texture2D" uid="uid://c5p7utpptgtww" path="res://GFX/BlinkMeter.jpg" id="5_iwhsa"]
[ext_resource type="Texture2D" uid="uid://den5phi138pyh" path="res://GFX/StaminaMeter.jpg" id="6_g44nt"] [ext_resource type="Texture2D" uid="uid://den5phi138pyh" path="res://GFX/StaminaMeter.jpg" id="6_g44nt"]
[sub_resource type="CylinderShape3D" id="CylinderShape3D_bsew3"] [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_w1ang"]
radius = 0.15
[sub_resource type="BoxMesh" id="BoxMesh_vju81"] height = 0.3
size = Vector3(1, 2, 1)
[sub_resource type="SeparationRayShape3D" id="SeparationRayShape3D_u64q7"] [sub_resource type="SeparationRayShape3D" id="SeparationRayShape3D_u64q7"]
length = 0.5 length = 0.5
@ -19,20 +18,16 @@ length = 0.5
script = ExtResource("1_n772d") script = ExtResource("1_n772d")
[node name="Head" type="Node3D" parent="."] [node name="Head" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.75, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.65, 0)
[node name="Camera" type="Camera3D" parent="Head"] [node name="Camera" type="Camera3D" parent="Head"]
[node name="Collision" type="CollisionShape3D" parent="."] [node name="Collision" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.15, 0)
shape = SubResource("CylinderShape3D_bsew3") shape = SubResource("CapsuleShape3D_w1ang")
[node name="MeshInstance3D" type="MeshInstance3D" parent="Collision"]
visible = false
mesh = SubResource("BoxMesh_vju81")
[node name="SepRay1" type="CollisionShape3D" parent="."] [node name="SepRay1" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0.5, -0.55) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0.5, -0.155)
shape = SubResource("SeparationRayShape3D_u64q7") shape = SubResource("SeparationRayShape3D_u64q7")
[node name="RayCast3D" type="RayCast3D" parent="SepRay1"] [node name="RayCast3D" type="RayCast3D" parent="SepRay1"]
@ -41,7 +36,7 @@ enabled = false
target_position = Vector3(0, -0.55, 0) target_position = Vector3(0, -0.55, 0)
[node name="SepRay2" type="CollisionShape3D" parent="."] [node name="SepRay2" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0.5, -0.55) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0.5, -0.155)
shape = SubResource("SeparationRayShape3D_u64q7") shape = SubResource("SeparationRayShape3D_u64q7")
[node name="RayCast3D" type="RayCast3D" parent="SepRay2"] [node name="RayCast3D" type="RayCast3D" parent="SepRay2"]
@ -50,7 +45,7 @@ enabled = false
target_position = Vector3(0, -0.55, 0) target_position = Vector3(0, -0.55, 0)
[node name="SepRay3" type="CollisionShape3D" parent="."] [node name="SepRay3" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0.5, -0.55) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0.5, -0.155)
shape = SubResource("SeparationRayShape3D_u64q7") shape = SubResource("SeparationRayShape3D_u64q7")
[node name="RayCast3D" type="RayCast3D" parent="SepRay3"] [node name="RayCast3D" type="RayCast3D" parent="SepRay3"]

View file

@ -3,14 +3,14 @@ extends Node3D
func _ready() -> void: func _ready() -> void:
#add_child(RMesh.LoadRMesh("GFX\\map\\gatea_opt.rmesh", RoomTemplate.new())) #add_child(RMesh.LoadRMesh("GFX\\map\\gatea_opt.rmesh", RoomTemplate.new()))
#B3D.Load("GFX\\npcs\\106_2.b3d") #B3D.Load("GFX\\npcs\\106_2.b3d")
#add_child(B3D.Load("GFX\\apache.b3d")) add_child(B3D.Load("GFX\\apache.b3d"))
#RMesh.LoadRMesh(self, roomInfo["mesh path"]) #RMesh.LoadRMesh(self, roomInfo["mesh path"])
#CreateMap() #CreateMap()
IntroEnabled = true IntroEnabled = true
LoadRoomTemplates("Data\\rooms.ini") #LoadRoomTemplates("Data\\rooms.ini")
CreateMap() #CreateMap()
var IntroEnabled: bool var IntroEnabled: bool
var I_Zone: MapZones = MapZones.new() var I_Zone: MapZones = MapZones.new()
@ -835,14 +835,11 @@ func CreateMap():
#Flip #Flip
#Until KeyHit(28) #Until KeyHit(28)
#EndIf #EndIf
#
# for y1 in range(MapHeight):
#For y = 0 To MapHeight for x1 in range(MapWidth):
#For x = 0 To MapWidth MapTemp[x1][y1] = min(MapTemp[x1][y1], 1)
#MapTemp(x, y) = Min(MapTemp(x, y),1)
#Next
#Next
#
#Local d.Doors #Local d.Doors
#Local shouldSpawnDoor% #Local shouldSpawnDoor%
#For y = MapHeight To 0 Step -1 #For y = MapHeight To 0 Step -1

View file

@ -9,6 +9,7 @@ var audioCache: Dictionary
var videoToPlay: String var videoToPlay: String
var clickSound: AudioStreamPlayer var clickSound: AudioStreamPlayer
var music: AudioStreamPlayer var music: AudioStreamPlayer
var player: Player
var FPSfactor: float var FPSfactor: float

View file

@ -1,4 +1,5 @@
extends CharacterBody3D extends CharacterBody3D
class_name Player
var head: Node3D var head: Node3D
var camera: Camera3D var camera: Camera3D
@ -11,6 +12,7 @@ var sprintBar: Control
var Hud: Control var Hud: Control
func _ready() -> void: func _ready() -> void:
Global.player = self
head = $Head head = $Head
camera = $Head/Camera camera = $Head/Camera
floorRay = $FloorRay floorRay = $FloorRay
@ -317,8 +319,8 @@ func _process(delta: float) -> void:
#print(str(cos(angle) * CurrSpeed * 100000 * Global.FPSfactor), " ", str(sin(angle) * CurrSpeed * 100000 * Global.FPSfactor)) #print(str(cos(angle) * CurrSpeed * 100000 * Global.FPSfactor), " ", str(sin(angle) * CurrSpeed * 100000 * Global.FPSfactor))
#position.x += cos(angle) * CurrSpeed * 100000 * Global.FPSfactor #position.x += cos(angle) * CurrSpeed * 100000 * Global.FPSfactor
#position.z += sin(angle) * CurrSpeed * 100000 * Global.FPSfactor #position.z += sin(angle) * CurrSpeed * 100000 * Global.FPSfactor
var movementX = (direction.x * CurrSpeed * 500) * Global.FPSfactor var movementX = (direction.x * CurrSpeed * 200) * Global.FPSfactor
var movementZ = (direction.z * CurrSpeed * 500) * Global.FPSfactor var movementZ = (direction.z * CurrSpeed * 200) * Global.FPSfactor
#print(CurrSpeed, " ", direction.x, " ", direction.z, " ", str(movementX), " ", str(movementZ)) #print(CurrSpeed, " ", direction.x, " ", direction.z, " ", str(movementX), " ", str(movementZ))
velocity.x = movementX velocity.x = movementX
velocity.z = movementZ velocity.z = movementZ
@ -327,9 +329,10 @@ func _process(delta: float) -> void:
var cameraBob = (Global.Sin(Shake) / (20.0 + CrouchState * 20.0)) * 0.6 var cameraBob = (Global.Sin(Shake) / (20.0 + CrouchState * 20.0)) * 0.6
camera.rotation.x = deg_to_rad(Rotation.x) camera.rotation.x = deg_to_rad(Rotation.x)
camera.rotation.z = deg_to_rad(cameraRoll) camera.rotation.z = deg_to_rad(cameraRoll * 0.5)
camera.position.y = cameraBob camera.position.y = cameraBob
head.position.y = 1.15 + 0.6 * (1 - CrouchState) #head.position.y = 1.15 + 0.6 * (1 - CrouchState)
head.position.y = cameraBob + 0.9 + CrouchState * -0.3
head.rotation.y = deg_to_rad(Rotation.y) head.rotation.y = deg_to_rad(Rotation.y)
var CollidedFloor = false var CollidedFloor = false
@ -407,7 +410,7 @@ func rotateStepSepRay():
$SepRay1/RayCast3D.force_raycast_update() $SepRay1/RayCast3D.force_raycast_update()
$SepRay2/RayCast3D.force_raycast_update() $SepRay2/RayCast3D.force_raycast_update()
$SepRay3/RayCast3D.force_raycast_update() $SepRay3/RayCast3D.force_raycast_update()
var maxSlopeAngleDot = RAY_MOVE_VEC.rotated(RAY_MAX_SLOPE_ROT, floor_max_angle / 4).dot(RAY_MOVE_VEC) var maxSlopeAngleDot = RAY_MOVE_VEC.rotated(RAY_MAX_SLOPE_ROT, floor_max_angle / 1.25).dot(RAY_MOVE_VEC)
var isTooSteep = false var isTooSteep = false
if $SepRay1/RayCast3D.is_colliding() and $SepRay1/RayCast3D.get_collision_normal().dot(RAY_MOVE_VEC) < maxSlopeAngleDot: if $SepRay1/RayCast3D.is_colliding() and $SepRay1/RayCast3D.get_collision_normal().dot(RAY_MOVE_VEC) < maxSlopeAngleDot:
isTooSteep = true isTooSteep = true

View file

@ -84,6 +84,8 @@ static func ReadMesh(reader:BufferStuffReader):
elif chunk.name == "TRIS": elif chunk.name == "TRIS":
meshChunk.surfaces = ReadTRIS(reader) meshChunk.surfaces = ReadTRIS(reader)
return meshChunk
static func ReadNode(reader:BufferStuffReader): static func ReadNode(reader:BufferStuffReader):
var node = B3DNode.new() var node = B3DNode.new()
node.name = reader.readCString() node.name = reader.readCString()
@ -104,6 +106,9 @@ static func ReadNode(reader:BufferStuffReader):
return node return node
static func ReadBrush(reader:BufferStuffReader):
pass
static func Load(filePath: String): static func Load(filePath: String):
var correctedPath = filePath.replace("\\", "/") var correctedPath = filePath.replace("\\", "/")
@ -126,11 +131,11 @@ static func Load(filePath: String):
if chunk.name == "TEXS": if chunk.name == "TEXS":
ReadTextures(chunkReader, parsedResult) ReadTextures(chunkReader, parsedResult)
elif chunk.name == "BRUS": elif chunk.name == "BRUS":
continue ReadBrush(chunkReader)
elif chunk.name == "NODE": elif chunk.name == "NODE":
resultScene.add_child(ReadNode(chunkReader)) resultScene.add_child(ReadNode(chunkReader))
print(parsedResult.textures[0].name) print(resultScene)
return resultScene return resultScene
else: else:
print(str("Unknown b3d version. ", version)) print(str("Unknown b3d version. ", version))

View file

@ -445,10 +445,10 @@ static func LoadRMesh(file: String, rt: RoomTemplate):
var range = reader.readFloat() / 2000.0 var range = reader.readFloat() / 2000.0
var lcolor = ReadString(reader).split(" ") var lcolor = ReadString(reader).split(" ")
var intensity = min(reader.readFloat() * 0.8, 1.0) var intensity = min(reader.readFloat() * 0.8, 1.0)
#r%=Int(Piece(lcolor,1," "))*intensity var r = int(lcolor[0]) / 255 * intensity
#g%=Int(Piece(lcolor,2," "))*intensity var g = int(lcolor[1]) / 255 * intensity
#b%=Int(Piece(lcolor,3," "))*intensity var b = int(lcolor[2]) / 255 * intensity
#
#Local lt.LightTemplates = AddTempLight(rt, temp1,temp2,temp3, 2, range, r,g,b) #Local lt.LightTemplates = AddTempLight(rt, temp1,temp2,temp3, 2, range, r,g,b)
var angles = ReadString(reader) var angles = ReadString(reader)
#pitch#=Piece(angles,1," ") #pitch#=Piece(angles,1," ")
@ -496,14 +496,14 @@ static func LoadRMesh(file: String, rt: RoomTemplate):
temp1 = -reader.readFloat() temp1 = -reader.readFloat()
temp2 = reader.readFloat() temp2 = reader.readFloat()
temp3 = reader.readFloat() temp3 = reader.readFloat()
var angles = ReadString(reader) var angles = ReadString(reader).split(" ")
#pitch = Piece(angles,1," ") if Global.player and is_instance_valid(Global.player):
#yaw#=Piece(angles,2," ") Global.player.position.x = temp1
#roll#=Piece(angles,3," ") Global.player.position.y = temp2
#If cam Then Global.player.position.z = temp3
#PositionEntity cam,temp1,temp2,temp3 Global.player.camera.rotation.x = deg_to_rad(angles[0].to_float())
#RotateEntity cam,pitch,yaw,roll Global.player.head.rotation.y = deg_to_rad(angles[1].to_float())
#EndIf Global.player.camera.rotation.z = deg_to_rad(angles[2].to_float())
elif temp1s == "model": elif temp1s == "model":
var modelPath = ReadString(reader) var modelPath = ReadString(reader)
if modelPath != "": if modelPath != "":