Example #1
0
    FlatElementImage construct_flat_image(string aName, int aDepth)
    {
        if (mLoader == null)
        {
            throw new UnityException("start screen bundle null");
        }

        CharacterData.ImageSizeOffsetAnimationData sizing;
        FlatElementImage r;

        if (aName != "BACKGROUND")        //this is stupid and you should make background part of the dump..
        {
            sizing = mLoader.Sizes.find_static_element(aName);
            try
            {
                r = new FlatElementImage(mLoader.Images.staticElements[aName], sizing.Size, aDepth);
            }
            catch (System.Exception e)
            {
                Debug.Log("messed up on " + aName);
                throw e;
            }
        }
        else
        {
            var backSize = mLoader.Sizes.mBackSize;
            sizing        = new CharacterData.ImageSizeOffsetAnimationData();
            sizing.Offset = new Vector2(0, 0);
            sizing.Size   = backSize;
            r             = new FlatElementImage(mLoader.Images.background1, backSize, aDepth);
        }
        r.HardPosition = mRTCamera.get_point(Vector3.zero) + sizing.Offset;
        return(r);
    }
Example #2
0
    public void load_images(CharacterLoader aCharacter, List <FlatElementImage> aImages, int startingDepth, string aPrefix, int aBegin = 0)
    {
        //last to first stupid hack..
        List <CharacterData.ImageSizeOffsetAnimationData> dataList = new List <CharacterData.ImageSizeOffsetAnimationData>();
        List <string> nameList = new List <string>();

        for (int i = aBegin; i < 100; i++)
        {
            string name = aPrefix + i;
            CharacterData.ImageSizeOffsetAnimationData data = aCharacter.Sizes.find_static_element(name);
            if (data == null)            //sometimes there are zero prefixes
            {
                name = aPrefix + "0" + i;
                data = aCharacter.Sizes.find_static_element(name);
            }
            if (data == null)
            {
                break;
            }

            //Debug.Log("loading " + name);



            dataList.Add(data);
            nameList.Add(name);
        }

        for (int i = dataList.Count - 1; i >= 0; i--)
        {
            Texture2D tex = aCharacter.Images.staticElements[nameList[i]];
            //if(tex == null)
            //throw new UnityException("data exists for " + data.Name + " but texture does not");
            var img = new FlatElementImage(tex, dataList[i].Size, startingDepth + aImages.Count);


            //fly in
            //img.HardPosition = random_position();
            //img.SoftPosition = dataList[i].Offset;

            //fade in
            img.HardColor    = GameConstants.UiWhiteTransparent;
            img.SoftColor    = GameConstants.UiWhite;
            img.HardPosition = dataList[i].Offset;

            aImages.Add(img);

            var fx = AnimationEffects.get_effect(dataList[i].AnimationEffect);
            fx = null;             //TODO
            if (fx != null)
            {
                img.Events.add_event(
                    fx
                    , 0);
            }
            //dataList[i].AnimationEffect
        }
    }
