private void UpdateTrainerImage()
        {
            BitmapSource trainerImage = PokeManager.TrainerImage;

            if (gameSave.GameType == GameTypes.Ruby || gameSave.GameType == GameTypes.Sapphire)
            {
                trainerImage = ResourceDatabase.GetImageFromName("RubySapphire" + trainerGender.ToString());
            }
            else if (gameSave.GameType == GameTypes.Emerald)
            {
                trainerImage = ResourceDatabase.GetImageFromName("Emerald" + trainerGender.ToString());
            }
            else if (gameSave.GameType == GameTypes.FireRed || gameSave.GameType == GameTypes.LeafGreen)
            {
                trainerImage = ResourceDatabase.GetImageFromName("FireRedLeafGreen" + trainerGender.ToString());
            }
            else if (gameSave.GameType == GameTypes.Colosseum)
            {
                trainerImage = ResourceDatabase.GetImageFromName("ColosseumMale");
            }
            else if (gameSave.GameType == GameTypes.XD)
            {
                trainerImage = ResourceDatabase.GetImageFromName("XDMale");
            }
            imageTrainer.Width  = Math.Min(90, trainerImage.PixelWidth);
            imageTrainer.Height = Math.Min(138, trainerImage.PixelHeight);
            imageTrainer.Source = trainerImage;
        }
Пример #2
0
        private void AddRibbon(string id)
        {
            Image image = new Image();

            image.Stretch             = Stretch.None;
            image.SnapsToDevicePixels = true;
            image.UseLayoutRounding   = true;
            image.Source           = ResourceDatabase.GetImageFromName("Ribbon" + id);  // PokemonDatabase.GetRibbonImageFromID(id);
            image.IsHitTestVisible = false;
            StackPanel stackPanelImage = new StackPanel();

            stackPanelImage.Orientation = Orientation.Horizontal;
            stackPanelImage.Children.Add(image);
            stackPanelImage.MouseLeftButtonDown += ribbon_MouseLeftButtonDown;
            stackPanelImage.Background           = new SolidColorBrush(Color.FromRgb(244, 244, 245));
            stackPanelImage.Tag = id;

            if (stackPanelRibbons.Children.Count == 0 || ((StackPanel)stackPanelRibbons.Children[stackPanelRibbons.Children.Count - 1]).Children.Count == 9)
            {
                StackPanel stackPanel = new StackPanel();
                stackPanel.Orientation = Orientation.Horizontal;
                stackPanel.Children.Add(stackPanelImage);
                stackPanelRibbons.Children.Add(stackPanel);
            }
            else
            {
                ((StackPanel)stackPanelRibbons.Children[stackPanelRibbons.Children.Count - 1]).Children.Add(stackPanelImage);
            }
        }
Пример #3
0
 public override Dictionary <string, string> GenerateReplacementDictionary(
     Options options,
     ResourceDatabase resDb)
 {
     return(CommonUtil.Collections.DictionaryUtil.MergeDictionaries(
                this.ParentPlatform.GenerateReplacementDictionary(options, resDb),
                new Dictionary <string, string>()
     {
         { "PROJECT_TITLE", options.GetString(ExportOptionKey.PROJECT_TITLE, "Untitled") },
         {
             "FAVICON",
             options.GetBool(ExportOptionKey.HAS_ICON)
                     ? "<link rel=\"shortcut icon\" href=\"" + options.GetStringOrEmpty(ExportOptionKey.JS_FILE_PREFIX) + "favicon.ico\">"
                     : ""
         },
         {
             "CSS_EXTRA",
             options.GetBool(ExportOptionKey.JS_FULL_PAGE)
                     ? ("#crayon_host { background-color:#000; text-align:left; width: 100%; height: 100%; }\n"
                        + "body { overflow:hidden; }")
                     : ""
         },
         { "JS_EXTRA_HEAD", options.GetStringOrEmpty(ExportOptionKey.JS_HEAD_EXTRAS) },
     }));
 }
