Exemplo n.º 1
0
 public BuildableTerrainLayer(Actor self, BuildableTerrainLayerInfo info)
 {
     this.info       = info;
     world           = self.World;
     strength        = new CellLayer <int>(world.Map);
     terrainRenderer = self.Trait <ITiledTerrainRenderer>();
 }
Exemplo n.º 2
0
 protected TerrainTemplatePreviewWidget(TerrainTemplatePreviewWidget other)
     : base(other)
 {
     worldRenderer   = other.worldRenderer;
     terrainRenderer = other.terrainRenderer;
     Template        = other.Template;
     GetScale        = other.GetScale;
 }
Exemplo n.º 3
0
        public EditorCursorLayer(Actor self, EditorCursorLayerInfo info)
        {
            this.info       = info;
            world           = self.World;
            editorLayer     = self.Trait <EditorActorLayer>();
            terrainRenderer = self.Trait <ITiledTerrainRenderer>();

            Type = EditorCursorType.None;
        }
Exemplo n.º 4
0
 public TerrainTemplatePreviewWidget(WorldRenderer worldRenderer, World world)
 {
     this.worldRenderer = worldRenderer;
     terrainRenderer    = world.WorldActor.TraitOrDefault <ITiledTerrainRenderer>();
     if (terrainRenderer == null)
     {
         throw new YamlException("TerrainTemplatePreviewWidget requires a tile-based terrain renderer.");
     }
 }
Exemplo n.º 5
0
        public CustomTileSelectorLogic(Widget widget, World world, WorldRenderer worldRenderer)
            : base(widget, world, worldRenderer, "TILETEMPLATE_LIST", "TILEPREVIEW_TEMPLATE")
        {
            terrainInfo = world.Map.Rules.TerrainInfo as ITemplatedTerrainInfo;
            if (terrainInfo == null)
            {
                throw new InvalidDataException("CustomTileSelectorLogic requires a template-based tileset.");
            }

            terrainRenderer = world.WorldActor.TraitOrDefault <ITiledTerrainRenderer>();
            if (terrainRenderer == null)
            {
                throw new InvalidDataException("TileSelectorLogic requires a tile-based terrain renderer.");
            }

            allTemplates = terrainInfo.Templates.Values.Select(t => new TileSelectorTemplate(t)).ToArray();
            editorCursor = world.WorldActor.Trait <EditorCursorLayer>();

            allCategories = allTemplates.SelectMany(t => t.Categories)
                            .Distinct()
                            .OrderBy(CategoryOrder)
                            .ToArray();

            foreach (var c in allCategories)
            {
                SelectedCategories.Add(c);
                FilteredCategories.Add(c);
            }

            SearchTextField.OnTextEdited = () =>
            {
                searchFilter = SearchTextField.Text.Trim();
                FilteredCategories.Clear();

                if (!string.IsNullOrEmpty(searchFilter))
                {
                    FilteredCategories.AddRange(
                        allTemplates.Where(t => t.SearchTerms.Any(
                                               s => s.IndexOf(searchFilter, StringComparison.OrdinalIgnoreCase) >= 0))
                        .SelectMany(t => t.Categories)
                        .Distinct()
                        .OrderBy(CategoryOrder));
                }
                else
                {
                    FilteredCategories.AddRange(allCategories);
                }

                InitializePreviews();
            };

            InitializePreviews();
        }
Exemplo n.º 6
0
 public CustomTerrainLayer(Actor self, CustomTerrainLayerInfo info)
 {
     this.info       = info;
     map             = self.World.Map;
     terrainRenderer = self.Trait <ITiledTerrainRenderer>();
 }