Content: Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Background: Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Pattern: Blank Waves Notes Sharp Wood Rockface Leather Honey Vertical Triangles
Welcome to TerraFirmaCraft Forums

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

  • Announcements

    • Dries007

      ATTENTION Forum Database Breach   03/04/2019

      There has been a breach of our database. Please make sure you change your password (use a password manager, like Lastpass).
      If you used this password anywhere else, change that too! The passwords themselves are stored hashed, but may old accounts still had old, insecure (by today's standards) hashes from back when they where created. This means they can be "cracked" more easily. Other leaked information includes: email, IP, account name.
      I'm trying my best to find out more and keep everyone up to date. Discord (http://invite.gg/TerraFirmaCraft) is the best option for up to date news and questions. I'm sorry for this, but the damage has been done. All I can do is try to make sure it doesn't happen again.
    • Claycorp

      This forum is now READ ONLY!   01/20/2020

      As of this post and forever into the future this forum has been put into READ ONLY MODE. There will be no new posts! A replacement is coming SoonTM . If you wish to stay up-to-date on whats going on or post your content. Please use the Discord or Sub-Reddit until the new forums are running.

      Any questions or comments can be directed to Claycorp on either platform.
Stroam

modding API & mod compatability

2 posts in this topic

Some time ago I remember people suggesting a mod API for TFC2, and Biox asking what people wanted in an API. I don't remember what people actually said, I couldn't find that discussion, and it was difficult to etch anything out because there was less information on what would be in the game. Now so everyone is on the same page here is a definition for an API.

Application program interface (API) is a set of routines, protocols, and tools for building software applications. An API specifies how software components should interact. Additionally, APIs are used when programming graphical user interface (GUI) components.

To add my own definition: A set of functions that is helpful in extending the functionality of the code in a safe controlled way that everyone agrees not to modify, because doing so would break mod compatibility and have the potential of making the whole more unstable.

I have taken the liberty of going through mods for TFC 1 and gathered the ways they have extended TFC 1. If you'd like to add to the list post and I'll get around to adding it as long as it isn't too niche. Not everything on the list needs an API depending on how it's implimented. If and how any implementation of these features shows up is to be determined by Biox. I've also added mod compatibility because it's already been added for Harvestcraft and a lot of modpacks use minetweaker. 

  • Access to all biome information. (temperature, humidity, elevation)
  • Mob Spawn controls. A few modpacks used Advanced Spawn Control which didn't updated
  • Containers for entities and items (support for size and/or weight)
  • Custom ore (using TFC 2 generation mechanics)
  • Custom metals (alloys)
  • weapons and armor (supporting non-vanilla damage types)
  • decoration blocks(with support abilities, mud bricks)

compatibility

  • Pam's Harvestcraft
  • JEI or NEI
  • WAWLA or HWYLA or WAILA
  • crafttweaker (the new minetweaker)
  • applecore or alternative.
  • chisel & Bits
  • hardcore darkness
  • malisis doors

might be useful

  • hammercore
  • neat
  • NetherPortalfix
  • spice of life

 

Edited by Stroam
0

Share this post


Link to post
Share on other sites

I would like to see TerrafirmaCraft2 actually very light as a mod more like API provider, most of the stuff defined in configs. If you do a very heavy mod and trying to figure out and add every item in the mod in the code directly, it will become not very manageable. Most of the stuff is already created, drawn or coded. The magic is to pawn a road to the community to add, create, enable, backport all sorts of mods to TFC without breaking logic. And if it will be easy enough it could create a more thriving world. TFC2 should add more logic to TFC1 existing items. Like forge, let melt custom ores.
TFC won by adding mechanism and logic, like smelting in forge, clay forming, food preparation creates basics and let's community add what do with them.

Let's add more stuff even for core TFC through configs.

maybe in a structure like 

configs/TFC2/custom/crops/crops.json (when the time they bloom, what are the pictures, what biome, what a chance, randomisation pattern etc)
configs/TFC2/custom/crops/world_texture/cocoa_bean_stage1.png
configs/TFC2/custom/crops/world_texture/cocoa_bean_stage2.png
configs/TFC2/custom/crops/inventory_texture/cocoa_bean.png

Similar for ores and foods (without staging)

configs/TFC2/custom/ores/world_texture/naquadah_ore.png
configs/TFC2/custom/ores/inventory_texture/naquadah_ore.png

configs/TFC2/custom/ores/naquadah_ore.json:

{

id: terrafirmacraft:naquadah_ore

pattern of occurance:  rare (some logic as abdudance,very rare, normal, as_copper (pattern as copper, and next to copper veins etc))
inventory_image: path_to_ore_in_inventory
world_image: path_to_ore_in_world

}

configs/TFC2/custom/ores/naquadah_ingot.json:

{

obtainable: { [{terrafirmacraft:naquadah_ore, value:80},{terrafirmacraft:silver_ore, value:20}]} //you will get ingot by smelting some ores by ID and thier percentage as amount

inventory_image: path_to_ingot_in_inventory
double_ingot: path_to_double_ingot_image
smeltable_values: {is: boolean, yellow:integer,orange:integer,red:integer, liquid:integer}
workable: { is: boolean, value: integer} 
weldable: { is: boolean, value: integer} 

}

 

I would add few more:

Custom crops (for every type of bean, and let awful onion :) be pluggable through easy drag-drop config)

Custom clay/knapping forming patterns: for more various stuff

Custom food (like cakes, pies, cookies, soups, dishes of all sorts, what kind of combination of harvested food creating what)

Imagine easy cauldron above firepit where you can actually cook an ordinary vegetable soup :), not just salads and sandwitches, oven for cakes, grill?

Custom Ores and minerals, definitely custom ores as was mentioned (even for naquadah like Stargate/Lantanea mod) + custom ingots

Custom armors: it would be nice to finally add some "survivalcraft" logic (it's ios/android game), to have some clothes and add basic environmental factors like cold, freezing, heat, heatstroke.
You don't need to implement diseases if it too hard, just not let a player run naked in the snow biome, it will hurt if the warm index of the body is below some value etc.

 

 

Edited by Anilo
1

Share this post


Link to post
Share on other sites