Exemple #1
1
 //constructor
 //Possibly requires explicit keyword
 public Aircraft(Type type, ResourceHolder<Texture, ResourceID> textures)
 {
     mType = type;
     mSprite = new Sprite(textures.get(toTextureID(type)));
     FloatRect bounds = mSprite.GetLocalBounds();
     mSprite.Origin = new Vector2f(bounds.Width / 2, bounds.Height / 2);
 }
Exemple #2
0
 public Context(RenderWindow window, ResourceHolder<Texture, ResourceID> textures, ResourceHolder<Font, FontID> fonts, Player player) 
 {
     this.window = window;
     this.textures = textures;
     this.fonts = fonts;
     this.player = player;
 }
    static void getChildren(DirectoryInfo[] dirs)
    {
        if (dirs.Length == 0)
        {
            return;
        }

        for (int i = 0; i < dirs.Length; ++i)
        {
            DirectoryInfo   dir           = new DirectoryInfo(dirs[i].FullName);
            DirectoryInfo[] tmp           = dir.GetDirectories();
            string          lowerDirsName = dirs[i].Name.ToLower();

            FileInfo[] files = dirs[i].GetFiles();

            if (files.Length > 0 && !isOnlyMeta(files))
            {
                ResourceHolder newResrouceHolder = new ResourceHolder(lowerDirsName, files[0].Extension);

                foreach (FileInfo fi in files)
                {
                    if (!fi.Name.EndsWith(".meta"))
                    {
                        int startpos = fi.FullName.LastIndexOf("\\Resources\\") + "\\Resources\\".Length;
                        newResrouceHolder._pathList.Add(fi.FullName.Substring(startpos).Replace("\\", "/").Replace(newResrouceHolder._extension, ""));
                    }
                }
                resourceHolders.Add(newResrouceHolder);
            }

            getChildren(tmp);
        }
    }
 public void UpdateBunkerResources()
 {
     FoodInBunker.text            = "Food\n" + ResourceHolder.GetFood().Count;
     WaterInBunker.text           = "Water\n" + ResourceHolder.GetWater().Count;
     MedicalSuppliesInBunker.text = "Medical Supplies\n" + ResourceHolder.GetMedicalSupplies().Count;
     WeaponsInBunker.text         = "Weapons\n" + ResourceHolder.GetWeapon().Count;
 }
        private T Load <T>(Wz_Node node = null, string assetName = null)
        {
            if (node == null && assetName == null)
            {
                throw new ArgumentNullException();
            }

            assetName = assetName ?? node.FullPathToFile;

            ResourceHolder holder;

            if (!loadedItems.TryGetValue(assetName, out holder))
            {
                var res = InnerLoad(node ?? PluginManager.FindWz(assetName), typeof(T));
                if (res == null)
                {
                    return(default(T));
                }

                holder                 = new ResourceHolder();
                holder.Resource        = res;
                loadedItems[assetName] = holder;
            }

            //结算计数器
            if (isCounting)
            {
                holder.Count++;
            }

            //特殊处理
            return((T)holder.Resource);
        }
Exemple #6
0
    protected void Produce()
    {
        float maxPercentageToAdd = 100f / 10f;
        float percentageToAdd    = maxPercentageToAdd * CitizenFactor();

        productionRound += percentageToAdd;

        if (productionRound < 100f)
        {
            return;
        }
        productionRound = 0f;
        List <ResAmount> actualInputs = new List <ResAmount>();

        foreach (ResAmount input in inputs)
        {
            actualInputs.Add(new ResAmount(input.GetResType(), input.GetAmount()));
        }

        List <ResAmount> actualOutputs = new List <ResAmount>();

        foreach (ResAmount output in outputs)
        {
            actualOutputs.Add(new ResAmount(output.GetResType(), output.GetAmount()));
        }

        if (ResourceHolder.CanAfford(actualInputs))
        {
            ResourceHolder.Consume(actualInputs);
            ResourceHolder.Produce(actualOutputs);
        }
    }
