From 7ed2f712b245a1c1e774ad3fa9373254a1018154 Mon Sep 17 00:00:00 2001 From: GoaLitiuM Date: Sat, 11 Sep 2021 22:48:59 +0300 Subject: [PATCH] missing texture, split map scenes --- Assets/Textures/missing.png | Bin 0 -> 185 bytes Content/Common/DefaultHudPrefab2.prefab | 191 ++++++++++ Content/Materials/missing.flax | Bin 0 -> 30292 bytes ...tImportScene.scene => AerowalkScene.scene} | 24 +- Content/Scenes/CubeScene.scene | 329 ++++++++++++++++++ .../Settings/EngineSettings/TimeSettings.json | 6 +- .../WindowsPlatformSettings.json | 2 +- Content/Textures/missing.flax | Bin 0 -> 869 bytes Source/Game/Q3MapImporter.cs | 28 +- 9 files changed, 554 insertions(+), 26 deletions(-) create mode 100644 Assets/Textures/missing.png create mode 100644 Content/Common/DefaultHudPrefab2.prefab create mode 100644 Content/Materials/missing.flax rename Content/Scenes/{TestImportScene.scene => AerowalkScene.scene} (94%) create mode 100644 Content/Scenes/CubeScene.scene create mode 100644 Content/Textures/missing.flax diff --git a/Assets/Textures/missing.png b/Assets/Textures/missing.png new file mode 100644 index 0000000000000000000000000000000000000000..a8d9b95f6ede9da21ccb5a40b7f5fc3d195746cc GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^Od!kwBL7~QRScwbN?apKoQqNuOEUBG6hbm{QyGF2 zOB4(Z6@pU>6pRdv3>A!wtPCuzOpO$@4U7y7H00J~1NE_&c>21sKjq{W=2hL$R&)p` z#981G2{e*h2!t6g-L3lr6l6(v^mSxl*x1kgCy^D%7w~j(45_%4oRE<4gTIxBhe7%i V^Iy%n+zOx^gQu&X%Q~loCIE49E_(m~ literal 0 HcmV?d00001 diff --git a/Content/Common/DefaultHudPrefab2.prefab b/Content/Common/DefaultHudPrefab2.prefab new file mode 100644 index 0000000..d64adab --- /dev/null +++ b/Content/Common/DefaultHudPrefab2.prefab @@ -0,0 +1,191 @@ +{ + "ID": "44b0e2e14042c518372ad4a713c03554", + "TypeName": "FlaxEngine.Prefab", + "EngineBuild": 6225, + "Data": [ + { + "ID": "4cf08e994b0aba2a1f27d78581801a15", + "TypeName": "FlaxEngine.UICanvas", + "ParentID": "00000000000000000000000000000000", + "Name": "DefaultHudPrefab", + "Transform": { + "Orientation": { + "X": 1.0, + "Y": 4.3711388286737938e-8, + "Z": 4.3711388286737938e-8, + "W": 1.910685465164705e-15 + } + }, + "V": {} + }, + { + "ID": "f07ac47945765b274830ab9d017a39cb", + "TypeName": "Cabrito.FpsScript", + "ParentID": "4cf08e994b0aba2a1f27d78581801a15", + "V": { + "control": "86b4047b47495cc4b736bf99c1e400ac" + } + }, + { + "ID": "1792e2ec40703885e1d1329311f35adc", + "TypeName": "Cabrito.ConsoleScript", + "ParentID": "4cf08e994b0aba2a1f27d78581801a15", + "V": { + "ConsoleFont": "43f32bec443158643f53699f07b2e09c", + "BackgroundColor": { + "R": 0.0, + "G": 0.0, + "B": 0.0, + "A": 1.0 + } + } + }, + { + "ID": "86b4047b47495cc4b736bf99c1e400ac", + "TypeName": "FlaxEngine.UIControl", + "ParentID": "4cf08e994b0aba2a1f27d78581801a15", + "Name": "FPSUIControl", + "Transform": { + "Translation": { + "X": 0.0, + "Y": 730.0, + "Z": 0.0 + } + }, + "Control": "FlaxEngine.GUI.Label", + "Data": { + "Text": "eFPS: 528\nuFPS: 531\nrFPS: 528\npFPS: 30\nCon: NaNms\nDirectX11\nGC memory: 13.01433MB", + "TextColor": { + "R": 1.0, + "G": 1.0, + "B": 1.0, + "A": 1.0 + }, + "TextColorHighlighted": { + "R": 1.0, + "G": 1.0, + "B": 1.0, + "A": 1.0 + }, + "HorizontalAlignment": 0, + "VerticalAlignment": 0, + "Wrapping": 0, + "Font": { + "Font": "4508d98f4aa1f0bd59362b81d47e38f4", + "Size": 10 + }, + "Material": null, + "Margin": { + "Left": 0.0, + "Right": 0.0, + "Top": 0.0, + "Bottom": 0.0 + }, + "ClipText": false, + "AutoWidth": true, + "AutoHeight": true, + "AutoFitText": false, + "AutoFitTextRange": { + "X": 0.1, + "Y": 100.0 + }, + "ClipChildren": true, + "CullChildren": true, + "AnchorMin": { + "X": 0.0, + "Y": 1.0 + }, + "AnchorMax": { + "X": 0.0, + "Y": 1.0 + }, + "Offsets": { + "Left": 0.0, + "Right": 143.0, + "Top": -80.0, + "Bottom": 112.0 + }, + "Scale": { + "X": 1.0, + "Y": 1.0 + }, + "Pivot": { + "X": 0.5, + "Y": 0.5 + }, + "Shear": { + "X": 0.0, + "Y": 0.0 + }, + "Rotation": 0.0, + "BackgroundColor": { + "R": 0.0, + "G": 0.0, + "B": 0.0, + "A": 0.0 + }, + "Enabled": true, + "Visible": true + } + }, + { + "ID": "20a15fd74b0072c52e00fc85ba8d62a1", + "TypeName": "FlaxEngine.UIControl", + "ParentID": "4cf08e994b0aba2a1f27d78581801a15", + "Name": "UIControl" + }, + { + "ID": "b2561bca4e5afe01ec2e4a96cef38c0b", + "TypeName": "FlaxEngine.UIControl", + "ParentID": "4cf08e994b0aba2a1f27d78581801a15", + "Name": "ContainerControl 0", + "Transform": { + "Translation": { + "X": 45644.0, + "Y": -1.0, + "Z": 0.0 + } + }, + "Control": "FlaxEngine.GUI.ContainerControl", + "Data": { + "ClipChildren": true, + "CullChildren": true, + "AnchorMin": { + "X": 1.0, + "Y": 0.5 + }, + "AnchorMax": { + "X": 1.0, + "Y": 0.5 + }, + "Offsets": { + "Left": 44188.0, + "Right": 100.0, + "Top": -406.0, + "Bottom": 30.0 + }, + "Scale": { + "X": 1.0, + "Y": 1.0 + }, + "Pivot": { + "X": 0.5, + "Y": 0.5 + }, + "Shear": { + "X": 0.0, + "Y": 0.0 + }, + "Rotation": 0.0, + "BackgroundColor": { + "R": 0.0, + "G": 0.0, + "B": 0.0, + "A": 0.0 + }, + "Enabled": true, + "Visible": true + } + } +] +} \ No newline at end of file diff --git a/Content/Materials/missing.flax b/Content/Materials/missing.flax new file mode 100644 index 0000000000000000000000000000000000000000..b748545a8940507e1f70c0380d6611a4e5e426bf GIT binary patch literal 30292 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 NKCzuUwe(C~{tpY{8UO$Q literal 0 HcmV?d00001 diff --git a/Content/Scenes/TestImportScene.scene b/Content/Scenes/AerowalkScene.scene similarity index 94% rename from Content/Scenes/TestImportScene.scene rename to Content/Scenes/AerowalkScene.scene index 26faced..2fb2566 100644 --- a/Content/Scenes/TestImportScene.scene +++ b/Content/Scenes/AerowalkScene.scene @@ -1,7 +1,7 @@ { "ID": "194e05f445ece24ec5448d886e1334df", "TypeName": "FlaxEngine.SceneAsset", - "EngineBuild": 6224, + "EngineBuild": 6225, "Data": [ { "ID": "194e05f445ece24ec5448d886e1334df", @@ -21,9 +21,7 @@ "ID": "c95a3dab492c1b2046ce2191daa2b111", "TypeName": "Game.Q3MapImporter", "ParentID": "194e05f445ece24ec5448d886e1334df", - "V": { - "material": "a1ac1cf4484f3bf8e07c2ea4fddaa74f" -} + "V": {} }, { "ID": "6c66fa4a4a5de8998eb84388d1648317", @@ -32,9 +30,15 @@ "ParentID": "194e05f445ece24ec5448d886e1334df", "Transform": { "Translation": { - "X": -571.0, - "Y": 141.0, - "Z": 587.0 + "X": 55.27312469482422, + "Y": 20.41858673095703, + "Z": -32.30524444580078 + }, + "Orientation": { + "X": 0.0, + "Y": 1.0, + "Z": -0.0, + "W": -4.371138828673793e-8 } }, "StaticFlags": 0 @@ -94,7 +98,7 @@ "ID": "ff6b6db54b5aa08e7286ef86246149ef", "TypeName": "FlaxEngine.UICanvas", "ParentID": "194e05f445ece24ec5448d886e1334df", - "Name": "DefaultHudPrefab 0", + "Name": "DefaultHudPrefab", "Transform": { "Orientation": { "X": 1.0, @@ -141,7 +145,7 @@ }, "Control": "FlaxEngine.GUI.Label", "Data": { - "Text": "eFPS: 121\nuFPS: 120\nrFPS: 120\npFPS: 30\nCon: NaNms\nDirectX11\nGC memory: 23.96294MB", + "Text": "eFPS: 719\nuFPS: 650\nrFPS: 650\npFPS: 30\nCon: NaNms\nDirectX11\nGC memory: 15.66632MB", "TextColor": { "R": 1.0, "G": 1.0, @@ -228,7 +232,7 @@ "Name": "ContainerControl 0", "Transform": { "Translation": { - "X": 44793.0, + "X": 45644.0, "Y": -1.0, "Z": 0.0 } diff --git a/Content/Scenes/CubeScene.scene b/Content/Scenes/CubeScene.scene new file mode 100644 index 0000000..6d31114 --- /dev/null +++ b/Content/Scenes/CubeScene.scene @@ -0,0 +1,329 @@ +{ + "ID": "e7b31f884e9b199f130a00b5bf2b52f0", + "TypeName": "FlaxEngine.SceneAsset", + "EngineBuild": 6225, + "Data": [ + { + "ID": "e7b31f884e9b199f130a00b5bf2b52f0", + "TypeName": "FlaxEngine.Scene", + "LightmapSettings": { + "IndirectLightingIntensity": 1.0, + "GlobalObjectsScale": 1.0, + "ChartsPadding": 3, + "AtlasSize": 1024, + "BounceCount": 1, + "CompressLightmaps": true, + "UseGeometryWithNoMaterials": true, + "Quality": 10 + } + }, + { + "ID": "c95a3dab492c1b2046ce2191daa2b111", + "TypeName": "Game.Q3MapImporter", + "ParentID": "e7b31f884e9b199f130a00b5bf2b52f0", + "V": { + "mapPath": "C:\\dev\\GoakeFlax\\Assets\\Maps\\cube_q3.map" +} + }, + { + "ID": "6c66fa4a4a5de8998eb84388d1648317", + "PrefabID": "2d0e518b47d735c98312dd87cc42d6d7", + "PrefabObjectID": "999a202c47de967d2bdfd09abcc6df4e", + "ParentID": "e7b31f884e9b199f130a00b5bf2b52f0", + "Transform": { + "Translation": { + "X": -571.0, + "Y": 141.0, + "Z": 587.0 + } + }, + "StaticFlags": 0 + }, + { + "ID": "d5c84d67417ddf09908c76b6f0582b43", + "PrefabID": "2d0e518b47d735c98312dd87cc42d6d7", + "PrefabObjectID": "b29a58f545071ca393afaab21faa83ad", + "ParentID": "6c66fa4a4a5de8998eb84388d1648317", + "V": { + "JumpLandSound": "a9ae0bbf438b4e841277f39c3d7c7c8b" +} + }, + { + "ID": "d1a76c334a514c99f8f5b2bd81abae2c", + "PrefabID": "2d0e518b47d735c98312dd87cc42d6d7", + "PrefabObjectID": "a67383834fc3f6f1106e8099e5557e32", + "ParentID": "6c66fa4a4a5de8998eb84388d1648317", + "StaticFlags": 0 + }, + { + "ID": "357077e9405b2a7ba50198bbed8bd5f9", + "PrefabID": "2d0e518b47d735c98312dd87cc42d6d7", + "PrefabObjectID": "b8fc420f4efe96fa2b4042bd98fd3e74", + "ParentID": "d1a76c334a514c99f8f5b2bd81abae2c", + "StaticFlags": 0 + }, + { + "ID": "905d23324e7f98c9f8287e8e49a83981", + "PrefabID": "2d0e518b47d735c98312dd87cc42d6d7", + "PrefabObjectID": "226bdb004e72848777178a9d1f207cbf", + "ParentID": "357077e9405b2a7ba50198bbed8bd5f9", + "StaticFlags": 0 + }, + { + "ID": "89c02cd64b640185d9947ab451453c4c", + "PrefabID": "2d0e518b47d735c98312dd87cc42d6d7", + "PrefabObjectID": "8bd80bca49ac35da66aabaa2e473851d", + "ParentID": "6c66fa4a4a5de8998eb84388d1648317", + "StaticFlags": 0 + }, + { + "ID": "eebdb91647732ad3dfc7528c978cd19c", + "PrefabID": "2d0e518b47d735c98312dd87cc42d6d7", + "PrefabObjectID": "d9d61d314ad79d49ba08059cef50f802", + "ParentID": "6c66fa4a4a5de8998eb84388d1648317", + "StaticFlags": 0 + }, + { + "ID": "3e0f83fe407b2d9ed7c734a62fad0826", + "PrefabID": "2d0e518b47d735c98312dd87cc42d6d7", + "PrefabObjectID": "b377cc03418270d87e8a5b92cb5374ea", + "ParentID": "6c66fa4a4a5de8998eb84388d1648317", + "StaticFlags": 0 + }, + { + "ID": "ff6b6db54b5aa08e7286ef86246149ef", + "TypeName": "FlaxEngine.UICanvas", + "ParentID": "e7b31f884e9b199f130a00b5bf2b52f0", + "Name": "DefaultHudPrefab", + "Transform": { + "Orientation": { + "X": 1.0, + "Y": 4.371138828673793e-8, + "Z": 4.371138828673793e-8, + "W": 1.910685465164705e-15 + } + }, + "V": {} + }, + { + "ID": "791756db4da9af04d7513f9f305e4652", + "TypeName": "Cabrito.FpsScript", + "ParentID": "ff6b6db54b5aa08e7286ef86246149ef", + "V": { + "control": "d15fa816476f9d66ebdfc7ae25c3c6ea" +} + }, + { + "ID": "b20f2b0a486762a15e6a7caf72ae66c2", + "TypeName": "Cabrito.ConsoleScript", + "ParentID": "ff6b6db54b5aa08e7286ef86246149ef", + "V": { + "ConsoleFont": "43f32bec443158643f53699f07b2e09c", + "BackgroundColor": { + "R": 0.0, + "G": 0.0, + "B": 0.0, + "A": 1.0 + } +} + }, + { + "ID": "d15fa816476f9d66ebdfc7ae25c3c6ea", + "TypeName": "FlaxEngine.UIControl", + "ParentID": "ff6b6db54b5aa08e7286ef86246149ef", + "Name": "FPSUIControl", + "Transform": { + "Translation": { + "X": 0.0, + "Y": 730.0, + "Z": 0.0 + } + }, + "Control": "FlaxEngine.GUI.Label", + "Data": { + "Text": "eFPS: 626\nuFPS: 665\nrFPS: 665\npFPS: 30\nCon: NaNms\nDirectX11\nGC memory: 16.89747MB", + "TextColor": { + "R": 1.0, + "G": 1.0, + "B": 1.0, + "A": 1.0 + }, + "TextColorHighlighted": { + "R": 1.0, + "G": 1.0, + "B": 1.0, + "A": 1.0 + }, + "HorizontalAlignment": 0, + "VerticalAlignment": 0, + "Wrapping": 0, + "Font": { + "Font": "4508d98f4aa1f0bd59362b81d47e38f4", + "Size": 10 + }, + "Material": null, + "Margin": { + "Left": 0.0, + "Right": 0.0, + "Top": 0.0, + "Bottom": 0.0 + }, + "ClipText": false, + "AutoWidth": true, + "AutoHeight": true, + "AutoFitText": false, + "AutoFitTextRange": { + "X": 0.1, + "Y": 100.0 + }, + "ClipChildren": true, + "CullChildren": true, + "AnchorMin": { + "X": 0.0, + "Y": 1.0 + }, + "AnchorMax": { + "X": 0.0, + "Y": 1.0 + }, + "Offsets": { + "Left": 0.0, + "Right": 143.0, + "Top": -80.0, + "Bottom": 112.0 + }, + "Scale": { + "X": 1.0, + "Y": 1.0 + }, + "Pivot": { + "X": 0.5, + "Y": 0.5 + }, + "Shear": { + "X": 0.0, + "Y": 0.0 + }, + "Rotation": 0.0, + "BackgroundColor": { + "R": 0.0, + "G": 0.0, + "B": 0.0, + "A": 0.0 + }, + "Enabled": true, + "Visible": true +} + }, + { + "ID": "7261228a42b41682cf48e89d910ddcff", + "TypeName": "FlaxEngine.UIControl", + "ParentID": "ff6b6db54b5aa08e7286ef86246149ef", + "Name": "UIControl" + }, + { + "ID": "bd1e2ea8425a68342d01f4975e4cdf3e", + "TypeName": "FlaxEngine.UIControl", + "ParentID": "ff6b6db54b5aa08e7286ef86246149ef", + "Name": "ContainerControl 0", + "Transform": { + "Translation": { + "X": 45644.0, + "Y": -1.0, + "Z": 0.0 + } + }, + "Control": "FlaxEngine.GUI.ContainerControl", + "Data": { + "ClipChildren": true, + "CullChildren": true, + "AnchorMin": { + "X": 1.0, + "Y": 0.5 + }, + "AnchorMax": { + "X": 1.0, + "Y": 0.5 + }, + "Offsets": { + "Left": 44188.0, + "Right": 100.0, + "Top": -406.0, + "Bottom": 30.0 + }, + "Scale": { + "X": 1.0, + "Y": 1.0 + }, + "Pivot": { + "X": 0.5, + "Y": 0.5 + }, + "Shear": { + "X": 0.0, + "Y": 0.0 + }, + "Rotation": 0.0, + "BackgroundColor": { + "R": 0.0, + "G": 0.0, + "B": 0.0, + "A": 0.0 + }, + "Enabled": true, + "Visible": true +} + }, + { + "ID": "9b0c532d4247061970c809a0af58c82a", + "TypeName": "FlaxEngine.PostFxVolume", + "ParentID": "e7b31f884e9b199f130a00b5bf2b52f0", + "Name": "PostFxVolume 0", + "Size": { + "X": 10.0, + "Y": 10.0, + "Z": 10.0 + }, + "IsBounded": false, + "Settings": { + "AO": { + "OverrideFlags": 1, + "Enabled": false + }, + "Bloom": { + "OverrideFlags": 1, + "Enabled": false + }, + "ToneMapping": { + "OverrideFlags": 4, + "Mode": 0 + }, + "ColorGrading": {}, + "EyeAdaptation": { + "OverrideFlags": 1, + "Mode": 0 + }, + "CameraArtifacts": { + "OverrideFlags": 1, + "VignetteIntensity": 0.0, + "GrainAmount": 0.0 + }, + "LensFlares": {}, + "DepthOfField": {}, + "MotionBlur": { + "OverrideFlags": 1, + "Enabled": false + }, + "SSR": { + "OverrideFlags": 1, + "Intensity": 0.0 + }, + "AA": { + "OverrideFlags": 1, + "Mode": 0 + }, + "PostFxMaterials": {} + } + } + ] +} \ No newline at end of file diff --git a/Content/Settings/EngineSettings/TimeSettings.json b/Content/Settings/EngineSettings/TimeSettings.json index 54914a3..943fcda 100644 --- a/Content/Settings/EngineSettings/TimeSettings.json +++ b/Content/Settings/EngineSettings/TimeSettings.json @@ -3,9 +3,9 @@ "TypeName": "FlaxEditor.Content.Settings.TimeSettings", "EngineBuild": 6224, "Data": { - "UpdateFPS": 0.0, - "PhysicsFPS": 60.0, - "DrawFPS": 0.0, + "UpdateFPS": 240.0, + "PhysicsFPS": 120.0, + "DrawFPS": 240.0, "TimeScale": 1.0, "MaxUpdateDeltaTime": 0.1 } diff --git a/Content/Settings/EngineSettings/WindowsPlatformSettings.json b/Content/Settings/EngineSettings/WindowsPlatformSettings.json index 7773f4a..3ed1e99 100644 --- a/Content/Settings/EngineSettings/WindowsPlatformSettings.json +++ b/Content/Settings/EngineSettings/WindowsPlatformSettings.json @@ -1,7 +1,7 @@ { "ID": "4a5eec97484253fed72934860ae62c40", "TypeName": "FlaxEditor.Content.Settings.WindowsPlatformSettings", - "EngineBuild": 6221, + "EngineBuild": 6225, "Data": { "WindowMode": 0, "ScreenWidth": 1280, diff --git a/Content/Textures/missing.flax b/Content/Textures/missing.flax new file mode 100644 index 0000000000000000000000000000000000000000..c1d8dbdefc3981968dad7ac83a22718bc4b03e08 GIT binary patch literal 869 zcmd5(%}N6?5RN|=Z$5xtg5ah04+Y&@UEHN=rSu0CD-zo2Hn^J&Nw%ztk5D{%@d$akB=)Z5cV`{90lfApeW>A`B(BOzfV zC3{4WfN=Cc@}z}6C59wKVf2^wjO12Vdx4PUtkHkdxR~jh{KD3dV?JA!&dzMJ47`7NAo`XauH6G@#79JASFp&dA1%+VT4n;#9gOFLzRFg`)3Sl*l- ZP+4}6iW@-LXXm&0FV-d#`(<{+_#N4p@=gE% literal 0 HcmV?d00001 diff --git a/Source/Game/Q3MapImporter.cs b/Source/Game/Q3MapImporter.cs index 99109aa..5917713 100644 --- a/Source/Game/Q3MapImporter.cs +++ b/Source/Game/Q3MapImporter.cs @@ -30,15 +30,15 @@ namespace Game public class Q3MapImporter : Script { //private string mapPath = @"C:\dev\GoakeFlax\Assets\Maps\cube_q1.map"; - private string mapPath = @"C:\dev\GoakeFlax\Assets\Maps\cube_q3.map"; + //private string mapPath = @"C:\dev\GoakeFlax\Assets\Maps\cube_q3.map"; //private string mapPath = @"C:\dev\GoakeFlax\Assets\Maps\cube_valve.map"; //private string mapPath = @"C:\dev\GoakeFlax\Assets\Maps\dm4.map"; - //private string mapPath = @"C:\dev\Goake\maps\aerowalk\aerowalk.map"; + public string mapPath = @"C:\dev\Goake\maps\aerowalk\aerowalk.map"; //private string mapPath = @"C:\dev\GoakeFlax\Assets\Maps\problematic.map"; Model model; - public MaterialBase material; + private MaterialBase missingMaterial; static void QuickHull(Vector3[] points, out Vector3[] outVertices) { @@ -188,9 +188,15 @@ namespace Game public override void OnStart() { - byte[] mapChars = File.ReadAllBytes(mapPath); + { + var workDir = Directory.GetCurrentDirectory(); + var matBasePath = Path.Combine(workDir, "Content", "Materials"); + var assetPath = Path.Combine(matBasePath, "missing.flax"); + missingMaterial = Content.Load(assetPath); + } Stopwatch sw = Stopwatch.StartNew(); + byte[] mapChars = File.ReadAllBytes(mapPath); root = MapParser.Parse(mapChars); sw.Stop(); @@ -201,7 +207,6 @@ namespace Game if (!oneMesh) { - Dictionary materials = new Dictionary(); { BrushMaterialList brushMaterialList = Engine.GetCustomSettings("BrushMaterialsLegacy") @@ -213,9 +218,8 @@ namespace Game } } - - var mapRootActor = Actor.AddChild(); - mapRootActor.Name = "MapRootActor"; + var worldSpawnActor = Actor.AddChild(); + worldSpawnActor.Name = "WorldSpawn"; List brushGeometries = new List(root.entities[0].brushes.Count); @@ -262,8 +266,8 @@ namespace Game else { Console.Print("Material '" + textureName + "' not found for brush"); - materials.Add(textureName, material); - brushMaterial = material; + materials.Add(textureName, missingMaterial); + brushMaterial = missingMaterial; } } brushMaterials.Add(textureName, brushMaterial); @@ -416,7 +420,7 @@ namespace Game { StaticModel childModel = Actor.AddChild(); childModel.Name = "Brush_" + brushIndex; - childModel.Parent = mapRootActor; + childModel.Parent = worldSpawnActor; childModel.Model = geom.model; childModel.Position = geom.offset; @@ -582,7 +586,7 @@ namespace Game StaticModel childModel = Actor.AddChild(); childModel.Name = "MapModel"; childModel.Model = model; - childModel.SetMaterial(0, material); + childModel.SetMaterial(0, missingMaterial); CollisionData collisionData = Content.CreateVirtualAsset(); if (collisionData.CookCollision(CollisionDataType.TriangleMesh, vertices.ToArray(),