Exemple #1
0
 public virtual void PointTo(SETItem item, Vertex location)
 {
 }
Exemple #2
0
 public override List <RenderInfo> Render(SETItem item, Device dev, EditorCamera camera, MatrixStack transform)
 {
     if (item.Scale.X == 0 || item.Scale.X == 5 || item.Scale.X == 10 || item.Scale.X == -5)
     {
         List <RenderInfo> result = new List <RenderInfo>();
         transform.Push();
         transform.NJTranslate(item.Position);
         transform.NJRotateObject(item.Rotation);
         result.AddRange(model1.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, ObjectHelper.GetTextures("OBJ_BEACH"), meshes1));
         if (item.Selected)
         {
             result.AddRange(model1.DrawModelTreeInvert(transform, meshes1));
         }
         transform.Pop();
         return(result);
     }
     else if (item.Scale.X == 1 || item.Scale.X == 6 || item.Scale.X == 11 || item.Scale.X == -1)
     {
         List <RenderInfo> result = new List <RenderInfo>();
         transform.Push();
         transform.NJTranslate(item.Position);
         transform.NJRotateObject(item.Rotation);
         result.AddRange(model2.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, ObjectHelper.GetTextures("OBJ_BEACH"), meshes2));
         if (item.Selected)
         {
             result.AddRange(model2.DrawModelTreeInvert(transform, meshes2));
         }
         transform.Pop();
         return(result);
     }
     else if (item.Scale.X == 2 || item.Scale.X == 7 || item.Scale.X == 12 || item.Scale.X == -2)
     {
         List <RenderInfo> result = new List <RenderInfo>();
         transform.Push();
         transform.NJTranslate(item.Position);
         transform.NJRotateObject(item.Rotation);
         result.AddRange(model3.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, ObjectHelper.GetTextures("OBJ_BEACH"), meshes3));
         if (item.Selected)
         {
             result.AddRange(model3.DrawModelTreeInvert(transform, meshes3));
         }
         transform.Pop();
         return(result);
     }
     else if (item.Scale.X == 3 || item.Scale.X == 8 || item.Scale.X == 13 || item.Scale.X == -3)
     {
         List <RenderInfo> result = new List <RenderInfo>();
         transform.Push();
         transform.NJTranslate(item.Position);
         transform.NJRotateObject(item.Rotation);
         result.AddRange(model4.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, ObjectHelper.GetTextures("OBJ_BEACH"), meshes4));
         if (item.Selected)
         {
             result.AddRange(model4.DrawModelTreeInvert(transform, meshes4));
         }
         transform.Pop();
         return(result);
     }
     else if (item.Scale.X == 4 || item.Scale.X == 9 || item.Scale.X == 14 || item.Scale.X == -4)
     {
         List <RenderInfo> result = new List <RenderInfo>();
         transform.Push();
         transform.NJTranslate(item.Position);
         transform.NJRotateObject(item.Rotation);
         result.AddRange(model5.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, ObjectHelper.GetTextures("OBJ_BEACH"), meshes5));
         if (item.Selected)
         {
             result.AddRange(model5.DrawModelTreeInvert(transform, meshes5));
         }
         transform.Pop();
         return(result);
     }
     else
     {
         List <RenderInfo> result = new List <RenderInfo>();
         transform.Push();
         transform.NJTranslate(item.Position);
         transform.NJRotateObject(item.Rotation);
         result.AddRange(model1.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, ObjectHelper.GetTextures("OBJ_BEACH"), meshes1));
         if (item.Selected)
         {
             result.AddRange(model1.DrawModelTreeInvert(transform, meshes1));
         }
         transform.Pop();
         return(result);
     }
 }
Exemple #3
0
 public virtual void SetOrientation(SETItem item, Vertex direction)
 {
 }
Exemple #4
0
 public static object GetOneBall(SETItem item)
 {
     return((long)item.Scale.Z % 10 >= 1);
 }
Exemple #5
0
 public static object GetVerticalSpeed(SETItem item)
 {
     return((long)(item.Scale.Z / 1000));
 }
Exemple #6
0
 public void SetValue(SETItem item, object value)
 {
     setMethod(item, value);
 }
Exemple #7
0
 public void DoVerb(SETItem item)
 {
     method(item);
 }
Exemple #8
0
 public override void PointTo(SETItem item, Vertex location)
 {
     item.Scale = location;
 }