Exemple #7
0
 public void PickUpResource()
 {
     if (Input.GetKeyDown(KeyCode.Space))
     {
         ResourceHolder.AddToBackPack(this);
     }
 }
    /// <summary>
    /// 卸载资源,并返回资源是否已经被删除
    /// </summary>
    /// <param name="resourceHolder">持有要卸载的资源的ResourceHolder</param>
    /// <returns>
    /// 资源已经被删除 true
    /// 资源还未被删除 false
    /// </returns>
    protected bool UnloadResource(ResourceHolder resourceHolder)

    {
        bool   res          = false;
        string resourceName = resourceHolder.resourceName;
        object resource     = resourceHolder.resource;

        if (resource != null)
        {
            if (DecreaseResourceReferenceCount(resourceName))
            {
                // 引用计数已经降为零,删除资源
                resourceReferenceTable.Remove(resource);
                resourceTable.Remove(resourceName);
                UnloadResourceObject(resourceName, resource);
                res = true;
            }
        }
        else
        {
            if (LogUtil.ShowError != null)
            {
                LogUtil.ShowError(string.Format("要释放的资源[{0}]不存在", resourceName));
            }
            res = true;
        }
        return(res);
    }
Exemple #9
0
    private void tryPlacing(GameObject tryObj)
    {
        var ph = tryObj.GetComponent <BuildingPlaceHolder>();

        if (!ResourceHolder.CanAfford(ph.costs))
        {
            PopupWindow.ShowPopup("You cannot afford this.");
            SetNotPlacable(tryObj);
            return;
        }

        BuildingPlaceHolder.State state = ph.state;
        if (state == BuildingPlaceHolder.State.NONE)
        {
            return;
        }
        else if (state == BuildingPlaceHolder.State.PLACING_NOT_POSSIBLE)
        {
            SetNotPlacable(tryObj);
        }
        else if (state == BuildingPlaceHolder.State.PLACING)
        {
            SetPlacable(tryObj);
        }
    }
Exemple #10
0
        private void ShowResourceInGrid(ResourceHolder resource)
        {
            if (resource == null)
            {
                dataGridView1.DataSource = null;
                return;
            }

            dataGridView1.DataSource = resource.StringsTable;

            foreach (var languageHolder in resource.Languages.Values)
            {
                dataGridView1.Columns[languageHolder.LanguageId].DefaultCellStyle.WrapMode = DataGridViewTriState.True;
            }

            dataGridView1.Columns[ColNameNoLang].DefaultCellStyle.WrapMode = DataGridViewTriState.True;
            dataGridView1.Columns[ColNameComment].DisplayIndex             = dataGridView1.Columns.Count - 1;

            dataGridView1.Columns[ColNameTranslated].Visible = false;
            dataGridView1.Columns[ColNameError].Visible      = false;

            dataGridView1.Columns[ColNameKey].ReadOnly = true;

            ApplyConditionalFormatting();
        }
Exemple #11
0
 public Context(RenderWindow window,ResourceHolder<Texture,TextureID> textures, ResourceHolder<Font,FontID> fonts, Player player)
 {
     mWindow = window;
     mTextures = textures;
     mFonts = fonts;
     mPlayer = player;
 }
