public void DrawPrimitives() { for (int i = 0; i < FlverSkeleton.Count; i++) { var prevBoneColor = DBG.COLOR_FLVER_BONE; if (DebugDrawTransformOfFlverBoneIndex >= 0) { if (DebugDrawTransformOfFlverBoneIndex == i) { DBG.COLOR_FLVER_BONE = Main.Colors.ColorHelperFlverBoneBoundingBox * 0.75f; } else { DBG.COLOR_FLVER_BONE = Main.Colors.ColorHelperFlverBone * 0.5f; } } FlverSkeleton[i].DrawPrim(MODEL.CurrentTransform.WorldMatrix); DBG.COLOR_FLVER_BONE = Main.Colors.ColorHelperFlverBone = prevBoneColor; if (i == DebugDrawTransformOfFlverBoneIndex || (FlverSkeleton[i].EnablePrimDraw && DebugDrawTransformOfFlverBoneIndex < 0)) { if (DBG.GetCategoryEnableDraw(DebugPrimitives.DbgPrimCategory.FlverBone)) { DebugDrawTransformOfFlverBonePrim.Transform = new Transform( Matrix.CreateRotationY(MathHelper.Pi) * Matrix.CreateScale(0.1f, 0.1f, 0.1f) * FlverSkeleton[i].CurrentMatrix); if (DebugDrawTransformOfFlverBoneIndex == i) { DebugDrawTransformOfFlverBonePrim.OverrideColor = Main.Colors.ColorHelperFlverBone; } else { DebugDrawTransformOfFlverBonePrim.OverrideColor = new Color(Main.Colors.ColorHelperFlverBone.R, Main.Colors.ColorHelperFlverBone.G, Main.Colors.ColorHelperFlverBone.B, (byte)(255 / 4)); } DebugDrawTransformOfFlverBonePrim.Draw(null, MODEL.CurrentTransform.WorldMatrix); } if (i == DebugDrawTransformOfFlverBoneIndex || DBG.GetCategoryEnableNameDraw(DebugPrimitives.DbgPrimCategory.FlverBone)) { DebugDrawTransformOfFlverBoneTextDrawer.Clear(); DebugDrawTransformOfFlverBoneTextDrawer.AppendLine( FlverSkeleton[i].Name, Main.Colors.ColorHelperFlverBone); DebugDrawTransformOfFlverBoneTextDrawer.Position3D = Vector3.Transform(Vector3.Zero, FlverSkeleton[i].CurrentMatrix * MODEL.CurrentTransform.WorldMatrix); GFX.SpriteBatchBeginForText(); DebugDrawTransformOfFlverBoneTextDrawer.Draw(); GFX.SpriteBatchEnd(); } } } }
public void DrawPrimText(Matrix world, bool isForce, int globalIDOffset) { if (DisableTextDraw && !isForce) { return; } SpawnPrinter.Clear(); bool hasSpawnStuff = !(SFXSpawnIDs.Count == 0 && BulletSpawnIDs.Count == 0 && MiscSpawnTexts.Count == 0); //string dmyIDTxt = (ReferenceID == 200) ? $"[{ReferenceID} (All Over Body)]" : $"[{ReferenceID}]"; string dmyIDTxt = $"{(ReferenceID + globalIDOffset)}"; if (hasSpawnStuff && !isForce) { SpawnPrinter.AppendLine(dmyIDTxt, GetCurrentSpawnColor()); } else if (DBG.GetCategoryEnableNameDraw(DbgPrimCategory.DummyPoly) || isForce) { SpawnPrinter.AppendLine(dmyIDTxt, DBG.COLOR_DUMMY_POLY); } Vector3 currentPos = Vector3.Transform(Vector3.Zero, CurrentMatrix * world); if (hasSpawnStuff && !isForce) { foreach (var sfx in SFXSpawnIDs) { SpawnPrinter.AppendLine($"SFX {sfx}", ColorSpawnSFX); } foreach (var bullet in BulletSpawnIDs) { SpawnPrinter.AppendLine($"Bullet {bullet}", ColorSpawnBulletsMisc); } foreach (var misc in MiscSpawnTexts) { SpawnPrinter.AppendLine(misc, ColorSpawnBulletsMisc); } } if (ShowAttack != null && !isForce) { string atkName = ShowAttack.Name; if (!string.IsNullOrWhiteSpace(atkName) && atkName.Length > 64) { atkName = atkName.Substring(0, 64) + "..."; } SpawnPrinter.AppendLine($"ATK {ShowAttack.ID}" + (!string.IsNullOrWhiteSpace(atkName) ? $" {atkName}" : ""), ShowAttack.Hits[0].GetColor()); } if (SpawnPrinter.LineCount > 0) { SpawnPrinter.Position3D = currentPos; SpawnPrinter.Draw(); } }