Exemple #9
0
        public override List <RenderInfo> Render(SETItem item, Device dev, EditorCamera camera, MatrixStack transform)
        {
            List <RenderInfo> result = new List <RenderInfo>();

            transform.Push();
            transform.NJTranslate(item.Position);
            transform.NJRotateY(item.Rotation.Y);
            transform.Push();
            transform.NJTranslate(Base.Position[0], (Base.Position[1]), Base.Position[2]);
            result.AddRange(Base.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, ObjectHelper.GetTextures("OBJ_WINDY"), BaseMsh));
            if (item.Selected)
            {
                result.AddRange(Base.DrawModelTreeInvert(transform, BaseMsh));
            }
            transform.Pop();
            transform.Push();
            transform.NJTranslate(Fan.Position[0], (Fan.Position[1] + 30.0f), Fan.Position[2]);
            result.AddRange(Fan.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, ObjectHelper.GetTextures("OBJ_WINDY"), FanMsh));
            if (item.Selected)
            {
                result.AddRange(Fan.DrawModelTreeInvert(transform, FanMsh));
            }
            transform.Pop();
            transform.Push();
            transform.NJTranslate(Mid.Position[0], (Mid.Position[1] + 44.0f), Mid.Position[2]);
            result.AddRange(Mid.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, ObjectHelper.GetTextures("OBJ_WINDY"), MidMsh));
            if (item.Selected)
            {
                result.AddRange(Mid.DrawModelTreeInvert(transform, MidMsh));
            }
            transform.Pop();
            transform.Push();
            transform.NJTranslate(Fan.Position[0], (Fan.Position[1] + 47.0f), Fan.Position[2]);
            result.AddRange(Fan.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, ObjectHelper.GetTextures("OBJ_WINDY"), FanMsh));
            if (item.Selected)
            {
                result.AddRange(Fan.DrawModelTreeInvert(transform, FanMsh));
            }
            transform.Pop();
            transform.Push();
            transform.NJTranslate(Mid.Position[0], (Mid.Position[1] + 61.0f), Mid.Position[2]);
            result.AddRange(Mid.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, ObjectHelper.GetTextures("OBJ_WINDY"), MidMsh));
            if (item.Selected)
            {
                result.AddRange(Mid.DrawModelTreeInvert(transform, MidMsh));
            }
            transform.Pop();
            transform.Push();
            transform.NJTranslate(Fan.Position[0], (Fan.Position[1] + 64.0f), Fan.Position[2]);
            result.AddRange(Fan.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, ObjectHelper.GetTextures("OBJ_WINDY"), FanMsh));
            if (item.Selected)
            {
                result.AddRange(Fan.DrawModelTreeInvert(transform, FanMsh));
            }
            transform.Pop();
            transform.Push();
            transform.NJTranslate(Cap.Position[0], (Cap.Position[1] + 78.0f), Cap.Position[2]);
            result.AddRange(Cap.DrawModelTree(dev.GetRenderState <FillMode>(RenderState.FillMode), transform, ObjectHelper.GetTextures("OBJ_WINDY"), CapMsh));
            if (item.Selected)
            {
                result.AddRange(Cap.DrawModelTreeInvert(transform, CapMsh));
            }
            transform.Pop();
            transform.Pop();
            return(result);
        }
Exemple #10
0
        public override List <RenderInfo> Render(SETItem item, Device dev, EditorCamera camera, MatrixStack transform)
        {
            List <RenderInfo> result = new List <RenderInfo>();

            transform.Push();
            float scaleX = item.Scale.X;
            float scaleY = item.Scale.Y * 0.5f;
            float scaleZ = item.Scale.Z;

            if (scaleX >= 10.0f)
            {
                if (scaleX > 200.0f)
                {
                    scaleX = 200f;
                }
            }
            else
            {
                scaleX = 10f;
            }
            if (scaleY >= 10.0f)
            {
                if (scaleY > 200.0f)
                {
                    scaleY = 200f;
                }
            }
            else
            {
                scaleY = 10f;
            }
            if (scaleZ >= 10.0f)
            {
                if (scaleZ > 200.0f)
                {
                    scaleZ = 200f;
                }
            }
            else
            {
                scaleZ = 10f;
            }
            transform.NJTranslate(item.Position);
            transform.NJRotateY(item.Rotation.Y);
            transform.NJScale(scaleX, scaleY, scaleZ);


            float largestScale = item.Scale.X;

            if (item.Scale.Z > largestScale)
            {
                largestScale = item.Scale.Z;
            }

            BoundingSphere boxSphere = new BoundingSphere()
            {
                Center = new Vertex(item.Position.X, item.Position.Y, item.Position.Z), Radius = largestScale
            };

            RenderInfo outputInfo = new RenderInfo(mesh, 0, transform.Top, material, texture, FillMode.WireFrame, boxSphere);

            result.Add(outputInfo);

            if (item.Selected)
            {
                RenderInfo highlightInfo = new RenderInfo(mesh, 0, transform.Top, material, texture, FillMode.WireFrame, boxSphere);
                result.Add(highlightInfo);
            }

            transform.Pop();
            return(result);
        }
 public override void PointTo(SETItem item, Vertex location)
 {
     SetOrientation(item, item.Position - location);
 }