Exemple #12
0
        static void Main(string[] args)
        {
            var holder = new ResourceHolder(1000, 101);

            holder.CopyTo();
            holder.CopyFrom();
        }
        public void TestSpendShouldFailWhenNotEnoughResourceAndNotForced()
        {
            ResourceHolder rh =
                new ResourceHolder("Buns", 5, 5);

            Assert.AreEqual(rh.Deplete(10), 5);
        }
        public void TestSpendShouldSucceedWhenJustEnoughResource()
        {
            ResourceHolder rh =
                new ResourceHolder("Buns", 5, 5);

            Assert.AreEqual(rh.Deplete(5), 0);
        }
        public void TestSpendShouldDebtWhenNotEnoughResourceAndForced()
        {
            ResourceHolder rh =
                new ResourceHolder("Buns", 5, 5);

            Assert.AreEqual(rh.Deplete(10, true), -5);
        }
        //=============================== FUNCTIONALITY ==============================//

        private void UpdateSelectorComboBox()
        {
            ResourceHolder.Get.ChangeResourceType(ResourceType.Foliage);
            List <TileCategory> rootCategories = ResourceHolder.Get.GetSelectedCategories();

            LoadedTileCategories = rootCategories
                                   .Select(c => new TileCategory(c.Name, new List <TileObject>(c.TileObjects)))
                                   .ToList();

            List <TileObject> tileObjects = AvailableObjects.Select(o => o.TileObject).ToList();

            foreach (TileCategory tileCategory in LoadedTileCategories)
            {
                var objectsToRemove = tileCategory.TileObjects.Where(t => !tileObjects.Contains(t)).ToList();
                foreach (TileObject tileObject in objectsToRemove)
                {
                    tileCategory.TileObjects.Remove(tileObject);
                }
            }

            LoadedTileCategories.RemoveAll(c => c.TileObjects.Count == 0);

            Selection.AssignSelection(LoadedTileCategories[0].TileObjects[0]);
            IEnumerable <string> names = ResourceHolder.GetCategoryNames(LoadedTileCategories);

            CategorySelector.ItemsSource   = names;
            CategorySelector.SelectedIndex = 0;
            _selectorGridCreator.UpdateTileGroup(LoadedTileCategories);
            _selectorGridCreator.CreateSelectionPanel(LoadedTileCategories[0]);
        }
    public void AddResourceCard(GameObject cardObject)
    {
        ResourceHolder resourceHolder = new ResourceHolder();

        resourceHolder.cardObject = cardObject;
        resourcesList.Add(resourceHolder);
    }
Exemple #18
0
 public void UpdateStatus(ResourceHolder holder)
 {
     if (holder == Owner)
     {
         if (SampleText.isActiveAndEnabled)
         {
             var changeValue = "";
             if (holder.Change > 0)
             {
                 changeValue = "+" + holder.Change;
             }
             else if (holder.Change < 0)
             {
                 changeValue = holder.Change.ToString();
             }
             SampleText.text = string.Format("{0}: {1} {2}", holder.Resource.Name, holder.Count, changeValue);
         }
         Icon.color = GetColor(holder.Change);
         Icon.transform.localScale = Vector3.one;
         if (holder.Change != _prevChange)
         {
             Icon.transform.DOShakeScale(0.33f, Vector2.one, 10, 0).OnComplete(() => Icon.transform.localScale = Vector3.one);
             _prevChange = holder.Change;
         }
         Slider.fillAmount = (float)holder.Count / _maxValue;
     }
 }
        public GameApplication()
        {
            mWindow = new RenderWindow(new VideoMode(640, 480), "SFML App", Styles.Close);
            mWindow.SetKeyRepeatEnabled(false);

            mPlayer = new Player();

            mTextures = new ResourceHolder<Texture, ResourceID>();
            mTextures.load(ResourceID.TitleScreen, "Media/Textures/TitleScreen.png");
            mTextures.load(ResourceID.ButtonNormal, "Media/Textures/ButtonNormal.png");
            mTextures.load(ResourceID.ButtonSelected, "Media/Textures/ButtonSelected.png");
            mTextures.load(ResourceID.ButtonPressed,"Media/Textures/ButtonPressed.png");

            mFonts = new ResourceHolder<Font, FontID>();
            mFonts.load(FontID.Main, "Media/Sansation.ttf");

            mStateStack = new StateStack(new State.Context(mWindow,mTextures,mFonts,mPlayer));
            eventqueue = new Queue<Event>();

            registerStates();
            mStateStack.pushState(StateID.Title);

            mWindow.Closed += onClosed;
            mWindow.GainedFocus += gainedFocus;
            mWindow.LostFocus += lostFocus;
            mWindow.KeyPressed += keyPressed;
        }