Пример #4
0
        private async Task <BuildData> HandleRequestImpl(BuildRequest request)
        {
            BuildContext buildContext = GetBuildContext(
                request.BuildFile,
                request.BuildTarget,
                this.Hub,
                request.BuildArgOverrides,
                request.ExtensionArgOverrides);
            ResourceDatabase resourceDatabase = ResourceDatabaseBuilder.PrepareResources(buildContext);

            // TODO: this should no longer be a wax request and can be called directly.
            BuildData buildData = await Compile(buildContext, resourceDatabase, this.Hub);

            buildData.ExportProperties = BuildExportRequest(buildContext);
            buildData.ExportProperties.ExportPlatform   = buildContext.Platform;
            buildData.ExportProperties.ProjectDirectory = buildContext.ProjectDirectory;

            buildData.ExportProperties.OutputDirectory = request.OutputDirectoryOverride ?? buildContext.OutputFolder;

            if (!buildData.HasErrors)
            {
                buildData.CbxBundle.ResourceDB.ConvertToFlattenedFileData();
            }

            return(buildData);
        }
        public void TryAddContainer(DecorationTypes decorationType)
        {
            if (inventory.Decorations.ContainsPocket(decorationType))
            {
                TabItem tabItem = new TabItem();
                tabItem.Tag = decorationType;
                if (previousPocket == decorationType)
                {
                    previousPocketIndex = tabControlPockets.Items.Count;
                }
                Image headerImage = new Image();
                headerImage.SnapsToDevicePixels = true;
                headerImage.UseLayoutRounding   = true;
                headerImage.Stretch             = Stretch.None;
                headerImage.Source = ResourceDatabase.GetImageFromName(decorationType.ToString() + "Tab");

                tabItem.Header = headerImage;
                DecorationViewerTab inventoryTab = new DecorationViewerTab();
                inventoryTab.Width  = Double.NaN;
                inventoryTab.Height = Double.NaN;
                tabItem.Content     = inventoryTab;
                tabControlPockets.Items.Add(tabItem);
                inventoryTab.LoadPocket(inventory.Decorations[decorationType]);
                tabs.Add(decorationType, inventoryTab);
                if (currentPocket == DecorationTypes.Unknown)
                {
                    currentPocket = decorationType;
                }
            }
        }
Пример #6
0
 public abstract void PlatformSpecificFiles(
     string projectId,
     Dictionary <string, FileOutput> files,
     Dictionary <string, string> replacements,
     ResourceDatabase resourceDatabase,
     string iconFilePath,
     BuildContext buildContext);
Пример #7
0
        public Dictionary <string, List <FileOutput> > MatchAndRemoveFiles(ResourceDatabase resDB)
        {
            Dictionary <string, List <FileOutput> > output = new Dictionary <string, List <FileOutput> >();

            foreach (string sheetId in this.ids)
            {
                output.Add(sheetId, new List <FileOutput>());
            }

            foreach (FileOutput file in resDB.ImageResources)
            {
                if (file.Type == FileOutputType.Image)
                {
                    string imageSheetId = this.GetImageSheetIdMatch(file.OriginalPath);
                    if (imageSheetId != null)
                    {
                        output[imageSheetId].Add(file);

                        // This "unregisters" the image file such that it won't be included in the project output.
                        file.ImageSheetId = imageSheetId;
                        file.Type         = FileOutputType.Ghost;
                    }
                }
            }

            return(output);
        }
Пример #8
0
    //Initialize Objective References
    void InitializeObjectiveReferences()
    {
        int totalNumberOfObjectives = 2;

        objectives = new ObjectiveReference[totalNumberOfObjectives];
        //Set objective references
        for (int i = 0; i < totalNumberOfObjectives; i++)
        {
            objectives[i] = new ObjectiveReference(transform.Find("Objective " + (i + 1)));
            objectives [i].Reset();
        }
        //Set the button reference.
        continueToNextLevel = transform.Find("Level Continue").Find("Button").GetComponent <Button> ();
        continueToNextLevel.interactable = false;

        //Set initial values.
        switch (CurrentLevelVariableManagement.GetMainGameData().currentLevel)
        {
        case 0:
            objectives [0].icon.sprite      = ResourceDatabase.GetItemByParameter("Subsidiary Reactor Core").itemIcon;
            objectives [0].description.text = "Subsidiary Reactor Core";

            objectives [1].icon.sprite      = ResourceDatabase.GetItemByParameter("Wooden Pickaxe").itemIcon;
            objectives [1].description.text = "Pickaxe";
            break;

        default:
            Debug.LogError("The current level has not been added in ObjectiveManager!");
            break;
        }
    }
