public void AddModifier(IModifier3D modifier) { modifier.Owner = this; for (int i = 0; i <= modifiers.Length; i++) { if (i == modifiers.Length) { IModifier3D[] newModifiersArray = new IModifier3D[modifiers.Length + 4]; for (int h = 0; h < modifiers.Length; h++) { newModifiersArray[h] = modifiers[h]; } newModifiersArray[modifiers.Length] = modifier; modifiers = newModifiersArray; } if (modifiers[i] == null) { modifiers[i] = modifier; break; } } }
public void AddModifier(IModifier3D modifier) { plane.AddModifier(modifier); }
public void ClearModifiers() { modifiers = new IModifier3D[4]; }
private void reload(string filePath, DynamicContentManager Content) { PlayerWorld newState = Content.Load <PlayerWorld>(filePath); TexturedPlane oldPlane = plane; plane = newState.plane; plane.Color = oldPlane.Color; plane.WorldPosition = oldPlane.WorldPosition; //planeOrbit = (OrbitModifier3D)planeOrbit.DeepCopy(plane); //plane.AddModifier(planeOrbit); IsVisible = newState.isVisible; PrimaryColor = newState.PrimaryColor; SecondaryColor = newState.SecondaryColor; Name = newState.Name; Description = newState.Description; PlayerName = newState.PlayerName; if (newState.CursorDetectRadius > 0) { CursorDetectRadius = newState.CursorDetectRadius; } if (gateLevel != newState.gateLevel && PlayerEntered) { setGates(gateLevel); } gateLevel = newState.gateLevel; for (int i = 0; i < oldPlane.Modifiers.Length; i++) { if (oldPlane.Modifiers[i] != null) { IModifier3D newMod = oldPlane.Modifiers[i].DeepCopy(plane); if (oldPlane.Modifiers[i] == planeOrbit) { planeOrbit = (OrbitModifier3D)newMod; } plane.AddModifier(newMod); } } if (PlayerEntered != newState.PlayerEntered) { PlayerEntered = newState.PlayerEntered; for (int i = 0; i < lowerSpirograph.Modifiers.Length; i++) { if (lowerSpirograph.Modifiers[i] != null && lowerSpirograph.Modifiers[i] is ColorModifier3D) { lowerSpirograph.Modifiers[i].Remove(); i--; } } for (int i = 0; i < plane.Modifiers.Length; i++) { if (plane.Modifiers[i] != null && plane.Modifiers[i] is ColorModifier3D) { plane.Modifiers[i].Remove(); i--; } } if (PlayerEntered) { lowerSpirograph.AddModifier(new ColorModifier3D(PrimaryColor, true, lowerSpirograph, 90)); plane.AddModifier(new ColorModifier3D(Color.White, true, plane, 90)); setGates(gateLevel); } else { lowerSpirograph.AddModifier(new ColorModifier3D(Color.Lerp(PrimaryColor, Color.Black, 0.8f), true, lowerSpirograph, 90)); plane.AddModifier(new ColorModifier3D(new Color(50, 50, 50), true, plane, 90)); setGates(0); } } //else if (!PlayerEntered) // setGates(0); }