Exemple #20
0
        // Token: 0x06000374 RID: 884 RVA: 0x0001F2F8 File Offset: 0x0001D4F8
        private void OpenFileBrowser(int matNo1, ACCTexture acctex)
        {
            ACCTexturesView.fileBrowser = new FileBrowser(new Rect(0f, 0f, ACCTexturesView.uiParams.fileBrowserRect.width, ACCTexturesView.uiParams.fileBrowserRect.height), "テクスチャファイル選択", delegate(string path)
            {
                ACCTexturesView.fileBrowser = null;
                if (path == null)
                {
                    return;
                }
                acctex.filepath = (this.textureDir = Path.GetDirectoryName(path));
                string fileName = Path.GetFileName(path);
                if (acctex.editname != fileName)
                {
                    acctex.editname = fileName;
                    acctex.dirty    = true;
                }
                this.ChangeTexFile(this.textureDir, acctex.editname, matNo1, acctex.propName);
            });
            ResourceHolder instance = ResourceHolder.Instance;

            ACCTexturesView.fileBrowser.DirectoryImage    = instance.DirImage;
            ACCTexturesView.fileBrowser.FileImage         = instance.PictImage;
            ACCTexturesView.fileBrowser.NoFileImage       = instance.FileImage;
            ACCTexturesView.fileBrowser.labelStyle        = ACCTexturesView.uiParams.listStyle;
            ACCTexturesView.fileBrowser.SelectionPatterns = new string[]
            {
                "*.tex",
                "*.png"
            };
            if (!string.IsNullOrEmpty(this.textureDir))
            {
                ACCTexturesView.fileBrowser.CurrentDirectory = this.textureDir;
            }
        }
Exemple #21
0
    //添加资源
    private void AddResource(Object resource, string name, string type)
    {
        if (resource == null)
        {
            return;
        }
        //获取资源地址作为key值
        string path = AssetDatabase.GetAssetPath(resource);

        if (mResourceDict.ContainsKey(path))
        {
            mResourceDict[path].ResourceUseCount++;
        }
        else
        {
            ResourceHolder resourceHolder = new ResourceHolder {
                ResourceObject   = resource,
                ResourcePath     = path,
                ResourceName     = name,
                ResourceType     = type,
                ResourceUseCount = 1
            };
            mResourceDict.Add(path, resourceHolder);
            mResourceList.Add(resourceHolder);
        }
    }
Exemple #22
0
        public void Add()
        {
            var rh = new ResourceHolder();

            rh.Add("resource1", "operation1", "principal1");

            Assert.Equal(1, rh.ResourceCount);
        }
        /// <summary>
        /// Registers a custom resource.
        /// </summary>
        /// <param name="name">The name.</param>
        /// <param name="location">The location.</param>
        /// <param name="version">The version.</param>
        /// <param name="resource">The resource.</param>
        /// <param name="mimeType">Mime-type.</param>
        /// <param name="lastModified">The last modified.</param>
        public void RegisterCustomResource(string name, string location, string version,
                                           IResource resource, string mimeType,
                                           DateTime?lastModified)
        {
            AssertParams(name, resource, mimeType);

            keyToResource[new ResourceKey(name, location, version)] = new ResourceHolder(resource, mimeType, lastModified);
        }
Exemple #24
0
        public void Contains()
        {
            var rh = new ResourceHolder();

            rh.Add("resource1", "operation1", "principal1");

            Assert.True(rh.Contains("resource1", "operation1", "principal1"));
        }
 public TextNode(ResourceHolder<Font, FontID> fonts, string text) 
 {
     mText = new Text();
     mText.Font = fonts.get(FontID.Main);
     mText.DisplayedString = text;
     mText.CharacterSize = 20;
        
 }
Exemple #26
0
 void InitHolders()
 {
     foreach (var res in Resources.Resources)
     {
         var holder = new ResourceHolder(res, StartCount);
         Holders.Add(holder);
         Events.Fire(new Resource_New(holder, MaxResource));
     }
 }
 private void Awake()
 {
     GameManager.instance = this;
     allBots = Object.FindObjectsOfType <Bot>().ToList();
     currentlySelectedBots = new List <Bot>();
     homeBase.isConnected  = true;
     resourceHolder        = GetComponent <ResourceHolder>();
     StartCoroutine(UpdateConnectivityClock());
 }
