Compare commits

...
51 Commits
Author SHA1 Message Date
hypercross b4deedad7f chore: update 2025-12-31 23:58:44 +08:00
hypercross 405ad4506d feat: mp stuff 2025-12-14 00:59:50 +08:00
hypercross a4487f18c3 feat: e4mc 2025-12-14 00:14:15 +08:00
hypercross 0b872f395a refactor: fusion 2025-12-12 20:04:55 +08:00
hypercross f1b4edec4b refactor: update mods & try to do sync 2025-12-11 10:50:15 +08:00
hypercross 2871b53b3b feat: raspberry flavoured sleep 2025-12-10 10:19:57 +08:00
hypercross 9040914856 feat: status effect 2025-12-10 10:08:10 +08:00
hypercross ea52a3bb18 feat: better days 2025-12-10 10:08:03 +08:00
hypercross c5e4d3dfac fix: js 2025-12-09 15:18:57 +08:00
hypercross b1a5440913 fix: BnC coaster recipe 2025-12-09 12:34:45 +08:00
hypercross 8c976996d0 fix: hmi, trade costs 2025-12-09 11:41:29 +08:00
hypercross 34c35ef3b2 fix: hmi 2025-12-09 11:24:37 +08:00
hypercross 07a533bbda fix: js 2025-12-09 11:20:09 +08:00
hypercross 84db9adda6 feat: emi config & flax->canvas 2025-12-09 08:55:23 +08:00
hypercross ea800c7b5d feat: via romana environmental path 2025-12-08 23:00:54 +08:00
hypercross 348eae97b4 feat: mod update 2025-12-08 23:00:47 +08:00
hypercross fadf2b223a feat: emi, healingcamp 2025-12-08 22:58:06 +08:00
hypercross 4c8fd5fc14 fix: map recipe doesn't work 2025-12-05 11:02:00 +08:00
hypercross 0a5699a443 feat: 3d bucket for all fluids 2025-12-04 12:21:36 +08:00
hypercross f872bfb55a feat: seasons, better days, crops data 2025-12-04 09:19:47 +08:00
hypercross 9ec1d44094 feat: add seasons 2025-12-04 08:53:52 +08:00
hypercross d1ddcfa36b feat: boat item view and handcrafted 2025-12-03 23:10:53 +08:00
hypercross bb0a3b0b8e fix: enchanted items 2025-12-03 23:07:25 +08:00
hypercross 210e149df2 fix: enchantment books 2025-12-03 23:03:07 +08:00
hypercross d2edd71e83 refactor: add creeper overhaul 2025-12-03 01:33:47 +08:00
hypercross f6a3e3fa19 refactor: remove aquaculture trades 2025-12-03 01:20:07 +08:00
hypercross be9ca61bf4 refactor: rch, remove aquaculture, add critters 2025-12-03 01:10:25 +08:00
hypercross f1b9796d69 fix: typo & renderin 2025-12-03 00:53:07 +08:00
hyper 84c6f10728 fix: milk compat 2025-12-02 18:31:36 +08:00
hyper ac9ab3bf9b fix: options 2025-12-02 15:34:16 +08:00
hyper 764898804c feat: probejs huh 2025-12-02 15:18:02 +08:00
hyper 1906838c84 feat: unnerf the creeper 2025-12-02 15:10:15 +08:00
hyper a28c825d65 feat: icons, alacrity, hold-my-items, creeper visuals 2025-12-02 15:07:31 +08:00
hyper 06c6a271ab fix: diets 2025-12-02 13:38:01 +08:00
hyper 79631b6eb6 fix: trades 2025-12-02 13:22:03 +08:00
hyper aa0d1fe5a5 refactor: carpenter 2025-12-02 12:51:03 +08:00
hyper fad3864d55 refactor: portal lighting 2025-12-02 12:29:15 +08:00
hyper cd161a69a6 refactor: more map expansion 2025-12-02 12:21:56 +08:00
hyper f39f836ef6 feat: tidal towns, spyglass 2025-12-02 12:21:02 +08:00
hyper bccb212b16 feat: jade 2025-12-02 11:39:50 +08:00
hyper cc6527359c Merge branch 'master' of https://gitea.ayi-games.online/hypercross/ayi-cafe-mc 2025-12-02 11:29:01 +08:00
hypercross 6cb86e4e74 feat: add watut 2025-12-01 22:54:51 +08:00
hypercross b340f675df feat: add pakku credentials 2025-12-01 19:29:53 +08:00
hypercross 968297a2f8 fix: trade price multipliers 2025-12-01 18:32:17 +08:00
hypercross 2d67e9e668 refactor: add nullscape & ybei 2025-12-01 15:09:57 +08:00
hypercross 656f468e05 fix: uses 2025-12-01 15:08:05 +08:00
hypercross 1e436b8fd5 damn 2025-12-01 15:02:31 +08:00
hypercross bde6d1881b refactor: actually manually code the maps 2025-12-01 15:01:19 +08:00
hypercross 6096cc9562 refactor: try to add adventure maps 2025-12-01 11:59:26 +08:00
hypercross 300c590326 todo 2025-12-01 10:21:09 +08:00
hyper edd0b7684c chore: ignore... 2025-11-29 23:12:44 +08:00
56 changed files with 7811 additions and 739 deletions
+2 -1
View File
@@ -1,8 +1,9 @@
*.log
*.log.gz
config/
!configureddefaults/config/
!**/*/config/
options.txt
!**/*/options.txt
mods/
usernamecache.json
usercache.json
+3
View File
@@ -0,0 +1,3 @@
{
"curseforge_api_key": "$2a$10$GYII5tOhqOIwlikNgnqnLOBDCBtL0s/J1w7a.LAYc4b07EQB3tOLu"
}
@@ -0,0 +1,19 @@
[gui]
#Sets the screen alignment of the bed clock.
#Allowed Values: TOP_LEFT, TOP_CENTER, TOP_RIGHT, CENTER_LEFT, CENTER_CENTER, CENTER_RIGHT, BOTTOM_LEFT, BOTTOM_CENTER, BOTTOM_RIGHT
clockAlignment = "TOP_RIGHT"
#Sets the scale of the bed clock.
#Range: > 1
clockScale = 32
#Sets the distance between the clock and the edge of the screen.
#Unused if clockAlignment is CENTER_CENTER.
#Range: > 0
clockMargin = 16
#This setting prevents clock wobble when getting in bed by updating the clock's position every tick.
#As a side-effect, the clock won't wobble when first viewed as it does in vanilla. This setting is
#unused if displayBedClock is false.
preventClockWobble = true
#This setting blacklists the sky rendering for specific dimensions. Like in the Aether if using /time set command, the sky jitters. Adding to the blacklist will prevent this behavior.
blacklistDimensions = ["aether:the_aether"]
@@ -0,0 +1,192 @@
[time]
#The speed at which time passes during the day.
#Day is defined as any time between dayStart (see below) and nightStart (see below) the next day.
#This is the RATIO of time passing relative to vanilla.
#Vanilla speed: 1.0
#Range: 0.0 ~ 24000.0
daySpeed = 0.7
#The speed at which time passes during the night.
#Night is defined as any time between dayStart (see below) and nightStart (see below).
#This is the RATIO of time passing relative to vanilla.
#Vanilla speed: 1.0
#Range: 0.0 ~ 24000.0
nightSpeed = 0.7
#An alternative way to set day speed. This setting is mutually exclusive with daySpeed.
#If both are set, speedMethod (see below) determines which setting is used.
#This setting defines the length of the day in real-world minutes.
#Vanilla length: 10.0 minutes
#Range: 0.1 ~ 10000.0
daySpeedMinutes = 10.0
#An alternative way to set night speed. This setting is mutually exclusive with nightSpeed.
#If both are set, speedMethod (see below) determines which setting is used.
#This setting defines the length of the night in real-world minutes.
#Vanilla length: 10.0 minutes
#Range: 0.1 ~ 10000.0
nightSpeedMinutes = 10.0
#Determines which method is used to set day and night speed.
#RATIO: Uses daySpeed and nightSpeed settings.
#MINUTES: Uses daySpeedMinutes and nightSpeedMinutes settings.
#REALTIME: Sets day and night to 12 real-world hours each.
#Allowed Values: RATIO, MINUTES, REALTIME
speedMethod = "RATIO"
#The time to start day. This is configurable within the time the sun appears and day starts.
#Default: 23500
#Range: 22300.0 ~ 24000.0
dayStart = 23500.0
#The time to start night. This is configurable within the time sunset starts and night starts.
#Default: 12500
#Range: 12000.0 ~ 13000.0
nightStart = 12500.0
#Enabling this will allow the setting of an infinite amount of time speeds defined as pairs in the form:
#(currentTick, desiredSpeed)
#where between each value bezier spline interpolation is performed for smooth transitioning
#The two default pairs at 0 and 24000 are necessary as they act as bounds. However
#The time speed value for each of them can be freely modified
enableInterpolatedTime = false
#The value that determines the smoothing factor in the interpolation algorithm.
#A high value will make the interpolation softer and curvier
#A low value will make the interpolation closer to a piecewise function
#Range: 0.0 ~ 10.0
interpolatedTimeSmoothingFactor = 0.25
#These are the pairs that define what speed time should run at, at the specified day/night tick
#The two default pairs need to exist, but their time speed values can be modified
interpolatedTimeList = ["0,1.0", "24000,1.0"]
[time.effects]
#When applied, this effect syncs the passage of weather with the current speed of time.
#I.e., as time moves faster, rain stops faster. Clear weather is not affected.
#When set to SLEEPING, this effect only applies when at least one player is sleeping in a dimension.
#Note: This setting is not applicable if game rule doWeatherCycle is false.
#Allowed Values: NEVER, ALWAYS, SLEEPING
weatherEffect = "SLEEPING"
#When applied, this effect syncs the random tick speed with the current speed of time, forcing
#crop, tree, and grass growth to occur at baseRandomTickSpeed multiplied by the current time-speed.
#When set to SLEEPING, randomTickSpeed is set to baseRandomTickSpeed unless at least one player is sleeping in a dimension.
#More information on the effects of random tick speed can be found here: https://minecraft.wiki/w/Tick#Random_tick
#WARNING: This setting overwrites the randomTickSpeed game rule. To modify the base random tick speed,
#use the baseRandomTickSpeed setting instead of changing the game rule directly.
#This effect has a minimum randomTickSpeed of 1 if time speed is less than 1.0.
#Allowed Values: NEVER, ALWAYS, SLEEPING
randomTickEffect = "SLEEPING"
#The base random tick speed used by the randomTickEffect time effect.
#Range: > 0
baseRandomTickSpeed = 3
#When applied, this effect progresses potion effects to match the rate of the current time-speed.
#This effect does not apply if time speed is 1.0 or less.
#THIS MAY HAVE A NEGATIVE IMPACT ON PERFORMANCE IN SERVERS WITH MANY PLAYERS.
#When set to ALWAYS, this effect applies to all players in the dimension, day or night.
#When set to SLEEPING, this effect only applies to players who are sleeping.
#Allowed Values: NEVER, ALWAYS, SLEEPING
potionEffect = "SLEEPING"
#When applied, this effect progresses player hunger effects to match the rate of the current time-speed.
#This results in faster healing when food level is full, and faster harm when food level is too low.
#This effect does not apply if time speed is 1.0 or less.
#When set to ALWAYS, this effect applies to all players in the dimension, day or night. Not recommended on higher difficulty settings
#When set to SLEEPING, this effect only applies to players who are sleeping.
#Allowed Values: NEVER, ALWAYS, SLEEPING
hungerEffect = "SLEEPING"
#When applied, this effect progresses block entities like furnaces, hoppers, and spawners to match the rate of the current time-speed.
#WARNING: This time-effect has a significant impact on performance.
#This effect does not apply if time speed is 1.0 or less.
#When set to SLEEPING, this effect only applies when at least one player is sleeping in a dimension.
#Allowed Values: NEVER, ALWAYS, SLEEPING
blockEntityEffect = "SLEEPING"
[sleep]
#Enables or disables the sleep feature of this mod. Enabling this setting will modify the vanilla sleep functionality
#and may conflict with other sleep mods. If disabled, all settings in the sleep section will not apply.
enableSleepFeature = true
### THIS SETTING DEFINES THE SLEEP TIME-SPEED IN SINGLE-PLAYER GAMES ###
#The maximum speed at which time passes when all players are sleeping.
#A value of 110 is nearly equal to the time it takes to sleep in vanilla.
#Range: 0.0 ~ 24000.0
sleepSpeedMax = 55.0
#The minimum speed at which time passes when only 1 player is sleeping in a full server.
#Range: 0.0 ~ 24000.0
sleepSpeedMin = 1.0
#The speed at which time passes when all players are sleeping.
#Set to -1 to disable this feature (sleepSpeedMax will be used when all players are sleeping).
#Range: -1.0 ~ 24000.0
sleepSpeedAll = -1.0
#This parameter defines the curvature of the interpolation function that translates the sleeping player percentage into time-speed.
#The function used is a Normalized Tunable Sigmoid Function.
#A value of 0.5 represents a linear relationship.
#Smaller values bend the curve toward the X axis, while greater values bend it toward the Y axis.
#This graph may be used as a reference for tuning the curve: https://www.desmos.com/calculator/w8gntxzfow
#Credit to Dino Dini for the function: https://dinodini.wordpress.com/2010/04/05/normalized-tunable-sigmoid-functions/
#Credit to SmoothSleep for the idea: https://www.spigotmc.org/resources/smoothsleep.32043/
#Range: 0.0 ~ 1.0
sleepSpeedCurve = 0.3
#Set to 'true' for the weather to clear when players wake up in the morning as it does in vanilla.
#Set to 'false' to force weather to pass naturally. Adds realism when accelerateWeather is enabled.
#Note: This setting is ignored if game rule doWeatherCycle is false.
clearWeatherOnWake = true
#When true, players are allowed to sleep at all times of day in dimensions controlled by Better Days.
#Note: Other mods may override this ability.
allowDaySleep = false
#When true, a clock is displayed in the sleep interface.
displayBedClock = true
#The ratio of players in a dimension that must be sleeping to skip to morning.
#A value of 1 means all players must be sleeping, 0.5 means half the players must be sleeping, etc.
#A value of 0 effectively disables this feature.
#Range: 0.0 ~ 1.0
ratioPlayersForSleep = 0.0
#This section defines settings for notification messages.
#All messages support Minecraft formatting codes (https://minecraft.wiki/w/Formatting_codes).
#All messages have variables that can be inserted using the following format: ${variableName}
#The type option controls where the message appears:
# SYSTEM: Appears as a message in the chat. (e.g., "Respawn point set")
# GAME_INFO: Game information that appears above the hotbar (e.g., "You may not rest now, the bed is too far away").
#The target option controls to whom the message is sent:
# ALL: Sends the message to all players on the server.
# DIMENSION: Sends the message to all players in the current dimension.
# SLEEPING: Sends the message to all players in the current dimension who are sleeping.
[sleep.messages]
#This message is sent after a sleep cycle has completed.
[sleep.messages.morning]
#Available variables:
#sleepingPlayers -> the number of players in the current dimension who were sleeping.
#totalPlayers -> the number of players in the current dimension (spectators are not counted).
#sleepingPercentage -> the percentage of players in the current dimension who were sleeping (does not include % symbol).
message = "§e§oGood Morning!"
#Sets where this message appears.
#Allowed Values: SYSTEM, GAME_INFO
type = "GAME_INFO"
#Sets to whom this message is sent.
#A target of 'SLEEPING' will send the message to all players who just woke up.
#Allowed Values: ALL, DIMENSION, SLEEPING
target = "DIMENSION"
#This message is sent when a player enters their bed.
[sleep.messages.enterBed]
#Available variables:
#player -> the player who started sleeping.
#sleepingPlayers -> the number of players in the current dimension who are sleeping.
#totalPlayers -> the number of players in the current dimension (spectators are not counted).
#sleepingPercentage -> the percentage of players in the current dimension who are sleeping (does not include % symbol).
message = "${player} is now sleeping. [${sleepingPlayers}/${totalPlayers}]"
#Sets where this message appears.
#Allowed Values: SYSTEM, GAME_INFO
type = "GAME_INFO"
#Sets to whom this message is sent.
#Allowed Values: ALL, DIMENSION, SLEEPING
target = "DIMENSION"
#This message is sent when a player leaves their bed (without being woken up naturally by morning).
[sleep.messages.leaveBed]
#Available variables:
#player -> the player who left their bed.
#sleepingPlayers -> the number of players in the current dimension who are sleeping.
#totalPlayers -> the number of players in the current dimension (spectators are not counted).
#sleepingPercentage -> the percentage of players in the current dimension who are sleeping (does not include % symbol).
message = "${player} has left their bed. [${sleepingPlayers}/${totalPlayers}]"
#Sets where this message appears.
#Allowed Values: SYSTEM, GAME_INFO
type = "GAME_INFO"
#Sets to whom this message is sent.
#Allowed Values: ALL, DIMENSION, SLEEPING
target = "DIMENSION"
@@ -0,0 +1,32 @@
[mobs]
[mobs.creeper]
"Creeper explosions drop all blocks" = true
#Creeper explosions have a weaker power
"Creeper explosion nerf" = false
#How much weaker Creeper explosions are
#Range: 0.0 ~ 1.7976931348623157E308
"Creeper explosion nerf factor" = 0.5
[mobs.deeper]
"Deeper explosions drop all blocks" = true
#Range: -64 ~ 320
"Deeper max spawn height" = 60
[mobs.peeper]
#Range: -64 ~ 320
"Peeper max spawn height" = -4
[tweaks]
#Chainmail armor increases the user's attack damage
"Chainmail armor increases damage" = true
#Golden armor increases the user's movement speed
"Golden armor increases speed" = true
[tweaks.rails]
#Rails can be placed in the direction you're looking at by clicking on another rail, similar to scaffolding
"Better rail placement" = true
#The range in blocks that better rail placement can reach
#Range: > 0
"Placement range" = 7
+490
View File
@@ -0,0 +1,490 @@
/** EMI Config */
#general {
/**
* Whether EMI is enabled and visible.
*/
enabled: true;
/**
* Whether cheating in items is enabled.
*/
cheat-mode: false;
/**
* How much EMI should use tooltips and popups to show controls and information.
*/
help-level: normal;
/**
* Where EMI should pull stacks from to populate the index.
*/
index-source: creative;
/**
* Which sidebar should be searched using the search bar.
*/
search-sidebar: right;
/**
* Whether normal search queries should include the tooltip.
*/
search-tooltip-by-default: true;
/**
* Whether normal search queries should include the mod name.
*/
search-mod-name-by-default: false;
/**
* Whether normal search queries should include the stack's tags.
*/
search-tags-by-default: false;
}
#ui {
/**
* Which action should be performed when clicking the recipe book.
*/
recipe-book-action: toggle-visibility;
/**
* Where to display status effects in the inventory.
*/
effect-location: top;
/**
* Whether to display a gray overlay when hovering over a stack.
*/
show-hover-overlay: true;
/**
* Whether to add mod name to tooltips
*/
append-mod-id: true;
/**
* Whether to add mod name to item tooltips, in case another mod provides behavior
*/
append-item-mod-id: true;
/**
* Prevents recipes being quick crafted from shifting around under the cursor.
*/
miscraft-prevention: true;
/**
* The unit to display fluids as.
*/
fluid-unit: millibuckets;
/**
* Whether to use the batched render system. Batching is faster, but may have
* incompatibilities with shaders or other mods.
*/
use-batched-renderer: true;
/**
* Whether to have the search bar in the center of the screen, instead of to the
* side.
*/
center-search-bar: true;
/**
* Which sidebar type to switch to when searching.
*/
search-sidebar-focus: index;
/**
* Which sidebar type to focus when the search is empty.
*/
empty-search-sidebar-focus: none;
/**
* Whether the EMI config button should be visible.
*/
emi-config-button-visibility: shown;
/**
* Whether the recipe tree button should be visible.
*/
recipe-tree-button-visibility: auto;
/**
* The maximum height the recipe screen will grow to be if space is available in
* pixels.
*/
maximum-recipe-screen-height: 256;
/**
* The minimum width of the recipe screen in pixels. Controls how many tabs there
* can be, and where the page switching buttons go. The default is 176, the width
* of most screens.
*/
minimum-recipe-screen-width: 176;
/**
* The amount of vertical margin to give in the recipe screen.
*/
vertical-margin: 20;
/**
* Where to show workstations in the recipe screen
*/
workstation-location: bottom;
/**
* Display cost per batch when hovering a recipe output
*/
show-cost-per-batch: true;
/**
* Whether recipes should have a button to set as default.
*/
recipe-default-button: true;
/**
* Whether recipes should have a button to show the recipe tree.
*/
recipe-tree-button: true;
/**
* Whether recipes should have a button to fill the ingredients in a handler.
*/
recipe-fill-button: true;
/**
* Whether recipes should have a button to take a screenshot of the recipe.
*/
recipe-screenshot-button: false;
/**
* The GUI scale at which recipe screenshots are saved. Use 0 to use the current
* GUI scale.
*/
recipe-screenshot-scale: 0;
/**
* The pages in the left sidebar
*/
left-sidebar-pages: craftables;
/**
* The subpanels in the left sidebar
*/
left-sidebar-subpanels: none;
/**
* How many columns and rows of ingredients to limit the left sidebar to
*/
left-sidebar-size: 12, 100;
/**
* How much space to maintain between the left sidebar and obstructions, in pixels
*/
left-sidebar-margins: 2, 2, 2, 2;
/**
* Where to position the left sidebar
*/
left-sidebar-align: left, top;
/**
* Whether to render the header buttons and page count for the left sidebar
*/
left-sidebar-header: visible;
/**
* Which theme to use for the left sidebar
*/
left-sidebar-theme: vanilla;
/**
* The pages in the right sidebar
*/
right-sidebar-pages: index;
/**
* The subpanels in the right sidebar
*/
right-sidebar-subpanels: none;
/**
* How many columns and rows of ingredients to limit the right sidebar to
*/
right-sidebar-size: 12, 100;
/**
* How much space to maintain between the right sidebar and obstructions, in pixels
*/
right-sidebar-margins: 2, 2, 2, 2;
/**
* Where to position the right sidebar
*/
right-sidebar-align: right, top;
/**
* Whether to render the header buttons and page count for the right sidebar
*/
right-sidebar-header: visible;
/**
* Which theme to use for the right sidebar
*/
right-sidebar-theme: vanilla;
/**
* The pages in the top sidebar
*/
top-sidebar-pages: none;
/**
* The subpanels in the top sidebar
*/
top-sidebar-subpanels: none;
/**
* How many columns and rows of ingredients to limit the top sidebar to
*/
top-sidebar-size: 9, 9;
/**
* How much space to maintain between the top sidebar and obstructions, in pixels
*/
top-sidebar-margins: 2, 2, 2, 2;
/**
* Where to position the top sidebar
*/
top-sidebar-align: center, center;
/**
* Whether to render the header buttons and page count for the top sidebar
*/
top-sidebar-header: visible;
/**
* Which theme to use for the top sidebar
*/
top-sidebar-theme: transparent;
/**
* The pages in the bottom sidebar
*/
bottom-sidebar-pages: none;
/**
* The subpanels in the bottom sidebar
*/
bottom-sidebar-subpanels: none;
/**
* How many columns and rows of ingredients to limit the bottom sidebar to
*/
bottom-sidebar-size: 9, 9;
/**
* How much space to maintain between the bottom sidebar and obstructions, in
* pixels
*/
bottom-sidebar-margins: 2, 2, 2, 2;
/**
* Where to position the bottom sidebar
*/
bottom-sidebar-align: center, center;
/**
* Whether to render the header buttons and page count for the bottom sidebar
*/
bottom-sidebar-header: visible;
/**
* Which theme to use for the bottom sidebar
*/
bottom-sidebar-theme: transparent;
}
#binds {
/**
* Toggle the visibility of EMI.
*/
toggle-visibility: "ctrl key.keyboard.o";
/**
* Focuses the search bar.
*/
focus-search: "ctrl key.keyboard.f";
/**
* Clears the search bar.
*/
clear-search: "key.keyboard.unknown";
/**
* Display the recipes for creating a stack.
*/
view-recipes: "key.keyboard.r";
view-recipes: "key.mouse.left";
/**
* Display the recipes that can be created using a stack.
*/
view-uses: "key.keyboard.u";
view-uses: "key.mouse.right";
/**
* Favorite the item to display on the side of the screen opposite of recipies for
* quick access.
*/
favorite: "key.keyboard.a";
/**
* Set the default recipe for a given stack in the output of a recipe to that
* recipe.
*/
default-stack: "ctrl key.mouse.left";
/**
* Display the recipe tree for a given stack.
*/
view-stack-tree: "key.keyboard.unknown";
/**
* Display the recipe tree.
*/
view-tree: "key.keyboard.unknown";
/**
* Return to the previous page in EMI.
*/
back: "key.keyboard.backspace";
/**
* Return to the next page in EMI after going back.
*/
forward: "key.keyboard.unknown";
/**
* When on a stack with an associated recipe:
* Move ingredients for a single result.
*/
craft-one: "key.mouse.left";
/**
* When on a stack with an associated recipe:
* Move ingredients for as many results as possible.
*/
craft-all: "shift key.mouse.left";
/**
* When on a stack with an associated recipe:
* Move ingredients for a single result and put in inventory if possible.
*/
craft-one-to-inventory: "key.keyboard.unknown";
/**
* When on a stack with an associated recipe:
* Move ingredients for as many results as possible and put in inventory if
* possible.
*/
craft-all-to-inventory: "key.keyboard.unknown";
/**
* When on a stack with an associated recipe:
* Move ingredients for a single result and put in cursor if possible.
*/
craft-one-to-cursor: "ctrl key.mouse.left";
/**
* Display the recipe that will be used to craft on a stack with no recipe context.
*/
show-craft: "key.keyboard.left.shift";
/**
* Cheat in one of an item into the inventory.
*/
cheat-one-to-inventory: "ctrl key.mouse.right";
/**
* Cheat in a stack of an item into the inventory.
*/
cheat-stack-to-inventory: "ctrl key.mouse.left";
/**
* Cheat in one of an item into the cursor.
*/
cheat-one-to-cursor: "ctrl key.mouse.middle";
/**
* Cheat in a stack of an item into the cursor.
*/
cheat-stack-to-cursor: "key.keyboard.unknown";
/**
* Delete the stack in the cursor when hovering the index
*/
delete-cursor-stack: "key.mouse.left";
/**
* Copies the hovered recipe's ID to the clipboard
*/
copy-recipe-id: "key.keyboard.unknown";
/**
* In edit mode, hide the hovered stack
*/
hide-stack: "ctrl key.mouse.left";
/**
* In edit mode, hide stacks with the hovered stack's id
*/
hide-stack-by-id: "ctrl shift key.mouse.left";
}
#dev {
/**
* Whether development functions should be enabled. Not recommended for general
* play.
*/
dev-mode: false;
/**
* Whether editing the index is enabled
*/
edit-mode: false;
/**
* Whether to log untranslated tags as warnings.
*/
log-untranslated-tags: false;
/**
* Whether to log ingredients that don't have a representative tag as warnings.
*/
log-non-tag-ingredients: false;
/**
* Whether hovering the output of a recipe should show the recipe's EMI ID.
*/
show-recipe-ids: false;
/**
* Whether to display additional widgets added to recipes from other mods.
* These are typically developer facing and compatibility related, and not useful
* for players.
*/
show-recipe-decorators: false;
/**
* Whether stacks in the index should display a highlight if they have a recipe
* default.
*/
highlight-defaulted: false;
/**
* Whether to display exclusion areas
*/
highlight-exclusion-areas: false;
}
@@ -4,10 +4,10 @@
"checkForCampfireDelayInTicks": 40,
// The radius around the campfire in blocks where players receive the regeneration effect.
// min: 1, max: 64
"healingRadius": 8,
"healingRadius": 6,
// The duration of the regeneration effect which the campfire applies.
// min: 1, max: 600
"effectDurationSeconds": 30,
"effectDurationSeconds": 5,
// The level of regeneration which the campfire applies, by default 1.
// min: 1, max: 50
"regenerationLevel": 1,
@@ -0,0 +1,41 @@
[animations]
#Choose your preferred animation speed (0.5-1.5)
#Range: 0.5 ~ 1.5
animationSpeed = 1.0
#Switch speed (0-10)
#Range: 0.0 ~ 10.0
switchSpeed = 0.018
#Enable or disable swimming animation
enableSwimmingAnimation = true
#Swing animation speed (6-12)
#Range: 6 ~ 12
swingSpeed = 9
#Enable or disable climb and crawl animation
enableClimbAndCrawlAnimation = true
#Enable or disable punching animation
enablePunchingAnimation = true
[positions]
#Viewmodel X Offset
#Range: -10.0 ~ 10.0
viewmodelXOffset = 0.0
#Viewmodel Y Offset
#Range: -10.0 ~ 10.0
viewmodelYOffset = 0.0
#Viewmodel Z Offset
#Range: -10.0 ~ 10.0
viewmodelZOffset = 0.0
[misc]
#Enable MB3D compatibility mode
mb3DCompat = false
[modRenderExclusions]
#Mod IDs that should be excluded from custom rendering (entire mod).
excludedModIds = ["pointblank", "jeg", "cataclysm"]
#Specific item IDs to exclude from custom rendering (e.g. 'modid:itemname').
excludedItemIds = []
#Skips the blockItem renderer which is useful especially for create items cause their already 3d
renderBlockAsItem = ["create:cogwheel", "create:large_cogwheel", "create:shaft", "create:gearbox", "create:vertical_gearbox", "create:clutch", "create:gearshift", "create:encased_chain_drive", "create:adjustable_chain_gearshift", "create:belt_connector", "create:chain_conveyor", "create:creative_motor", "create:water_wheel", "create:large_water_wheel", "create:nozzle", "create:turntable", "create:hand_crank", "create:millstone", "create:crushing_wheel", "create:mechanical_press", "create:mechanical_mixer", "create:empty_blaze_burner", "create:blaze_burner", "create:depot", "create:weighted_ejector", "create:speedometer", "create:stressometer", "create:wooden_bracket", "create:metal_bracket", "create:schematicannon", "create:fluid_pipe", "create:mechanical_pump", "create:smart_fluid_pipe", "create:fluid_valve", "create:copper_valve_handle", "create:hose_pulley", "create:portable_fluid_interface", "create:steam_engine", "create:gantry_carriage", "create:gantry_shaft", "create:windmill_bearing", "create:mechanical_bearing", "create:clockwork_bearing", "create:rope_pulley", "create:elevator_pulley", "create:cart_assembler", "create:sticker", "create:contraption_controls", "create:mechanical_drill", "create:mechanical_saw", "create:deployer", "create:portable_storage_interface", "create:mechanical_harvester", "create:mechanical_plough", "create:mechanical_roller", "create:mechanical_crafter", "create:sequenced_gearshift", "create:flywheel", "create:rotation_speed_controller", "create:mechanical_arm", "create:controls", "create:andesite_funnel", "create:brass_funnel", "create:andesite_tunnel", "create:brass_tunnel", "create:package_frogport", "create:factory_gauge", "create:display_board", "create:peculiar_bell", "create:haunted_bell", "create:brown_toolbox", "create:clipboard", "supplementaries:flax_seeds", "brewinandchewin:coaster"]
@@ -4,12 +4,12 @@
#Range: 0 ~ 1000000
max_map_count = 512
#If enabled, you can increase the Empty Map count by inserting Paper
accept_paper_for_empty_maps = true
accept_paper_for_empty_maps = false
#If true, the Atlas is required to have spare Empty Maps stored to expand the Filled Map size
require_empty_maps_to_expand = true
#Controls how many usable Maps are added when you add a single Map to the Atlas
#Range: 0 ~ 64
map_entry_value_multiplier = 1
map_entry_value_multiplier = 9
#Controls how many free Empty Maps you get for 'activating' an Inactive Atlas
#Range: 0 ~ 64
pity_activation_map_count = 9
@@ -23,7 +23,7 @@
#Marker id associated with the red pin button on the atlas screen. Set to empty string to disable
pin_marked_id = "map_atlases:pin"
#Shows light color on maps. Needs Moonlight lib
light_map = false
light_map = true
#Show nearby mobs on minimap. Needs matching client config also set
mob_radar = false
#Adds a shear button to the atlas screen which allows you to cut maps
@@ -26,12 +26,12 @@
magnetite_range = 64
[nether_portals_and_portal_fluid]
flint_and_steel_portal_lighting = true
flint_and_steel_portal_lighting = false
portal_destruction_crying_obsidian = true
portal_creation_sound = true
portal_destruction_sound = true
portal_fluid_drinking = true
instant_teleportation = true
instant_teleportation = false
piglins_give_crying_obsidian = true
dimensional_tears_from_crying_obsidian = false
dimensional_tears_from_respawn_anchor = true
@@ -603,9 +603,9 @@
[tweaks.map_tweaks]
#Cartographers will sell 'adventurer maps' that will lead to a random vanilla structure (choosen from a thought out preset list).
#Best kept disabled if you are adding custom adventurer maps with datapack (check the wiki for more)
random_adventurer_maps = false
random_adventurer_maps = true
#Select a random structure to look for instead of iterating through all of the ones in the tag returning the closest. Turning on will make ones that have diff structures (aka all different ruined portals) show up more. On could take much more time to compute
random_adventurer_maps_select_random_structure = false
random_adventurer_maps_select_random_structure = true
#Enables beacons, lodestones, respawn anchors, beds, conduits, portals to be displayed on maps by clicking one of them with a map
block_map_markers = true
#Shows a death marker on your map when you die. Requires a recovery compass in player inventory or similar
+1 -1
View File
@@ -4,7 +4,7 @@
"node_distance_minimum": 4,
"node_distance_maximum": 8,
"node_utility_distance": 3,
"path_block_ids": ["minecraft:dirt_path", "minecraft:water"],
"path_block_ids": ["minecraft:dirt_path", "minecraft:water", "environmental:dirt_path"],
"path_block_tags": [],
"path_block_strings": [],
"block_string_blacklist": [
+11
View File
@@ -0,0 +1,11 @@
resourcePacks:["vanilla","mod_resources","Moonlight Mods Dynamic Assets","builtin/add_pack_finders_test","file/FreshAnimations_v1.10.2.zip","file/-1.21.2 Fresh Moves v3.1 (With Animated Eyes).zip","file/AL\u0027s Creepers Revamped 1.3.zip","file/FreshCompats_v1.6.zip","file/Dramatic Skys Demo 1.5.3.36.1.zip","file/Icons v.1.12.1.zip"]
incompatibleResourcePacks:["file/AL\u0027s Creepers Revamped 1.3.zip"]
key_iris.keybind.reload:key.keyboard.unknown
key_iris.keybind.toggleShaders:key.keyboard.unknown
key_iris.keybind.shaderPackSelection:key.keyboard.unknown
key_treechop.key.toggle_chopping:key.keyboard.unknown
key_treechop.key.toggle_felling:key.keyboard.unknown
key_treechop.key.cycle_sneak_behavior:key.keyboard.unknown
key_treechop.key.open_settings_overlay:key.keyboard.unknown
key_key.cycleLeft:key.keyboard.unknown
key_key.cycleRight:key.keyboard.unknown
+12 -44
View File
@@ -2,14 +2,14 @@
## todo
- [x] Spelunkery / Caverns n Chasms / Galosphere / Supplementaries: repeated barometers/depth gauge etc
- [x] Spelunkery / Caverns n Chasms / Supplementaries: repeated barometers/depth gauge etc
- [x] Gui compass: remove or tweak since it adds depth as well
- [x] spyglass: 2 copper + glass
- [x] empty map: 8 paper + spyglass
- [x] map atlases: book + compass + empty map
- [x] iron / gold armor: use plates over ingots
- [-] rope: prefer farmer's rope over supplementaries
- [x] rope: prefer farmer's rope over supplementaries
- [x] flax: make more ropes than straws maybe?
- [x] fan, reaper use quartz -> replace shaft with, like, rose
@@ -18,46 +18,14 @@
- [x] drill/cutter requires brass
- [x] crying obsidian + glowstone dust -> dimension tears don't need blaze
## trades
- [x] common villager trades
- [x] villager explorer map trades
- [ ] ideology
- buys food at 1, sells staples at 2, sells gears for gems at 3, sells building stuff, buys/sells rare collectibles at 5
- food includes basic cooked fish, crops and meat, best exp source.
- staples are all player gatherables obtainable easily elsewhere, timesaver.
- trades gems (cinnabar, lapiz, spinel, diamond, silver, gold, crystal) for specific enchantment books.
- sells a type of stone at 4.
- collectibles are rare and must trade with other villagers, best emerald source.
- all trades have 1 stock and 1 exp, except for food which has 5 exp.
- you 1. know them 2. build farm for them 3. buy staples for consumables 4. build houses for them 5. stock up collectibles
- all food are basic one ingredient food and are the same big pool for all villagers.
- all collectibles are the same big pool for all villagers.
- only design staples, gear, and deco for each profession.
- armorer
- staples: low durability chainmail, gold armor
- enchantment: fire prot, prot,
- brick: granite, limestone
- butcher
- staples: various animal meat, bones
- enchantment: sharp, strength
- deco: diorite, tuff
- cartographer
- staples: explorer maps
- enchantment: loot, luck
- deco: deepslate cobble, cobble
- cleric
- staples: glass bottles, spider eyes, rotten flesh
- enchantment: undead killer, spider killer
- deco: nether brick, blackstone
- farmer
- staples: seeds, bonemeal, saplings
- enchantment: efficiency, durable
- deco: mud bricks, dirt
- fisherman
- staples: fish, leech, worm, rods
- enchantment: luck of the sea, lure
- deco: coral blocks
- fletcher
- staples: bows, arrows, crossbows
- enchantment: piercing, reloading
- deco: daub, daub_frame
-
- [x] villager diet update
- a village biome specific main crop that everybody eats
- more random snacks / drinks / beer on the second slot
- add more of farmer's complex food (4+ ingredients, cooked, etc)
- carpenter always sell biome native logs as well
- [x] add configs for tidal towns
- they're just another plains village
@@ -0,0 +1,113 @@
{
"credit": "Made with Blockbench",
"texture_size": [64, 64],
"textures": {
"2": "create:item/chocolate_bucket"
},
"elements": [
{
"from": [3, 2, 3],
"to": [13, 11, 4],
"rotation": {"angle": 0, "axis": "y", "origin": [3, 1, 3]},
"faces": {
"north": {"uv": [0, 0, 2.5, 2.25], "texture": "#2"},
"east": {"uv": [4.5, 6.75, 4.75, 9], "texture": "#2"},
"south": {"uv": [0, 2.25, 2.5, 4.5], "texture": "#2"},
"west": {"uv": [4.75, 6.75, 5, 9], "texture": "#2"},
"up": {"uv": [4.5, 7, 2, 6.75], "texture": "#2"},
"down": {"uv": [9.25, 2, 6.75, 2.25], "texture": "#2"}
}
},
{
"from": [3, 2, 4],
"to": [4, 11, 13],
"rotation": {"angle": 0, "axis": "y", "origin": [3, 1, 13]},
"faces": {
"north": {"uv": [5, 6.75, 5.25, 9], "texture": "#2"},
"east": {"uv": [2.5, 0, 4.75, 2.25], "texture": "#2"},
"south": {"uv": [5.25, 6.75, 5.5, 9], "texture": "#2"},
"west": {"uv": [2.5, 2.25, 4.75, 4.5], "texture": "#2"},
"up": {"uv": [5.75, 9, 5.5, 6.75], "texture": "#2"},
"down": {"uv": [6, 6.75, 5.75, 9], "texture": "#2"}
}
},
{
"from": [4, 2, 12],
"to": [13, 11, 13],
"rotation": {"angle": 0, "axis": "y", "origin": [13, 1, 13]},
"faces": {
"north": {"uv": [0, 4.5, 2.25, 6.75], "texture": "#2"},
"east": {"uv": [6, 6.75, 6.25, 9], "texture": "#2"},
"south": {"uv": [2.25, 4.5, 4.5, 6.75], "texture": "#2"},
"west": {"uv": [6.25, 6.75, 6.5, 9], "texture": "#2"},
"up": {"uv": [9, 2.5, 6.75, 2.25], "texture": "#2"},
"down": {"uv": [9, 2.5, 6.75, 2.75], "texture": "#2"}
}
},
{
"from": [12, 2, 4],
"to": [13, 11, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [12, 1, 13]},
"faces": {
"north": {"uv": [2, 7, 2.25, 9.25], "texture": "#2"},
"east": {"uv": [4.5, 4.5, 6.5, 6.75], "texture": "#2"},
"south": {"uv": [2.25, 7, 2.5, 9.25], "texture": "#2"},
"west": {"uv": [4.75, 0, 6.75, 2.25], "texture": "#2"},
"up": {"uv": [2.75, 9, 2.5, 7], "texture": "#2"},
"down": {"uv": [3, 7, 2.75, 9], "texture": "#2"}
}
},
{
"from": [4, 0, 4],
"to": [12, 2, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [4, 0, 4]},
"faces": {
"north": {"uv": [6.75, 0, 8.75, 0.5], "texture": "#2"},
"east": {"uv": [6.75, 0.5, 8.75, 1], "texture": "#2"},
"south": {"uv": [6.75, 1, 8.75, 1.5], "texture": "#2"},
"west": {"uv": [6.75, 1.5, 8.75, 2], "texture": "#2"},
"up": {"uv": [8.5, 8.25, 6.5, 6.25], "texture": "#2"},
"down": {"uv": [2, 6.75, 0, 8.75], "texture": "#2"}
}
},
{
"from": [4, 10, 4],
"to": [12, 10, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 4]},
"faces": {
"north": {"uv": [0, 0, 2, 0], "texture": "#2"},
"east": {"uv": [0, 0, 2, 0], "texture": "#2"},
"south": {"uv": [0, 0, 2, 0], "texture": "#2"},
"west": {"uv": [0, 0, 2, 0], "texture": "#2"},
"up": {"uv": [6.75, 4.25, 4.75, 2.25], "texture": "#2"},
"down": {"uv": [8.5, 4.25, 6.5, 6.25], "texture": "#2"}
}
}
],
"display": {
"thirdperson_righthand": {
"rotation": [68, 0, 0],
"translation": [-0.05, 0.5, -1.25],
"scale": [0.47, 0.5, 0.47]
},
"thirdperson_lefthand": {
"rotation": [68, 0, 0],
"translation": [-0.05, 0.5, -1.25],
"scale": [0.47, 0.5, 0.47]
},
"firstperson_righthand": {
"rotation": [-75, 72, 54],
"translation": [1.25, 2.75, 0.5],
"scale": [0.66, 0.75, 0.66]
},
"firstperson_lefthand": {
"rotation": [-75, 72, 54],
"translation": [1.25, 2.75, 0.5],
"scale": [0.66, 0.75, 0.66]
},
"gui": {
"rotation": [30, 225, 0],
"scale": [0.75, 0.75, 0.75]
}
}
}
@@ -0,0 +1,113 @@
{
"credit": "Made with Blockbench",
"texture_size": [64, 64],
"textures": {
"2": "create:item/honey_bucket"
},
"elements": [
{
"from": [3, 2, 3],
"to": [13, 11, 4],
"rotation": {"angle": 0, "axis": "y", "origin": [3, 1, 3]},
"faces": {
"north": {"uv": [0, 0, 2.5, 2.25], "texture": "#2"},
"east": {"uv": [4.5, 6.75, 4.75, 9], "texture": "#2"},
"south": {"uv": [0, 2.25, 2.5, 4.5], "texture": "#2"},
"west": {"uv": [4.75, 6.75, 5, 9], "texture": "#2"},
"up": {"uv": [4.5, 7, 2, 6.75], "texture": "#2"},
"down": {"uv": [9.25, 2, 6.75, 2.25], "texture": "#2"}
}
},
{
"from": [3, 2, 4],
"to": [4, 11, 13],
"rotation": {"angle": 0, "axis": "y", "origin": [3, 1, 13]},
"faces": {
"north": {"uv": [5, 6.75, 5.25, 9], "texture": "#2"},
"east": {"uv": [2.5, 0, 4.75, 2.25], "texture": "#2"},
"south": {"uv": [5.25, 6.75, 5.5, 9], "texture": "#2"},
"west": {"uv": [2.5, 2.25, 4.75, 4.5], "texture": "#2"},
"up": {"uv": [5.75, 9, 5.5, 6.75], "texture": "#2"},
"down": {"uv": [6, 6.75, 5.75, 9], "texture": "#2"}
}
},
{
"from": [4, 2, 12],
"to": [13, 11, 13],
"rotation": {"angle": 0, "axis": "y", "origin": [13, 1, 13]},
"faces": {
"north": {"uv": [0, 4.5, 2.25, 6.75], "texture": "#2"},
"east": {"uv": [6, 6.75, 6.25, 9], "texture": "#2"},
"south": {"uv": [2.25, 4.5, 4.5, 6.75], "texture": "#2"},
"west": {"uv": [6.25, 6.75, 6.5, 9], "texture": "#2"},
"up": {"uv": [9, 2.5, 6.75, 2.25], "texture": "#2"},
"down": {"uv": [9, 2.5, 6.75, 2.75], "texture": "#2"}
}
},
{
"from": [12, 2, 4],
"to": [13, 11, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [12, 1, 13]},
"faces": {
"north": {"uv": [2, 7, 2.25, 9.25], "texture": "#2"},
"east": {"uv": [4.5, 4.5, 6.5, 6.75], "texture": "#2"},
"south": {"uv": [2.25, 7, 2.5, 9.25], "texture": "#2"},
"west": {"uv": [4.75, 0, 6.75, 2.25], "texture": "#2"},
"up": {"uv": [2.75, 9, 2.5, 7], "texture": "#2"},
"down": {"uv": [3, 7, 2.75, 9], "texture": "#2"}
}
},
{
"from": [4, 0, 4],
"to": [12, 2, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [4, 0, 4]},
"faces": {
"north": {"uv": [6.75, 0, 8.75, 0.5], "texture": "#2"},
"east": {"uv": [6.75, 0.5, 8.75, 1], "texture": "#2"},
"south": {"uv": [6.75, 1, 8.75, 1.5], "texture": "#2"},
"west": {"uv": [6.75, 1.5, 8.75, 2], "texture": "#2"},
"up": {"uv": [8.5, 8.25, 6.5, 6.25], "texture": "#2"},
"down": {"uv": [2, 6.75, 0, 8.75], "texture": "#2"}
}
},
{
"from": [4, 10, 4],
"to": [12, 10, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 4]},
"faces": {
"north": {"uv": [0, 0, 2, 0], "texture": "#2"},
"east": {"uv": [0, 0, 2, 0], "texture": "#2"},
"south": {"uv": [0, 0, 2, 0], "texture": "#2"},
"west": {"uv": [0, 0, 2, 0], "texture": "#2"},
"up": {"uv": [6.75, 4.25, 4.75, 2.25], "texture": "#2"},
"down": {"uv": [8.5, 4.25, 6.5, 6.25], "texture": "#2"}
}
}
],
"display": {
"thirdperson_righthand": {
"rotation": [68, 0, 0],
"translation": [-0.05, 0.5, -1.25],
"scale": [0.47, 0.5, 0.47]
},
"thirdperson_lefthand": {
"rotation": [68, 0, 0],
"translation": [-0.05, 0.5, -1.25],
"scale": [0.47, 0.5, 0.47]
},
"firstperson_righthand": {
"rotation": [-75, 72, 54],
"translation": [1.25, 2.75, 0.5],
"scale": [0.66, 0.75, 0.66]
},
"firstperson_lefthand": {
"rotation": [-75, 72, 54],
"translation": [1.25, 2.75, 0.5],
"scale": [0.66, 0.75, 0.66]
},
"gui": {
"rotation": [30, 225, 0],
"scale": [0.75, 0.75, 0.75]
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 779 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 764 B

@@ -0,0 +1,113 @@
{
"credit": "Made with Blockbench",
"texture_size": [64, 64],
"textures": {
"2": "oreganized:item/molten_lead_bucket"
},
"elements": [
{
"from": [3, 2, 3],
"to": [13, 11, 4],
"rotation": {"angle": 0, "axis": "y", "origin": [3, 1, 3]},
"faces": {
"north": {"uv": [0, 0, 2.5, 2.25], "texture": "#2"},
"east": {"uv": [4.5, 6.75, 4.75, 9], "texture": "#2"},
"south": {"uv": [0, 2.25, 2.5, 4.5], "texture": "#2"},
"west": {"uv": [4.75, 6.75, 5, 9], "texture": "#2"},
"up": {"uv": [4.5, 7, 2, 6.75], "texture": "#2"},
"down": {"uv": [9.25, 2, 6.75, 2.25], "texture": "#2"}
}
},
{
"from": [3, 2, 4],
"to": [4, 11, 13],
"rotation": {"angle": 0, "axis": "y", "origin": [3, 1, 13]},
"faces": {
"north": {"uv": [5, 6.75, 5.25, 9], "texture": "#2"},
"east": {"uv": [2.5, 0, 4.75, 2.25], "texture": "#2"},
"south": {"uv": [5.25, 6.75, 5.5, 9], "texture": "#2"},
"west": {"uv": [2.5, 2.25, 4.75, 4.5], "texture": "#2"},
"up": {"uv": [5.75, 9, 5.5, 6.75], "texture": "#2"},
"down": {"uv": [6, 6.75, 5.75, 9], "texture": "#2"}
}
},
{
"from": [4, 2, 12],
"to": [13, 11, 13],
"rotation": {"angle": 0, "axis": "y", "origin": [13, 1, 13]},
"faces": {
"north": {"uv": [0, 4.5, 2.25, 6.75], "texture": "#2"},
"east": {"uv": [6, 6.75, 6.25, 9], "texture": "#2"},
"south": {"uv": [2.25, 4.5, 4.5, 6.75], "texture": "#2"},
"west": {"uv": [6.25, 6.75, 6.5, 9], "texture": "#2"},
"up": {"uv": [9, 2.5, 6.75, 2.25], "texture": "#2"},
"down": {"uv": [9, 2.5, 6.75, 2.75], "texture": "#2"}
}
},
{
"from": [12, 2, 4],
"to": [13, 11, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [12, 1, 13]},
"faces": {
"north": {"uv": [2, 7, 2.25, 9.25], "texture": "#2"},
"east": {"uv": [4.5, 4.5, 6.5, 6.75], "texture": "#2"},
"south": {"uv": [2.25, 7, 2.5, 9.25], "texture": "#2"},
"west": {"uv": [4.75, 0, 6.75, 2.25], "texture": "#2"},
"up": {"uv": [2.75, 9, 2.5, 7], "texture": "#2"},
"down": {"uv": [3, 7, 2.75, 9], "texture": "#2"}
}
},
{
"from": [4, 0, 4],
"to": [12, 2, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [4, 0, 4]},
"faces": {
"north": {"uv": [6.75, 0, 8.75, 0.5], "texture": "#2"},
"east": {"uv": [6.75, 0.5, 8.75, 1], "texture": "#2"},
"south": {"uv": [6.75, 1, 8.75, 1.5], "texture": "#2"},
"west": {"uv": [6.75, 1.5, 8.75, 2], "texture": "#2"},
"up": {"uv": [8.5, 8.25, 6.5, 6.25], "texture": "#2"},
"down": {"uv": [2, 6.75, 0, 8.75], "texture": "#2"}
}
},
{
"from": [4, 10, 4],
"to": [12, 10, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 4]},
"faces": {
"north": {"uv": [0, 0, 2, 0], "texture": "#2"},
"east": {"uv": [0, 0, 2, 0], "texture": "#2"},
"south": {"uv": [0, 0, 2, 0], "texture": "#2"},
"west": {"uv": [0, 0, 2, 0], "texture": "#2"},
"up": {"uv": [6.75, 4.25, 4.75, 2.25], "texture": "#2"},
"down": {"uv": [8.5, 4.25, 6.5, 6.25], "texture": "#2"}
}
}
],
"display": {
"thirdperson_righthand": {
"rotation": [68, 0, 0],
"translation": [-0.05, 0.5, -1.25],
"scale": [0.47, 0.5, 0.47]
},
"thirdperson_lefthand": {
"rotation": [68, 0, 0],
"translation": [-0.05, 0.5, -1.25],
"scale": [0.47, 0.5, 0.47]
},
"firstperson_righthand": {
"rotation": [-75, 72, 54],
"translation": [1.25, 2.75, 0.5],
"scale": [0.66, 0.75, 0.66]
},
"firstperson_lefthand": {
"rotation": [-75, 72, 54],
"translation": [1.25, 2.75, 0.5],
"scale": [0.66, 0.75, 0.66]
},
"gui": {
"rotation": [30, 225, 0],
"scale": [0.75, 0.75, 0.75]
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 841 B

@@ -0,0 +1,113 @@
{
"credit": "Made with Blockbench",
"texture_size": [64, 64],
"textures": {
"2": "sliceanddice:item/fertilizer_bucket"
},
"elements": [
{
"from": [3, 2, 3],
"to": [13, 11, 4],
"rotation": {"angle": 0, "axis": "y", "origin": [3, 1, 3]},
"faces": {
"north": {"uv": [0, 0, 2.5, 2.25], "texture": "#2"},
"east": {"uv": [4.5, 6.75, 4.75, 9], "texture": "#2"},
"south": {"uv": [0, 2.25, 2.5, 4.5], "texture": "#2"},
"west": {"uv": [4.75, 6.75, 5, 9], "texture": "#2"},
"up": {"uv": [4.5, 7, 2, 6.75], "texture": "#2"},
"down": {"uv": [9.25, 2, 6.75, 2.25], "texture": "#2"}
}
},
{
"from": [3, 2, 4],
"to": [4, 11, 13],
"rotation": {"angle": 0, "axis": "y", "origin": [3, 1, 13]},
"faces": {
"north": {"uv": [5, 6.75, 5.25, 9], "texture": "#2"},
"east": {"uv": [2.5, 0, 4.75, 2.25], "texture": "#2"},
"south": {"uv": [5.25, 6.75, 5.5, 9], "texture": "#2"},
"west": {"uv": [2.5, 2.25, 4.75, 4.5], "texture": "#2"},
"up": {"uv": [5.75, 9, 5.5, 6.75], "texture": "#2"},
"down": {"uv": [6, 6.75, 5.75, 9], "texture": "#2"}
}
},
{
"from": [4, 2, 12],
"to": [13, 11, 13],
"rotation": {"angle": 0, "axis": "y", "origin": [13, 1, 13]},
"faces": {
"north": {"uv": [0, 4.5, 2.25, 6.75], "texture": "#2"},
"east": {"uv": [6, 6.75, 6.25, 9], "texture": "#2"},
"south": {"uv": [2.25, 4.5, 4.5, 6.75], "texture": "#2"},
"west": {"uv": [6.25, 6.75, 6.5, 9], "texture": "#2"},
"up": {"uv": [9, 2.5, 6.75, 2.25], "texture": "#2"},
"down": {"uv": [9, 2.5, 6.75, 2.75], "texture": "#2"}
}
},
{
"from": [12, 2, 4],
"to": [13, 11, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [12, 1, 13]},
"faces": {
"north": {"uv": [2, 7, 2.25, 9.25], "texture": "#2"},
"east": {"uv": [4.5, 4.5, 6.5, 6.75], "texture": "#2"},
"south": {"uv": [2.25, 7, 2.5, 9.25], "texture": "#2"},
"west": {"uv": [4.75, 0, 6.75, 2.25], "texture": "#2"},
"up": {"uv": [2.75, 9, 2.5, 7], "texture": "#2"},
"down": {"uv": [3, 7, 2.75, 9], "texture": "#2"}
}
},
{
"from": [4, 0, 4],
"to": [12, 2, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [4, 0, 4]},
"faces": {
"north": {"uv": [6.75, 0, 8.75, 0.5], "texture": "#2"},
"east": {"uv": [6.75, 0.5, 8.75, 1], "texture": "#2"},
"south": {"uv": [6.75, 1, 8.75, 1.5], "texture": "#2"},
"west": {"uv": [6.75, 1.5, 8.75, 2], "texture": "#2"},
"up": {"uv": [8.5, 8.25, 6.5, 6.25], "texture": "#2"},
"down": {"uv": [2, 6.75, 0, 8.75], "texture": "#2"}
}
},
{
"from": [4, 10, 4],
"to": [12, 10, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 4]},
"faces": {
"north": {"uv": [0, 0, 2, 0], "texture": "#2"},
"east": {"uv": [0, 0, 2, 0], "texture": "#2"},
"south": {"uv": [0, 0, 2, 0], "texture": "#2"},
"west": {"uv": [0, 0, 2, 0], "texture": "#2"},
"up": {"uv": [6.75, 4.25, 4.75, 2.25], "texture": "#2"},
"down": {"uv": [8.5, 4.25, 6.5, 6.25], "texture": "#2"}
}
}
],
"display": {
"thirdperson_righthand": {
"rotation": [68, 0, 0],
"translation": [-0.05, 0.5, -1.25],
"scale": [0.47, 0.5, 0.47]
},
"thirdperson_lefthand": {
"rotation": [68, 0, 0],
"translation": [-0.05, 0.5, -1.25],
"scale": [0.47, 0.5, 0.47]
},
"firstperson_righthand": {
"rotation": [-75, 72, 54],
"translation": [1.25, 2.75, 0.5],
"scale": [0.66, 0.75, 0.66]
},
"firstperson_lefthand": {
"rotation": [-75, 72, 54],
"translation": [1.25, 2.75, 0.5],
"scale": [0.66, 0.75, 0.66]
},
"gui": {
"rotation": [30, 225, 0],
"scale": [0.75, 0.75, 0.75]
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 725 B

@@ -0,0 +1,113 @@
{
"credit": "Made with Blockbench",
"texture_size": [64, 64],
"textures": {
"2": "spelunkery:item/portal_fluid_bucket"
},
"elements": [
{
"from": [3, 2, 3],
"to": [13, 11, 4],
"rotation": {"angle": 0, "axis": "y", "origin": [3, 1, 3]},
"faces": {
"north": {"uv": [0, 0, 2.5, 2.25], "texture": "#2"},
"east": {"uv": [4.5, 6.75, 4.75, 9], "texture": "#2"},
"south": {"uv": [0, 2.25, 2.5, 4.5], "texture": "#2"},
"west": {"uv": [4.75, 6.75, 5, 9], "texture": "#2"},
"up": {"uv": [4.5, 7, 2, 6.75], "texture": "#2"},
"down": {"uv": [9.25, 2, 6.75, 2.25], "texture": "#2"}
}
},
{
"from": [3, 2, 4],
"to": [4, 11, 13],
"rotation": {"angle": 0, "axis": "y", "origin": [3, 1, 13]},
"faces": {
"north": {"uv": [5, 6.75, 5.25, 9], "texture": "#2"},
"east": {"uv": [2.5, 0, 4.75, 2.25], "texture": "#2"},
"south": {"uv": [5.25, 6.75, 5.5, 9], "texture": "#2"},
"west": {"uv": [2.5, 2.25, 4.75, 4.5], "texture": "#2"},
"up": {"uv": [5.75, 9, 5.5, 6.75], "texture": "#2"},
"down": {"uv": [6, 6.75, 5.75, 9], "texture": "#2"}
}
},
{
"from": [4, 2, 12],
"to": [13, 11, 13],
"rotation": {"angle": 0, "axis": "y", "origin": [13, 1, 13]},
"faces": {
"north": {"uv": [0, 4.5, 2.25, 6.75], "texture": "#2"},
"east": {"uv": [6, 6.75, 6.25, 9], "texture": "#2"},
"south": {"uv": [2.25, 4.5, 4.5, 6.75], "texture": "#2"},
"west": {"uv": [6.25, 6.75, 6.5, 9], "texture": "#2"},
"up": {"uv": [9, 2.5, 6.75, 2.25], "texture": "#2"},
"down": {"uv": [9, 2.5, 6.75, 2.75], "texture": "#2"}
}
},
{
"from": [12, 2, 4],
"to": [13, 11, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [12, 1, 13]},
"faces": {
"north": {"uv": [2, 7, 2.25, 9.25], "texture": "#2"},
"east": {"uv": [4.5, 4.5, 6.5, 6.75], "texture": "#2"},
"south": {"uv": [2.25, 7, 2.5, 9.25], "texture": "#2"},
"west": {"uv": [4.75, 0, 6.75, 2.25], "texture": "#2"},
"up": {"uv": [2.75, 9, 2.5, 7], "texture": "#2"},
"down": {"uv": [3, 7, 2.75, 9], "texture": "#2"}
}
},
{
"from": [4, 0, 4],
"to": [12, 2, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [4, 0, 4]},
"faces": {
"north": {"uv": [6.75, 0, 8.75, 0.5], "texture": "#2"},
"east": {"uv": [6.75, 0.5, 8.75, 1], "texture": "#2"},
"south": {"uv": [6.75, 1, 8.75, 1.5], "texture": "#2"},
"west": {"uv": [6.75, 1.5, 8.75, 2], "texture": "#2"},
"up": {"uv": [8.5, 8.25, 6.5, 6.25], "texture": "#2"},
"down": {"uv": [2, 6.75, 0, 8.75], "texture": "#2"}
}
},
{
"from": [4, 10, 4],
"to": [12, 10, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 4]},
"faces": {
"north": {"uv": [0, 0, 2, 0], "texture": "#2"},
"east": {"uv": [0, 0, 2, 0], "texture": "#2"},
"south": {"uv": [0, 0, 2, 0], "texture": "#2"},
"west": {"uv": [0, 0, 2, 0], "texture": "#2"},
"up": {"uv": [6.75, 4.25, 4.75, 2.25], "texture": "#2"},
"down": {"uv": [8.5, 4.25, 6.5, 6.25], "texture": "#2"}
}
}
],
"display": {
"thirdperson_righthand": {
"rotation": [68, 0, 0],
"translation": [-0.05, 0.5, -1.25],
"scale": [0.47, 0.5, 0.47]
},
"thirdperson_lefthand": {
"rotation": [68, 0, 0],
"translation": [-0.05, 0.5, -1.25],
"scale": [0.47, 0.5, 0.47]
},
"firstperson_righthand": {
"rotation": [-75, 72, 54],
"translation": [1.25, 2.75, 0.5],
"scale": [0.66, 0.75, 0.66]
},
"firstperson_lefthand": {
"rotation": [-75, 72, 54],
"translation": [1.25, 2.75, 0.5],
"scale": [0.66, 0.75, 0.66]
},
"gui": {
"rotation": [30, 225, 0],
"scale": [0.75, 0.75, 0.75]
}
}
}
@@ -0,0 +1,113 @@
{
"credit": "Made with Blockbench",
"texture_size": [64, 64],
"textures": {
"2": "spelunkery:item/spring_water_bucket"
},
"elements": [
{
"from": [3, 2, 3],
"to": [13, 11, 4],
"rotation": {"angle": 0, "axis": "y", "origin": [3, 1, 3]},
"faces": {
"north": {"uv": [0, 0, 2.5, 2.25], "texture": "#2"},
"east": {"uv": [4.5, 6.75, 4.75, 9], "texture": "#2"},
"south": {"uv": [0, 2.25, 2.5, 4.5], "texture": "#2"},
"west": {"uv": [4.75, 6.75, 5, 9], "texture": "#2"},
"up": {"uv": [4.5, 7, 2, 6.75], "texture": "#2"},
"down": {"uv": [9.25, 2, 6.75, 2.25], "texture": "#2"}
}
},
{
"from": [3, 2, 4],
"to": [4, 11, 13],
"rotation": {"angle": 0, "axis": "y", "origin": [3, 1, 13]},
"faces": {
"north": {"uv": [5, 6.75, 5.25, 9], "texture": "#2"},
"east": {"uv": [2.5, 0, 4.75, 2.25], "texture": "#2"},
"south": {"uv": [5.25, 6.75, 5.5, 9], "texture": "#2"},
"west": {"uv": [2.5, 2.25, 4.75, 4.5], "texture": "#2"},
"up": {"uv": [5.75, 9, 5.5, 6.75], "texture": "#2"},
"down": {"uv": [6, 6.75, 5.75, 9], "texture": "#2"}
}
},
{
"from": [4, 2, 12],
"to": [13, 11, 13],
"rotation": {"angle": 0, "axis": "y", "origin": [13, 1, 13]},
"faces": {
"north": {"uv": [0, 4.5, 2.25, 6.75], "texture": "#2"},
"east": {"uv": [6, 6.75, 6.25, 9], "texture": "#2"},
"south": {"uv": [2.25, 4.5, 4.5, 6.75], "texture": "#2"},
"west": {"uv": [6.25, 6.75, 6.5, 9], "texture": "#2"},
"up": {"uv": [9, 2.5, 6.75, 2.25], "texture": "#2"},
"down": {"uv": [9, 2.5, 6.75, 2.75], "texture": "#2"}
}
},
{
"from": [12, 2, 4],
"to": [13, 11, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [12, 1, 13]},
"faces": {
"north": {"uv": [2, 7, 2.25, 9.25], "texture": "#2"},
"east": {"uv": [4.5, 4.5, 6.5, 6.75], "texture": "#2"},
"south": {"uv": [2.25, 7, 2.5, 9.25], "texture": "#2"},
"west": {"uv": [4.75, 0, 6.75, 2.25], "texture": "#2"},
"up": {"uv": [2.75, 9, 2.5, 7], "texture": "#2"},
"down": {"uv": [3, 7, 2.75, 9], "texture": "#2"}
}
},
{
"from": [4, 0, 4],
"to": [12, 2, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [4, 0, 4]},
"faces": {
"north": {"uv": [6.75, 0, 8.75, 0.5], "texture": "#2"},
"east": {"uv": [6.75, 0.5, 8.75, 1], "texture": "#2"},
"south": {"uv": [6.75, 1, 8.75, 1.5], "texture": "#2"},
"west": {"uv": [6.75, 1.5, 8.75, 2], "texture": "#2"},
"up": {"uv": [8.5, 8.25, 6.5, 6.25], "texture": "#2"},
"down": {"uv": [2, 6.75, 0, 8.75], "texture": "#2"}
}
},
{
"from": [4, 10, 4],
"to": [12, 10, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 4]},
"faces": {
"north": {"uv": [0, 0, 2, 0], "texture": "#2"},
"east": {"uv": [0, 0, 2, 0], "texture": "#2"},
"south": {"uv": [0, 0, 2, 0], "texture": "#2"},
"west": {"uv": [0, 0, 2, 0], "texture": "#2"},
"up": {"uv": [6.75, 4.25, 4.75, 2.25], "texture": "#2"},
"down": {"uv": [8.5, 4.25, 6.5, 6.25], "texture": "#2"}
}
}
],
"display": {
"thirdperson_righthand": {
"rotation": [68, 0, 0],
"translation": [-0.05, 0.5, -1.25],
"scale": [0.47, 0.5, 0.47]
},
"thirdperson_lefthand": {
"rotation": [68, 0, 0],
"translation": [-0.05, 0.5, -1.25],
"scale": [0.47, 0.5, 0.47]
},
"firstperson_righthand": {
"rotation": [-75, 72, 54],
"translation": [1.25, 2.75, 0.5],
"scale": [0.66, 0.75, 0.66]
},
"firstperson_lefthand": {
"rotation": [-75, 72, 54],
"translation": [1.25, 2.75, 0.5],
"scale": [0.66, 0.75, 0.66]
},
"gui": {
"rotation": [30, 225, 0],
"scale": [0.75, 0.75, 0.75]
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 814 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 719 B

@@ -0,0 +1,113 @@
{
"credit": "Made with Blockbench",
"texture_size": [64, 64],
"textures": {
"2": "supplementaries:item/lumisene_bucket"
},
"elements": [
{
"from": [3, 2, 3],
"to": [13, 11, 4],
"rotation": {"angle": 0, "axis": "y", "origin": [3, 1, 3]},
"faces": {
"north": {"uv": [0, 0, 2.5, 2.25], "texture": "#2"},
"east": {"uv": [4.5, 6.75, 4.75, 9], "texture": "#2"},
"south": {"uv": [0, 2.25, 2.5, 4.5], "texture": "#2"},
"west": {"uv": [4.75, 6.75, 5, 9], "texture": "#2"},
"up": {"uv": [4.5, 7, 2, 6.75], "texture": "#2"},
"down": {"uv": [9.25, 2, 6.75, 2.25], "texture": "#2"}
}
},
{
"from": [3, 2, 4],
"to": [4, 11, 13],
"rotation": {"angle": 0, "axis": "y", "origin": [3, 1, 13]},
"faces": {
"north": {"uv": [5, 6.75, 5.25, 9], "texture": "#2"},
"east": {"uv": [2.5, 0, 4.75, 2.25], "texture": "#2"},
"south": {"uv": [5.25, 6.75, 5.5, 9], "texture": "#2"},
"west": {"uv": [2.5, 2.25, 4.75, 4.5], "texture": "#2"},
"up": {"uv": [5.75, 9, 5.5, 6.75], "texture": "#2"},
"down": {"uv": [6, 6.75, 5.75, 9], "texture": "#2"}
}
},
{
"from": [4, 2, 12],
"to": [13, 11, 13],
"rotation": {"angle": 0, "axis": "y", "origin": [13, 1, 13]},
"faces": {
"north": {"uv": [0, 4.5, 2.25, 6.75], "texture": "#2"},
"east": {"uv": [6, 6.75, 6.25, 9], "texture": "#2"},
"south": {"uv": [2.25, 4.5, 4.5, 6.75], "texture": "#2"},
"west": {"uv": [6.25, 6.75, 6.5, 9], "texture": "#2"},
"up": {"uv": [9, 2.5, 6.75, 2.25], "texture": "#2"},
"down": {"uv": [9, 2.5, 6.75, 2.75], "texture": "#2"}
}
},
{
"from": [12, 2, 4],
"to": [13, 11, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [12, 1, 13]},
"faces": {
"north": {"uv": [2, 7, 2.25, 9.25], "texture": "#2"},
"east": {"uv": [4.5, 4.5, 6.5, 6.75], "texture": "#2"},
"south": {"uv": [2.25, 7, 2.5, 9.25], "texture": "#2"},
"west": {"uv": [4.75, 0, 6.75, 2.25], "texture": "#2"},
"up": {"uv": [2.75, 9, 2.5, 7], "texture": "#2"},
"down": {"uv": [3, 7, 2.75, 9], "texture": "#2"}
}
},
{
"from": [4, 0, 4],
"to": [12, 2, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [4, 0, 4]},
"faces": {
"north": {"uv": [6.75, 0, 8.75, 0.5], "texture": "#2"},
"east": {"uv": [6.75, 0.5, 8.75, 1], "texture": "#2"},
"south": {"uv": [6.75, 1, 8.75, 1.5], "texture": "#2"},
"west": {"uv": [6.75, 1.5, 8.75, 2], "texture": "#2"},
"up": {"uv": [8.5, 8.25, 6.5, 6.25], "texture": "#2"},
"down": {"uv": [2, 6.75, 0, 8.75], "texture": "#2"}
}
},
{
"from": [4, 10, 4],
"to": [12, 10, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 4]},
"faces": {
"north": {"uv": [0, 0, 2, 0], "texture": "#2"},
"east": {"uv": [0, 0, 2, 0], "texture": "#2"},
"south": {"uv": [0, 0, 2, 0], "texture": "#2"},
"west": {"uv": [0, 0, 2, 0], "texture": "#2"},
"up": {"uv": [6.75, 4.25, 4.75, 2.25], "texture": "#2"},
"down": {"uv": [8.5, 4.25, 6.5, 6.25], "texture": "#2"}
}
}
],
"display": {
"thirdperson_righthand": {
"rotation": [68, 0, 0],
"translation": [-0.05, 0.5, -1.25],
"scale": [0.47, 0.5, 0.47]
},
"thirdperson_lefthand": {
"rotation": [68, 0, 0],
"translation": [-0.05, 0.5, -1.25],
"scale": [0.47, 0.5, 0.47]
},
"firstperson_righthand": {
"rotation": [-75, 72, 54],
"translation": [1.25, 2.75, 0.5],
"scale": [0.66, 0.75, 0.66]
},
"firstperson_lefthand": {
"rotation": [-75, 72, 54],
"translation": [1.25, 2.75, 0.5],
"scale": [0.66, 0.75, 0.66]
},
"gui": {
"rotation": [30, 225, 0],
"scale": [0.75, 0.75, 0.75]
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 824 B

+16
View File
@@ -0,0 +1,16 @@
#KubeJS Client Properties
#Tue Dec 02 11:40:36 CST 2025
backgroundColor=2E3440
barBorderColor=ECEFF4
exportAtlases=false
menuBackgroundBrightness=64
disableRecipeBook=false
title=
barColor=ECEFF4
overrideColors=false
fmlLogColor=ECEFF4
showTagNames=false
fmlMemoryColor=ECEFF4
menuBackgroundScale=32.0
blurScaledPackIcon=true
menuInnerBackgroundBrightness=32
+13
View File
@@ -0,0 +1,13 @@
#KubeJS Common Properties
#Tue Dec 02 11:40:40 CST 2025
matchJsonRecipes=true
allowAsyncStreams=true
announceReload=true
startupErrorGUI=true
serverOnly=false
hideServerScriptErrors=false
saveDevPropertiesInConfig=false
packmode=
ignoreCustomUniqueRecipeIds=false
creativeModeTabIcon=minecraft\:purple_dye
startupErrorReportUrl=
+5
View File
@@ -0,0 +1,5 @@
{
"probejs.modHash": -4984450145584534364,
"probejs.registryHash": -2039914840885289964,
"probejs.enabled": false
}
@@ -0,0 +1,9 @@
{
"replace": false,
"values": [
{
"id": "#atmospheric:is_rainforest",
"required": false
}
]
}
@@ -0,0 +1,9 @@
{
"replace": false,
"values": [
{
"id": "atmospheric:kousa_jungle",
"required": false
}
]
}
@@ -0,0 +1,9 @@
{
"replace": false,
"values": [
{
"id": "#atmospheric:is_rainforest",
"required": false
}
]
}
@@ -0,0 +1,9 @@
{
"replace": false,
"values": [
{
"id": "atmospheric:kousa_jungle",
"required": false
}
]
}
@@ -0,0 +1,89 @@
{
"replace": false,
"values": [
{
"id": "autumnity:yellow_maple_sapling",
"required": false
},
{
"id": "autumnity:orange_maple_sapling",
"required": false
},
{
"id": "autumnity:red_maple_sapling",
"required": false
},
{
"id": "autumnity:foul_berry_pips",
"required": false
},
{
"id": "atmospheric:kousa_sapling",
"required": false
},
{
"id": "atmospheric:laurel_sapling",
"required": false
},
{
"id": "atmospheric:dry_laurel_sapling",
"required": false
},
{
"id": "atmospheric:aspen_sapling",
"required": false
},
{
"id": "atmospheric:currant_seedling",
"required": false
},
{
"id": "atmospheric:green_aspen_sapling",
"required": false
},
{
"id": "vanillabackport:pale_oak_sapling",
"required": false
},
{
"id": "minecraft:pale_oak_sapling",
"required": false
},
{
"id": "ecologics:walnut_sapling",
"required": false
},
{
"id": "ecologics:coconut_seedling",
"required": false
},
{
"id": "neapolitan:adzuki_soil",
"required": false
},
{
"id": "neapolitan:strawberry_bush",
"required": false
},
{
"id": "neapolitan:mint",
"required": false
},
{
"id": "environmental:pine_sapling",
"required": false
},
{
"id": "environmental:willow_sapling",
"required": false
},
{
"id": "environmental:cattail",
"required": false
},
{
"id": "environmental:blue_wisteria_sapling",
"required": false
}
]
}
@@ -0,0 +1,89 @@
{
"replace": false,
"values": [
{
"id": "autumnity:red_maple_sapling",
"required": false
},
{
"id": "atmospheric:laurel_sapling",
"required": false
},
{
"id": "atmospheric:aspen_sapling",
"required": false
},
{
"id": "atmospheric:green_aspen_sapling",
"required": false
},
{
"id": "atmospheric:laurel_sapling",
"required": false
},
{
"id": "atmospheric:dry_laurel_sapling",
"required": false
},
{
"id": "atmospheric:kousa_sapling",
"required": false
},
{
"id": "atmospheric:currant_seedling",
"required": false
},
{
"id": "ecologics:coconut_seedling",
"required": false
},
{
"id": "neapolitan:mint",
"required": false
},
{
"id": "neapolitan:adzuki_soil",
"required": false
},
{
"id": "environmental:pine_sapling",
"required": false
},
{
"id": "environmental:willow_sapling",
"required": false
},
{
"id": "environmental:moody_plum_sapling",
"required": false
},
{
"id": "environmental:plum_sapling",
"required": false
},
{
"id": "environmental:cheerful_plum_sapling",
"required": false
},
{
"id": "environmental:white_wisteria_sapling",
"required": false
},
{
"id": "environmental:blue_wisteria_sapling",
"required": false
},
{
"id": "environmental:purple_wisteria_sapling",
"required": false
},
{
"id": "environmental:pink_wisteria_sapling",
"required": false
},
{
"id": "environmental:cattail",
"required": false
}
]
}
@@ -0,0 +1,93 @@
{
"replace": false,
"values": [
{
"id": "atmospheric:yucca_sapling",
"required": false
},
{
"id": "atmospheric:rosewood_sapling",
"required": false
},
{
"id": "atmospheric:morado_sapling",
"required": false
},
{
"id": "atmospheric:laurel_sapling",
"required": false
},
{
"id": "atmospheric:dry_laurel_sapling",
"required": false
},
{
"id": "atmospheric:green_aspen_sapling",
"required": false
},
{
"id": "atmospheric:barrel_cactus",
"required": false
},
{
"id": "atmospheric:aloe_vera",
"required": false
},
{
"id": "atmospheric:passion_vine",
"required": false
},
{
"id": "atmospheric:yucca_branch",
"required": false
},
{
"id": "atmospheric:dragon_roots",
"required": false
},
{
"id": "autumnity:yellow_maple_sapling",
"required": false
},
{
"id": "ecologics:walnut_sapling",
"required": false
},
{
"id": "ecologics:coconut_seedling",
"required": false
},
{
"id": "ecologics:prickly_pear",
"required": false
},
{
"id": "neapolitan:banana_frond",
"required": false
},
{
"id": "neapolitan:vanilla_vine",
"required": false
},
{
"id": "neapolitan:strawberry_bush",
"required": false
},
{
"id": "neapolitan:adzuki_soil",
"required": false
},
{
"id": "yungscavebiomes:prickly_peach_cactus",
"required": false
},
{
"id": "yungscavebiomes:prickly_vines",
"required": false
},
{
"id": "environmental:purple_wisteria_sapling",
"required": false
}
]
}
@@ -0,0 +1,49 @@
{
"replace": false,
"values": [
{
"id": "autumnity:red_maple_sapling",
"required": false
},
{
"id": "autumnity:foul_berry_bush",
"required": false
},
{
"id": "atmospheric:kousa_sapling",
"required": false
},
{
"id": "atmospheric:currant_seedling",
"required": false
},
{
"id": "atmospheric:snowy_bamboo_sapling",
"required": false
},
{
"id": "atmospheric:snowy_bamboo",
"required": false
},
{
"id": "vanillabackport:pale_oak_sapling",
"required": false
},
{
"id": "minecraft:pale_oak_sapling",
"required": false
},
{
"id": "neapolitan:mint",
"required": false
},
{
"id": "environmental:pine_sapling",
"required": false
},
{
"id": "environmental:white_wisteria_sapling",
"required": false
}
]
}
@@ -0,0 +1,13 @@
{
"replace": false,
"values": [
{
"id": "autumnity:maple_sapling",
"required": false
},
{
"id": "upgrade_aquatic:river_sapling",
"required": false
}
]
}
@@ -0,0 +1,89 @@
{
"replace": false,
"values": [
{
"id": "autumnity:yellow_maple_sapling",
"required": false
},
{
"id": "autumnity:orange_maple_sapling",
"required": false
},
{
"id": "autumnity:red_maple_sapling",
"required": false
},
{
"id": "autumnity:foul_berry_pips",
"required": false
},
{
"id": "atmospheric:kousa_sapling",
"required": false
},
{
"id": "atmospheric:laurel_sapling",
"required": false
},
{
"id": "atmospheric:dry_laurel_sapling",
"required": false
},
{
"id": "atmospheric:aspen_sapling",
"required": false
},
{
"id": "atmospheric:currant_seedling",
"required": false
},
{
"id": "atmospheric:green_aspen_sapling",
"required": false
},
{
"id": "vanillabackport:pale_oak_sapling",
"required": false
},
{
"id": "minecraft:pale_oak_sapling",
"required": false
},
{
"id": "ecologics:walnut_sapling",
"required": false
},
{
"id": "ecologics:coconut_seedling",
"required": false
},
{
"id": "neapolitan:adzuki_beans",
"required": false
},
{
"id": "neapolitan:strawberry_pips",
"required": false
},
{
"id": "neapolitan:mint_sprout",
"required": false
},
{
"id": "environmental:pine_sapling",
"required": false
},
{
"id": "environmental:willow_sapling",
"required": false
},
{
"id": "environmental:cattail",
"required": false
},
{
"id": "environmental:blue_wisteria_sapling",
"required": false
}
]
}
@@ -0,0 +1,93 @@
{
"replace": false,
"values": [
{
"id": "autumnity:red_maple_sapling",
"required": false
},
{
"id": "atmospheric:laurel_sapling",
"required": false
},
{
"id": "atmospheric:aspen_sapling",
"required": false
},
{
"id": "atmospheric:green_aspen_sapling",
"required": false
},
{
"id": "atmospheric:laurel_sapling",
"required": false
},
{
"id": "atmospheric:dry_laurel_sapling",
"required": false
},
{
"id": "atmospheric:kousa_sapling",
"required": false
},
{
"id": "atmospheric:currant_seedling",
"required": false
},
{
"id": "ecologics:coconut_seedling",
"required": false
},
{
"id": "berry_good:sweet_berry_pips",
"required": false
},
{
"id": "neapolitan:mint_sprout",
"required": false
},
{
"id": "neapolitan:adzuki_beans",
"required": false
},
{
"id": "environmental:pine_sapling",
"required": false
},
{
"id": "environmental:willow_sapling",
"required": false
},
{
"id": "environmental:moody_plum_sapling",
"required": false
},
{
"id": "environmental:plum_sapling",
"required": false
},
{
"id": "environmental:cheerful_plum_sapling",
"required": false
},
{
"id": "environmental:white_wisteria_sapling",
"required": false
},
{
"id": "environmental:blue_wisteria_sapling",
"required": false
},
{
"id": "environmental:purple_wisteria_sapling",
"required": false
},
{
"id": "environmental:pink_wisteria_sapling",
"required": false
},
{
"id": "environmental:cattail",
"required": false
}
]
}
@@ -0,0 +1,97 @@
{
"replace": false,
"values": [
{
"id": "atmospheric:yucca_sapling",
"required": false
},
{
"id": "atmospheric:rosewood_sapling",
"required": false
},
{
"id": "atmospheric:morado_sapling",
"required": false
},
{
"id": "atmospheric:laurel_sapling",
"required": false
},
{
"id": "atmospheric:dry_laurel_sapling",
"required": false
},
{
"id": "atmospheric:green_aspen_sapling",
"required": false
},
{
"id": "atmospheric:barrel_cactus",
"required": false
},
{
"id": "atmospheric:aloe_kernels",
"required": false
},
{
"id": "atmospheric:passion_vine",
"required": false
},
{
"id": "atmospheric:yucca_branch",
"required": false
},
{
"id": "atmospheric:dragon_roots",
"required": false
},
{
"id": "autumnity:yellow_maple_sapling",
"required": false
},
{
"id": "ecologics:walnut_sapling",
"required": false
},
{
"id": "ecologics:coconut_seedling",
"required": false
},
{
"id": "ecologics:prickly_pear",
"required": false
},
{
"id": "neapolitan:banana_frond",
"required": false
},
{
"id": "neapolitan:vanilla_pods",
"required": false
},
{
"id": "neapolitan:strawberry_pips",
"required": false
},
{
"id": "neapolitan:adzuki_beans",
"required": false
},
{
"id": "yungscavebiomes:prickly_peach_cactus",
"required": false
},
{
"id": "yungscavebiomes:prickly_peach",
"required": false
},
{
"id": "yungscavebiomes:prickly_vines",
"required": false
},
{
"id": "environmental:purple_wisteria_sapling",
"required": false
}
]
}
@@ -0,0 +1,45 @@
{
"replace": false,
"values": [
{
"id": "autumnity:red_maple_sapling",
"required": false
},
{
"id": "autumnity:foul_berry_pips",
"required": false
},
{
"id": "atmospheric:kousa_sapling",
"required": false
},
{
"id": "atmospheric:currant_seedling",
"required": false
},
{
"id": "vanillabackport:pale_oak_sapling",
"required": false
},
{
"id": "minecraft:pale_oak_sapling",
"required": false
},
{
"id": "berry_good:sweet_berry_pips",
"required": false
},
{
"id": "neapolitan:mint_sprout",
"required": false
},
{
"id": "environmental:pine_sapling",
"required": false
},
{
"id": "environmental:white_wisteria_sapling",
"required": false
}
]
}
@@ -0,0 +1,17 @@
{
"replace": false,
"values": [
{
"id": "autumnity:maple_sapling",
"required": false
},
{
"id": "upgrade_aquatic:river_sapling",
"required": false
},
{
"id": "berry_good:glow_berry_pips",
"required": false
}
]
}
@@ -0,0 +1,13 @@
{
"replace": false,
"values": [
{
"id": "#clifftree:all_caves",
"required": false
},
{
"id": "#yungscavebiomes:cave_biomes",
"required": false
}
]
}
@@ -0,0 +1,9 @@
{
"replace": false,
"values": [
{
"id": "environmental:marsh",
"required": false
}
]
}
@@ -0,0 +1,69 @@
{
"replace": false,
"values": [
{
"id": "riverredux:sandy_river",
"required": false
},
{
"id": "riverredux:tropical_river",
"required": false
},
{
"id": "#atmospheric:is_dunes",
"required": false
},
{
"id": "#atmospheric:is_rainforest",
"required": false
},
{
"id": "atmospheric:scrubland",
"required": false
},
{
"id": "atmospheric:spiny_thicket",
"required": false
},
{
"id": "#clifftree:is_desert",
"required": false
},
{
"id": "#clifftree:dry_badlands",
"required": false
},
{
"id": "clifftree:granite_shore",
"required": false
},
{
"id": "clifftree:tropical_river",
"required": false
},
{
"id": "clifftree:warm_river",
"required": false
},
{
"id": "clifftree:warm_caves",
"required": false
},
{
"id": "clifftree:inferno",
"required": false
},
{
"id": "clifftree:desert_cliff",
"required": false
},
{
"id": "clifftree:temperate_beach",
"required": false
},
{
"id": "yungscavebiomes:lost_caves",
"required": false
}
]
}
@@ -0,0 +1,123 @@
{
"replace": false,
"values":[
{
"id": "snowrealmagic:snowy_plant",
"required": false
},
{
"id": "snowrealmagic:snowy_double_plant_lower",
"required": false
},
{
"id": "snowrealmagic:snowy_double_plant_upper",
"required": false
},
{
"id": "environmental:bluebell",
"required": false
},
{
"id": "environmental:tasselflower",
"required": false
},
{
"id": "environmental:dianthus",
"required": false
},
{
"id": "environmental:violet",
"required": false
},
{
"id": "environmental:cartwheel",
"required": false
},
{
"id": "environmental:red_lotus_flower",
"required": false
},
{
"id": "environmental:white_lotus_flower",
"required": false
},
{
"id": "environmental:yellow_hibiscus",
"required": false
},
{
"id": "environmental:orange_hibiscus",
"required": false
},
{
"id": "environmental:red_hibiscus",
"required": false
},
{
"id": "environmental:pink_hibiscus",
"required": false
},
{
"id": "environmental:magenta_hibiscus",
"required": false
},
{
"id": "environmental:purple_hibiscus",
"required": false
},
{
"id": "environmental:pink_delphinium",
"required": false
},
{
"id": "environmental:purple_delphinium",
"required": false
},
{
"id": "environmental:blue_delphinium",
"required": false
},
{
"id": "environmental:white_delphinium",
"required": false
},
{
"id": "environmental:bird_of_paradise",
"required": false
},
{
"id": "environmental:cup_lichen",
"required": false
},
{
"id": "buzzier_bees:white_clover",
"required": false
},
{
"id": "buzzier_bees:pink_clover",
"required": false
},
{
"id": "buzzier_bees:buttercup",
"required": false
},
{
"id": "minecraft:wildflowers",
"required": false
},
{
"id": "minecraft:pink_petals",
"required": false
},
{
"id": "autumnity:autumn_crocus",
"required": false
},
{
"id": "atmospheric:gilia",
"required": false
}
]
}
@@ -0,0 +1,9 @@
{
"replace": false,
"values": [
{
"id": "ecologics:thin_ice",
"required": false
}
]
}
@@ -0,0 +1,21 @@
{
"replace": false,
"values": [
"#minecraft:village",
"#minecraft:shipwreck",
"#minecraft:mineshaft",
"#minecraft:ocean_ruin",
"#minecraft:ruined_portal",
"#minecraft:bastion_remnant",
"#minecraft:desert_pyramid",
"#minecraft:end_city",
"#minecraft:jungle_pyramid",
"#minecraft:igloo",
"#minecraft:pillager_outpost",
"#minecraft:swamp_hut",
"#betterdungeons:better_dungeons",
"#bettermineshafts:better_mineshafts",
"#betteroceanmonuments:better_ocean_monuments"
]
}
+1 -1
View File
@@ -33,7 +33,7 @@
make_mechanical(event, 'minecraft:diamond_boots', 'minecraft:diamond', [
'A A',
'A A',
])
]);
});
function make_mechanical(event, thing, material, shape){
event.remove({output: thing});
+22 -12
View File
@@ -1,16 +1,26 @@
ServerEvents.recipes(event => {
// repetitive stuff
event.remove({output:'supplementaries:rope'});
event.shaped(
'8x farmersdelight:rope',
[
' A ',
' A ',
' A '
],
{
A: 'supplementaries:flax'
}
);
event.remove({output:'spelunkery:depth_gauge'});
event.replaceOutput({output:'neapolitan:milk_bottle'},
'neapolitan:milk_bottle',
'farmersdelight:milk_bottle');
// flax makes straws at 2 -> 3 rate
event.shaped('3x farmersdelight:straw', [' S ', ' S '], {S: 'supplementaries:flax'});
event.shaped('6x farmersdelight:canvas', ['SS', 'SS'], {S: 'supplementaries:flax'});
// stuff made of flax is now made of canvas
const outputs = [
'supplementaries:sack',
'supplementaries:awning',
];
for(const output of outputs)
event.replaceInput({ output: output },
'supplementaries:flax',
'farmersdelight:canvas');
// doormat and BnC coaster compat
event.remove({output: 'supplementaries:doormat'});
event.shaped('3x supplementaries:doormat', ['SSS', 'SSS'], {S: 'farmersdelight:canvas'});
});
+200 -51
View File
@@ -1,4 +1,5 @@
const { $RandomSource } = require("packages/net/minecraft/util/$RandomSource");
const { $Villager } = require("packages/net/minecraft/world/entity/npc/$Villager");
// level 5 just eat feast for 5 emeralds
const feast_list = [
@@ -8,6 +9,11 @@ const feast_list = [
'farmersdelight:stuffed_pumpkin_block',
'farmersdelight:roast_chicken_block',
'farmersdelight:pasta_with_meatballs',
'abnormals_delight:perch_with_mushrooms',
'abnormals_delight:pike_with_beetroot',
'abnormals_delight:vension_with_bamboo_shoots',
'abnormals_delight:passion_fruit_glazed_duck',
];
// level 4 helps you with block collection
@@ -15,16 +21,18 @@ const deco_list = [
'32x minecraft:diorite',
'32x minecraft:granite',
'32x minecraft:andesite',
'32x minecraft:stone',
'32x minecraft:mossy_cobblestone',
'32x minecraft:calcite',
'32x minecraft:tuff',
'32x minecraft:cobblestone',
'32x minecraft:stone',
'32x minecraft:cobbled_deepslate',
'32x minecraft:deepslate',
'32x minecraft:dirt',
'32x minecraft:gravel',
'32x minecraft:sand',
'32x minecraft:mud',
'32x minecraft:mud_bricks',
'32x minecraft:stone_bricks',
'32x minecraft:cobbled_deepslate',
];
// level 3 sells enchantment books for random gem
@@ -64,10 +72,9 @@ const consumables = {
// bonemeal, seed, hoe, organic_compost
farmer: ['6x bone_meal', '2x farmersdelight:organic_compost', '24x farmersdelight:straw', '18x supplementaries:flax'],
// fish bones, leech, worm, fishing rod, treasure boxes
fisherman: ['2x aquaculture:fish_bones', '3x aquaculture:leech', '5x aquaculture:worm', '8x aquaculture:box',
'5x aquaculture:lockbox', '2x aquaculture:treasure_chest'],
fisherman: ['fishing_rod'],
// various potion arrows, bows, crossbows
fletcher: ['bow', 'bow', 'bow', 'crossbow', 'crowssbow'],
fletcher: ['8x arrow', '4x caverns_and_chasms:large_arrow', '16x caverns_and_chasms:blunt_arrow', '8x savage_and_ravages:mischief_arrow'],
// leather armor, bedrolls
leatherworker: ['leather_helmet', 'leather_chestplate', 'leather_leggings', 'leather_boots'],
// various dyes
@@ -80,41 +87,36 @@ const consumables = {
// wool, eggs, milk, honey, slime ball
shepherd: ['3x white_wool', '8x environmental:duck_egg', '8x autumnity:turkey_egg', '4x environmental:yak_hair'],
// shovel, pick
toolsmith: ['iron_shovel', 'iron_pickaxe', 'golden_shovel', 'golden_pickaxe'],
toolsmith: ['iron_shovel', 'iron_pickaxe', 'iron_hoe', 'golden_shovel', 'golden_pickaxe', 'golden_hoe'],
// sword, axe
weaponsmith: ['iron_sword', 'iron_axe', 'golden_sword', 'golden_axe'],
weaponsmith: ['iron_sword', 'iron_axe', 'golden_sword', 'golden_axe', 'bow', 'crossbow'],
// rice, spaghetti, dough, crust
delightchef: ['8x farmersdelight:rice', '10x farmersdelight:raw_pasta', '10x farmersdelight:crust', '16x sugar'],
// cut raw meat
delightcook: ['16x bowl', '16x glass_bottle', '1x bucket', '8x farmersdelight:minced_beef', '8x farmersdelight:bacon'],
// planks
carpenter: ['32x oak_planks', '32x spruce_planks', '32x birch_planks', '32x jungle_planks', '32x pine_planks', '32x bamboo_planks',
'32x cherry_planks'],
carpenter: [],
};
const enchant_consumables = {
armorer: 1,
fletcher: 1,
leatherworker: 2,
toolsmith: 3,
weaponsmith: 2
weaponsmith: 2,
fisherman: 2,
};
// level 1 villagers buy food for 1 emerald
const food_list = [
'8x minecraft:apple',
'8x minecraft:beetroot',
'8x minecraft:baked_potato',
'8x minecraft:bread',
'8x minecraft:carrot',
'8x minecraft:melon_slice',
'8x minecraft:sweet_berries',
'8x farmersdelight:pumpkin_slice',
'8x farmersdelight:cabbage_leaf',
'8x farmersdelight:tomato',
'8x farmersdelight:cooked_rice',
'8x farmersdelight:fried_egg',
'8x farmersdelight:onion',
'8x neapolitan:strawberries',
'8x neapolitan:banana',
@@ -127,8 +129,29 @@ const food_list = [
'8x atmospheric:dragon_fruit',
'8x atmospheric:candied_orange_slices',
'8x atmospheric:roasted_yucca_fruit',
'brewinandchewin:beer',
'brewinandchewin:vodka',
'brewinandchewin:mead',
'brewinandchewin:rice_wine',
'brewinandchewin:pale_jane',
'brewinandchewin:egg_grog',
'brewinandchewin:bloody_mary',
'brewinandchewin:salty_folly',
'brewinandchewin:saccharine_rum',
];
const main_diet = {
'desert': '8x farmersdelight:milk_bottle',
'plains': '8x bread',
'savanna': '8x carrot',
'snowy': '8x pumpkin_slice',
'taiga': '8x baked_potato',
'jungle': '8x farmersdelight:cooked_rice',
'swamp': '8x mushroom_stew',
'atmospheric:scrubland': '8x atmospheric:dragon_fruit',
default: '8x bread'
}
/**
* @param {string[]} list
@@ -149,10 +172,10 @@ function roll(list, random){
*/
function genEnchanted(ids, enchant_pool, enchant_rolls, random, damage ){
const id = roll(ids, random);
const item = Item.of(id);
let item = Item.of(id);
if(damage) {
const dmg = Math.floor(item.maxDamage * (0.2 + 0.1 * random.nextFloat()));
const dmg = Math.floor(item.maxDamage * (0.6 + 0.3 * random.nextFloat()));
item.setDamageValue(dmg);
}
@@ -165,7 +188,7 @@ function genEnchanted(ids, enchant_pool, enchant_rolls, random, damage ){
}
for(const [enchant, level] of Object.entries(enchantments)){
item.enchant(enchant, level);
item = item.enchant(enchant, level);
}
return item;
@@ -174,15 +197,127 @@ function genEnchanted(ids, enchant_pool, enchant_rolls, random, damage ){
const gems = [
'diamond',
'2x gold_ingot',
'3x caverns_and_chasms:spinel',
'4x spelunkery:cinnabar',
'5x lapis_lazuli',
'6x amethyst_shard',
'3x spelunkery:cinnabar',
'4x lapis_lazuli',
'5x amethyst_shard',
'6x caverns_and_chasms:spinel',
];
/**
* explorer maps:
* - villages: not very useful, since we're already in one. could be good for biome discovery though.
* - dungeons & mineshafts: fights with chests but are optional. good candidates.
* - shipwreck / ocean_ruins / pyramids / temples / pillager_outpost: optional treasures.
* - woodland mansion & ocean monuments: important for exclusive loot.
* - ancient city: again, exclusive loot.
* - nether portal: required to get to the nether.
*
* it makes little sense to gate the maps, since structures can be stumbled upon anyway and are optional anyway.
* only two maps are created per cartographer upgrade, and you need to move them into the wild.
* so we want to tie new maps to villages, since new villages have new cartographers.
*
* let's do 3 trades
* - a village from a different biome.
* - one of woodland mansion / ocean monument / ancient city / nether portal.
* - one of dungeon / mineshaft / pyramid / temple / pillager outpost.
*/
const treasure_structures = {
'#minecraft:mineshaft': 10,
'#minecraft:pillager_outpost' : 10,
'#betterdungeons:better_dungeons': 5,
};
const progression_structures = {
'#minecraft:ruined_portal' : 15,
'#minecraft:ancient_city' : 5,
'#minecraft:mansion' : 5,
'#betteroceanmonuments:better_ocean_monuments' : 5,
};
const village_structures = {
'village_desert': 1,
'village_plains': 1,
'village_savanna': 1,
'village_snowy': 1,
'village_taiga': 1,
'mmv:village_jungle': 1,
'mmv:village_swamp': 1,
"atmospheric:village_scrubland" : 1
};
const village_logs = {
'desert': 'minecraft:cactus',
'plains': 'minecraft:oak_log',
'savanna': 'minecraft:acacia_log',
'snowy': 'minecraft:spruce_log',
'taiga': 'minecraft:birch_log',
'jungle': 'minecraft:jungle_log',
'swamp': 'minecraft:dark_oak_log',
'atmospheric:scrubland': 'atmospheric:yucca_log'
};
// various saplings
const carpenter_trades = [
'minecraft:oak_sapling',
'minecraft:spruce_sapling',
'minecraft:birch_sapling',
'minecraft:acacia_sapling',
'minecraft:jungle_sapling',
'minecraft:dark_oak_sapling',
'minecraft:mangrove_sapling',
'minecraft:cherry_sapling',
'minecraft:azalea_sapling',
];
/**
* @param {Record<string, number>} map
*/
function make_weighted_list(map){
const list = MoreJS.weightedList();
for(const [key, weight] of Object.entries(map)){
list.add(weight, key);
}
return list;
}
MoreJSEvents.villagerTrades((event) => {
event.removeVanillaTrades();
event.removeModdedTrades();
// cartographers: explorer maps
const villages = make_weighted_list(village_structures)
const villageTrade = VillagerUtils.createStructureMapTrade(['2x emerald', 'map'], villages);
villageTrade.maxUses(1);
event.addTrade('cartographer', 2, villageTrade);
const treasures = make_weighted_list(treasure_structures);
const treasureTrade = VillagerUtils.createStructureMapTrade(['3x emerald', 'map'], treasures);
treasureTrade.maxUses(1);
event.addTrade('cartographer', 2, treasureTrade);
const progression = make_weighted_list(progression_structures);
const progressionTrade = VillagerUtils.createStructureMapTrade(['5x emerald', 'map'], progression);
progressionTrade.maxUses(1);
event.addTrade('cartographer', 2, progressionTrade);
// carpenters: logs, saplings, planks, tree barks
event.addCustomTrade('sawmill:carpenter', 2, (offer, entity, random) => {
/** @type {$Villager} */
const villager = entity;
const villagerData = villager.getVillagerData();
const biome = villagerData.getType().toString();
const log = village_logs[biome] || 'minecraft:oak_log';
if(!village_logs[biome]) console.warn("No log for " + biome);
offer.setFirstInput('2x emerald');
offer.setOutput('16x ' + log);
offer.setMaxUses(1);
offer.setVillagerExperience(1);
offer.setPriceMultiplier(0.05);
});
event.addCustomTrade('sawmill:carpenter', 2, (offer, entity, random) => {
offer.setFirstInput('2x emerald');
offer.setOutput(roll(carpenter_trades, random));
offer.setMaxUses(1);
offer.setVillagerExperience(1);
offer.setPriceMultiplier(0.05);
});
const professions = VillagerUtils.getProfessions();
professions.forEach(prof => {
const profName = prof.name();
@@ -198,8 +333,38 @@ MoreJSEvents.villagerTrades((event) => {
offer.setOutput('5x emerald');
offer.setMaxUses(1);
offer.setVillagerExperience(1);
offer.setPriceMultiplier(1);
offer.setPriceMultiplier(0.2);
});
// 1 level 1 trade
event.addCustomTrade(prof, 1, (offer, entity, random) => {
offer.setFirstInput(roll(food_list, random));
offer.setOutput('1x emerald');
offer.setMaxUses(1);
offer.setVillagerExperience(5);
offer.setPriceMultiplier(0.05);
});
// 1 diet trade
event.addCustomTrade(prof, 1, (offer, entity, random) => {
const villagerData = entity.getVillagerData();
const biome = villagerData.getType().toString();
const diet = main_diet[biome] || main_diet.default;
if(!main_diet[biome]) console.log("No diet for " + biome);
offer.setFirstInput(diet);
offer.setOutput('1x emerald');
offer.setMaxUses(1);
offer.setVillagerExperience(5);
offer.setPriceMultiplier(0.05);
});
// a trade for each gem
let trade = null;
for(const gem of gems){
trade = VillagerUtils.createEnchantedItemTrade(
['8x emerald', gem],
'enchanted_book',
);
trade.enchantments(enchantments);
event.addTrade(prof, 3, trade);
}
// 2 for the rest
for(let i = 0; i < 2; i ++) {
// level 4
@@ -208,34 +373,18 @@ MoreJSEvents.villagerTrades((event) => {
offer.setOutput(roll(deco_list, random));
offer.setMaxUses(4);
offer.setVillagerExperience(1);
offer.setPriceMultiplier(1);
});
// level 3
event.addCustomTrade(prof, 3, (offer, entity, random) => {
offer.setFirstInput(roll(gems, random));
offer.setSecondInput('8x emerald');
offer.setOutput(genEnchanted(['enchanted_book'], enchantments, rolls+1, random, false));
offer.setMaxUses(1);
offer.setVillagerExperience(1);
offer.setPriceMultiplier(1);
offer.setPriceMultiplier(0.05);
});
// level 2
event.addCustomTrade(prof, 2, (offer, entity, random) => {
offer.setFirstInput('2x emerald');
if(rolls > 0) offer.setOutput(genEnchanted(staples, enchantments, rolls, random, true));
else offer.setOutput(roll(staples, random));
offer.setMaxUses(1);
offer.setVillagerExperience(1);
offer.setPriceMultiplier(1);
});
// level 1
event.addCustomTrade(prof, 1, (offer, entity, random) => {
offer.setFirstInput(roll(food_list, random));
offer.setOutput('1x emerald');
offer.setMaxUses(1);
offer.setVillagerExperience(5);
offer.setPriceMultiplier(1);
});
if(staples.length > 0)
event.addCustomTrade(prof, 2, (offer, entity, random) => {
offer.setFirstInput('2x emerald');
if(rolls > 0) offer.setOutput(genEnchanted(staples, enchantments, rolls, random, true));
else offer.setOutput(roll(staples, random));
offer.setMaxUses(1);
offer.setVillagerExperience(1);
offer.setPriceMultiplier(0.05);
});
}
});
});
+10 -9
View File
@@ -31,13 +31,14 @@ ServerEvents.recipes(event => {
);
// map atlas shapeless
event.remove({output: 'map_atlases:atlas'});
event.shapeless(
'map_atlases:atlas',
[
'minecraft:map',
'minecraft:book',
'minecraft:compass'
]
);
// it doesn't work (sad face)
// event.remove({output: 'map_atlases:atlas'});
// event.shapeless(
// 'map_atlases:atlas',
// [
// 'minecraft:map',
// 'minecraft:book',
// 'minecraft:compass'
// ]
// );
});
+4986 -610
View File
File diff suppressed because it is too large Load Diff