Exemple #12
0
        static object GetWeight(SETItem obj)
        {
            MissionSETItem item = (MissionSETItem)obj;

            return((ushort)(item.PRMBytes[4] << 8 | item.PRMBytes[5]));
        }
Exemple #13
0
        public override BoundingSphere GetBounds(SETItem item)
        {
            BoundingSphere bounds = new BoundingSphere(item.Position, item.Scale.X);

            return(bounds);
        }
Exemple #14
0
 public override BoundingSphere GetBounds(SETItem item)
 {
     return(new BoundingSphere(new Vertex(item.Position.X, item.Position.Y, item.Position.Z), Math.Max(Math.Max(item.Scale.X, item.Scale.Y), item.Scale.Z) + 10.0f));
 }
Exemple #15
0
 public abstract Matrix GetHandleMatrix(SETItem item);
Exemple #16
0
        private void Selection_SelectionChanged(EditorItemSelection sender)
        {
            if (suppressSelectionEvents)
            {
                return;
            }

            // match our tree to our editor selection
            List <TreeNode> selectedNodes = new List <TreeNode>();

            foreach (Item item in sender.Items)
            {
                if (item is LevelItem)
                {
                    LevelItem levelItem = (LevelItem)item;

                    // find the index of the level item
                    int index = LevelData.GetIndexOfItem(levelItem);

                    selectedNodes.Add(levelItemNode.Nodes[index]);
                }
                else if (item is DeathZoneItem)
                {
                    DeathZoneItem deathZoneItem = (DeathZoneItem)item;

                    int index = LevelData.DeathZones.IndexOf(deathZoneItem);

                    selectedNodes.Add(deathZoneNode.Nodes[index]);
                }
                else if (item is SETItem)
                {
                    SETItem setItem = (SETItem)item;

                    int index = LevelData.GetIndexOfSETItem(LevelData.Character, setItem);                    //LevelData.SETItems[LevelData.Character].IndexOf(setItem);

                    selectedNodes.Add(setNode.Nodes[index]);
                }
                else if (item is CAMItem)
                {
                    CAMItem camItem = (CAMItem)item;

                    int index = LevelData.CAMItems[LevelData.Character].IndexOf(camItem);

                    selectedNodes.Add(camNode.Nodes[index]);
                }
                else if (item is MissionSETItem)
                {
                    MissionSETItem miSetItem = (MissionSETItem)item;

                    int index = LevelData.MissionSETItems[LevelData.Character].IndexOf(miSetItem);

                    selectedNodes.Add(missionSETNode.Nodes[index]);
                }
                else if (item is SplineData)
                {
                    SplineData spline = (SplineData)item;

                    int index = LevelData.LevelSplines.IndexOf(spline);

                    selectedNodes.Add(splineNode.Nodes[index]);
                }
            }

            sceneTreeView.SelectedNodes = selectedNodes;
        }
Exemple #17
0
 public object GetValue(SETItem item)
 {
     return(getMethod(item));
 }
Exemple #18
0
 public override List <ModelTransform> GetModels(SETItem item, MatrixStack transform)
 {
     return(new List <ModelTransform>());
 }
Exemple #19
0
 /// <summary>
 /// Returns a bounding sphere for the supplied SET Item.
 /// </summary>
 /// <param name="item"></param>
 /// <returns></returns>
 public virtual BoundingSphere GetBounds(SETItem item)
 {
     return(new BoundingSphere(item.Position, 0));
 }