Exemple #28
0
 public void Place()
 {
     foreach (ResAmount cost in costs)
     {
         ResourceHolder.Consume(cost.GetResType(), cost.GetAmount());
     }
     Instantiate(building, gameObject.transform.position, Quaternion.identity);
     Destroy(gameObject);
 }
Exemple #29
0
 private void Awake()
 {
     if (Instance != null)
     {
         Destroy(gameObject);
         return;
     }
     Instance = this;
 }
 private void OnTriggerEnter(Collider other)
 {
     if (other.tag == "Player")
     {
         //dump backpack and start the 30 seconds of "surviving" in the bunker
         ResourceHolder.EmptyBackpack();
         WaitManager.instance.StartWaitPhase();
     }
 }
 public Projectile(Type type, ResourceHolder<Texture, ResourceID> textures):base(1) //I don't know how much HP there is
 {
     mType = type;
     mSprite = new Sprite(textures.get(Table[(int)type].texture));
     
     mSprite.centerOrigin();
     mTargetDirection = new Vector2f();
     
 }
        public void TestResourceModuleShouldBeConstructed()
        {
            ResourceHolder rh = new ResourceHolder("Test", 100, 40);

            Assert.AreEqual("Test", rh.Name);
            Assert.AreEqual(100, rh.Max);
            Assert.AreEqual(40, rh.Value);
            Assert.AreEqual(0.4f, rh.Percent, 0.01f);
            Assert.AreEqual(null, rh.Owner);
        }
        public void TestSetMaxRetainPercentShouldSetMaxAndVal()
        {
            ResourceHolder rh = new ResourceHolder("Zoms", 100, 100);

            rh.SetMaxRetainPercent(200);

            Assert.AreEqual(200, rh.Value);
            Assert.AreEqual(200, rh.Max);
            Assert.AreEqual(1f, rh.Percent);
        }
 public void Init(string resourceName, ResourceHolder resourceHolder, Action <AsyncResourceRequester, object> resourceHolderGenerateCallback, object callbackExtraParam)
 {
     progress            = 0f;
     done                = false;
     fail                = false;
     released            = false;
     this.resourceName   = resourceName;
     this.resourceHolder = resourceHolder;
     this.resourceHolderGenerateCallback = resourceHolderGenerateCallback;
     this.callbackExtraParam             = callbackExtraParam;
 }
Exemple #35
0
    public void AddResourceCard(GameObject cardObject)
    {
        ResourceHolder resourceHolder = new ResourceHolder
        {
            cardObject = cardObject
        };

        resourcesList.Add(resourceHolder);

        Settings.RegisterEvent(username + " dropped a resource card", Color.white);
    }
        public void TestCanSpendFalse()
        {
            ResourceHolder rh =
                new ResourceHolder("Buns", 100, 100);

            int val = rh.Deplete(90);

            Assert.AreEqual(val, 10);
            Assert.False(rh.CanSpend(11));
            Assert.True(rh.CanSpend(10));
        }
Exemple #37
0
        public Button(ResourceHolder<Font, FontID> fonts, ResourceHolder<Texture, ResourceID> textures) 
        {
            //ACTION IS NOT INITIALIZED
            mNormalTexture = new Texture(textures.get(ResourceID.ButtonNormal));
            mSelectedTexture = new Texture(textures.get(ResourceID.ButtonSelected));
            mPressedTexture = new Texture(textures.get(ResourceID.ButtonPressed));

            mSprite = new Sprite(mNormalTexture);

            mText = new Text("", fonts.get(FontID.Main), 16);
            mIsToggle = false;

            FloatRect bounds = mSprite.GetLocalBounds();
            mText.Position = new Vector2f(bounds.Width / 2, bounds.Height / 2);
        }
