public void MoveHead() { try { var subpart = npcCrewBlock.GetSubpart("NPC_Engineer_Head"); var rotation = 0.003f; var initialMatrix = subpart.PositionComp.LocalMatrix; if (AnimationLoopHead == 200) { AnimationLoopHead = 0; } if (AnimationLoopHead == 0) { TranslationTimeHead = -1; } if (AnimationLoopHead == 100) { TranslationTimeHead = 1; } var rotationMatrix = MatrixD.CreateRotationY(rotation * TranslationTimeHead); var matrix = rotationMatrix * initialMatrix; subpart.PositionComp.LocalMatrix = matrix; AnimationLoopHead++; } catch (Exception e) { MyVisualScriptLogicProvider.ShowNotificationToAll("Update Error" + e, 2500, "Red"); } }
public void MoveHead() { try { var subpart = npcCrewBlock.GetSubpart("NPC_Production_Head"); var rotation = 0.002f; var initialMatrix = subpart.PositionComp.LocalMatrix; if (AnimationLoopHead == 300) { AnimationLoopHead = 0; TranslationTimeHead = -1; } if (AnimationLoopHead == 150) { TranslationTimeHead = 1; } var rotationMatrix = MatrixD.CreateRotationY(rotation * TranslationTimeHead); //subpart.Value.PositionComp.LocalMatrix = rotationMatrix; var matrix = rotationMatrix * initialMatrix; subpart.PositionComp.LocalMatrix = matrix; AnimationLoopHead++; /*var subparts = (cubeBlock as MyEntity).Subparts; * foreach (var subpart in subparts) * { * Random rnd = new Random(); * double rotation = NextDouble(0.0003, 0.0010); * var initialMatrix = subpart.Value.PositionComp.LocalMatrix; * * if (AnimationLoop == 300) AnimationLoop = 0; * if (AnimationLoop == 0) TranslationTime = -1; * if (AnimationLoop == 150) TranslationTime = 1; * * var rotationMatrix = MatrixD.CreateRotationX(rotation * TranslationTime) * MatrixD.CreateRotationY(rotation * TranslationTime); * //subpart.Value.PositionComp.LocalMatrix = rotationMatrix; * var matrix = rotationMatrix * initialMatrix; * subpart.Value.PositionComp.LocalMatrix = matrix; * AnimationLoop++; * } */ } catch (Exception e) { MyVisualScriptLogicProvider.ShowNotificationToAll("Update Error" + e, 2500, "Red"); } }