Exemple #20
0
 public abstract HitResult CheckHit(SETItem item, Vector3 Near, Vector3 Far, Viewport Viewport, Matrix Projection, Matrix View, MatrixStack transform);
        private void okButton_Click(object sender, EventArgs e)
        {
            List <Item> selection = items.GetSelection();

            foreach (Item item in selection)
            {
                if (item is SETItem)
                {
                    SETItem itemConv = (SETItem)item;

                    if (sonicCheckBox.Checked)
                    {
                        LevelData.SETItems[0].Add(new SETItem(itemConv.GetBytes(), 0, items));
                    }

                    if (tailsCheckBox.Checked)
                    {
                        LevelData.SETItems[1].Add(new SETItem(itemConv.GetBytes(), 0, items));
                    }

                    if (knucklesCheckBox.Checked)
                    {
                        LevelData.SETItems[2].Add(new SETItem(itemConv.GetBytes(), 0, items));
                    }

                    if (amyCheckBox.Checked)
                    {
                        LevelData.SETItems[3].Add(new SETItem(itemConv.GetBytes(), 0, items));
                    }

                    if (gammaCheckBox.Checked)
                    {
                        LevelData.SETItems[4].Add(new SETItem(itemConv.GetBytes(), 0, items));
                    }

                    if (bigCheckBox.Checked)
                    {
                        LevelData.SETItems[5].Add(new SETItem(itemConv.GetBytes(), 0, items));
                    }
                }
                else if (item is CAMItem)
                {
                    CAMItem itemConv = (CAMItem)item;

                    if ((sonicCheckBox.Checked) && (LevelData.CAMItems[0] != null))
                    {
                        LevelData.CAMItems[0].Add(new CAMItem(itemConv.GetBytes(), 0, items));
                    }

                    if (tailsCheckBox.Checked)
                    {
                        LevelData.CAMItems[1].Add(new CAMItem(itemConv.GetBytes(), 0, items));
                    }

                    if (knucklesCheckBox.Checked)
                    {
                        LevelData.CAMItems[2].Add(new CAMItem(itemConv.GetBytes(), 0, items));
                    }

                    if (amyCheckBox.Checked)
                    {
                        LevelData.CAMItems[3].Add(new CAMItem(itemConv.GetBytes(), 0, items));
                    }

                    if (gammaCheckBox.Checked)
                    {
                        LevelData.CAMItems[4].Add(new CAMItem(itemConv.GetBytes(), 0, items));
                    }

                    if (bigCheckBox.Checked)
                    {
                        LevelData.CAMItems[5].Add(new CAMItem(itemConv.GetBytes(), 0, items));
                    }
                }
            }

            Close();
        }
Exemple #22
0
 public abstract List <RenderInfo> Render(SETItem item, Device dev, EditorCamera camera, MatrixStack transform);
Exemple #23
0
 public static object GetChain(SETItem item)
 {
     return(Math.Abs((long)item.Scale.Z % 1000) >= 100);
 }
Exemple #24
0
 public abstract List <ModelTransform> GetModels(SETItem item, MatrixStack transform);
Exemple #25
0
 public static void SetShadow(SETItem item, object value)
 {
     UpdateZScale(item, (bool)GetOneBall(item), (ShadowType)value, (bool)GetChain(item), (long)GetVerticalSpeed(item));
 }
Exemple #26
0
 public override List <ModelTransform> GetModels(SETItem item, MatrixStack transform)
 {
     if (item.Scale.X == 0 || item.Scale.X == 5 || item.Scale.X == 10 || item.Scale.X == -5)
     {
         List <ModelTransform> result = new List <ModelTransform>();
         transform.Push();
         transform.NJTranslate(item.Position);
         transform.NJRotateObject(item.Rotation);
         result.Add(new ModelTransform(model1, transform.Top));
         transform.Pop();
         return(result);
     }
     else if (item.Scale.X == 1 || item.Scale.X == 6 || item.Scale.X == 11 || item.Scale.X == -1)
     {
         List <ModelTransform> result = new List <ModelTransform>();
         transform.Push();
         transform.NJTranslate(item.Position);
         transform.NJRotateObject(item.Rotation);
         result.Add(new ModelTransform(model2, transform.Top));
         transform.Pop();
         return(result);
     }
     else if (item.Scale.X == 2 || item.Scale.X == 7 || item.Scale.X == 12 || item.Scale.X == -2)
     {
         List <ModelTransform> result = new List <ModelTransform>();
         transform.Push();
         transform.NJTranslate(item.Position);
         transform.NJRotateObject(item.Rotation);
         result.Add(new ModelTransform(model3, transform.Top));
         transform.Pop();
         return(result);
     }
     else if (item.Scale.X == 3 || item.Scale.X == 8 || item.Scale.X == 13 || item.Scale.X == -3)
     {
         List <ModelTransform> result = new List <ModelTransform>();
         transform.Push();
         transform.NJTranslate(item.Position);
         transform.NJRotateObject(item.Rotation);
         result.Add(new ModelTransform(model4, transform.Top));
         transform.Pop();
         return(result);
     }
     else if (item.Scale.X == 4 || item.Scale.X == 9 || item.Scale.X == 14 || item.Scale.X == -4)
     {
         List <ModelTransform> result = new List <ModelTransform>();
         transform.Push();
         transform.NJTranslate(item.Position);
         transform.NJRotateObject(item.Rotation);
         result.Add(new ModelTransform(model5, transform.Top));
         transform.Pop();
         return(result);
     }
     else
     {
         List <ModelTransform> result = new List <ModelTransform>();
         transform.Push();
         transform.NJTranslate(item.Position);
         transform.NJRotateObject(item.Rotation);
         result.Add(new ModelTransform(model1, transform.Top));
         transform.Pop();
         return(result);
     }
 }