Example #1
0
        public void RegisterComponent(Components.Component comp)
        {
            CSComponent c = new CSComponent();

            IO.Log.Write("            Adding " + comp.Graphics.GetCSToolTip() + " to ComponentSelector");
            c.Texture           = ResourceManager.Load <Texture2D>(comp.Graphics.GetIconName());
            c.objType           = comp.GetType();
            c.instance          = comp;
            c.componentGraphics = comp.Graphics;
            c.jointCoords0cw    = comp.GetJointCoords(Components.Component.Rotation.cw0);
            c.jointCoords90cw   = comp.GetJointCoords(Components.Component.Rotation.cw90);
            c.jointCoords180cw  = comp.GetJointCoords(Components.Component.Rotation.cw180);
            c.jointCoords270cw  = comp.GetJointCoords(Components.Component.Rotation.cw270);
            c.Name = comp.Graphics.GetCSToolTip();
            c.IsDragDropPlacement = (comp is Components.Properties.IDragDropPlacable);

            /*
             * if (c.jointCoords0cw.Length % 2 == 1)
             *  c.jointCoords0cw = new int[0];
             * else
             *  for (int i = 0; i < c.jointCoords0cw.Length; i++)
             *      c.jointCoords0cw[i] = c.jointCoords0cw[i] - Math.Abs(c.jointCoords0cw[i] % 8);
             *
             * if (c.jointCoords90cw.Length % 2 == 1)
             *  c.jointCoords90cw = new int[0];
             * else
             *  for (int i = 0; i < c.jointCoords90cw.Length; i++)
             *      c.jointCoords90cw[i] = c.jointCoords90cw[i] - Math.Abs(c.jointCoords90cw[i] % 8);
             *
             * if (c.jointCoords180cw.Length % 2 == 1)
             *  c.jointCoords180cw = new int[0];
             * else
             *  for (int i = 0; i < c.jointCoords180cw.Length; i++)
             *      c.jointCoords180cw[i] = c.jointCoords180cw[i] - Math.Abs(c.jointCoords180cw[i] % 8);
             *
             * if (c.jointCoords270cw.Length % 2 == 1)
             *  c.jointCoords270cw = new int[0];
             * else
             *  for (int i = 0; i < c.jointCoords270cw.Length; i++)
             *      c.jointCoords270cw[i] = c.jointCoords270cw[i] - Math.Abs(c.jointCoords270cw[i] % 8);//*/

            //comp.typeID = (short)components.Count;
            Components.ComponentsManager.TypeIDs.Add(comp.GetType(), (short)Components.ComponentsManager.TypeIDs.Count);
            components.Add(c);
        }
Example #2
0
 void GlobalEvents_onComponentRemovedByPlayer(Components.Component sender)
 {
     if (sender is Components.Joint)
     {
         return;
     }
     for (int i = 0; i < components.Count; i++)
     {
         if (components[i].objType == sender.GetType() && components[i].Avalable > -1)
         {
             components[i].Avalable++;
         }
     }
 }
Example #3
0
        public override void Assign(Microsoft.Xna.Framework.Content.ContentManager cm, Components.Component comp, string binder)
        {
            var prop     = comp.GetType().GetProperty(binder);
            var propType = prop.PropertyType;

            T[] arguments = new T[Count];

            for (int i = 0; i < arguments.Length; i++)
            {
                arguments[i] = _data[i];
            }

            var list = Activator.CreateInstance(propType, new object[] { arguments });

            prop.SetValue(comp, list, null);
        }