FSO.SimAntics.VMContext.GhostCopyGroup C# (CSharp) Method

GhostCopyGroup() public method

public GhostCopyGroup ( FSO.SimAntics.Entities.VMMultitileGroup group ) : FSO.SimAntics.Entities.VMMultitileGroup
group FSO.SimAntics.Entities.VMMultitileGroup
return FSO.SimAntics.Entities.VMMultitileGroup
        public VMMultitileGroup GhostCopyGroup(VMMultitileGroup group)
        {
            var newGroup = CreateObjectInstance(((group.MultiTile) ? group.BaseObject.MasterDefinition.GUID : group.BaseObject.Object.OBJ.GUID), LotTilePos.OUT_OF_WORLD, group.BaseObject.Direction, true);

            if (newGroup != null)
            {
                newGroup.Price = group.Price;
                for (int i=0; i < Math.Min(newGroup.Objects.Count, group.Objects.Count); i++) {
                    newGroup.Objects[i].GhostOriginal = group;
                    newGroup.Objects[i].SetValue(VMStackObjectVariable.Graphic, group.Objects[i].GetValue(VMStackObjectVariable.Graphic));
                    newGroup.Objects[i].DynamicSpriteFlags = group.Objects[i].DynamicSpriteFlags;
                    newGroup.Objects[i].DynamicSpriteFlags2 = group.Objects[i].DynamicSpriteFlags2;
                    newGroup.Objects[i].SetDynamicSpriteFlag(0, group.Objects[i].IsDynamicSpriteFlagSet(0));
                    newGroup.Objects[i].PlatformState = group.Objects[i].PlatformState;
                    if (newGroup.Objects[i] is VMGameObject) ((VMGameObject)newGroup.Objects[i]).RefreshGraphic();
                }
            }

            return newGroup;
        }