Exemple #1
0
            public PivotState(PivotsHost host, ArtObjectInstance handleAo)
            {
                ServiceHelper.InjectServices((object)this);
                this.Host               = host;
                this.HandleAo           = handleAo;
                this.Group              = this.LevelManager.Groups[handleAo.ActorSettings.AttachedGroup.Value];
                this.AttachedArtObjects = Enumerable.ToArray <ArtObjectInstance>(Enumerable.Where <ArtObjectInstance>((IEnumerable <ArtObjectInstance>) this.LevelManager.ArtObjects.Values, (Func <ArtObjectInstance, bool>)(x =>
                {
                    int?local_0 = x.ActorSettings.AttachedGroup;
                    int local_1 = this.Group.Id;
                    if ((local_0.GetValueOrDefault() != local_1 ? 0 : (local_0.HasValue ? 1 : 0)) != 0)
                    {
                        return(x != this.HandleAo);
                    }
                    else
                    {
                        return(false);
                    }
                })));
                this.AttachedAoOrigins   = Enumerable.ToArray <Vector3>(Enumerable.Select <ArtObjectInstance, Vector3>((IEnumerable <ArtObjectInstance>) this.AttachedArtObjects, (Func <ArtObjectInstance, Vector3>)(x => x.Position)));
                this.AttachedAoRotations = Enumerable.ToArray <Quaternion>(Enumerable.Select <ArtObjectInstance, Quaternion>((IEnumerable <ArtObjectInstance>) this.AttachedArtObjects, (Func <ArtObjectInstance, Quaternion>)(x => x.Rotation)));
                foreach (TrileInstance trileInstance in this.Group.Triles)
                {
                    trileInstance.ForceSeeThrough = true;
                }
                float num = Enumerable.Max <TrileInstance>(Enumerable.Where <TrileInstance>((IEnumerable <TrileInstance>) this.Group.Triles, (Func <TrileInstance, bool>)(x => !x.Trile.Immaterial)), (Func <TrileInstance, float>)(x => x.Position.Y));

                foreach (TrileInstance trileInstance in this.Group.Triles)
                {
                    if ((double)trileInstance.Position.Y == (double)num)
                    {
                        this.TopLayer.Add(trileInstance);
                    }
                }
                if (this.LevelManager.Name == "WATER_TOWER" && this.LevelManager.LastLevelName == "LIGHTHOUSE")
                {
                    if (this.GameState.SaveData.ThisLevel.PivotRotations.ContainsKey(handleAo.Id))
                    {
                        this.GameState.SaveData.ThisLevel.PivotRotations[handleAo.Id] = 0;
                    }
                }
                else
                {
                    int initialSpins;
                    if (this.GameState.SaveData.ThisLevel.PivotRotations.TryGetValue(handleAo.Id, out initialSpins) && initialSpins != 0)
                    {
                        this.ForceSpinTo(initialSpins);
                    }
                }
                if (!this.GameState.SaveData.ThisLevel.InactiveArtObjects.Contains(this.HandleAo.Id))
                {
                    return;
                }
                this.HandleAo.Enabled = false;
            }
Exemple #2
0
 public PivotState(PivotsHost host, ArtObjectInstance handleAo)
 {
   ServiceHelper.InjectServices((object) this);
   this.Host = host;
   this.HandleAo = handleAo;
   this.Group = this.LevelManager.Groups[handleAo.ActorSettings.AttachedGroup.Value];
   this.AttachedArtObjects = Enumerable.ToArray<ArtObjectInstance>(Enumerable.Where<ArtObjectInstance>((IEnumerable<ArtObjectInstance>) this.LevelManager.ArtObjects.Values, (Func<ArtObjectInstance, bool>) (x =>
   {
     int? local_0 = x.ActorSettings.AttachedGroup;
     int local_1 = this.Group.Id;
     if ((local_0.GetValueOrDefault() != local_1 ? 0 : (local_0.HasValue ? 1 : 0)) != 0)
       return x != this.HandleAo;
     else
       return false;
   })));
   this.AttachedAoOrigins = Enumerable.ToArray<Vector3>(Enumerable.Select<ArtObjectInstance, Vector3>((IEnumerable<ArtObjectInstance>) this.AttachedArtObjects, (Func<ArtObjectInstance, Vector3>) (x => x.Position)));
   this.AttachedAoRotations = Enumerable.ToArray<Quaternion>(Enumerable.Select<ArtObjectInstance, Quaternion>((IEnumerable<ArtObjectInstance>) this.AttachedArtObjects, (Func<ArtObjectInstance, Quaternion>) (x => x.Rotation)));
   foreach (TrileInstance trileInstance in this.Group.Triles)
     trileInstance.ForceSeeThrough = true;
   float num = Enumerable.Max<TrileInstance>(Enumerable.Where<TrileInstance>((IEnumerable<TrileInstance>) this.Group.Triles, (Func<TrileInstance, bool>) (x => !x.Trile.Immaterial)), (Func<TrileInstance, float>) (x => x.Position.Y));
   foreach (TrileInstance trileInstance in this.Group.Triles)
   {
     if ((double) trileInstance.Position.Y == (double) num)
       this.TopLayer.Add(trileInstance);
   }
   if (this.LevelManager.Name == "WATER_TOWER" && this.LevelManager.LastLevelName == "LIGHTHOUSE")
   {
     if (this.GameState.SaveData.ThisLevel.PivotRotations.ContainsKey(handleAo.Id))
       this.GameState.SaveData.ThisLevel.PivotRotations[handleAo.Id] = 0;
   }
   else
   {
     int initialSpins;
     if (this.GameState.SaveData.ThisLevel.PivotRotations.TryGetValue(handleAo.Id, out initialSpins) && initialSpins != 0)
       this.ForceSpinTo(initialSpins);
   }
   if (!this.GameState.SaveData.ThisLevel.InactiveArtObjects.Contains(this.HandleAo.Id))
     return;
   this.HandleAo.Enabled = false;
 }