Example #3
0
    static CharacterData.CharacterDataSizes create_main_character(Object aMain, IEnumerable <Object> aObjects)
    {
        string output = "";

        List <Object> valueList = aObjects.ToList();

        CharacterData.CharacterDataSizes cd = new CharacterData.CharacterDataSizes();
        cd.mName = aMain.name;

        //first process <limb>_B images
        IEnumerable <Object> bImages = valueList.Where(f => (sLimbs.Contains(strip_to_root(f)) && is_B_image(f))).OrderBy(f => strip_to_root(f));

        //int[] desiredSizes = new int[]{1,1,1,2,2,1,1,2,2,4,3};
        int[] desiredSizes = new int[] { 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 3 }; //this one has limb ends and head end
        int   counter      = 0;

        foreach (Object f in bImages)
        {
            //Debug.Log ("processing " + f.name);
            Texture2D limbProcessing = f as Texture2D;
            set_texture_for_reading(limbProcessing);
            cd.mMountingPositions.Add(get_limb_positions_in_order(limbProcessing));
            if (desiredSizes[counter] == 2)
            {
                foreach (var e in cd.mMountingPositions.Last())
                {
                    //Debug.Log(e);
                }
            }
            if (desiredSizes[counter] != cd.mMountingPositions.Last().Count)
            {
                Debug.Log("issue with " + f.name + " need " + desiredSizes[counter] + " found " + cd.mMountingPositions.Last().Count);
            }
            counter++;
        }

        //record <limb>_A  image sizes
        IEnumerable <Object> aImages = aObjects.Where(f => (sLimbs.Contains(strip_to_root(f)) && !is_B_image(f))).OrderBy(f => f.name);

        foreach (Object f in aImages)
        {
            Texture2D tex = f as Texture2D;
            set_texture_for_reading(tex);
            cd.mLimbSizes.Add(new Vector2(((Texture2D)f).width, ((Texture2D)f).height));
            set_texture_for_render(tex);
        }

        //parse POSITIONS.png
        try{
            Object    positionImage = valueList.Single(f => strip_to_root(f) == "POSITIONS");
            Texture2D bgProcessing  = positionImage as Texture2D;
            set_texture_for_reading(bgProcessing);
            try{ cd.mOffset = get_character_position(bgProcessing); }
            catch { Debug.Log("no character position found, this must be the sunset bundle"); }


            //EFFECTS
            TextAsset effects;
            try{ effects = valueList.Single(f => strip_to_root(f) == "EFFECTS") as TextAsset; }
            catch { effects = null; }

            //BACKGROUND STUFF
            var staticElts = valueList.Where(
                f => strip_to_root(f).StartsWith("FG") ||
                strip_to_root(f).StartsWith("BG") ||
                strip_to_root(f).StartsWith("CUTSCENE") ||
                strip_to_root(f).StartsWith("GIFT_") ||
                strip_to_root(f).StartsWith("SUNSET_") ||                               //special for sunset, we will read, font, sun, and score label from another bundle
                strip_to_root(f).StartsWith("START_")
                );
            foreach (var e in staticElts)
            {
                Debug.Log(e.name);
            }
            foreach (var img in staticElts)
            {
                CharacterData.ImageSizeOffsetAnimationData isoad = new CharacterData.ImageSizeOffsetAnimationData();
                if (effects != null)
                {
                    isoad.AnimationEffect = find_effect_string(effects, img.name);
                }
                isoad.Name = img.name;
                set_texture_for_reading((Texture2D)img);
                isoad.Size   = new Vector2(((Texture2D)img).width, ((Texture2D)img).height);
                isoad.Offset = find_position(bgProcessing, img.name);
                set_texture_for_render((Texture2D)img);
                cd.mStaticElements.Add(isoad);
            }



            //old background parsing
            IEnumerable <Object> bgImage = valueList.Where(f => strip_to_root(f) == "BACKGROUND");
            foreach (Object f in bgImage)
            {
                set_texture_for_reading((Texture2D)f);
                cd.mBackSize = (new Vector2(((Texture2D)f).width, ((Texture2D)f).height));
            }
            if (bgImage.Count() > 0)
            {
                set_texture_for_render((Texture2D)bgImage.First());
            }
        }catch (UnityException e)
        {
            Debug.Log("problem with POSITIONS, probably mini character " + e.StackTrace);
        }

        //package
        TextAsset            cdtxt   = serialize_cd(cd);
        IEnumerable <Object> package = aObjects.Where(f => !is_B_image(f)).Where(f => strip_to_root(f) != "POSITIONS");//.Where(f => strip_to_root(f) != "AUDIO");
        List <Object>        assets  = new List <Object>();

        foreach (Object f in package)
        {
            assets.Add(f);
        }
        AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(cdtxt));
        cdtxt = (TextAsset)AssetDatabase.LoadAssetAtPath("Assets/CD.txt", typeof(TextAsset));
        assets.Add(cdtxt);
        //Debug.Log(cdtxt.text);
