예제 #1
0
        public static Model LookupModelOfEventGroup(TAE.EventGroup group)
        {
            var sb = new StringBuilder();

            if (group.GroupData.DataType == TAE.EventGroup.EventGroupDataType.ApplyToSpecificCutsceneEntity)
            {
                if (group.GroupData.Block >= 0 || group.GroupData.Area >= 0)
                {
                    sb.Append($"A{group.GroupData.Area:D2}_{group.GroupData.Block:D2}_");
                }

                if (group.GroupData.CutsceneEntityType == TAE.EventGroup.EventGroupDataStruct.EntityTypes.Character)
                {
                    sb.Append($"c{group.GroupData.CutsceneEntityIDPart1:D4}_{group.GroupData.CutsceneEntityIDPart2:D4}");
                }
                else if (group.GroupData.CutsceneEntityType == TAE.EventGroup.EventGroupDataStruct.EntityTypes.Object)
                {
                    sb.Append($"o{group.GroupData.CutsceneEntityIDPart1:D4}_{group.GroupData.CutsceneEntityIDPart2:D4}");
                }
                else if (group.GroupData.CutsceneEntityType == TAE.EventGroup.EventGroupDataStruct.EntityTypes.DummyNode)
                {
                    sb.Append($"d{group.GroupData.CutsceneEntityIDPart1:D4}_{group.GroupData.CutsceneEntityIDPart2:D4}");
                }
                else if (group.GroupData.CutsceneEntityType == TAE.EventGroup.EventGroupDataStruct.EntityTypes.MapPiece)
                {
                    if (group.GroupData.Block >= 0)
                    {
                        sb.Append($"m{group.GroupData.CutsceneEntityIDPart1:D4}B{group.GroupData.Block}");
                    }
                    else
                    {
                        sb.Append($"m{group.GroupData.CutsceneEntityIDPart1:D4}B{RemoManager.BlockInt}");
                    }

                    if (group.GroupData.CutsceneEntityIDPart2 > 0)
                    {
                        sb.Append($"_{group.GroupData.CutsceneEntityIDPart2:D4}");
                    }
                }

                var mdls       = Scene.Models.ToList();
                var foundModel = mdls.FirstOrDefault(m => m.Name == sb.ToString());
                if (foundModel == null &&
                    group.GroupData.CutsceneEntityType == TAE.EventGroup.EventGroupDataStruct.EntityTypes.MapPiece &&
                    group.GroupData.CutsceneEntityIDPart2 == 0)
                {
                    sb.Append("_0000");
                    foundModel = mdls.FirstOrDefault(m => m.Name == sb.ToString());
                }
                return(foundModel);
            }

            return(null);
        }
예제 #2
0
 public TaeEventGroupRegion(TaeEditAnimEventGraph graph, TAE.Animation anim, TAE.EventGroup group)
 {
     Graph   = graph;
     TaeAnim = anim;
     Group   = group;
 }