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/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"]
|
||||
|
||||
|
@ -20,10 +19,6 @@ script = ExtResource("1_mytgt")
|
|||
environment = SubResource("Environment_d5g72")
|
||||
|
||||
[node name="CameraPivot" type="Node3D" parent="."]
|
||||
visible = false
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="CameraPivot"]
|
||||
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
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
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.
|
||||
func _process(delta: float) -> void:
|
||||
|
|
|
@ -18,10 +18,14 @@ func _ready() -> void:
|
|||
buttonList = $Buttons.get_children()
|
||||
|
||||
$Buttons/NewGame.connect("clicked", newGame)
|
||||
$Buttons/Quit.connect("clicked", quitGame)
|
||||
|
||||
func newGame():
|
||||
print("clicked new game")
|
||||
|
||||
func quitGame():
|
||||
get_tree().quit()
|
||||
|
||||
var jankyCounter = 0
|
||||
func _process(delta: float) -> void:
|
||||
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