Exemple #1
0
        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();
                    }
                }
            }
        }
Exemple #2
0
            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();
                }
            }