Example #1
0
        public NgbhItem Clone(Ngbh parent, NgbhSlotList parentslot)
        {
            NgbhItem ret = new NgbhItem(parentslot);

            ret.guid   = this.guid;
            ret.data   = this.data.Clone() as ushort[];
            ret.flags  = this.flags;
            ret.flags2 = this.flags2;
            ret.parent = parent;
            ret.invnr  = this.invnr;
            return(ret);
        }
Example #2
0
        internal NgbhItem(NgbhSlotList parentslot, SimMemoryType type)
        {
            this.parentslot = parentslot;
            this.parent     = parentslot.Parent;
            data            = new ushort[0];
            flags           = new NgbhItemFlags();
            objd            = null;

            if (type == SimMemoryType.Aspiration || type == SimMemoryType.Skill || type == SimMemoryType.ValueToken || type == SimMemoryType.Badge)
            {
                Flags.IsVisible   = false;
                Flags.IsControler = true;
                data = new ushort[2];
            }
            else if (type == SimMemoryType.Token)
            {
                Flags.IsVisible   = false;
                Flags.IsControler = true;
            }
            else if (type == SimMemoryType.Object)
            {
                Flags.IsVisible   = false;
                Flags.IsControler = true;
                data = new ushort[3];
            }
            else if (type == SimMemoryType.Gossip || type == SimMemoryType.Memory)
            {
                PutValue(0x01, 0x07CD);
                PutValue(0x02, 0x0006);
                PutValue(0x0B, 0);
                Flags.IsVisible   = true;
                Flags.IsControler = false;
                if (type == SimMemoryType.Gossip)
                {
                    this.SimInstance = 1;
                }
            }
            else if (type == SimMemoryType.GossipInventory || type == SimMemoryType.Inventory)
            {
                Flags.IsVisible   = true;
                Flags.IsControler = true;

                if (type == SimMemoryType.GossipInventory)
                {
                    data = new ushort[8];
                    PutValue(0x01, 0x0);
                }

                this.InventoryNumber = this.ParentSlot.GetNextInventoryNumber();
            }

            //SetGuidForType(type);
        }
Example #3
0
        void SetAvailableAddTypes()
        {
            string prefix = typeof(SimMemoryType).Namespace + "." + typeof(SimMemoryType).Name + ".";

            SimMemoryType[] sts = Ngbh.AllowedMemoryTypes(st);
            foreach (SimMemoryType mst in sts)
            {
                cbadd.Items.Add(new Data.Alias((uint)mst, SimPe.Localization.GetString(prefix + mst.ToString()), "{name}"));
            }
            if (cbadd.Items.Count > 0)
            {
                cbadd.SelectedIndex = 0;
            }
        }
Example #4
0
 public NgbhSlotList(Ngbh parent)
 {
     if (parent != null)
     {
         this.Version = parent.Version;
     }
     else
     {
         this.Version = NgbhVersion.University;
     }
     this.parent = parent;
     itemsa      = new SimPe.Plugin.Collections.NgbhItems(this);
     itemsb      = new SimPe.Plugin.Collections.NgbhItems(this);
 }
Example #5
0
        protected void LoadMemoryResource(SDesc sim)
        {
            if (sim != null && pkg == sim.Package)
            {
                return;
            }
            if (sim != null)
            {
                pkg = sim.Package;
            }
            else
            {
                pkg = null;
            }

            ngbh = null;
            if (sim == null)
            {
                return;
            }
            if (sim.Package == null)
            {
                return;
            }
            if (!SimPe.Helper.WindowsRegistry.AllowChangeOfSecondaryAspiration)
            {
                return;
            }

            SimPe.Interfaces.Plugin.IFileWrapper wrapper =
                (SimPe.Interfaces.Plugin.IFileWrapper)FileTable.WrapperRegistry.FindHandler(SimPe.Data.MetaData.MEMORIES);

            if (wrapper == null)
            {
                return;
            }

            SimPe.Interfaces.Files.IPackedFileDescriptor[] mems = sim.Package.FindFiles(SimPe.Data.MetaData.MEMORIES);
            foreach (SimPe.Interfaces.Files.IPackedFileDescriptor pfd in mems)
            {
                ngbh = new Ngbh(SimPe.FileTable.ProviderRegistry);
                ngbh.ProcessData(pfd, pkg, false);
                return;
            }
        }