Пример #9
0
        public static void PrepareImageResources(ResourceDatabase resDB)
        {
            List <Image> wideImages  = new List <Image>();
            List <Image> tallImages  = new List <Image>();
            List <Image> bigImages   = new List <Image>();
            List <Image> smallImages = new List <Image>();

            foreach (Image image in GetAllImages(resDB))
            {
                if (image.IsJpeg)
                {
                    bigImages.Add(image);
                }
                else if (image.Width > 512 && image.Height < 100)
                {
                    wideImages.Add(image);
                }
                else if (image.Height > 512 && image.Width < 100)
                {
                    tallImages.Add(image);
                }
                else if (image.Width * image.Height > 256 * 256)
                {
                    bigImages.Add(image);
                }
                else
                {
                    smallImages.Add(image);
                }
            }

            List <Chunk> chunks = new List <Chunk>();

            chunks.AddRange(GetChunksForBigImages(bigImages));
            chunks.AddRange(GetChunksForSkinnyImages(wideImages, true));
            chunks.AddRange(GetChunksForSkinnyImages(tallImages, false));
            chunks.AddRange(GetChunksForSmallImages(smallImages));

            string manifest = ConvertChunksToManifest(chunks);

            resDB.ImageResourceManifestFile = new FileOutput()
            {
                Type             = FileOutputType.Text,
                TrimBomIfPresent = true,
                TextContent      = manifest,
            };

            Dictionary <string, FileOutput> chunkImages = new Dictionary <string, FileOutput>();

            foreach (Chunk chunk in chunks)
            {
                chunkImages["ch_" + chunk.ID + ".png"] = new FileOutput()
                {
                    Type   = FileOutputType.Image,
                    Bitmap = chunk.FinalizedBitmap,
                };
            }
            resDB.ImageResourceFiles = chunkImages;
        }
Пример #10
0
 public abstract Dictionary <string, FileOutput> ExportProject(
     IList <Pastel.Nodes.VariableDeclaration> globals,
     IList <Pastel.Nodes.StructDefinition> structDefinitions,
     IList <Pastel.Nodes.FunctionDefinition> functionDefinitions,
     IList <LibraryForExport> libraries,
     ResourceDatabase resourceDatabase,
     Options options,
     ILibraryNativeInvocationTranslatorProvider libraryNativeInvocationTranslatorProviderForPlatform);
        private static List <string> GetReferencedAssemblies(ResourceDatabase db)
        {
            var list = new List <string>();

            GetAssemblies(db.RootFolder, list);

            return(list);
        }
Пример #12
0
 public override void ExportProject(
     Dictionary <string, FileOutput> output,
     IList <LibraryForExport> libraries,
     ResourceDatabase resourceDatabase,
     Options options)
 {
     throw new NotImplementedException();
 }
Пример #13
0
 public override void ExportProject(
     Dictionary <string, FileOutput> output,
     IList <LibraryForExport> libraries,
     ResourceDatabase resourceDatabase,
     Options options)
 {
     throw new InvalidOperationException("This platform does not support direct export.");
 }
