Modding Discussion A place to discuss map editing and other related stuff

Discussion in 'Mods' started by QuantumConcious, Apr 1, 2016.

Thread Status:
Not open for further replies.
  1. QuantumConcious

    QuantumConcious Phantasmal Quasar

    tIDE Tile Map Editor and you what it means to us all and how we fixed or got around/learnt stuff
    Please use this tread to get help or discusse why things happen the way they do and what other people have done to avoid or fix an issue with editing a map with tIDE map editor.
    We will all try and evolve this trhead into a sort of tutorial by adding known stuff to this main post as time goes on. So please don't be afraid to PM me if something could help others and explains something pertinent to the tIDE Map Editor or using it and implimenting something for SDV.
    Evolving tutorial made by the people for the people
    [​IMG]


    For those curious why maps start at 0,0

    This is an artifact of how graphics programming work.

    When you are making graphics, SPECIALLY for a game like SDV, you need to figure a fast way to figure what is front of what (example, how you render that barn in front of the player character, if the player character is behind the barn?)

    People figured that a extremely easy way, was to start all maps and graphics at 0,0 being the top left, and consider that smaller numbers are always behind, this way you don't have to actually check stuff, only paste the images.

    Example:

    If the character is at 0,0 and a tree is at 0,1 you can just write all stuff in the first line (0,0 1,0 2,0 3,0...), this will render the character.
    Then you render everything at second line (0,1 1,1 2,1 3,1...) this will render the tree, and the parts of the tree in front of the character will render over the character, replacing it with the tree.

    Thus this way, it will render correctly, without you having to manually check.


    This became a sort of industry standard, all games assume 0,0 is "top left" of whatever it is (a map, a screen, a texture, and so on...)
    Explanation Thanks to OrSpeeder


    Right click Tile Sheets on the left and then select New
    In the id give it a name(you don't need to but to save confussion on what is what) name it for example townInterior
    Now click browse at the bottom and select a tilesheet in this case it is townInterior.png
    (For this you must have the TileSheets you made or extracted from the TileSheets XNB to anywhere on your pc)

    Now click Alignment tab and change the tile size to 16x16, click apply
    (I believe it is 16x16 as each tile is 16Px X 16Px - Px is pixels, interior tilesheets also seem to be 16x16 if you check the onse that exist and are made by ConcernedApe)
    You now have a New TileSheet on the left under TileSheets called townInterior.
    If you click the dropdown box under TilePicker (On Left) and change to townInterior, it will show the graphics for said TS.
    Now all you need to do is select the tile and place on the selected layer.

    This specifically covers how to add a tilesheet to Farm.xnb

    Copy Farm.xnb, Paths.xnb and spring_outdoorsTileSheet.xnb from Stardew Valley/Content/Maps and then whatever other tilesheet that has the .png you want to use in it. My example uses townInterior.xnb's .png. So copy these 4 items.

    Paste them into a new folder and then use XNB_Node to unpack them into a new-new folder

    In your new-new folder you should have .png files, .yaml files and one .xbin file for Farm

    Make 3 copies of townInterior.png and townInterior.yaml so you have a total of 4 each

    Rename each of your townInterior.pngs and .yamls to the following format: spring_townInterior.png/.yaml, summer_townInterior.png/.yaml, fall_townInterior.png/.yaml and winter_townInterior.png/.yaml

    Open up Farm.xbin in tIDE

    In the Map Explorer go to the Tile Sheets section, right click and choose New..

    On the General tab, give your new Tile Sheet a name and click the browse button to find spring_townInterior.png. On the Alignment tab, change Tile Size to 16 x 16 and press Apply

    Make changes to your Farm.xbin as needed and save it to your new-new folder. (Maybe specifically use a tile from spring_townInterior.png so you'll know where to look for it when you test it in game)

    Open up Farm.yaml from new-new and add "spring_townInterior.png" to the list of tilesheets. Make sure its in the same place as it was in your tIDE tilesheet list. (i.e. if it was at the bottom of the tilesheet list, make sure its at the bottom of the list in the .yaml) Make sure to save it to your new-new folder.

    Use XNB_Node to pack all your edited files back into .xnb files.

    Copy those repacked .xnb files to Stardew Valley/Content/Maps and copy spring_townInterior.xnb to Stardew Valley / Content

    Start up the game and see your changes ^_^ If you want to package your .xnb files to share with others, make sure they know to put all their .xnb files into Stardew Valley/Content/Maps and that they have to add the spring_WhateverYouNamedIt.xnb to just the Stardew Valley/Content folder.
    Done by Jinxiewinxie with help from
    Advize

    Location0 FarmHouse
    Location1 Farm
    Location2 FarmCave
    Location3 Town
    Location4 JoshHouse
    Location5 HaleyHouse
    Location6 SamHouse
    Location7 Blacksmith
    Location8 ManorHouse
    Location9 SeedShop
    Location10 Saloon
    Location11 Trailer
    Location12 Hospital
    Location13 HarveyRoom
    Location14 Beach
    Location15 ElliottHouse
    Location16 Mountain
    Location17 ScienceHouse
    Location18 SebastianRoom
    Location19 Tent
    Location20 Forest
    Location21 WizardHouse
    Location22 AnimalShop
    Location23 LeahHouse
    Location24 BusStop
    Location25 Mine
    Location26 Sewer
    Location27 Desert
    Location28 Club
    Location29 SandyHouse
    Location30 ArchaeologyHouse
    Location31 WizardHouseBasement
    Location32 AdventureGuild
    Location33 Woods
    Location34 Railroad
    Location35 Summit
    Location36 FishShop
    Location37 BathHouse_Entry
    Location38 BathHouse_MensLocker
    Location39 BathHouse_WomensLocker
    Location40 BathHouse_Pool
    Location41 CommunityCenter
    Location42 JojaMart
    Location43 Greenhouse
    Location44 SkullCave
    Location45 Backwoods
    Location46 Tunnel


    These actions can be used on tiles or items on the back or building layer (If back layer use on a floor tile, If building layer use on a item eg.Trapdoor, ladder coboard,stove ect

    Action Is generaly used on a building layer item
    Warp Used in Map Properties/Custom Properties or when selecting a back tile and right clicking tile. Select Tile Properties/Custom Properties

    Name Value

    Warp 1 10 FarmHouse 1 12 (Map Properties)
    Used on a tile to make you warp to said location when you walk on the tile. Can be used directly on a tile on the back layer or in Map Properties Custom Properties. This example will make a warp on tile x 1 y 10 to take me to x 1 y 12 in the FarmHouse
    Action Warp 1 10 FarmHouse (Building Layer tile)
    This will Make an action on an item in the building layer that will warp you to tile 1 10 in the FarmHouse, used for trap doors or ladders mostly, but can be used for anything really.
    Action Message I am a message (Building Layer tile)
    (Used on an item in the Building layer by selecting tile right clicking then select Tile Properties/Custom Properties)
    This will display the message I am a message on an item in the building layer when a player interacts with said item
    Action Mailbox (Building Layer tile)
    Turns item into a mailbox (incase you want to change mailbox location
    Action Kitchen
    Makes item bringup Cooking window when iteracted with ingame
    Action Jukebox
    Used on the Build layer of the bottom part of a Jukebox or any item really to have it bring up the Jukebox menu
    Action WizardShrine
    Used on the Build layer of the bottom part of a Mirror or any item really or any item really to have it bring up the Change looks menu at a cost of 500g
    Action Arcade_Prairie
    Used on the Build layer of the bottom part of a Arcade Machine or any item really to have it bring up the Journey of the Prairie King Arcade Game menu
    Action Arcade_Minecart
    Used on the Build layer of the bottom part of a Arcade or any item really to have it bring up the Junimo Kart Arcade Game menu
    Action ClubSlots
    Used on the Build layer of the bottom part of a Slot Machine or any item really to have it bring up the Slot Machine menu from Mr Qi's Casino in the Calico Desert at back of Sandy's Oasis Shop
    Action MinecartTransport
    Used on the Build layer of the bottom part of a Minecart or any item really to have it bring up
    the Minecart Transport Menu. (You will hav eto have the minecarts unlocked for it to work other wise it will say out of order)
    TouchAction Sleep (Back Layer tile)
    Used on a back tile to bring forward sleep option when you touck the floor tile with your character
    TouchAction PoolExit
    Place on a back tile to have that spot as the exit to the Pool/RomanBath
    TouchAction PoolEntrance
    Place on a back tile to have that spot as the entrance to the Pool/RomanBath
    TouchAction ChangeOutOfSwimsuit
    Place on a back tile to have your character change back into normal clothes
    TouchAction ChangeIntoSwimsuit
    Place on a back tile to have your character change into a swimsuit
    WaterSource t (Building Layer tile)
    Used to make the item a Water source to fill up your watering can
    Type Dirt (Back Layer tile)
    Makes a back layer tile type Dirt
    Diggable t (Back Layer tile)
    Makes a back layer tile diggable(ploughable) Able to grow crops
    NoFurniture t (Back Layer tile)
    Used on a back tile to prevent furniture from being placed (Back Layer tile)
    NPCBarrier T (Back Layer tile)
    Prevents NPC's from passing said floor tile
    NoSpawn ALL (Back Layer tile)
    Prevents all items/NPC's from spawning on tile
    NoSpawn Tree (Back Layer tile)
    Prevents Trees/seeds from spawning on tile
    ViewportFollowPlayer True
    Makes the camera follow the player around (It centers on the player)



    What I learned about tIDE when making 26x26 Greenhouse and about using other maps to host when working on the seemingly never ending bus stop storage mod... in no particular order.

    Copy Cut and Paste only works on single layers at a time

    I believe there's a limit of 200x200 ish.... on map size. I went about 200,150 tiles in bus stop storage, I needed far more X than y.

    Two kinds of warps, walk over and clickable.

    Walk over warps are Dictated by the Warp Action in Map Properties, they activate when the player tries to leave the activation tile. Warp|startcoord zonedestiation endcoord
    Exp. Warp|15 24 Greenhouse 124 35 6 24 Greenhouse 56 35
    Shows two warps within greenhouse. Best to do these on a notetab++ sheet as they get silly unreadable when dealing with more than 4 or 5.

    Click warps are tied to Building Layer objects via Action|warpcoord ZoneName
    Exp. Warp 126 47 BusStopStorage
    Was on a hatch in building layer whIch warps the player to 126 47 of the same map when right clicked.

    A nice thing about seeming complicated warp setups that mostly share the same destination is you can set up one hatch or ladder tile and then copy paste that sucker to all the other tiles of the same type and warp destination!

    Overall, dealing with both forms of warps, more than say 4 or 5 of the walk over warps and you end up with something REALLY ugly to set up (you need both the origin and the destination) and which are then packed into this really difficult to read/troubleshoot mass of numbers and zone names. I'll give you a real example!


    6 37 Greenhouse 66 35 16 37 Greenhouse 131 23 15 Farm 64 16 56 37 Greenhouse 16 35 66 37 Greenhouse 131 23 77 37 Farm 64 16 122 24 Greenhouse 16 35 131 24 Greenhouse 66 35 140 34 Farm 64 16


    AmbientLight on map properties is an RBG value and AbientLight|90 90 90 is a nice dim light that creates shadows. There's a bug though that if you warp from within a map to another spot in map, the lighting effects end and it's uniformly bright.

    The Paths Layer is normally not visible in tIDE and tiles on that layer are never seen in game. In buildings it is limited to spots of light but it also deals with npc pathing. Outdoors it is used for spawn info like tree spawns and bushes and is complicated.

    Indoors you can use Building Layer Tile Properties listed in first post. One of the more likely to be used is WaterSource|t

    Outdoor maps that have the Spring outdoors tile sheets (e.g. farm, town, mountain) have a dynamically changing tileset based on the 4 seasons. There are no seasonal changes in the desert this game.

    Indoor properties seemingly do not work in Outdoor flagged zones. Water and hoe-able tiles are seemingly hardcoded via tile position on the outdoors tilesets meaning water tiles are innately watersources and tillable land is hoe-able. Greeenhouse seemingly operates on this level for tillable land but can still use the building level watersource. It's best not to look too deeply into this so as to maintain sanity.

    The game has a listing of zones that are valid to warp to.

    To add new zones not on that list needs API (Cake Lord is working on making this easier).

    To add new area to a map you need only go into layer properties each separately. IMPORTANT: Ensure that you push all existing map North WEST so you maintain 0,0
    compliance.

    I term map edits where you replace an existing map with added features separate from the main building 'Map Replacement'. It requires that you base it on a host map that ultimately overwrites the existing host maps but tries to minimize side effects

    Make sure the host map does not have any npc's passing though it else they will prolly try and take your new warp to get home and getting trapped, no matter how insane that sounds.

    Make sure the Host map is a valid warp location on the above mentioned master list on first post of this fine thread.

    If you want to add custom tiles sheets, they need to be listed last after all of the standard tile sheets - even if you added some of those too. Best way is add a Z to the tile sheets (e.g. zcustom01) within tIDE.

    If the map you are working on has a very limited tileset, make sure you increase the size of the tile picker window in tIDE else the Editor likes to get reaaal cranky.



    Codes By Advize
    Updated code for custom Action tile properties (now with gamepad support):

    Code:
    public override void Entry(params object[] objects)
    {
        ControlEvents.MouseChanged += Events_MouseChanged;
        ControlEvents.ControllerButtonPressed += Events_ControllerButtonPressed;
    }
    
    static void Events_ControllerButtonPressed(object sender, EventArgsControllerButtonPressed e)
    {
        if (!Game1.hasLoadedGame) return;
        if(e.ButtonPressed == Buttons.A)
        {
            CheckForAction();
        }
    }
    
    static void Events_MouseChanged(object sender, EventArgsMouseStateChanged e)
    {
        if (!Game1.hasLoadedGame) return;
        if (e.NewState.RightButton == ButtonState.Pressed && e.PriorState.RightButton != ButtonState.Pressed)
        {
            CheckForAction();
        }
    }
    
    static void CheckForAction()
    {
        if (!Game1.player.UsingTool && !Game1.pickingTool && !Game1.menuUp && (!Game1.eventUp || Game1.currentLocation.currentEvent.playerControlSequence) && !Game1.nameSelectUp && Game1.numberOfSelectedItems == -1 && !Game1.fadeToBlack)
        {
            Vector2 grabTile = new Vector2((float)(Game1.getOldMouseX() + Game1.viewport.X), (float)(Game1.getOldMouseY() + Game1.viewport.Y)) / (float)Game1.tileSize;
            if (!Utility.tileWithinRadiusOfPlayer((int)grabTile.X, (int)grabTile.Y, 1, Game1.player))
            {
                grabTile = Game1.player.GetGrabTile();
            }
            xTile.Tiles.Tile tile = Game1.currentLocation.map.GetLayer("Buildings").PickTile(new xTile.Dimensions.Location((int)grabTile.X * Game1.tileSize, (int)grabTile.Y * Game1.tileSize), Game1.viewport.Size);
            xTile.ObjectModel.PropertyValue propertyValue = null;
            if (tile != null)
            {
                tile.Properties.TryGetValue("Action", out propertyValue);
            }
            if (propertyValue != null)
            {
                if (propertyValue == "CustomPropertyHere") //Change this to your Action property
                {
                    //Insert code to execute when this tile is activated
                }
            }
        }
    }
    }

    Tile editing code that I use to edit existing locations without touching the .xnb files
    First, it requires a custom tile class (not optimally written, wrote it in a hurry and never went back to polish it up):
    Custom Tile Class
    Code:
     public class Tile
        {
            public int l;
            public int x;
            public int y;
            public int tileIndex;
            public string layer;
    
            public Tile(int l, int x, int y, int tileIndex)
            {
                this.l = l; this.x = x; this.y = y; this.tileIndex = tileIndex;
                switch (l)
                {
                    case 0:
                        this.layer = "Back";
                        break;
                    case 1:
                        this.layer = "Buildings";
                        break;
                    case 2:
                        this.layer = "Paths";
                        break;
                    case 3:
                        this.layer = "Front";
                        break;
                    case 4:
                        this.layer = "AlwaysFront";
                        break;
                }
            }
        }
    Then you'll need to create a list of these custom tile objects:
    List of Tile Objects
    Code:
      //Meticulously planned tile edits for Farm.xnb
            /*Create array of custom tile objects with layer, x & y location, and new texture information
                (-1 as a texture means set the tile to null) */
            private static List<Tile> FarmEdits = new List<Tile>()
            {
                new Tile(0, 0, 38, 175), new Tile(0, 1, 38, 175), new Tile(0, 0, 43, 537),
                new Tile(0, 1, 43, 537), new Tile(0, 2, 43, 586), new Tile(0, 0, 44, 566),
                new Tile(0, 1, 44, 537), new Tile(0, 2, 44, 618), new Tile(0, 0, 45, 587),
                new Tile(0, 1, 45, 473), new Tile(0, 0, 46, 587), new Tile(0, 1, 46, 587),
                new Tile(0, 0, 48, 175), new Tile(0, 1, 48, 175),
    
                new Tile(1, 0, 39, 175), new Tile(1, 1, 39, 175), new Tile(1, 2, 39, 444),
                new Tile(1, 0, 40, 446), new Tile(1, 1, 40, 468), new Tile(1, 2, 40, 469),
                new Tile(1, 0, 41, 492), new Tile(1, 1, 41, 493), new Tile(1, 2, 41, 494),
                new Tile(1, 0, 42, 517), new Tile(1, 1, 42, 518), new Tile(1, 2, 42, 519),
                new Tile(1, 0, 43, 542), new Tile(1, 1, 43, 543), new Tile(1, 2, 43, 544),
                new Tile(1, 0, 44, -1), new Tile(1, 1, 44, -1), new Tile(1, 2, 44, -1),
                new Tile(1, 0, 45, -1), new Tile(1, 1, 45, -1), new Tile(1, 2, 45, -1),
                new Tile(1, 0, 46, -1), new Tile(1, 1, 46, -1), new Tile(1, 2, 46, -1),
                new Tile(1, 0, 47, 175), new Tile(1, 1, 47, 175), new Tile(1, 0, 48, -1),
    
                new Tile(3, 0, 36, -1), new Tile(3, 1, 36, -1), new Tile(3, 0, 37, -1),
                new Tile(3, 1, 37, -1), new Tile(3, 0, 38, -1), new Tile(3, 1, 38, -1),
                new Tile(3, 0, 39, -1), new Tile(3, 1, 39, -1), new Tile(3, 0, 40, -1),
                new Tile(3, 0, 41, -1), new Tile(3, 0, 46, 414), new Tile(3, 1, 46, 413),
                new Tile(3, 2, 46, 438), new Tile(3, 0, 47, 175), new Tile(3, 1, 47, 175),
                new Tile(3, 2, 47, 394)
            };
    Third, you'll need this method I wrote which performs tile edits to a game location:
    PatchMap Method
    Code:
    private static void PatchMap(GameLocation gl, List<Tile> tileArray)
            {
                foreach (Tile tile in tileArray)
                {
                    if (tile.tileIndex < 0)
                    {
                        gl.removeTile(tile.x, tile.y, tile.layer);
                        continue;
                    }
    
                    if (gl.map.Layers[tile.l].Tiles[tile.x, tile.y] == null)
                    {
                        gl.map.Layers[tile.l].Tiles[tile.x, tile.y] = new StaticTile(gl.map.GetLayer(tile.layer), gl.map.TileSheets[1], xTile.Tiles.BlendMode.Alpha, tile.tileIndex);
                    }
                    else
                    {
                        gl.setMapTileIndex(tile.x, tile.y, tile.tileIndex, tile.layer);
                    }
                }
            }
    Finally, you call the method during mod initialization (or whenever you want to perform the tile edits) and send it an instance of the location you want to edit:
    Calling the PatchMap Method
    Code:
    PatchMap(Game1.locations[1], FarmEdits);
    //or if you've created your own GameLocation object when you loaded your mod, just send that instead of referencing the Game1.locations array
    Adding warps and tile properties is as simple as:
    Code:
    //These are random made up examples
    Game1.locations[1].warps.Add(new Warp(64, 19, "Farm", 62, 23, false));
    Game1.locations[1].setTileProperty(63, 13, "Buildings", "Action", "Warp 64 18 Farm");

    Do note, however, that the PatchMap method specifically uses the second tilesheet in a location for any tile edit above the first layer. This was specifically for my purposes, you may need to change this depending on what you're doing. I'll probably end up editing the custom Tile class to allow you to specify which tilesheet to use.

    Edit: Creating the list of tiles to edit is the hardest part. I open a map twice in tIDE, snap the windows to either side of 1 monitor, and make all the changes I need to one of them. Then, tile by tile, I begin to replicate the process on the other tIDE window writing a line of code to match each one. One thing I'm working on now required 191 tile edits, and there are no redundant tile edits in here: http://pastebin.com/yBaJa0HU.

    Guides

    Guide: How to make SMAPI 0.37 mod by OrSpeeder

    TUTORIALS (VIDEO)
    This is a quick tutorial video that covers the basics on editing Stardew Valley maps in tIDE map editor and XNB_Node.
    Created by Jinxiewinxie with pleasure and with great thanks from all of us
    What the video covers:-Extracting map files from a .XNB file
    • How to open map in tIDE Map Editor
    • Edit map using tIDE
    • Examine Custom Properties
    • Save Map Files
    • Repack map files bak into .xnb format
    • Put these files back in the game folder


    Custom Tiles Sheets for use by Map Modders
    TaintedWheats Custom Tile Sheets by
    taintedwheat
    If used please give credit to taintedwheat
    Please try to edit a post instead of adding a new reply if possible Thankyou
     
      Last edited: May 3, 2016
    • Superior_s

      Superior_s Sandwich Man

      I'd slowly turn this into a tutorial as people post. This is much needed and awesome.
       
        Lillynetto likes this.
      • Jinxiewinxie

        Jinxiewinxie Farmer Fashionista

        Yay! There isn't a way to add tilesheets to files in tIDE is there? It crashes my game whenever I load up the repacked .xnb =(
         
        • QuantumConcious

          QuantumConcious Phantasmal Quasar

          This is regarding my FarmHouse Basement
          oK were to start.

          XY graph of how a map works

          [​IMG]A Map always starts at the top left at X 0 Y0[/spoiler
          The reason a Warp tile or Object warp is funky to the basement from the Farm itself.

          The basement for each house from the starting house to the final tier married changes xy position with each step
          This is due to the house changing
          In the starter house the house is occupying tile x 0 - 11 and Y 0 - 12
          The basement Occupies Tiles x 144 - 154 and Y 64 - 85

          In the First upgraded house the house grows to the left by 6 tiles
          So in order for stuff put in the basement of the Starter house to also be in the same spot in the first tier upgrade basement the basement of the First tier had to be moved 6 tiles to the right now the left wall of the basement is on tile Y 64 - 85 thats stayed the same but the left wall moved to x 150

          Due to the house expanding and the position of the initial xy changing by the amount it moved in the corisponding XY the basement also had to be moved to allow your stuff in the basement to be in the same spot in the next tier basement.

          So now the spawn into and out of the basement also changes to align with this tile move
          So any spawn you make on the Farm is not dynamic meaning it is static it stays the same. To warp to the basement from Farm is not possible as the tile coord changes with each house Upgrade. Do make thius happen you would have to code a dynamic warp that changes with the basement position too.
           
            Jinxiewinxie and Superior_s like this.
          • Jinxiewinxie

            Jinxiewinxie Farmer Fashionista


            So I couldn't do something like this:

            [​IMG]


            because the map *has* to start at 0,0 ?
             
            • Zelnite

              Zelnite Big Damn Hero

              You can add tilesheet but if it not compatible it will crash.


              You will see the map when you zoom out xD
               
                ossamaka likes this.
              • Jinxiewinxie

                Jinxiewinxie Farmer Fashionista

                I'm trying to add tilesheets from the game, like, when working on the farm.xnb stuff I wanted to use something from the interiorTown.xnb .png and it just crashed on start up.
                 
                • OrSpeeder

                  OrSpeeder Phantasmal Quasar

                  For those curious why maps start at 0,0

                  This is an artifact of how graphics programming work.

                  When you are making graphics, SPECIALLY for a game like SDV, you need to figure a fast way to figure what is front of what (example, how you render that barn in front of the player character, if the player character is behind the barn?)

                  People figured that a extremely easy way, was to start all maps and graphics at 0,0 being the top left, and consider that smaller numbers are always behind, this way you don't have to actually check stuff, only paste the images.

                  Example:

                  If the character is at 0,0 and a tree is at 0,1 you can just write all stuff in the first line (0,0 1,0 2,0 3,0...), this will render the character.
                  Then you render everything at second line (0,1 1,1 2,1 3,1...) this will render the tree, and the parts of the tree in front of the character will render over the character, replacing it with the tree.

                  Thus this way, it will render correctly, without you having to manually check.


                  This became a sort of industry standard, all games assume 0,0 is "top left" of whatever it is (a map, a screen, a texture, and so on...)
                   
                  • QuantumConcious

                    QuantumConcious Phantasmal Quasar

                    Adding a New Tile Sheet (TS) to your map in tIDE
                    Right click Tile Sheets on the left and then select New
                    In the id give it a name(you don't need to but to save confussion on what is what) name it for example townInterior
                    Now click browse at the bottom and select a tilesheet in this case it is townInterior.png
                    (For this you must have the TileSheets you made or extracted from the TileSheets XNB to anywere on your pc)

                    Now click Alignment tab and change the tile size to 16x16, click apply
                    (I believe it is 16x16 as each tile is 16Px X 16Px - Px is pixels)
                    You now have a New TileSheet on the left under TileSheets called townInterior.
                    If you click the dropdown box under TilePicker (On Left) and change to townInterior, it will show the graphics for said TS. Now all you need to do is select the tile and place on the selected layer.

                    Once done be sure to add the tilesheet to your Chosen .yaml in this case is was the Farm.yaml
                    You have to add the tile sheet you added in the editor to your Farm.yaml

                    Adding a Tile sheet to your .yaml
                    Now to have that tile sheet work on your map and not crash

                    Add it to your .yaml like so:
                    Open your chosen YAML in this case Farm.yaml
                    (Use a text editor NotePad++ Recommended)
                    It will look like this

                    Code:
                    xnbData:
                        target: "w"
                        compressed: true
                        hiDef: true
                        readerData:
                            -
                                type: "xTile.Pipeline.TideReader, xTile"
                                version: 0
                    
                    
                        numSharedResources: 0
                    
                    content: {} #!TBin
                    extractedMaps:
                        -
                            path: ""
                            tilesheets:
                                - "paths.png"
                                - "spring_outdoorsTileSheet.png"
                    
                    
                    
                    
                    Now to add the townInterior tile sheet

                    Add below
                    - "spring_outdoorsTileSheet.png"
                    - "townInterior.png"

                    Now it should look like this

                    Code:
                    xnbData:
                        target: "w"
                        compressed: true
                        hiDef: true
                        readerData:
                            -
                                type: "xTile.Pipeline.TideReader, xTile"
                                version: 0
                    
                    
                        numSharedResources: 0
                    
                    content: {} #!TBin
                    extractedMaps:
                        -
                            path: ""
                            tilesheets:
                                - "paths.png"
                                - "spring_outdoorsTileSheet.png"
                                - "townInterior.png"
                    


                    Save your .yaml and pack it with your .tbin map file
                     
                      Last edited: Apr 1, 2016
                    • taintedwheat

                      taintedwheat Master Astronaut

                      KThxBye910 likes this.
                    • Jinxiewinxie

                      Jinxiewinxie Farmer Fashionista


                      THANK YOU SO MUCH! I'm off to try it right now! Can you add this information and your properties/actions list to the OP?
                       
                      • Zelnite

                        Zelnite Big Damn Hero

                        Ive tried this already it still crash when i was trying to add the hatch from the cursors.xnb or towninterior.
                         
                          BoffoBoy and Jinxiewinxie like this.
                        • Jinxiewinxie

                          Jinxiewinxie Farmer Fashionista

                          Yeah =( I had tried the same-ish thing (I was adding the new png name to the top of the list in the yaml and this explanation said to add it to the bottom) but both ways didn't work. So sad.
                           
                          • QuantumConcious

                            QuantumConcious Phantasmal Quasar

                            Well it is how it is done whether it crashes or not is all dependant i guess on the actuall tilesheet and the map i guess. So it may appear that due to the tilesheet being an internal (Interior tilesheet it crashes the game) I just tested myself and it crashes
                             
                              Last edited: Apr 1, 2016
                            • Zelnite

                              Zelnite Big Damn Hero

                              I think its coded in the exe we can't really do anything about it unless we know how to code it.
                               
                              • QuantumConcious

                                QuantumConcious Phantasmal Quasar

                                Yeah man i only know how to use tIDE a little and not code so i/we have to do what we can to get what we can done with out the knowledge of Advize ect. So i am probably not the best person for a tutorial but can share what i know
                                 
                                • Zelnite

                                  Zelnite Big Damn Hero

                                  yeah same here xD
                                   
                                  • dsrules

                                    dsrules Subatomic Cosmonaut

                                    Good stuff. Hoping to see more explanations/tutorials here.
                                     
                                    • BoffoBoy

                                      BoffoBoy Existential Complex

                                      I'm trying my hardest to get this effing storage mod working and nothing I do will allow me to effing get it to work crashing with tileset walls and paths added or not, same effing crash.


                                      Is it not possible to add new maps to game? I see bigger cave has done it.


                                      thank you for this thread btw.

                                      Btw I spent about 2 days in a self imposed crash course of tIDE making that infernal 20x20 Green house mod. Outside of the various actions I have never really spent time researching, I am pretty effing confident using the pos program.
                                       
                                        Last edited: Apr 1, 2016
                                        RoastedCoconutz likes this.
                                      • Jinxiewinxie

                                        Jinxiewinxie Farmer Fashionista


                                        its the same FarmCave map, he just made it bigger and added more to the map. H ere's a screenshot showing all three rooms but they're the same map:


                                        [​IMG]
                                         
                                          BoffoBoy likes this.
                                        Thread Status:
                                        Not open for further replies.

                                        Share This Page