Example #6
0
        /// <summary>
        /// Is called by SimPe (through the Wrapper) when the Panel is going to be displayed, so
        /// you should updatet the Data displayed by the Panel with the Attributes stored in the
        /// passed Wrapper.
        /// </summary>
        /// <param name="wrapper">The Attributes of this Wrapper have to be displayed</param>
        public void UpdateGUI(IFileWrapper wrapper)
        {
            form.wrapper = (IFileWrapperSaveExtension)wrapper;

            Ngbh wrp = (Ngbh)wrapper;

            form.lv.BeginUpdate();
            form.lv.Items.Clear();
            form.ilist.Images.Clear();
            form.cbsub.Items.Clear();
            form.cbown.Items.Clear();
            form.gbmem.Enabled = false;
            form.lbmem.Items.Clear();

            Interfaces.Files.IPackedFileDescriptor[] pfds = wrp.Package.FindFiles(Data.MetaData.SIM_DESCRIPTION_FILE);
            form.cbsub.Items.Add(new Data.Alias(0, "---", "{name}"));
            form.cbsub.Sorted = false;
            form.cbown.Items.Add(new Data.Alias(0, "---", "{name}"));
            form.cbown.Sorted = false;
            foreach (Interfaces.Files.IPackedFileDescriptor spfd in pfds)
            {
                PackedFiles.Wrapper.SDesc sdesc = new SimPe.PackedFiles.Wrapper.SDesc(wrp.Provider.SimNameProvider, wrp.Provider.SimFamilynameProvider, null);

                Wait.SubStart();


                sdesc.ProcessData(spfd, wrp.Package);

                ListViewItem lvi = new ListViewItem();
                lvi.Text = sdesc.SimName + " " + sdesc.SimFamilyName;

#if DEBUG
                Data.Alias a = new Data.Alias(sdesc.SimId, lvi.Text);
                lvi.Text += " (0x" + Helper.HexString(sdesc.Instance) + ")";
#else
                Data.Alias a = new Data.Alias(sdesc.SimId, lvi.Text, "{name}");
#endif

                lvi.Tag = sdesc;

                a.Tag    = new object[1];
                a.Tag[0] = sdesc.Instance;
                form.cbsub.Items.Add(a);
                form.cbown.Items.Add(a);


                if (sdesc.HasImage)
                {
                    /*if (sdesc.Unlinked!=0x00)
                     * {
                     *      Image img = (Image)sdesc.Image.Clone();
                     *      System.Drawing.Graphics g = Graphics.FromImage(img);
                     *      g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
                     *      g.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceOver;
                     *
                     *      Pen pen = new Pen(Color.FromArgb(0xD0, Color.DarkGreen), 3);
                     *
                     *      g.FillRectangle(pen.Brush, 0, 0, img.Width, img.Height);
                     *
                     *      form.ilist.Images.Add(img);
                     * } */
                    if ((sdesc.Unlinked != 0x00) || (!sdesc.AvailableCharacterData))
                    {
                        Image img = (Image)sdesc.Image.Clone();
                        System.Drawing.Graphics g = Graphics.FromImage(img);
                        g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
                        g.CompositingMode    = System.Drawing.Drawing2D.CompositingMode.SourceOver;

                        Pen pen = new Pen(Data.MetaData.SpecialSimColor, 3);

                        g.FillRectangle(pen.Brush, 0, 0, img.Width, img.Height);

                        int pos = 2;
                        if (sdesc.Unlinked != 0x00)
                        {
                            g.FillRectangle(new Pen(Data.MetaData.UnlinkedSim, 1).Brush, pos, 2, 25, 25);
                            pos += 28;
                        }
                        if (!sdesc.AvailableCharacterData)
                        {
                            g.FillRectangle(new Pen(Data.MetaData.InactiveSim, 1).Brush, pos, 2, 25, 25);
                            pos += 28;
                        }

                        form.ilist.Images.Add(img);
                    }
                    else
                    {
                        form.ilist.Images.Add(sdesc.Image);
                    }

                    lvi.ImageIndex = form.ilist.Images.Count - 1;
                }

                form.lv.Items.Add(lvi);
            }
            form.cbsub.Sorted = true;
            form.cbown.Sorted = true;
            form.lv.Sort();



            form.lv.EndUpdate();

            Wait.SubStop();
        }
Example #7
0
 internal NgbhSlot(Ngbh parent, Data.NeighborhoodSlots type) : base(parent)
 {
     this.type = type;
 }