Пример #14
0
        public override void ExportProject(
            Dictionary <string, FileOutput> output,
            IList <LibraryForExport> libraries,
            ResourceDatabase resourceDatabase,
            Options options)
        {
            Dictionary <string, string> replacements = this.GenerateReplacementDictionary(options, resourceDatabase);

            this.OutputAndroidBoilerplate(output, replacements, options);

            options.SetOption(ExportOptionKey.JS_FILE_PREFIX, null);
            options.SetOption(ExportOptionKey.JS_FULL_PAGE, false); // TODO: figure out if logic should be implemented in the web view for this.
            options.SetOption(ExportOptionKey.JS_HEAD_EXTRAS, string.Join(
                                  "\n",
                                  "<script type=\"text/javascript\" src=\"android.js\"></script>",
                                  "<style type=\"text/css\">",
                                  "  body { margin:0px; background-color:#000; }",
                                  "  #crayon_host {",
                                  "    background-color:#000;",
                                  "    text-align:left;",
                                  "    width:100%;",
                                  "    height:100%;",
                                  "  }",
                                  "</style>"
                                  ));

            Dictionary <string, FileOutput> files        = new Dictionary <string, FileOutput>();
            Dictionary <string, FileOutput> basicProject = new Dictionary <string, FileOutput>();

            this.ParentPlatform.ExportProject(
                basicProject,
                libraries,
                resourceDatabase,
                options);

            // TODO: not good. The library inclusions should automatically be populated in LangJavaScript platforms.
            replacements["JS_LIB_INCLUSIONS"] = JavaScriptApp.PlatformImpl.GenerateJsLibInclusionHtml(basicProject.Keys);

            foreach (string filePath in basicProject.Keys)
            {
                FileOutput file = basicProject[filePath];
                if (filePath.EndsWith("index.html"))
                {
                    file.TextContent = file.TextContent.Replace(
                        "<script type=\"text/javascript\" src=\"",
                        "<script type=\"text/javascript\" src=\"file:///android_asset/");
                }
                files["app/src/main/assets/" + filePath] = file;
            }

            // TODO: use orientations
            OrientationParser orientations = new OrientationParser(options);

            foreach (string filename in files.Keys)
            {
                output[this.ApplyReplacements(filename, replacements)] = files[filename];
            }
        }
Пример #15
0
 public override void NPCActionAfterSpeaking()
 {
     //When the NPC has finished speaking to the player.
     if (talkedToPlayer == false)
     {
         talkedToPlayer = true;
         playerInventory.AssignNewItemToBestSlot(new ResourceReferenceWithStack(ResourceDatabase.GetItemByParameter("Wooden Pickaxe"), 1));
     }
 }
Пример #16
0
        public override Dictionary <string, string> GenerateReplacementDictionary(
            Options options,
            ResourceDatabase resDb)
        {
            Dictionary <string, string> replacements = AbstractPlatform.GenerateGeneralReplacementsDictionary(options);

            replacements["PROJECT_GUID"] = "project guid goes here.";
            return(replacements);
        }
Пример #17
0
    private void Awake()
    {
        DontDestroyOnLoad(gameObject);
        if (Instance == null)
        {
            Instance = this;
        }

        _db = Resources.Load <ResourceDatabase>(nameof(ResourceDatabase)) ?? throw new ArgumentException();
    }
Пример #18
0
 public override Dictionary <string, FileOutput> ExportProject(
     IList <VariableDeclaration> globals,
     IList <StructDefinition> structDefinitions,
     IList <FunctionDefinition> functionDefinitions,
     IList <LibraryForExport> libraries,
     ResourceDatabase resourceDatabase,
     Options options,
     ILibraryNativeInvocationTranslatorProvider libraryNativeInvocationTranslatorProviderForPlatform)
 {
     return(this.ExportProjectImpl(globals, structDefinitions, functionDefinitions, libraries, resourceDatabase, options, libraryNativeInvocationTranslatorProviderForPlatform, this.Translator));
 }
Пример #19
0
 public override Dictionary <string, FileOutput> ExportProject(
     IList <VariableDeclaration> globals,
     IList <StructDefinition> structDefinitions,
     IList <FunctionDefinition> functionDefinitions,
     IList <LibraryForExport> libraries,
     ResourceDatabase resourceDatabase,
     Options options,
     ILibraryNativeInvocationTranslatorProvider libraryNativeInvocationTranslatorProviderForPlatform)
 {
     throw new InvalidOperationException("This platform does not support direct export.");
 }
        public override CrayonWorkerResult DoWorkImpl(CrayonWorkerResult[] args)
        {
            // resDb = GetResourceDatabaseFromBuild(buildContext)
            BuildContext     buildContext = (BuildContext)args[0].Value;
            ResourceDatabase resDb        = ResourceDatabaseBuilder.PrepareResources(buildContext, null);

            return(new CrayonWorkerResult()
            {
                Value = resDb
            });
        }