#if UNITY_XBOXONE
        BuildPipeline.BuildAssetBundle(aMain, assets.ToArray(), "Assets/Resources/XB1" + aMain.name + ".unity3d", BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets, EditorUserBuildSettings.activeBuildTarget); //, BuildOptions.UncompressedAssetBundle);//, BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets);
#else
        BuildPipeline.BuildAssetBundle(aMain, assets.ToArray(), "Assets/Resources/" + aMain.name + ".unity3d", BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets, EditorUserBuildSettings.activeBuildTarget);    //, BuildOptions.UncompressedAssetBundle);//, BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets);
#endif
        //Debug.Log(output);
        return(cd);
    }
Example #4
0
    //TODO DELETE
    //[MenuItem("Custom/Construct Graveyard Bundle")]
    static void Graveyard()
    {
        if (Selection.activeObject.name != "999")
        {
            Debug.Log("graveyard not selected");
            return;
        }
        List <Object> valueList = Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets).ToList();

        CharacterData.CharacterDataSizes cd = new CharacterData.CharacterDataSizes();
        cd.mName = Selection.activeObject.name;


        //parse POSITIONS.png
        //TODO special colors here
        Object    positionImage = valueList.Single(f => strip_to_root(f) == "POSITIONS");
        Texture2D bgProcessing  = positionImage as Texture2D;

        set_texture_for_reading(bgProcessing);

        //new parsing
        TextAsset effects;

        try{ effects = valueList.Single(f => strip_to_root(f) == "EFFECTS") as TextAsset; }
        catch { effects = null; }
        var staticElts = valueList.Where(f => strip_to_root(f).StartsWith("FG") || strip_to_root(f).StartsWith("BG") || strip_to_root(f).StartsWith("CUTSCENE"));

        //foreach(var e in staticElts) Debug.Log (e.name);
        foreach (var img in staticElts)
        {
            CharacterData.ImageSizeOffsetAnimationData isoad = new CharacterData.ImageSizeOffsetAnimationData();
            if (effects != null)
            {
                isoad.AnimationEffect = find_effect_string(effects, img.name);
            }
            isoad.Name = img.name;
            set_texture_for_reading((Texture2D)img);
            isoad.Size   = new Vector2(((Texture2D)img).width, ((Texture2D)img).height);
            isoad.Offset = find_position(bgProcessing, img.name);
            set_texture_for_render((Texture2D)img);
            cd.mStaticElements.Add(isoad);
        }

        //old backgronud parsing
        IEnumerable <Object> bgImage = valueList.Where(f => strip_to_root(f) == "BACKGROUND");

        foreach (Object f in bgImage)
        {
            set_texture_for_reading((Texture2D)f);
            cd.mBackSize = (new Vector2(((Texture2D)f).width, ((Texture2D)f).height));
        }
        set_texture_for_render((Texture2D)bgImage.First());

        //set audio to 2D
        foreach (Object f in valueList.Where(g => strip_to_root(g) == "AUDIO"))
        {
            set_audio_for_2D((AudioClip)f);
        }

        //package
        TextAsset            cdtxt   = serialize_cd(cd);
        IEnumerable <Object> package = valueList.Where(f => !is_B_image(f)).Where(f => strip_to_root(f) != "POSITIONS");       //.Where(f => strip_to_root(f) != "AUDIO");
        List <Object>        assets  = new List <Object>();

        foreach (Object f in package)
        {
            assets.Add(f);
        }
        AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(cdtxt));
        cdtxt = (TextAsset)AssetDatabase.LoadAssetAtPath("Assets/CD.txt", typeof(TextAsset));
        assets.Add(cdtxt);
        BuildPipeline.BuildAssetBundle(Selection.activeObject, assets.ToArray(), "Assets/Resources/" + cd.mName + ".unity3d", BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets, EditorUserBuildSettings.activeBuildTarget);        //, BuildOptions.UncompressedAssetBundle);//, BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets);
    }