private void SyncTelescope(Telescope scope, SyncSystem syncer) { float rotRad = MathHelper.DegreesToRadians(syncer.GetTrackValue(telescopeRotation)); scope.tower.Transform.SetRotation(rotRad); float elevRad = MathHelper.DegreesToRadians(syncer.GetTrackValue(telescopeElevation)); scope.antenna.Transform.SetRotation(elevRad); }
// SYNC AND DRAW public void Sync(SyncSystem syncer) { SyncCamera(syncer); SyncFadeout(syncer); SyncSkybox(syncer); int s = syncer.Scene; if (s == mountainsNumber) { SyncTelescope(telescope, syncer); SyncGreets(syncer, title); lightController.syncing = false; } else if (s == moonNumber) { SyncMonolith(syncer); SyncGreets(syncer, group_greetings); lightController.syncing = false; } else if (s == bunnyNumber) { // Sync lights SyncBunny(syncer); SyncLightMeshList(bunnyLights, syncer.GetTrackValue(bunnyLightProgress)); lightController.syncing = true; lightController.SyncLightList(bunnyLights); } else if (s == warpNumber) { SyncBunny(syncer); SyncLightMeshList(bunnyLights, syncer.GetTrackValue(bunnyLightProgress)); lightController.syncing = true; lightController.SyncLightList(bunnyLights); } else if (s == seaNumber || s == crystalsNumber) { SyncMonolith(syncer); SyncGreets(syncer, credits); // Turn down lights SyncLightMeshList(bunnyLights, syncer.GetTrackValue(bunnyLightProgress)); lightController.syncing = true; lightController.SyncLightList(bunnyLights); } if (s == crystalsNumber) { lightController.syncing = false; // Crystals SyncCrystals(syncer); } }
private void SyncSkybox(SyncSystem syncer) { // Rotate star sphere world matrix // Rotate lighting float rot = syncer.GetTrackValue(skyRotation) * MathHelper.TwoPi; starSkyBox.Transform.SetRotation(rot); mountainLight.Direction = new Vector3(new Vector4(0, 0, 1, 0) * starSkyBox.Transform.rotationTransformMatrix); }
public void SyncMonolith(SyncSystem syncer) { float rotations = syncer.GetTrackValue(monolithRotation); // Skip half of turn so that it seems that text is on both sides // 0.0 is facing camera // Pi. is 180d // start is -90 while (rotations > 1.0f) { rotations -= 1.0f; } monolith.Transform.SetRotation(rotations * MathHelper.Pi - MathHelper.PiOver2); Vector3 monoPos = monolith.Transform.GetWorldPosition(); monolith.Transform.Translation = new Vector4(monoPos.X, syncer.GetTrackValue(monolithElevation), monoPos.Z, 1.0f); }
// SYNC FUNCTIONS private void SyncCamera(SyncSystem syncer) { Renderer renderer = Renderer.GetSingleton(); renderer.SyncCameraFrame(); CameraComponent camera = renderer.GetCamera(); camera.FOV = 90 + syncer.GetTrackValue(cameraFOV); camera.CreateMatrices(); }
public void SyncGreets(SyncSystem syncer, List <GreetPage> greetPages) { float alphaPerPage = 1.0f / greetPages.Count; float wholeAlpha = syncer.GetTrackValue(textAlpha); for (int pi = 0; pi < greetPages.Count; pi++) { GreetPage p = greetPages[pi]; p.progress = DivideToPages(alphaPerPage, pi, wholeAlpha); float alphaPerGreet = 1.0f / p.greets.Count; for (int gi = 0; gi < p.greets.Count; gi++) { Greeting g = p.greets[gi]; g.alpha = DivideToItems(alphaPerGreet, gi, p.progress); } } }
void SyncBunny(SyncSystem syncer) { bunnyMesh.Transform.SetRotation(syncer.GetTrackValue(bunnyRotation) * MathHelper.Pi); }
private void SyncFadeout(SyncSystem syncer) { fadeAlpha = syncer.GetTrackValue(fadeoutAlpha); }