예제 #1
0
    public void SetPerso(OpenSpace.ROM.Perso perso)
    {
        this.persoROM = perso;
        if (perso != null && perso.brain?.Value != null)
        {
            dsgMemROM = perso.brain.Value.dsgMem.Value;
            dsgVarROM = perso.brain.Value.aiModel?.Value.dsgVar?.Value;
            if (dsgVarROM?.info?.Value == null)
            {
                return;
            }
            editableEntries = new DsgVarEditableEntry[dsgVarROM.info.Value.entries.Length];

            for (int i = 0; i < editableEntries.Length; i++)
            {
                List <OpenSpace.ROM.DsgMemInfo> memInfos = new List <OpenSpace.ROM.DsgMemInfo>();
                if (dsgMemROM?.info?.Value != null && dsgMemROM.info.Value.info.Length > 0)
                {
                    for (int j = 0; j < dsgMemROM.info.Value.info.Length; j++)
                    {
                        OpenSpace.ROM.DsgMemInfo       info  = dsgMemROM.info.Value.info[j].Value;
                        OpenSpace.ROM.DsgVarInfo.Entry entry = dsgVarROM.info.Value.GetEntryFromIndex(info.value.index);
                        if (entry == dsgVarROM.info.Value.entries[i])
                        {
                            memInfos.Add(info);
                        }
                    }
                }
                DsgVarEditableEntry editableEntry = new DsgVarEditableEntry(dsgVarROM.info.Value.entries[i], memInfos);
                editableEntries[i] = editableEntry;
            }
        }
    }
예제 #2
0
    public void SetPerso(Perso perso)
    {
        this.perso = perso;
        if (perso != null && perso.brain != null && perso.brain.mind != null)
        {
            dsgMem = perso.brain.mind.dsgMem;
            if (dsgMem != null)
            {
                dsgVar = dsgMem.dsgVar;
            }
            else
            {
                dsgVar = perso.brain.mind.AI_model?.dsgVar;
            }
            dsgVarEntries   = dsgVar.dsgVarInfos;
            editableEntries = new DsgVarEditableEntry[dsgVarEntries.Length];

            for (int i = 0; i < editableEntries.Length; i++)
            {
                DsgVarEditableEntry editableEntry = new DsgVarEditableEntry(
                    dsgVar.dsgVarInfos[i],
                    dsgMem?.values?[i],
                    dsgMem?.valuesInitial?[i],
                    dsgVar?.defaultValues?[i]);
                editableEntries[i] = editableEntry;
            }
        }
    }
예제 #3
0
        public void SetDsgMem(DsgMem dsgMem)
        {
            this.dsgMem          = dsgMem;
            this.dsgVar          = dsgMem.dsgVar;
            this.dsgVarEntries   = this.dsgVar.dsgVarInfos;
            this.editableEntries = new DsgVarEditableEntry[this.dsgVarEntries.Length];

            int i = 0;

            foreach (DsgVarInfoEntry entry in this.dsgVarEntries)
            {
                DsgVarEditableEntry editableEntry = new DsgVarEditableEntry(i, entry);
                editableEntries[i] = editableEntry;
                i++;
            }
        }