begin work on B3D parsing
This commit is contained in:
parent
ba37c23904
commit
8f5d2fcf9f
14 changed files with 84 additions and 9 deletions
|
@ -1,8 +1,7 @@
|
||||||
[gd_scene load_steps=7 format=3 uid="uid://bw0tk6ml7gayq"]
|
[gd_scene load_steps=6 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_43xjf"]
|
|
||||||
|
|
||||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_tvhkv"]
|
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_tvhkv"]
|
||||||
|
|
||||||
|
@ -20,10 +19,6 @@ 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"]
|
||||||
script = ExtResource("2_co6fy")
|
script = ExtResource("2_co6fy")
|
||||||
|
|
||||||
[node name="Player" parent="." instance=ExtResource("3_43xjf")]
|
|
||||||
transform = Transform3D(0.999178, 0, 0.0405503, 0, 1, 0, -0.0405503, 0, 0.999178, 0, 0, 0)
|
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
extends Node3D
|
extends Node3D
|
||||||
|
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
# Called when the node enters the scene tree for the first time.
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
RMesh.LoadRMesh(self, "GFX\\map\\173bright_opt.rmesh")
|
#RMesh.LoadRMesh(self, "GFX\\map\\machineroom_opt.rmesh")
|
||||||
|
B3D.Load("GFX\\npcs\\106_2.b3d")
|
||||||
|
|
||||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
func _process(delta: float) -> void:
|
func _process(delta: float) -> void:
|
||||||
|
|
|
@ -18,10 +18,14 @@ func _ready() -> void:
|
||||||
buttonList = $Buttons.get_children()
|
buttonList = $Buttons.get_children()
|
||||||
|
|
||||||
$Buttons/NewGame.connect("clicked", newGame)
|
$Buttons/NewGame.connect("clicked", newGame)
|
||||||
|
$Buttons/Quit.connect("clicked", quitGame)
|
||||||
|
|
||||||
func newGame():
|
func newGame():
|
||||||
print("clicked new game")
|
print("clicked new game")
|
||||||
|
|
||||||
|
func quitGame():
|
||||||
|
get_tree().quit()
|
||||||
|
|
||||||
var jankyCounter = 0
|
var jankyCounter = 0
|
||||||
func _process(delta: float) -> void:
|
func _process(delta: float) -> void:
|
||||||
if jankyCounter >= 5 and jankyFix.visible:
|
if jankyCounter >= 5 and jankyFix.visible:
|
||||||
|
|
28
src/file_parsers/B3D.gd
Normal file
28
src/file_parsers/B3D.gd
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
class_name B3D
|
||||||
|
|
||||||
|
static func ReadChunk(reader:BufferStuffReader):
|
||||||
|
var chunk = B3DChunk.new()
|
||||||
|
chunk.name = reader.readBuffer(4).get_string_from_ascii()
|
||||||
|
var chunkSize = reader.readInt()
|
||||||
|
chunk.bytes = reader.readBuffer(chunkSize)
|
||||||
|
|
||||||
|
return chunk;
|
||||||
|
|
||||||
|
static func Load(filePath: String):
|
||||||
|
var correctedPath = filePath.replace("\\", "/")
|
||||||
|
|
||||||
|
var fileHandle = FileAccess.open(str("res://", correctedPath), FileAccess.READ)
|
||||||
|
var reader = BufferStuffReader.create(fileHandle.get_buffer(fileHandle.get_length()))
|
||||||
|
fileHandle.close()
|
||||||
|
|
||||||
|
var bb3dChunk = ReadChunk(reader)
|
||||||
|
print(bb3dChunk.name)
|
||||||
|
if bb3dChunk.name == "BB3D":
|
||||||
|
var bb3dReader = BufferStuffReader.create(bb3dChunk.bytes)
|
||||||
|
var version = bb3dReader.readInt()
|
||||||
|
|
||||||
|
if version == 1:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
print(str("Unknown b3d version. ", version))
|
||||||
|
return null
|
5
src/objects/B3DAnim.gd
Normal file
5
src/objects/B3DAnim.gd
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
class_name B3DAnim
|
||||||
|
|
||||||
|
var flags: int
|
||||||
|
var frames: int
|
||||||
|
var fps: float
|
3
src/objects/B3DBone.gd
Normal file
3
src/objects/B3DBone.gd
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
class_name B3DBone
|
||||||
|
|
||||||
|
var weights: Array = Array()
|
4
src/objects/B3DBoneWeight.gd
Normal file
4
src/objects/B3DBoneWeight.gd
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
class_name B3DBoneWeight
|
||||||
|
|
||||||
|
var vertexId: int
|
||||||
|
var weight: float
|
8
src/objects/B3DBrush.gd
Normal file
8
src/objects/B3DBrush.gd
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
class_name B3DBrush
|
||||||
|
|
||||||
|
var name: String
|
||||||
|
var color: Color = Color(1, 1, 1, 1)
|
||||||
|
var shininess: float
|
||||||
|
var blend: int
|
||||||
|
var fx: int
|
||||||
|
var texture_id: PackedInt32Array = PackedInt32Array()
|
4
src/objects/B3DChunk.gd
Normal file
4
src/objects/B3DChunk.gd
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
class_name B3DChunk
|
||||||
|
|
||||||
|
var name: String = ""
|
||||||
|
var bytes: PackedByteArray
|
14
src/objects/B3DKeys.gd
Normal file
14
src/objects/B3DKeys.gd
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
class_name B3DKeys
|
||||||
|
|
||||||
|
var flags: int: set = _flagsUpdated
|
||||||
|
var keyframes: Array
|
||||||
|
|
||||||
|
var containsPosition: bool
|
||||||
|
var containsScale: bool
|
||||||
|
var containsRotation: bool
|
||||||
|
|
||||||
|
func _flagsUpdated(flagValue: int):
|
||||||
|
flags = flagValue
|
||||||
|
containsPosition = (flags & 1) != 0
|
||||||
|
containsScale = (flags & 2) != 0
|
||||||
|
containsRotation = (flags & 4) != 0
|
6
src/objects/B3DKeysKeyframe.gd
Normal file
6
src/objects/B3DKeysKeyframe.gd
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
class_name B3DKeysKeyframe
|
||||||
|
|
||||||
|
var frame: int
|
||||||
|
var position: Vector3
|
||||||
|
var scale: Vector3
|
||||||
|
var rotation: Quaternion
|
5
src/objects/B3DMesh.gd
Normal file
5
src/objects/B3DMesh.gd
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
class_name B3DMesh
|
||||||
|
|
||||||
|
var brushId: int = -1
|
||||||
|
var vertsData # TODO: B3D_VRTS
|
||||||
|
var surfaces: Array # B3D_TRIS
|
Loading…
Add table
Reference in a new issue