private void SyncMatrixFrames(bool first) { this.ApplyPermissions(); List <GameEntity> children = new List <GameEntity>(); this.SpawnedGhostEntity.GetChildrenRecursive(ref children); foreach (GameEntity gameEntity in children) { GameEntity item = gameEntity; if (SpawnerEntityEditorHelper.HasField((object)this.spawner_, item.Name, false)) { if (first) { MatrixFrame fieldValue = (MatrixFrame)SpawnerEntityEditorHelper.GetFieldValue((object)this.spawner_, item.Name); if (!fieldValue.IsZero) { item.SetFrame(ref fieldValue); } } else { SpawnerEntityEditorHelper.SetSpawnerMatrixFrame((object)this.spawner_, item.Name, item.GetFrame()); } } else { MatrixFrame frame = this.stableChildrenFrames.Find((Predicate <KeyValuePair <string, MatrixFrame> >)(x => x.Key == item.Name)).Value; if (!frame.NearlyEquals(item.GetFrame())) { item.SetFrame(ref frame); this.SpawnedGhostEntity.UpdateTriadFrameForEditorForAllChildren(); } } } }
private void ChangeStableChildMatrixFrame(string childName, MatrixFrame matrixFrame) { this.stableChildrenFrames.RemoveAll((Predicate <KeyValuePair <string, MatrixFrame> >)(x => x.Key == childName)); this.stableChildrenFrames.Add(new KeyValuePair <string, MatrixFrame>(childName, matrixFrame)); if (!SpawnerEntityEditorHelper.HasField((object)this.spawner_, childName, true)) { return; } SpawnerEntityEditorHelper.SetSpawnerMatrixFrame((object)this.spawner_, childName, matrixFrame); }
private void GetChildrenInitialFrames() { List <GameEntity> children = new List <GameEntity>(); this.SpawnedGhostEntity.GetChildrenRecursive(ref children); foreach (GameEntity gameEntity in children) { if (!SpawnerEntityEditorHelper.HasField((object)this.spawner_, gameEntity.Name, false)) { this.stableChildrenFrames.Add(new KeyValuePair <string, MatrixFrame>(gameEntity.Name, gameEntity.GetFrame())); } } }