Hey! This is the annotations_for_devs text file.. I made this for anyone who'd hope to work with or modify this datapack!
this is mostly so you dont have to break your head over my spaghetti here


##### FUNCTIONS #####

-> START
Ever since version 1.10.0 of Classic Mechanics, functions for modules are organized in folders (and optionally, sub-folders) relating to what options-category they are in.
So for example, a module from the 'mechanics' category will call upon classic_mechanics:mechanics_modules/FUNCTION_NAME or, in case of a sub-folder, classic_mechanics:mechanics_modules/SUBFOLDER_NAME/FUNCTION_NAME.
Sub-folders are usually created for modules that require 3 or more functions to work, they are mainly for organization.

-> THE OPTIONS
The options folders/subfolders are categorized and differentiated by page number, the top consists of the title, the middle, the modules and the bottom the previous/next page buttons
The goal for each page is to have the size equivalent of about 2-3 modules. Some pages have 3 modules, some have 2 modules and 1 sub-setting module, some have 1 big multi-setting module, etc

-> OTHER STUFF
I've also added comments on a lot of the function files to make it easier for beginning devs to understand (though many files are already very easy to understand!!)

If you have any questions about the datapack or the functionality of modules or want to tell me how your day has been, feel 100% free to message me through discord (name: wilozyxx)

This datapack and ALL my other works are 100% public property!! It is completely in your right to modify them, include them in your own modpacks or datapacks, mix them into a slushy (slushie?), whatever it is you wish to do with them!

-> GENERAL SCHEMES & NAMING
-For the fake name for scoreboards and the like, "CM.global" is used
-Descriptive comments are done at the top of lines/sections
-Scores, tags, uuids and general naming always have "CM" (short for Classic Mechanics) in front of it
-Underscores (_) are usually used in scores to seperate the "CM" while dots (.) are used in tags (CM_ScoreName / CM.TagName)

################################

-> MODULE ENABLE/DISABLE FUNCTIONALITY

The enable/disable functionality for modules used to use IDs for each module, now it is done with macros in the modules/settings menus which call on specific functions in the "classic_toggles" namespace:

-Multi-version modules call upon functions inside sub-folders in the "multi_settings" folder
-Presets call upon the "presets" folder
-Most normal modules call upon functions inside of the "toggles" folder
-Any normal module that requires some more expansive or specific functionality calls on functions in the "toggles_special" folder

##### IDS [MULTI-SETTINGS] #####

These IDs are for multi-setting options/modules
they can be found in /classic_toggles/multi_settings/...

They are suffixed in these modules' enable/disable function files 

################################

-> MODULE & PAGE STRUCTURES

data\classic_mechanics\function\option_categories\page_structures.mcfunction

################################

== Old tool damage
-1 = beta
-2 = early release
-3 = mid release / mid-early release

== Old gapple
-1 = late beta
-2 = early release
-3 = early-mid release

== Old napple
-1 = early release
-2 = early-mid release

== Old villagers
-1 = beta 1.9
-2 = release 1.2.1
-3 = release 1.3.1
-4 = release 1.4.2
-5 = release 1.4.6
-6 = release 1.8
-7 = release 1.9
-8 = release 1.11
-9 = release 1.14 (not implemented!)
-10 = release 1.14.4 (not implemented!)
-11 = release 1.16 (not implemented!)
-12 = release 1.17 (not implemented!)

== Old painting variants
-1 = I223
-2 = A1.1.1
-3 = B1.2_01
-4 = R1.4.2

[ALL LOOT TABLE RELATED MULTI-SETTING MODULE HAS THE SAME IDS AS THE NUMBERS PROVIDED BELOW]

##################################

LOOT TABLES

Loot table IDs are used in loot tables' scores for differentiating the versions they are intended to emulate
so for example, for loot table XYZ, #1 would be R1.0, so it would pick from the "CM_ScoreXYZLoot = 1" pool

[0 always equals the modern loot/pool(s)!]

##############################
== Pillager outpost
RELEASE 1.14 = 1
RELEASE 1.19 = 2 

== Mineshaft
BETA 1.8 = 1
RELEASE 1.4.6 = 2 
RELEASE 1.6.1 = 3
RELEASE 1.9 = 4
RELEASE 1.17 = 5

== Jungle temple
RELEASE 1.3.1 = 1
RELEASE 1.4.6 = 2 
RELEASE 1.6.1 = 3
RELEASE 1.14 = 4

== Desert pyramid
RELEASE 1.3.1 = 1
RELEASE 1.4.6 = 2
RELEASE 1.6.1 = 3
RELEASE 1.9 = 4

== Stronghold
BETA 1.8 = 1
RELEASE 1.4.6 = 2
RELEASE 1.6.1 = 3
RELEASE 1.9 = 4
RELEASE 1.18 = 5

== Nether fortress
RELEASE 1.6.1 = 1
RELEASE 1.8 = 2
RELEASE 1.9 = 3

== Simple dungeon
ALPHA 1.1.2_02 = 1
BETA 1.7.3 = 2
RELEASE 1.2.5 = 3
RELEASE 1.4.7 = 4
RELEASE 1.6.6 = 5
RELEASE 1.8.9 = 6
RELEASE 1.12.2 = 7

== Fishing
ALPHA 1.2.0 = 1
RELEASE 1.7.2 = 2
RELEASE 1.9 = 3
RELEASE 1.11 = 4
RELEASE 1.13 = 5
RELEASE 1.14 = 6
RELEASE 1.16 = 7

== Bartering
RELEASE 20w07a = 1
RELEASE 20w09a = 2
RELEASE 20w10a = 3
RELEASE 1.16 = 4

##############################

VERSION IDS (score)

These are version ids, the version id is used as a score and is checked whenever classic mechanics is loaded/reloaded
it is primarily used in load.mcf

--------------

1 = 1.1.0
2 = 1.2.0
3 = 1.3.0
4 = 1.4.0
5 = 1.5.0
6 = 1.6.0
7 = 1.7.0
8 = 1.8.0 - 1.9.0
9 = (MISSING)
10 = 1.10.0
11 = 1.11.0
12 = 1.11.1
13 = 1.12.0
14 = 1.12.1
15 = 1.14.0 - 1.13.0
16 = 1.14.1
17 = 1.15.0
18 = 1.16.0
19 = 1.17.0
20 = 1.18.0
21 = 1.19.0
22 = 1.20.0 - 1.20.4
23 = 1.21.0
24 = 1.22.0 - 1.22.1
25 = 1.23.0

##############################

VERSION IDS (storage)

20 = v1.18.0
21 = v1.19.0
22 = v1.20.0
23 = v1.21.0
24 = v1.22.0
25 = v1.23.0

##############################