Exemplo n.º 1
0
        public override void ExecuteEventHandler(object sender, SimPe.Events.ResourceEventArgs es)
        {
            if (!ChangeEnabledStateEventHandler(null, es))
            {
                return;
            }

            SimPe.Collections.PackedFileDescriptors pfds = this.LoadDescriptors(false);
            if (es.Count > 0)
            {
                foreach (SimPe.Interfaces.Files.IPackedFileDescriptor pfd in pfds)
                {
                    if (pfd != null)
                    {
                        if (es[0].Resource != null)
                        {
                            if (es[0].Resource.FileDescriptor != null)
                            {
                                es[0].Resource.FileDescriptor.UserData = pfd.UserData;
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        public void RefreshDock(object sender, SimPe.Events.ResourceEventArgs es)
        {
            rd.button1.Enabled = false;
            if (!rd.dcHex.IsFloating && !rd.dcHex.IsDocked)
            {
                return;
            }
            if (es.HasFileDescriptor)
            {
                foreach (SimPe.Events.ResourceContainer e in es)
                {
                    if (e.HasFileDescriptor && e.HasPackage)
                    {
                        try
                        {
                            rd.hexpfd = e.Resource.FileDescriptor;
                            SimPe.Interfaces.Files.IPackedFile pf = e.Resource.Package.Read(e.Resource.FileDescriptor);
                            rd.hvc.Data        = pf.UncompressedData;
                            rd.button1.Enabled = true;
                            return;
                        }
                        catch {}
                    }
                }
            }

            rd.hvc.Data = null;
        }
Exemplo n.º 3
0
        public void RefreshDock(object sender, SimPe.Events.ResourceEventArgs es)
        {
            if (!es.Empty)
            {
                if (es.HasFileDescriptor)
                {
                    SimPe.Interfaces.IWrapper wrp = FileTable.WrapperRegistry.FindHandler(es[0].Resource.FileDescriptor.Type);

                    if (wrp != null)
                    {
                        rd.lbName.Text    = wrp.WrapperDescription.Name;
                        rd.lbAuthor.Text  = wrp.WrapperDescription.Author;
                        rd.lbVersion.Text = wrp.WrapperDescription.Version.ToString();
                        rd.lbDesc.Text    = wrp.WrapperDescription.Description;
                        rd.pb.Image       = wrp.WrapperDescription.Icon;
                        if (rd.pb.Image != null)
                        {
                            rd.lbName.Left = rd.pb.Right + 4;
                        }
                        else
                        {
                            rd.lbName.Left = rd.pb.Left;
                        }
                        return;
                    }
                }
            }

            rd.lbName.Text    = SimPe.Localization.GetString("Unknown");
            rd.lbAuthor.Text  = SimPe.Localization.GetString("Unknown");
            rd.lbVersion.Text = SimPe.Localization.GetString("Unknown");
            rd.lbDesc.Text    = SimPe.Localization.GetString("");
            rd.pb.Image       = null;
            rd.lbName.Left    = rd.pb.Left;
        }
Exemplo n.º 4
0
        public virtual bool ChangeEnabledStateEventHandler(object sender, SimPe.Events.ResourceEventArgs e)
        {
            SimPe.Interfaces.Files.IPackedFileDescriptor pfd = ExtractFileDescriptor(e);
            SimPe.Interfaces.Files.IPackageFile pkg = ExtractPackage(e);

            return IsEnabled(pfd, pkg);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Fired when a Resource was changed by a ToolPlugin and the Enabled state needs to be changed
        /// </summary>
        public void ChangedGuiResourceEventHandler(object sender, SimPe.Events.ResourceEventArgs e)
        {
            RemoteControl.FireResourceListSelectionChangedHandler(sender, e);
            if (ChangedGuiResourceEvent != null)
            {
                thsender = sender;
                the      = e;

                //this.ExecuteThread(System.Threading.ThreadPriority.Normal, "ActionTool notification");

                //ChangedGuiResourceEvent(sender, e);

                System.Delegate[] dls = ChangedGuiResourceEvent.GetInvocationList();
                foreach (System.Delegate d in dls)
                {
                    if (d.Target is SimPe.Interfaces.IToolExt)
                    {
                        if (!((SimPe.Interfaces.IToolExt)d.Target).Visible)
                        {
                            continue;
                        }
                    }

                    ((SimPe.Events.ChangedResourceEvent)d)(sender, e);
                }
            }
        }
Exemplo n.º 6
0
 public static void FireResourceListSelectionChangedHandler(object sender, SimPe.Events.ResourceEventArgs e)
 {
     if (ResourceListSelectionChanged != null)
     {
         ResourceListSelectionChanged(sender, e);
     }
 }
Exemplo n.º 7
0
        public override bool ChangeEnabledStateEventHandler(object sender, SimPe.Events.ResourceEventArgs es)
        {
            if (es.LoadedPackage == null)
            {
                return(false);
            }
            if (es.Count != 1)
            {
                return(false);
            }

            foreach (SimPe.Events.ResourceContainer e in es)
            {
                if (e.HasFileDescriptor)
                {
                    if (item.Type == 0xffffffff)
                    {
                        return(true);
                    }
                    if (item.Type == e.Resource.FileDescriptor.Type)
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
Exemplo n.º 8
0
        public void ExecuteEventHandler(object sender, SimPe.Events.ResourceEventArgs e)
        {
            if (!RealChangeEnabledStateEventHandler(null, e))
            {
                System.Windows.Forms.MessageBox.Show(SimPe.Localization.GetString("This is not an appropriate context in which to use this tool"),
                                                     this.ToString());
                return;
            }

            SimPe.PackedFiles.Wrapper.ExtSDesc victim = new SimPe.PackedFiles.Wrapper.ExtSDesc();
            victim.ProcessData(e.Items[0].Resource);

            if (Message.Show("Are you sure you want to remove \"" + victim.SimName + " " + victim.SimFamilyName + "\" from your Neighborhood? You can not undo this, so make sure you have created a Backup!\n\nDelete the Sim?", "Warning", System.Windows.Forms.MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.No)
            {
                return;
            }

            uint inst = victim.FileDescriptor.Instance;
            uint guid = victim.SimId;

            DeleteSRels(inst, guid, victim.Package, victim);
            DeleteRelations(inst, guid, victim.Package, victim);
            DeleteRes(0xEBFEE33F, inst, guid, victim.Package, victim);             //DNA
            DeleteRes(0xCD95548E, inst, guid, victim.Package, victim);             //want & fear
            DeleteFamilyTies(inst, guid, victim.Package, victim);
            DeleteMemories(inst, guid, victim.Package, victim);
            DeleteFamMembers(inst, guid, victim.Package, victim);

            DeleteCharacterFile(inst, guid, victim.Package, victim);

            victim.FileDescriptor.MarkForDelete = true;
        }
Exemplo n.º 9
0
        public override void ExecuteEventHandler(object sender, SimPe.Events.ResourceEventArgs es)
        {
            if (!ChangeEnabledStateEventHandler(null, es))
            {
                return;
            }

            if (es.Loaded)
            {
                es.LoadedPackage.Package.BeginUpdate();
            }
            foreach (SimPe.Events.ResourceContainer e in es)
            {
                if (es.Loaded)
                {
                    es.LoadedPackage.Package.ForgetUpdate();
                }
                e.Resource.FileDescriptor.MarkForDelete = true;
            }

            if (es.Loaded)
            {
                es.LoadedPackage.Package.EndUpdate();
            }
        }
Exemplo n.º 10
0
        public void ExecuteEventHandler(object sender, SimPe.Events.ResourceEventArgs e)
        {
            if (!RealChangeEnabledStateEventHandler(null, e))
            {
                System.Windows.Forms.MessageBox.Show(Localization.GetString("This is not an appropriate context in which to use this tool"),
                                                     Localization.GetString(this.ToString()));
                return;
            }

            SimPe.Collections.PackedFileDescriptors pfds = e.GetDescriptors();
            bool first = true;
            uint inst  = 0x8000;

            foreach (SimPe.Interfaces.Files.IPackedFileDescriptor pfd in pfds)
            {
                if (first)
                {
                    first = false;
                    inst  = pfd.Instance;
                }
                else
                {
                    pfd.Instance = inst;
                }

                inst++;
            }
        }
Exemplo n.º 11
0
 public override bool ChangeEnabledStateEventHandler(object sender, SimPe.Events.ResourceEventArgs es)
 {
     if (es.LoadedPackage == null)
     {
         return(false);
     }
     return(es.LoadedPackage.Loaded);
 }
Exemplo n.º 12
0
 public bool ChangeEnabledStateEventHandler(object sender, SimPe.Events.ResourceEventArgs e)
 {
     if (!Helper.WindowsRegistry.HiddenMode)
     {
         return(false);
     }
     return(!e.Loaded);
 }
Exemplo n.º 13
0
        public override void ExecuteEventHandler(object sender, SimPe.Events.ResourceEventArgs e)
        {
            if (!ChangeEnabledStateEventHandler(null, e))
            {
                return;
            }

            e.LoadedPackage.Package.Add(e.LoadedPackage.Package.NewDescriptor(0xffffffff, 0, Data.MetaData.LOCAL_GROUP, 0), true);
        }
Exemplo n.º 14
0
        /// <summary>
        /// Fired when a Resource was changed by a ToolPlugin and the Enabled state needs to be changed
        /// </summary>
        public void ChangeEnabledStateEventHandler(object sender, SimPe.Events.ResourceEventArgs e)
        {
            lp         = e.LoadedPackage;
            ll.Enabled = tool.ChangeEnabledStateEventHandler(sender, e);
            //if (bi!=null)
            mi.Enabled = ll.Enabled;

            lasteventarg = e;
        }
Exemplo n.º 15
0
        private bool RealChangeEnabledStateEventHandler(object sender, SimPe.Events.ResourceEventArgs es)
        {
            if (!es.Loaded)
            {
                return(false);
            }

            return(es.LoadedPackage.Package.FindFiles(Data.MetaData.SIM_DESCRIPTION_FILE).Length > 0);
        }
Exemplo n.º 16
0
 public bool ChangeEnabledStateEventHandler(object sender, SimPe.Events.ResourceEventArgs e)
 {
     ///
     /// TODO: return true here, if the Plugin should be enabled, and false otherwise
     /// e contains a List of Resources selected in the SimPE GUI as well as the currently
     /// loaded package
     ///
     return(true);
 }
Exemplo n.º 17
0
        public void ExecuteEventHandler(object sender, SimPe.Events.ResourceEventArgs e)
        {
            if (!RealChangeEnabledStateEventHandler(null, e))
            {
                System.Windows.Forms.MessageBox.Show(Localization.GetString("This is not an appropriate context in which to use this tool"),
                                                     Localization.GetString(this.ToString()));
                return;
            }

            if (Message.Show(SimPe.Localization.GetString("Fix_Fence_Warning"), SimPe.Localization.GetString("Warning"), System.Windows.Forms.MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.No)
            {
                return;
            }



            try
            {
                SimPe.Interfaces.Files.IPackedFileDescriptor[] pfds = e.LoadedPackage.Package.FindFiles(Data.MetaData.XFNC);
                foreach (SimPe.Interfaces.Files.IPackedFileDescriptor pfd in pfds)
                {
                    SimPe.PackedFiles.Wrapper.Cpf cpf = new SimPe.PackedFiles.Wrapper.Cpf();
                    cpf.ProcessData(pfd, e.LoadedPackage.Package);

                    uint guid = cpf.GetSaveItem("guid").UIntegerValue;
                    //load the Descriptor for the String Resource
                    SimPe.Interfaces.Files.IPackedFileDescriptor p = e.LoadedPackage.Package.FindFile(
                        cpf.GetSaveItem("stringsetrestypeid").UIntegerValue,
                        0,
                        cpf.GetSaveItem("stringsetgroupid").UIntegerValue,
                        cpf.GetSaveItem("stringsetid").UIntegerValue
                        );

                    //change the Properties
                    cpf.GetSaveItem("resourcegroupid").UIntegerValue  = 0x4c8cc5c0;
                    cpf.GetSaveItem("resourceid").UIntegerValue       = guid;
                    cpf.GetSaveItem("stringsetgroupid").UIntegerValue = guid;

                    cpf.SynchronizeUserData(true, true);

                    //change the Descriptor for the XML
                    cpf.FileDescriptor.Instance = guid;
                    cpf.FileDescriptor.Group    = 0x4c8cc5c0;

                    //change the descriptor for the CTSS
                    if (p != null)
                    {
                        p.Group = guid;
                    }
                }
            }
            catch (Exception ex)
            {
                Helper.ExceptionMessage(ex);
            }
        }
Exemplo n.º 18
0
        public override void ExecuteEventHandler(object sender, SimPe.Events.ResourceEventArgs es)
        {
            if (!ChangeEnabledStateEventHandler(null, es))
            {
                return;
            }

            foreach (SimPe.Events.ResourceContainer e in es)
            {
                item.Execute(e.Resource);
            }
        }
Exemplo n.º 19
0
        public override void ExecuteEventHandler(object sender, SimPe.Events.ResourceEventArgs es)
        {
            if (!ChangeEnabledStateEventHandler(null, es))
            {
                return;
            }

            foreach (SimPe.Events.ResourceContainer e in es)
            {
                e.Resource.FileDescriptor.MarkForDelete = false;
            }
        }
Exemplo n.º 20
0
        public void Execute(object sender, SimPe.Events.ResourceEventArgs e)
        {
            PackageRepairForm f = new PackageRepairForm();

            if (e.Loaded)
            {
                string flname = e.LoadedPackage.Package.SaveFileName;
                e.LoadedPackage.Package.Close(true);
                f.Setup(flname);
            }
            RemoteControl.ShowSubForm(f);
        }
Exemplo n.º 21
0
        public virtual bool ChangeEnabledStateEventHandler(object sender, SimPe.Events.ResourceEventArgs es)
        {
            if (!es.Loaded)
            {
                return(false);
            }
            if (!es.HasFileDescriptor)
            {
                return(false);
            }

            return(true);
        }
Exemplo n.º 22
0
        public void ExecuteEventHandler(object sender, SimPe.Events.ResourceEventArgs e)
        {
            if (!ChangeEnabledStateEventHandler(null, e))
            {
                return;
            }

            // Once you reload the filetable, you're no longer in local mode
            //bool old = SimPe.Helper.LocalMode;
            SimPe.Helper.LocalMode = false;
            SimPe.FileTable.FileIndex.ForceReload();
            //SimPe.Helper.LocalMode = old;
        }
Exemplo n.º 23
0
        public static SimPe.Interfaces.Files.IPackageFile ExtractPackage(SimPe.Events.ResourceEventArgs e)
        {
            if (e==null) return null;
            SimPe.Interfaces.Files.IPackageFile pkg = null;
            if (e.Count>0)
            {
                if (e[0].HasPackage)
                    pkg = e[0].Resource.Package;
            }

            if (pkg==null && e.Loaded) pkg=e.LoadedPackage.Package;

            return pkg;
        }
Exemplo n.º 24
0
        public override void ExecuteEventHandler(object sender, SimPe.Events.ResourceEventArgs es)
        {
            if (!ChangeEnabledStateEventHandler(null, es))
            {
                return;
            }

            bool   multi  = es.Count > 1;
            string flname = SetupSaveDialog(es[0].Resource.FileDescriptor.ExportFileName, multi);

            if (flname == null)
            {
                return;
            }

#if !DEBUG
            try
#endif
            {
                if (!multi)                 //extract one File
                {
                    SimPe.Packages.PackedFileDescriptor pfd = (SimPe.Packages.PackedFileDescriptor)es[0].Resource.FileDescriptor;

                    ToolLoaderItemExt.SavePackedFile(flname, true, pfd, es.LoadedPackage.Package);
                    pfd.Path = null;
                }
                else                 //extract multiple Files
                {
                    SimPe.Collections.PackedFileDescriptors pfds = new SimPe.Collections.PackedFileDescriptors();
                    foreach (SimPe.Events.ResourceContainer e in es)
                    {
                        if (e.HasFileDescriptor)
                        {
                            pfds.Add(e.Resource.FileDescriptor);
                        }
                    }

                    SimPe.Interfaces.Files.IPackedFileDescriptor[] ar = new SimPe.Interfaces.Files.IPackedFileDescriptor[pfds.Length];
                    pfds.CopyTo(ar);
                    ExtractAllFiles(flname, ar, es.LoadedPackage.Package);
                }
            }
#if !DEBUG
            catch (Exception ex)
            {
                Helper.ExceptionMessage(Localization.Manager.GetString("err002") + flname, ex);
            }
#endif
        }
Exemplo n.º 25
0
        public virtual void Execute(object sender, SimPe.Events.ResourceEventArgs e)
        {
            SimPe.Interfaces.Files.IPackedFileDescriptor pfd = ExtractFileDescriptor(e);
            SimPe.Interfaces.Files.IPackageFile pkg = ExtractPackage(e);

            if (!IsEnabled(pfd, pkg)) return;

            SimPe.Interfaces.Plugin.IToolResult ires = ShowDialog(ref pfd, ref pkg);

            if (e.Count>0)
            {
                e[0].ChangedFile = ires.ChangedFile;
                e[0].ChangedPackage = ires.ChangedPackage;
            }
        }
Exemplo n.º 26
0
        public override void ExecuteEventHandler(object sender, SimPe.Events.ResourceEventArgs es)
        {
            if (!ChangeEnabledStateEventHandler(null, es))
            {
                return;
            }

            SimPe.Collections.PackedFileDescriptors pfds = this.LoadDescriptors(true);
            es.LoadedPackage.Package.BeginUpdate();
            foreach (SimPe.Interfaces.Files.IPackedFileDescriptor pfd in pfds)
            {
                es.LoadedPackage.Package.Add(pfd);
            }
            es.LoadedPackage.Package.EndUpdate();
        }
Exemplo n.º 27
0
        public override void ExecuteEventHandler(object sender, SimPe.Events.ResourceEventArgs es)
        {
            if (!ChangeEnabledStateEventHandler(sender, es))
            {
                return;
            }

            if (Filter != null && Filter.FilterGroup)
            {
                Filter.FilterGroup = false;
            }
            else
            {
                Filter.Group       = es.GetDescriptors()[0].Group;
                Filter.FilterGroup = true;
            }
        }
Exemplo n.º 28
0
        public void RefreshDock(object sender, SimPe.Events.ResourceEventArgs es)
        {
            if (es.LoadedPackage != null)
            {
                if (es.LoadedPackage.Loaded)
                {
                    bool newpkg = (pkg == null);
                    if (!newpkg)
                    {
                        newpkg = !es.LoadedPackage.Package.Equals(pkg);
                    }


                    if (newpkg)
                    {
                        SimPe.Packages.PackageRepair pr = new SimPe.Packages.PackageRepair(es.LoadedPackage.Package);
                        if (Helper.WindowsRegistry.HiddenMode)
                        {
                            rd.pgHead.SelectedObject = pr.IndexDetailsAdvanced;
                        }
                        else
                        {
                            rd.pgHead.SelectedObject = pr.IndexDetails;
                        }

                        pkg = es.LoadedPackage.Package;

                        rd.lv.Items.Clear();
                        for (uint i = 0; i < pkg.Header.HoleIndex.Count; i++)
                        {
                            System.Windows.Forms.ListViewItem lvi = new System.Windows.Forms.ListViewItem();
                            SimPe.Packages.HoleIndexItem      hii = es.LoadedPackage.Package.GetHoleIndex(i);
                            lvi.Text = "0x" + Helper.HexString(hii.Offset);
                            lvi.SubItems.Add("0x" + Helper.HexString(hii.Size));
                            rd.lv.Items.Add(lvi);
                        }
                    }
                    return;
                }
            }

            pkg = null;
            rd.pgHead.SelectedObject = null;
            rd.lv.Items.Clear();
        }
Exemplo n.º 29
0
        public override void ExecuteEventHandler(object sender, SimPe.Events.ResourceEventArgs es)
        {
            if (!ChangeEnabledStateEventHandler(null, es))
            {
                return;
            }

            foreach (SimPe.Events.ResourceContainer e in es)
            {
                if (e.HasFileDescriptor)
                {
                    SimPe.Interfaces.Files.IPackedFileDescriptor pfd = (SimPe.Interfaces.Files.IPackedFileDescriptor)e.Resource.FileDescriptor.Clone();

                    pfd.UserData = es.LoadedPackage.Package.Read(e.Resource.FileDescriptor).UncompressedData;
                    es.LoadedPackage.Package.Add(pfd, true);
                }
            }
        }
Exemplo n.º 30
0
        private bool RealChangeEnabledStateEventHandler(object sender, SimPe.Events.ResourceEventArgs es)
        {
            if (es.Loaded)
            {
                if (Helper.IsNeighborhoodFile(es.LoadedPackage.FileName))
                {
                    if (es.Count == 1)
                    {
                        if (es.Items[0].Resource.FileDescriptor.Type == Data.MetaData.SIM_DESCRIPTION_FILE)
                        {
                            return(true);
                        }
                    }
                }
            }

            return(false);
        }