Пример #21
0
        internal static ResourceDatabase PrepareResources(BuildContext buildContext)
        {
            // This really needs to go in a separate helper file.
            ResourceDatabase resourceDatabase = CreateResourceDatabase(buildContext);

            GenerateResourceMapping(resourceDatabase);

            ImageResourceAllocator.PrepareImageResources(resourceDatabase);

            return(resourceDatabase);
        }
Пример #22
0
        public override CrayonWorkerResult DoWorkImpl(CrayonWorkerResult[] args)
        {
            // PopulateFileOutputContext(fileOutputContext, buildContext, resDb, cbxFileBytes)
            Dictionary <string, FileOutput> fileOutputDescriptor = (Dictionary <string, FileOutput>)args[0].Value;
            BuildContext     buildContext = (BuildContext)args[1].Value;
            ResourceDatabase resDb        = (ResourceDatabase)args[2].Value;

            byte[] cbxData = (byte[])args[3].Value;
            this.GenerateFileOutput(fileOutputDescriptor, buildContext, resDb, cbxData);
            return(new CrayonWorkerResult());
        }
Пример #23
0
        private void RefreshTrainer()
        {
            string[] maleTrainers   = { "Youngster", "Bug Catcher", "Rich Boy", "Camper", "Cooltrainer" };
            string[] femaleTrainers = { "Lass", "School Kid", "Lady", "Picnicker", "Cooltrainer" };

            for (int i = 0; i < 5; i++)
            {
                ((ComboBoxItem)comboBoxTrainer.Items[i]).Content = (newGender == Genders.Male ? maleTrainers[i] : femaleTrainers[i]);
            }

            imageTrainer.Source = ResourceDatabase.GetImageFromName(newGender.ToString() + "SecretBaseLarge" + (((int)newTrainerID % 256) % 5).ToString());
        }
Пример #24
0
        public SelectGameTypeWindow(GameTypes gameType1, GameTypes gameType2)
        {
            InitializeComponent();

            this.gameType1 = gameType1;
            this.gameType2 = gameType2;

            imageGame1.Source  = ResourceDatabase.GetImageFromName(gameType1.ToString() + "Physical");
            imageGame2.Source  = ResourceDatabase.GetImageFromName(gameType2.ToString() + "Physical");
            labelGame1.Content = gameType1.ToString();
            labelGame2.Content = gameType2.ToString();
        }
 private void OnFemaleGenderClicked(object sender, RoutedEventArgs e)
 {
     radioButtonMale.IsChecked   = false;
     radioButtonFemale.IsChecked = true;
     trainerGender = Genders.Female;
     if (PokeManager.CustomTrainerImage == null)
     {
         BitmapSource trainerImage = ResourceDatabase.GetImageFromName("Manager" + trainerGender.ToString());
         imageTrainer.Width  = Math.Min(90, trainerImage.PixelWidth);
         imageTrainer.Height = Math.Min(138, trainerImage.PixelHeight);
         imageTrainer.Source = trainerImage;
     }
 }
Пример #26
0
        private static async Task <BuildData> Compile(
            BuildContext buildContext,
            ResourceDatabase resDb,
            WaxHub waxHub)
        {
            CompileRequest cr = new CompileRequest(buildContext, waxHub.SourceRoot);

            InternalCompilationBundle icb = await Compiler.Compile(cr, waxHub);

            // TODO: the CBX Bundle should be constructed directly from a Dictionary in this result.
            Dictionary <string, object> resultRaw = ActualCompilation(icb);

            List <Error> errors = new List <Error>();

            string[] errorsRaw = (string[])resultRaw["errors"];
            for (int i = 0; i < errorsRaw.Length; i += 4)
            {
                Error err = new Error()
                {
                    FileName = errorsRaw[i],
                    Line     = int.Parse(errorsRaw[i + 1]),
                    Column   = int.Parse(errorsRaw[i + 2]),
                    Message  = errorsRaw[i + 3],
                };
                errors.Add(err);
            }

            if (errors.Count > 0)
            {
                return new BuildData()
                       {
                           Errors = errors.ToArray()
                       }
            }
            ;

            BuildData buildData = new BuildData()
            {
                UsesU3             = (bool)resultRaw["usesU3"],
                DependencyTreeJson = resultRaw.ContainsKey("depTree") ? (string)resultRaw["depTree"] : null,
                CbxBundle          = new CbxBundle()
                {
                    ByteCode   = (string)resultRaw["byteCode"],
                    ResourceDB = resDb,
                },
                ProjectID = buildContext.ProjectID,
            };

            return(buildData);
        }
