Session Tree Colors and Trees without leaves

I want to update my Biome and find no way to change the Color of the Trees or to remove the Leaves.
As in the tempered Biome.

Make model variants. Look at the tree json files.

he uses the standard trees where the models are included ^^

Right Wiese ^.-

So override the model files, or the entity file and the model files? Either way, you just need to make your own model variants and get those loaded in. If you want different models, you have to supply them. Look at the tree json files for what model variants are being used for different seasons:

"model_variants": {
         "default": {
            "models": [
               {
                  "type": "one_of",
                  "items": [
                     "file(large_oak_tree.qb)",
                     "file(large_oak_tree_2.qb)",
                     "file(large_oak_tree_3.qb)"
                  ]
               }
            ]
         },
         "autumn": {
            "models": [
               {
                  "type": "one_of",
                  "items": [
                     "file(large_oak_tree_autumn.qb)",
                     "file(large_oak_tree_autumn_2.qb)",
                     "file(large_oak_tree_autumn_3.qb)"
                  ]
               }
            ]
         },
         "spring": {
            "models": [
               {
                  "type": "one_of",
                  "items": [
                     "file(large_oak_tree_spring.qb)",
                     "file(large_oak_tree_spring_2.qb)",
                     "file(large_oak_tree_spring_3.qb)"
                  ]
               }
            ]
         },

I do not want to use my own I want to use the existing ones but to match the seasons

i have checked it he doenst override anything or uses own files - he just mentioned in his biome.json the normal ones from stonehearth - its like an dupe from the temperate.json (he has only added the plants from the desert)
https://steamcommunity.com/sharedfiles/filedetails/?id=1359762368&searchtext=lorki

And you have those same seasons defined in your biome json?

{
“type”: “biome”,
“alias”: “lorki_biome:biome:lorki”,
“display_name”: “i18n(lorki_biome:data.biome.lorki.display_name)”,
“description”: “i18n(lorki_biome:data.biome.lorki.description)”,
“random_location_names”: [
“i18n(lorki_biome:data.biome.lorki.random_location_names.000)”,
“i18n(lorki_biome:data.biome.lorki.random_location_names.001)”,
“i18n(lorki_biome:data.biome.lorki.random_location_names.002)”
],
“image”: “file(images/lorki_biome_400x300.png)”,
“story_board_image”: “/stonehearth/data/biome/images/temperate_story_board.png”,
“game_mode_images”: {
“stonehearth:game_mode:normal”: “/stonehearth/data/biome/images/temperate_story_normal.png”,
“stonehearth:game_mode:hard”: “/stonehearth/data/biome/images/temperate_story_normal.png”
},
“mining_loot_table”: “file(lorki_mining_loot_table.json)”,
“generation_file”: “file(lorki_generation_data.json)”,
“default_starting_season”: “summer”,
“seasons”: {
“spring”: {
“display_name”: “i18n(stonehearth:data.biome.temperate.seasons.spring.display_name)”,
“description”: “i18n(stonehearth:data.biome.temperate.seasons.spring.description)”,
“start_day”: 0,
“weather”: [
{
“uri”: “stonehearth:weather:sunny”,
“weight”: 30
},
{
“uri”: “stonehearth:weather:cloudy”,
“weight”: 5
},
{
“uri”: “stonehearth:weather:rain”,
“weight”: 5
},
{
“uri”: “stonehearth:weather:foggy”,
“weight”: 1.5
},
{
“uri”: “stonehearth:weather:lucky”,
“weight”: 0.3
}
]
},
“summer”: {
“display_name”: “i18n(stonehearth:data.biome.temperate.seasons.summer.display_name)”,
“description”: “i18n(stonehearth:data.biome.temperate.seasons.summer.description)”,
“start_day”: 21,
“weather”: [
{
“uri”: “stonehearth:weather:sunny”,
“weight”: 30
},
{
“uri”: “stonehearth:weather:cloudy”,
“weight”: 15
},
{
“uri”: “stonehearth:weather:rain”,
“weight”: 5
},
{
“uri”: “stonehearth:weather:sandstorm”,
“weight”: 1
},
{
“uri”: “stonehearth:weather:foggy”,
“weight”: 1.5
},
{
“uri”: “stonehearth:weather:lucky”,
“weight”: 0.2
}
]
},
“autumn”: {
“display_name”: “i18n(stonehearth:data.biome.temperate.seasons.autumn.display_name)”,
“description”: “i18n(stonehearth:data.biome.temperate.seasons.autumn.description)”,
“start_day”: 42,
“weather”: [
{
“uri”: “stonehearth:weather:sunny”,
“weight”: 25
},
{
“uri”: “stonehearth:weather:cloudy”,
“weight”: 15
},
{
“uri”: “stonehearth:weather:rain”,
“weight”: 5
},
{
“uri”: “stonehearth:weather:thunderstorm”,
“weight”: 3
},
{
“uri”: “stonehearth:weather:windy”,
“weight”: 5
},
{
“uri”: “stonehearth:weather:snow”,
“weight”: 1
},
{
“uri”: “stonehearth:weather:blizzard”,
“weight”: 0.1
},
{
“uri”: “stonehearth:weather:foggy”,
“weight”: 3.5
},
{
“uri”: “stonehearth:weather:lucky”,
“weight”: 0.1
}
]
},
“winter”: {
“display_name”: “i18n(stonehearth:data.biome.temperate.seasons.winter.display_name)”,
“description”: “i18n(stonehearth:data.biome.temperate.seasons.winter.description)”,
“start_day”: 63,
“weather”: [
{
“uri”: “stonehearth:weather:sunny”,
“weight”: 20
},
{
“uri”: “stonehearth:weather:cloudy”,
“weight”: 15
},
{
“uri”: “stonehearth:weather:snow”,
“weight”: 15
},
{
“uri”: “stonehearth:weather:blizzard”,
“weight”: 1
},
{
“uri”: “stonehearth:weather:foggy”,
“weight”: 4.5
},
{
“uri”: “stonehearth:weather:lucky”,
“weight”: 0.1
}
]
}
}
}

Tree jsons have their seasonal model switcher seasons defined under the component of that name:

"stonehearth:seasonal_model_switcher": {
         "stonehearth:biome:temperate": {
            "spring": "spring",
            "summer": "default",
            "autumn": "autumn",
            "winter": "winter"
         }
      },

Note that they are defined by biome. You may have to do something like mixinto "stonehearth:mixins:tree" with your own biome season specifications for the seasonal_model_switcher component.

2 Likes

no plan how to do this?
I’ll take a look at the stonehearth.smod and find no example.

It’s likely what @paulthegreat says in the post above. The default stonehearth trees specify the seasonal_model_switcher for the temperate biome, you would have to mixinto all the trees json files to add your own biome to that component.

...
"stonehearth:seasonal_model_switcher": {
         "lorki_biome:biome:lorki": {
            "spring": "spring",
            "summer": "default",
            "autumn": "autumn",
            "winter": "winter"
         }
      },
...

Haven’t tested it but it must be related to that.

1 Like

your text is in the sessionswitch.json and this:
“trees:juniper:sapling”:“file(/data/biome/sessionswitch.json)”,
“trees:juniper:small”:“file(/data/biome/sessionswitch.json)”,
“trees:juniper:large”:“file(/data/biome/sessionswitch.json)”,

in the Manifest.json unter mixintos. But the acacias still brown and no change.

1 Like

Is it within a “components” block?
Edit: Also, you should just mix it into the tree.json file so it automatically applies to all trees.

1 Like

In stoneharth.json in the mixintos ordner is the tree.json:

{
“type”: “mixin”,
“mixins”: “stonehearth:mixins:placed_object”,
“components”: {
“render_info”: {
“material”: “materials/tree.material.json”,
“scale”: 1
},
“stonehearth:resource_node”: {
“harvest_overlay_effect”: “stonehearth:effects:chop_overlay_effect”,
“harvester_effect”: “chop”,
“description”: “chop_tree”
}
},
“entity_data”: {
“stonehearth:catalog”: {
“category”: “plants”
},
“stonehearth:render_materials”: {
“hud”: “materials/ghost_item.json”
},
“stonehearth:on_destroy”: {
“effect”: “stonehearth:effects:terrain:tree_harvest”
}
}
}

i have absolute no idea where i must do.

I made this as a hobby my job is not programmer -.- dont find a way in this

i dont understand why this in the temperate works but in other biomes everything has to be rebuilt

I have this in the tree.json

{
“type”: “mixin”,
“mixins”: “stonehearth:mixins:placed_object”,
“components”: {
“stonehearth:seasonal_model_switcher”: {
“lorki_biome:biome:lorki”: {
“spring”: “spring”,
“summer”: “default”,
“autumn”: “autumn”,
“winter”: “winter”
}
},
“render_info”: {
“material”: “materials/tree.material.json”,
“scale”: 1
},
“stonehearth:resource_node”: {
“harvest_overlay_effect”: “stonehearth:effects:chop_overlay_effect”,
“harvester_effect”: “chop”,
“description”: “chop_tree”
}
},
“entity_data”: {
“stonehearth:catalog”: {
“category”: “plants”
},
“stonehearth:render_materials”: {
“hud”: “materials/ghost_item.json”
},
“stonehearth:on_destroy”: {
“effect”: “stonehearth:effects:terrain:tree_harvest”
}
}
}

do I have to embed the file somewhere in the manifest.json?

It has to be specified as a mixinto in the manifest.
https://stonehearth.github.io/modding_guide/modding_guide/essentials/mixintos_overrides/index.html

Edit: and the only part you need is the part that’s different, which is the seasonal model switcher component part.

1 Like

I Put this in the manifest.json

“stonehearth/mixins/tree/tree.json”:“file(mixins/tree/tree.json)”,

This is in the tree.json

“stonehearth:seasonal_model_switcher”: {
“lorki_biome:biome:lorki”: {
“spring”: “spring”,
“summer”: “default”,
“autumn”: “autumn”,
“winter”: “winter”
}
},

get this error:
release-893 (x64)[M]
c++ exception: Error reading file lorki_biome/mixins/tree/tree.json:

Not JSON!

Source:
“stonehearth:seasonal_model_switcher”: {
“lorki_biome:biome:lorki”: {
“spring”: “spring”,
“summer”: “default”,
“autumn”: “autumn”,
“winter”: “winter”
}
},
stack traceback:
[C]: in function ‘load_json’
radiant/modules/resources.lua:40: in function ‘load_json’
stonehearth/lib/catalog/catalog_lib.lua:72: in function ‘_load_json’
stonehearth/lib/catalog/catalog_lib.lua:78: in function ‘_load_entity_json’
stonehearth/lib/catalog/catalog_lib.lua:40: in function ‘load_catalog’
…ces/client/catalog_client/catalog_client_service.lua:11: in function ‘initialize’
stonehearth/stonehearth_client.lua:61: in function ‘create_service’
stonehearth/stonehearth_client.lua:87: in function <stonehearth/stonehearth_client.lua:82>
[C]: ?
[C]: in function ‘trigger’
radiant/modules/events.lua:55: in function <radiant/modules/events.lua:55>

i have all in the tree.json and it works
{
“type”: “mixin”,
“mixins”: “stonehearth:mixins:placed_object”,
“components”: {
“stonehearth:seasonal_model_switcher”: {
“lorki_biome:biome:lorki”: {
“spring”: “spring”,
“summer”: “default”,
“autumn”: “autumn”,
“winter”: “winter”
}
},
“render_info”: {
“material”: “materials/tree.material.json”,
“scale”: 1
},
“stonehearth:resource_node”: {
“harvest_overlay_effect”: “stonehearth:effects:chop_overlay_effect”,
“harvester_effect”: “chop”,
“description”: “chop_tree”
}
},
“entity_data”: {
“stonehearth:catalog”: {
“category”: “plants”
},
“stonehearth:render_materials”: {
“hud”: “materials/ghost_item.json”
},
“stonehearth:on_destroy”: {
“effect”: “stonehearth:effects:terrain:tree_harvest”
}
}
}

Like I said before, you need the “components” block.