diff --git a/CommunityBugFixCollection/BetterGridWorldPreset.cs b/CommunityBugFixCollection/BetterGridWorldPreset.cs index f60885d..1282c53 100644 --- a/CommunityBugFixCollection/BetterGridWorldPreset.cs +++ b/CommunityBugFixCollection/BetterGridWorldPreset.cs @@ -1,5 +1,8 @@ using Elements.Core; using FrooxEngine; +using FrooxEngine.FrooxEngine.ProtoFlux.CoreNodes; +using FrooxEngine.ProtoFlux.Runtimes.Execution.Nodes; +using FrooxEngine.ProtoFlux.Runtimes.Execution.Nodes.Operators; using HarmonyLib; using Renderite.Shared; @@ -16,14 +19,16 @@ private static bool Prefix(World w) if (!Enabled) return true; - WorldPresets.BlankWorld(w); + WorldPresets.SetupWorldControllers(w); + WorldPresets.SetupSimpleSkyBox(w, WorldPresets.SetupSimpleWorldLighting(w)); var ground = w.AddSlot("Ground"); - ground.LocalRotation = floatQ.Euler(90, 0, 0); var attachedModel = ground.AttachMesh(); - attachedModel.mesh.Size.Value = 1000 * float2.One; + attachedModel.mesh.Facing = float3.Up; attachedModel.mesh.Points.Value = 20 * int2.One; + attachedModel.mesh.Size.Value = 1000 * float2.One; + attachedModel.mesh.UVScale.DriveFrom(attachedModel.mesh.Size, true); var gridTexture = ground.AttachComponent(); gridTexture.BackgroundColor.Value = new colorX(0.07f, 0.08f, 0.11f); @@ -45,15 +50,32 @@ private static bool Prefix(World w) majorGrid.Offset.Value = int2.Zero; attachedModel.material.AlbedoTexture.Target = gridTexture; - attachedModel.material.TextureScale.DriveFrom(attachedModel.mesh.Size); attachedModel.material.Smoothness.Value = 0f; var boxCollider = ground.AttachComponent(); - var swizzle = ground.AttachComponent(); - swizzle.Source.Target = attachedModel.mesh.Size; - swizzle.Target.Target = boxCollider.Size; + boxCollider.Offset.Value = new(0, -0.5f, 0); boxCollider.SetCharacterCollider(); + var swizzleSlot = ground.AddSlot("Collider Swizzle"); + + var meshSizeSource = swizzleSlot.AttachComponent>(); + meshSizeSource.TrySetRootSource(attachedModel.mesh.Size); + + var unpackSize = swizzleSlot.AttachComponent(); + unpackSize.V.Target = meshSizeSource; + + var oneConstant = swizzleSlot.AttachComponent>(); + oneConstant.Value.Value = 1; + + var packSize = swizzleSlot.AttachComponent(); + packSize.X.Target = unpackSize.X; + packSize.Y.Target = oneConstant; + packSize.Z.Target = unpackSize.Y; + + var colliderSizeDrive = swizzleSlot.AttachComponent>(); + colliderSizeDrive.TrySetRootTarget(boxCollider.Size); + colliderSizeDrive.Value.Target = packSize; + return false; } } diff --git a/CommunityBugFixCollection/CommunityBugFixCollection.csproj b/CommunityBugFixCollection/CommunityBugFixCollection.csproj index ac2eba5..4194b95 100644 --- a/CommunityBugFixCollection/CommunityBugFixCollection.csproj +++ b/CommunityBugFixCollection/CommunityBugFixCollection.csproj @@ -1,4 +1,4 @@ - + CommunityBugFixCollection Community Bug-Fix Collection