Пример #27
0
 public override void ExportProject(
     Dictionary <string, FileOutput> output,
     TemplateStorage templates,
     IList <LibraryForExport> libraries,
     ResourceDatabase resourceDatabase,
     Options options)
 {
     this.ExportProjectImpl(
         output,
         templates,
         libraries,
         resourceDatabase,
         options);
 }
Пример #28
0
        public override CrayonWorkerResult DoWorkImpl(CrayonWorkerResult[] args)
        {
            // cbxFileBytes = GenerateCbxFileContent(buildContext, resDb, compilationResult, byteCode)
            BuildContext      buildContext      = (BuildContext)args[0].Value;
            ResourceDatabase  resDb             = (ResourceDatabase)args[1].Value;
            CompilationBundle compilationResult = (CompilationBundle)args[2].Value;
            string            byteCode          = (string)args[3].Value;

            byte[] cbxData = this.GenerateCbxBinaryData(buildContext, resDb, compilationResult, byteCode);
            return(new CrayonWorkerResult()
            {
                Value = cbxData
            });
        }
Пример #29
0
    IEnumerator BeginGame()
    {
        //Wait one frame so everything is initialized.
        yield return(null);

        //Initialize the database.
        ResourceDatabase.InitializeDatabase();

        //Default profession (TEMPORARY)
        GameData.SetPlayerProfession(ResourceDatabase.GetRaceByParameter("Agent"));

        //Use the init sequence to initialize everything.
        StartCoroutine(InitializationSequence.instance.LoadEverything());
    }
Пример #30
0
        public override void ExportProject(
            Dictionary <string, FileOutput> output,
            TemplateStorage templates,
            IList <LibraryForExport> libraries,
            ResourceDatabase resourceDatabase,
            Options options)
        {
            Dictionary <string, string> replacements = this.GenerateReplacementDictionary(options, resourceDatabase);
            StringBuilder cCode = new StringBuilder();

            cCode.Append("#include <stdio.h>");
            cCode.Append(this.NL);
            cCode.Append("#include <stdlib.h>");
            cCode.Append(this.NL);
            cCode.Append("#include <string.h>");
            cCode.Append(this.NL);
            cCode.Append(this.NL);

            cCode.Append(this.LoadTextResource("Resources/List.txt", replacements));
            cCode.Append(this.LoadTextResource("Resources/String.txt", replacements));
            cCode.Append(this.LoadTextResource("Resources/Dictionary.txt", replacements));
            cCode.Append(this.LoadTextResource("Resources/TranslationHelper.txt", replacements));
            cCode.Append(this.NL);

            cCode.Append(templates.GetCode("vm:structsdecl"));
            cCode.Append(this.NL);

            foreach (string structKey in templates.GetTemplateKeysWithPrefix("vm:struct:"))
            {
                string structName = templates.GetName(structKey);
                cCode.Append(templates.GetCode(structKey));
            }
            cCode.Append(this.NL);

            cCode.Append(templates.GetCode("vm:stringtable"));
            cCode.Append(this.NL);
            cCode.Append(templates.GetCode("vm:functionsdecl"));
            cCode.Append(this.NL);
            cCode.Append(templates.GetCode("vm:functions"));
            cCode.Append(this.NL);

            cCode.Append(this.LoadTextResource("Resources/main.txt", replacements));

            output["main.c"] = new FileOutput()
            {
                Type        = FileOutputType.Text,
                TextContent = cCode.ToString(),
            };
        }