Exemple #38
0
        public World(RenderWindow window)
        {
            mWindow = window;
            mWorldView = window.DefaultView;
            mWorldBounds = new IntRect(0, 0, (int)mWorldView.Size.X, 2000); //have to explcitly cast Size.X from float to int because of cast issues between IntRect and FloatRect later on
            mSpawnPosition = new Vector2f(mWorldView.Size.X / 2, mWorldBounds.Height - mWorldView.Size.Y); //original code is mWorldBounds.Height - mWorldView.Size, but caused error
            mScrollSpeed = -50; //this is not included in book but in source code
            mSceneLayers = new SceneNode[(int)Layer.LayerCount];
            mTextures = new ResourceHolder<Texture, ResourceID>();
            mSceneGraph = new SceneNode();
            mPlayerAircraft = null;
            mCommandQueue = new CommandQueue();

            mWorldView.Center = mSpawnPosition;

            loadTextures();
            buildScene();
        }
Exemple #39
0
        public GameApplication()
        {
            mWindow = new RenderWindow(new VideoMode(640, 480), "SFML App", Styles.Close);
            mWindow.SetKeyRepeatEnabled(false);

            mPlayer = new Player();

            mTextures = new ResourceHolder<Texture, TextureID>();

            mFonts = new ResourceHolder<Font, FontID>();
            mFonts.load(FontID.Title, "Assets/KarmaFuture.ttf");

            mStateStack = new StateStack(new Context(mWindow, mTextures, mFonts, mPlayer));
            eventqueue = new Queue<Input.Event>();

            registerStates();
            mStateStack.pushState(StateID.Title);

            mWindow.Closed += onClosed;
            mWindow.GainedFocus += gainedFocus;
            mWindow.LostFocus += lostFocus;
            mWindow.KeyPressed += keyPressed;
        }
        public Aircraft(Type type, ResourceHolder<Texture, ResourceID> textures, ResourceHolder<Font,FontID> fonts) :base(Table[(int)type].hitpoints)
        { 
            mType = type; 
            mSprite = new Sprite(textures.get(toTextureID(type)));
            FloatRect bounds = mSprite.GetLocalBounds();
            mSprite.Origin = new Vector2f(bounds.Width / 2, bounds.Height / 2);

            TextNode healthDisplay = new TextNode(fonts, " "); ;
            mHealthDisplay = healthDisplay;
            attachChild(healthDisplay);

            mTravelledDistance = 0;
            mDirectionIndex = 0;

            mIsFiring = false;
            mIsLaunchingMissile = false;
            MissileAmmo = 3;
            mIsMarkedForRemoval = false;
            mFireCountdown = Time.Zero;
            mFireRateLevel = 1;
            mSpreadLevel = 1;

            mFireCommand = new Command();
            mFireCommand.category = (uint)Category.PlayerAircraft;
            mFireCommand.actionfunc = (SceneNode node, Time time) =>
            {
                SceneNode aircraft = (Aircraft)node;
                createBullets(aircraft, textures);
            };

            mLaunchCommand = new Command();
        }
        public void createBullets(SceneNode node, ResourceHolder<Texture,ResourceID> textures) 
        {
          Projectile.Type type = isAllied() ? Projectile.Type.AlliedBullet : Projectile.Type.EnemyBullet;
          switch (mSpreadLevel)
          {
              case 1:
                  createProjectile(node, type, 0.0f, 0.5f, textures);
                  break;

              case 2:
                  createProjectile(node, type, -0.33f, 0.33f, textures);
                  createProjectile(node, type, +0.33f, 0.33f, textures);
                  break;

              case 3:
                  createProjectile(node, type, -0.5f, 0.33f, textures);
                  createProjectile(node, type, 0.0f, 0.5f, textures);
                  createProjectile(node, type, +0.5f, 0.33f, textures);
                  break;
          }
        }
        public void createProjectile(SceneNode node, Projectile.Type type, float xOffset, float yOffset, ResourceHolder<Texture, ResourceID> textures)
        {
            Projectile projectile = new Projectile(type, textures);
            Vector2f offset = new Vector2f(xOffset * mSprite.GetGlobalBounds().Width, yOffset * mSprite.GetGlobalBounds().Height);
            Vector2f velocity = new Vector2f(0, projectile.getMaxSpeed());

            float sign = isAllied() ? -1 : +1;
            projectile.Position = getWorldPosition() + offset * sign;
            projectile.setVelocity(velocity * sign);
            node.attachChild(projectile);
        }
Exemple #43
0
        public Project(Solution parent, string name, string fullFilename, string relativeFilename)
        {
            this.parent = parent;
            this.name = name;
            this.fullFilename = fullFilename;
            this.relativeFilename = relativeFilename;

            XmlDocument projectFile = new XmlDocument();
            projectFile.Load(fullFilename);
            XmlNamespaceManager nsMgr = new XmlNamespaceManager(projectFile.NameTable);
            nsMgr.AddNamespace("x", "http://schemas.microsoft.com/developer/msbuild/2003");

            XmlNodeList resourceNodes = projectFile.SelectNodes("/x:Project/x:ItemGroup/x:EmbeddedResource", nsMgr);

            Dictionary<string, ResourceHolder> holders = new Dictionary<string, ResourceHolder>();
            foreach (XmlNode xmlNode in resourceNodes)
            {
                string dependentUpon = null;
                foreach (XmlNode childNode in xmlNode.ChildNodes)
                {
                    if (childNode.Name == "DependentUpon")
                        dependentUpon = childNode.InnerText;
                }

                XmlAttribute attribute = xmlNode.Attributes["Include"];
                if (attribute != null)
                {
                    if(!attribute.Value.EndsWith(".resx", StringComparison.OrdinalIgnoreCase))
                        continue;

                    string baseFilename = attribute.Value.Substring(0, attribute.Value.Length - 5);

                    ResourceHolder holder = new ResourceHolder(baseFilename, dependentUpon);
                    holders.Add(baseFilename.ToLower(), holder);
                }
            }

            // Find the bases
            Dictionary<string, Resource> baseResources = new Dictionary<string, Resource>();
            foreach (KeyValuePair<string, ResourceHolder> kvp in holders)
            {
                int dotIndex = kvp.Key.LastIndexOf('.');
                if (dotIndex > -1)
                {
                    string baseName = kvp.Key.Substring(0, dotIndex);
                    ResourceHolder baseHolder;
                    if (holders.TryGetValue(baseName, out baseHolder))
                    {
                        // Found our base
                        Resource baseResource;
                        if (!baseResources.TryGetValue(baseName, out baseResource))
                        {
                            // Create new
                            baseResource = new Resource(Path.GetFileName(baseHolder.Filename),
                                baseHolder.Filename, baseHolder.DependentUpon);
                            baseResources.Add(baseName, baseResource);
                        }

                        string languageId = kvp.Value.Filename.Substring(baseName.Length + 1);
                        parent.AddLanguage(languageId);

                        baseResource.AddLanguageFile(languageId, Path.Combine(
                            Path.Combine(parent.RootPath, Path.GetDirectoryName(relativeFilename)),
                            kvp.Value.Filename + ".resx"));
                    }
                    else
                    {
                        // Specified language without a base resource file, ignore
                    }
                }
                else
                {
                    Resource baseResource;
                    if (!baseResources.TryGetValue(kvp.Key, out baseResource))
                    {
                        // Create new
                        baseResource = new Resource(Path.GetFileName(kvp.Value.Filename), kvp.Value.Filename, kvp.Value.DependentUpon);
                        baseResources.Add(kvp.Key, baseResource);
                    }

                    baseResource.AddLanguageFile(string.Empty, Path.Combine(
                        Path.Combine(parent.RootPath, Path.GetDirectoryName(relativeFilename)),
                        kvp.Value.Filename + ".resx"));
                }
            }

            this.resources = baseResources.Values.ToList();
        }
Exemple #44
0
 public NoCachingScope()
     : base(CreateHolder())
 {
     _myHolder = Holder;
     _isActive = true;
 }
Exemple #45
0
 public Label(string text, ResourceHolder<Font, FontID> fonts) 
 {
     mText = new Text(text, fonts.get(FontID.Main), 16);
 }