Version 1.0.21b

This commit is contained in:
2023-06-22 00:44:38 +00:00
parent b37aa5cd58
commit 2cce1cc03e
169 changed files with 7289 additions and 3706 deletions

View File

@@ -147,7 +147,7 @@
#Oredictionificator Settings #Oredictionificator Settings
[general.oredictionificator] [general.oredictionificator]
#The list of valid tag prefixes for the Oredictionificator. Note: It is highly recommended to only include well known/defined tag prefixes otherwise it is very easy to potentially add in accidental conversions of things that are not actually equivalent. #The list of valid tag prefixes for the Oredictionificator. Note: It is highly recommended to only include well known/defined tag prefixes otherwise it is very easy to potentially add in accidental conversions of things that are not actually equivalent.
validItemFilters = ["forge:dusts/", "forge:ingots/", "forge:nuggets/", "forge:ores/", "forge:storage_blocks/"] validItemFilters = ["forge:dusts/", "forge:ingots/", "forge:nuggets/", "forge:ores/"]
#Pump Settings #Pump Settings
[general.pump] [general.pump]

View File

@@ -39,7 +39,8 @@
"forge:wires/{material}", "forge:wires/{material}",
"forge:storage_blocks/{material}", "forge:storage_blocks/{material}",
"forge:storage_blocks/raw_{material}", "forge:storage_blocks/raw_{material}",
"forge:silicon" "forge:silicon",
"forge:rubber"
], ],
"materials": [ "materials": [
"aeternium", "aeternium",
@@ -110,4 +111,4 @@
], ],
"ignoredRecipes": [], "ignoredRecipes": [],
"itemsHidingJeiRei": true "itemsHidingJeiRei": true
} }

View File

@@ -2,10 +2,9 @@
# Apotheosis Adventure Module Config # Apotheosis Adventure Module Config
affixes { affixes {
# Loot Rules, in the form of Loot Table Matchers, permitting affixes to be added to any valid item. Here, the chance refers to the chance an item receives affixes. See comment on "Affix Item Loot Rules" for description. [default: [.*blocks.*|0], [.*|0.85]] # Loot Rules, in the form of Loot Table Matchers, permitting affixes to be added to any valid item. Here, the chance refers to the chance an item receives affixes. See comment on "Affix Item Loot Rules" for description.
# Default: [.*blocks.*|0], [.*|0.85]
S:"Affix Convert Loot Rules" < S:"Affix Convert Loot Rules" <
.*blocks.*|0 .*blocks.*|0
minecraft:entities.witch|0 minecraft:entities.witch|0
@@ -13,7 +12,8 @@ affixes {
.*|0.85 .*|0.85
> >
# Dimenaional rarities for affix conversion (see "Affix Convert Loot Rules"), in the form of dimension|min|max. A dimension not listed uses all rarities. [default: [overworld|common|rare], [the_nether|uncommon|epic], [the_end|rare|mythic], [twilightforest:twilight_forest|uncommon|epic]] # Dimensional rarities for affix conversion (see "Affix Convert Loot Rules"), in the form of dimension|min|max. A dimension not listed uses all rarities.
# Default: [overworld|common|rare], [the_nether|uncommon|epic], [the_end|rare|mythic], [twilightforest:twilight_forest|uncommon|epic]
S:"Affix Convert Rarities" < S:"Affix Convert Rarities" <
overworld|common|rare overworld|common|rare
the_nether|uncommon|epic the_nether|uncommon|epic
@@ -26,7 +26,8 @@ affixes {
# The format for these is domain:pattern|chance and domain is optional. Domain is a modid, pattern is a regex string, and chance is a float 0..1 chance for the item to spawn in any matched tables. # The format for these is domain:pattern|chance and domain is optional. Domain is a modid, pattern is a regex string, and chance is a float 0..1 chance for the item to spawn in any matched tables.
# If you omit the domain, the format is pattern|chance, and the matcher will run for all domains. # If you omit the domain, the format is pattern|chance, and the matcher will run for all domains.
# The pattern MUST be a valid regex string, and should match the paths of desired loot tables under the specified domain. Note: "Match Any Character" is ".*" (dot star) and not "*" (star). # The pattern MUST be a valid regex string, and should match the paths of desired loot tables under the specified domain. Note: "Match Any Character" is ".*" (dot star) and not "*" (star).
# If there is a match, an item has a chance to spawn in that loot table. [default: [minecraft:chests.*|0.5], [.*chests.*|0.35], [twilightforest:structures.*|0.4]] # If there is a match, an item has a chance to spawn in that loot table.
# Default: [minecraft:chests.*|0.5], [.*chests.*|0.35], [twilightforest:structures.*|0.4]
S:"Affix Item Loot Rules" < S:"Affix Item Loot Rules" <
minecraft:chests.*|0.5 minecraft:chests.*|0.5
.*chests.*|0.35 .*chests.*|0.35
@@ -34,10 +35,12 @@ affixes {
twilightforest:structures.*|0.4 twilightforest:structures.*|0.4
> >
# If affixes that cleave can hit players (excluding the user). [default: false] # If affixes that cleave can hit players (excluding the user).
# Default: false
B:"Cleave Players"=false B:"Cleave Players"=false
# If Quark's Attribute Tooltip handling is disabled for affix items [default: true] # If Quark's Attribute Tooltip handling is disabled for affix items
# Default: true
B:"Disable Quark Tooltips for Affix Items"=true B:"Disable Quark Tooltips for Affix Items"=true
# A list of type overrides for the affix loot system. Format is <itemname>|chance|<type>. # A list of type overrides for the affix loot system. Format is <itemname>|chance|<type>.
@@ -48,106 +51,116 @@ affixes {
allthemodium:alloy_paxel|PICKAXE allthemodium:alloy_paxel|PICKAXE
> >
# The flat bonus chance that bosses have to drop a gem, added to Gem Drop Chance. 0 = 0%, 1 = 100% [range: 0.0 ~ 1.0, default: 0.33] # The flat bonus chance that bosses have to drop a gem, added to Gem Drop Chance. 0 = 0%, 1 = 100%
# Default: 0.33; Range: [0.0 ~ 1.0]
S:"Gem Boss Bonus"=0.33 S:"Gem Boss Bonus"=0.33
# The chance that a mob will drop a gem. 0 = 0%, 1 = 100% [range: 0.0 ~ 1.0, default: 0.045] # The chance that a mob will drop a gem. 0 = 0%, 1 = 100%
# Default: 0.045; Range: [0.0 ~ 1.0]
S:"Gem Drop Chance"=0.045 S:"Gem Drop Chance"=0.045
# The chance that a naturally spawned mob will be granted an affix item. 0 = 0%, 1 = 100% [range: 0.0 ~ 1.0, default: 0.24] # The chance that a naturally spawned mob will be granted an affix item. 0 = 0%, 1 = 100%
# Default: 0.075; Range: [0.0 ~ 1.0]
S:"Random Affix Chance"=0.24 S:"Random Affix Chance"=0.24
# The item that will be used when attempting to place torches with the torch placer affix. Must be a valid item that places a block on right click. [default: minecraft:torch] # The item that will be used when attempting to place torches with the torch placer affix. Must be a valid item that places a block on right click.
# Default: minecraft:torch
S:"Torch Placement Item"=minecraft:torch S:"Torch Placement Item"=minecraft:torch
} }
bosses { bosses {
# If the boss announcement range ignores y-level. [default: true] # If the boss announcement range ignores y-level.
# Default: false
B:"Boss Announce Ignore Y"=true B:"Boss Announce Ignore Y"=true
# The range at which boss spawns will be announced. If you are closer than this number of blocks (ignoring y-level), you will receive the announcement. [range: 0.0 ~ 1024.0, default: 96.0] # The range at which boss spawns will be announced. If you are closer than this number of blocks (ignoring y-level), you will receive the announcement.
# Default: 96.0; Range: [0.0 ~ 1024.0]
S:"Boss Announce Range"=96.0 S:"Boss Announce Range"=96.0
# The volume of the boss announcement sound. 0 to disable. This control is clientside. [range: 0.0 ~ 1.0, default: 0.75] # The volume of the boss announcement sound. 0 to disable. This control is clientside.
S:"Boss Announce Volume"=0.75 # Default: 0.75; Range: [0.0 ~ 1.0]
S:"Boss Announce Volume"=0.3
# The time, in ticks, that must pass between any two natural boss spawns in a single dimension. [range: 0 ~ 720000, default: 400] # The time, in ticks, that must pass between any two natural boss spawns in a single dimension.
I:"Boss Spawn Cooldown"=400 # Default: 2400; Range: [0 ~ 720000]
I:"Boss Spawn Cooldown"=18000
# Dimensions where bosses can spawn naturally, spawn chance, and spawn rules. # Dimensions where bosses can spawn naturally, spawn chance, and spawn rules.
# Format is dimname|chance|rule, chance is a float from 0..1. # Format is dimname|chance|rule, chance is a float from 0..1.
# Valid rules are NEEDS_SKY, NEEDS_SURFACE, and ANY [default: [minecraft:overworld|0.02|NEEDS_SKY], [minecraft:the_nether|0.03|ANY], [minecraft:the_end|0.02|NEEDS_SURFACE], [twilightforest:twilight_forest|0.05|NEEDS_SURFACE]] # Valid rules are NEEDS_SKY, NEEDS_SURFACE, and ANY
# Default: [minecraft:overworld|0.02|NEEDS_SKY], [minecraft:the_nether|0.03|ANY], [minecraft:the_end|0.02|NEEDS_SURFACE], [twilightforest:twilight_forest|0.05|NEEDS_SURFACE]
S:"Boss Spawn Dimensions" < S:"Boss Spawn Dimensions" <
minecraft:overworld|0.01|NEEDS_SKY minecraft:overworld|0.01|NEEDS_SKY
minecraft:the_nether|0.02|ANY minecraft:the_nether|0.02|ANY
minecraft:the_end|0.02|NEEDS_SURFACE minecraft:the_end|0.02|NEEDS_SURFACE
allthemodium:the_other|0.09|NEEDS_SURFACE allthemodium:the_other|0.07|NEEDS_SURFACE
twilightforest:twilight_forest|0.05|NEEDS_SURFACE twilightforest:twilight_forest|0.05|NEEDS_SURFACE
> >
# If boss items are always cursed. Enable this if you want bosses to be less overpowered by always giving them a negative effect. [default: false] # If boss items are always cursed. Enable this if you want bosses to be less overpowered by always giving them a negative effect.
# Default: false
B:"Curse Boss Items"=false B:"Curse Boss Items"=false
# If true, invading bosses will automatically target the closest player.
# Default: false
B:"Boss Auto-Aggro"=false
# If true, invading bosses will automatically target the closest player.
# Default: true
B:"Boss Glowing On Spawn"=true
} }
gems { gems {
# Loot Rules, in the form of Loot Table Matchers, permitting gems to spawn in loot tables. See comment on "Affix Item Loot Rules" for description. [default: [minecraft:chests.*|0.30], [.*chests.*|0.15], [twilightforest:structures.*|0.20]] # Loot Rules, in the form of Loot Table Matchers, permitting gems to spawn in loot tables. See comment on "Affix Item Loot Rules" for description.
# Default: [minecraft:chests.*|0.30], [.*chests.*|0.15], [twilightforest:structures.*|0.20]
S:"Gem Loot Rules" < S:"Gem Loot Rules" <
minecraft:chests.*|0.30 minecraft:chests.*|0.30
.*chests.*|0.15 .*chests.*|0.15
twilightforest:structures.*|0.20 twilightforest:structures.*|0.20
> >
# Dimensional rarities for gem drops, in the form of dimension|min|max. A dimension not listed uses all rarities.
# Default: [overworld|common|rare], [the_nether|uncommon|epic], [the_end|rare|mythic], [twilightforest:twilight_forest|uncommon|epic]
S:"Gem Dimensional Rarities" <
overworld|common|rare
the_nether|uncommon|epic
the_end|rare|mythic
twilightforest:twilight_forest|uncommon|epic
>
} }
rarities { rarities {
# The quality of this rarity. Each point of luck increases the weight of this rarity by the quality value. [range: 0.0 ~ 100.0, default: 0.0]
S:"common quality"=0.0 S:"common quality"=0.0
# The weight of this rarity. The chance of this rarity appearing is <weight>/<total weight>. [range: 0 ~ 10000, default: 400]
I:"common weight"=400 I:"common weight"=400
# The quality of this rarity. Each point of luck increases the weight of this rarity by the quality value. [range: 0.0 ~ 100.0, default: 4.5]
S:"epic quality"=4.5 S:"epic quality"=4.5
# The weight of this rarity. The chance of this rarity appearing is <weight>/<total weight>. [range: 0 ~ 10000, default: 90]
I:"epic weight"=90 I:"epic weight"=90
# The quality of this rarity. Each point of luck increases the weight of this rarity by the quality value. [range: 0.0 ~ 100.0, default: 6.0]
S:"mythic quality"=6.0 S:"mythic quality"=6.0
# The weight of this rarity. The chance of this rarity appearing is <weight>/<total weight>. [range: 0 ~ 10000, default: 40]
I:"mythic weight"=40 I:"mythic weight"=40
# The quality of this rarity. Each point of luck increases the weight of this rarity by the quality value. [range: 0.0 ~ 100.0, default: 3.0]
S:"rare quality"=3.0 S:"rare quality"=3.0
# The weight of this rarity. The chance of this rarity appearing is <weight>/<total weight>. [range: 0 ~ 10000, default: 150]
I:"rare weight"=150 I:"rare weight"=150
# The quality of this rarity. Each point of luck increases the weight of this rarity by the quality value. [range: 0.0 ~ 100.0, default: 1.5]
S:"uncommon quality"=1.5 S:"uncommon quality"=1.5
# The weight of this rarity. The chance of this rarity appearing is <weight>/<total weight>. [range: 0 ~ 10000, default: 320]
I:"uncommon weight"=320 I:"uncommon weight"=320
} }
spawners { spawners {
# The chance that a Rogue Spawner has a "valuable" chest instead of a standard one. 0 = 0%, 1 = 100% [range: 0.0 ~ 1.0, default: 0.11] # The chance that a Rogue Spawner has a "valuable" chest instead of a standard one. 0 = 0%, 1 = 100%
# Default: 0.11; Range: [0.0 ~ 1.0]
S:"Spawner Value Chance"=0.11 S:"Spawner Value Chance"=0.11
} }
worldgen { worldgen {
# The number of boss dungeon (variant 2) generation attempts per-chunk. [range: 0 ~ 256, default: 8] # The number of boss dungeon (variant 2) generation attempts per-chunk.
# Default: 8; Range: [0 ~ 256]
I:"Boss Dungeon (Variant 2) Attempts"=8 I:"Boss Dungeon (Variant 2) Attempts"=8
# The number of boss dungeon generation attempts per-chunk. [range: 0 ~ 256, default: 8] # The number of boss dungeon generation attempts per-chunk.
# Default: 8; Range: [0 ~ 256]
I:"Boss Dungeon Attempts"=8 I:"Boss Dungeon Attempts"=8
# The biomes that the deadly module will not generate in. [default: [minecraft:warm_ocean], [minecraft:lukewarm_ocean], [minecraft:cold_ocean], [minecraft:frozen_ocean], [minecraft:deep_warm_ocean], [minecraft:deep_frozen_ocean], [minecraft:deep_lukewarm_ocean], [minecraft:deep_cold_ocean], [minecraft:ocean], [minecraft:deep_ocean]]
S:"Generation Biome Blacklist" < S:"Generation Biome Blacklist" <
minecraft:warm_ocean minecraft:warm_ocean
minecraft:lukewarm_ocean minecraft:lukewarm_ocean
@@ -161,13 +174,102 @@ worldgen {
minecraft:deep_ocean minecraft:deep_ocean
> >
# The dimensions that the deadly module will generate in. [default: [overworld]] # The dimensions that the deadly module will generate in.
# Default: [overworld]
S:"Generation Dimension Whitelist" < S:"Generation Dimension Whitelist" <
overworld overworld
> >
# The number of rogue spawner generation attempts per-chunk. [range: 0 ~ 256, default: 4] # The number of rogue spawner generation attempts per-chunk.
# Default: 4; Range: [0 ~ 256]
I:"Rogue Spawner Attempts"=4 I:"Rogue Spawner Attempts"=4
} }
reforging {
common {
# The amount of rarity materials it costs to reforge at this rarity.
# Default: 2; Range: [0 ~ 64]
I:"Material Cost"=2
# The amount of gem dust it costs to reforge at this rarity.
# Default: 2; Range: [0 ~ 64]
I:"Gem Dust Cost"=2
# The amount of xp levels it costs to reforge at this rarity.
# Default: 5; Range: [0 ~ 65536]
I:"XP Level Cost"=5
}
uncommon {
# The amount of rarity materials it costs to reforge at this rarity.
# Default: 2; Range: [0 ~ 64]
I:"Material Cost"=2
# The amount of gem dust it costs to reforge at this rarity.
# Default: 2; Range: [0 ~ 64]
I:"Gem Dust Cost"=2
# The amount of xp levels it costs to reforge at this rarity.
# Default: 10; Range: [0 ~ 65536]
I:"XP Level Cost"=10
}
rare {
# The amount of rarity materials it costs to reforge at this rarity.
# Default: 2; Range: [0 ~ 64]
I:"Material Cost"=2
# The amount of gem dust it costs to reforge at this rarity.
# Default: 2; Range: [0 ~ 64]
I:"Gem Dust Cost"=2
# The amount of xp levels it costs to reforge at this rarity.
# Default: 15; Range: [0 ~ 65536]
I:"XP Level Cost"=15
}
epic {
# The amount of rarity materials it costs to reforge at this rarity.
# Default: 2; Range: [0 ~ 64]
I:"Material Cost"=2
# The amount of gem dust it costs to reforge at this rarity.
# Default: 2; Range: [0 ~ 64]
I:"Gem Dust Cost"=2
# The amount of xp levels it costs to reforge at this rarity.
# Default: 20; Range: [0 ~ 65536]
I:"XP Level Cost"=20
}
mythic {
# The amount of rarity materials it costs to reforge at this rarity.
# Default: 2; Range: [0 ~ 64]
I:"Material Cost"=2
# The amount of gem dust it costs to reforge at this rarity.
# Default: 2; Range: [0 ~ 64]
I:"Gem Dust Cost"=2
# The amount of xp levels it costs to reforge at this rarity.
# Default: 25; Range: [0 ~ 65536]
I:"XP Level Cost"=25
}
ancient {
# The amount of rarity materials it costs to reforge at this rarity.
# Default: 2; Range: [0 ~ 64]
I:"Material Cost"=2
# The amount of gem dust it costs to reforge at this rarity.
# Default: 2; Range: [0 ~ 64]
I:"Gem Dust Cost"=2
# The amount of xp levels it costs to reforge at this rarity.
# Default: 30; Range: [0 ~ 65536]
I:"XP Level Cost"=30
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,58 +1,452 @@
{ {
id: "5B00676D79306EA2"
group: ""
order_index: 0
filename: "welcome"
title: "Welcome"
icon: "allthetweaks:atm_star"
default_quest_shape: ""
default_hide_dependency_lines: false default_hide_dependency_lines: false
images: [{ default_quest_shape: ""
x: 0.5d filename: "welcome"
y: -4.0d group: ""
width: 4.0d icon: "allthetweaks:atm_star"
height: 4.0d id: "5B00676D79306EA2"
rotation: 8.0d images: [
image: "packmenu:textures/gui/logo.png" {
hover: [ ] click: ""
click: "" corner: true
dev: false dev: false
corner: true height: 5.0d
}] hover: [ ]
quests: [{ image: "packmenu:textures/gui/logo.png"
title: "&dWelcome to All The Mods 8!" rotation: 8.0d
icon: "allthetweaks:atm_star" width: 5.0d
x: 0.5d x: 0.0d
y: -0.5d y: -4.5d
shape: "diamond" }
description: [ {
"ATM8 offers a curated modded experience for those who like kitchensink style modpacks!" click: ""
"" corner: false
"If you're new to modded MC, make sure to check out the chapter &9Getting Started&r to get you on your feet!" dev: false
"" height: 5.0d
"If you have any questions or issues, feel free to join the ATM discord!" hover: ["whatthedrunk"]
"" image: "atm:textures/questpics/welcome/whatthedrunk.png"
"Note: Quests are optional." rotation: 0.0d
] width: 3.75d
size: 3.0d x: 0.0d
id: "3BC0A50886A3222B" y: 5.0d
tasks: [{ }
id: "5A1784C5676CDC62" {
type: "checkmark" click: ""
title: "Welcome to All The Mods 8!" corner: false
}] dev: false
rewards: [ height: 5.0d
{ hover: ["EnigmaQuip"]
id: "6D5A59BBE47C22D1" image: "atm:textures/questpics/welcome/enigmaquip.png"
type: "item" rotation: 0.0d
item: "ftbquests:book" width: 3.75d
} x: 5.0d
{ y: 5.0d
}
{
click: ""
corner: false
dev: false
height: 5.0d
hover: ["theVortex"]
image: "atm:textures/questpics/welcome/thevortex.png"
rotation: 0.0d
width: 3.75d
x: 10.0d
y: 5.0d
}
{
click: "https://www.youtube.com/c/alfredggmc"
corner: false
dev: false
height: 5.0d
hover: ["AlfredGG"]
image: "atm:textures/questpics/welcome/alfred.png"
rotation: 0.0d
width: 3.75d
x: 15.0d
y: 5.0d
}
{
click: ""
corner: false
dev: false
height: 5.0d
hover: ["mitchell52"]
image: "atm:textures/questpics/welcome/mitchell52.png"
rotation: 0.0d
width: 3.75d
x: -5.0d
y: 5.0d
}
{
click: ""
corner: false
dev: false
height: 5.0d
hover: ["oly2o6"]
image: "atm:textures/questpics/welcome/oly206.png"
rotation: 0.0d
width: 3.75d
x: -15.0d
y: 5.0d
}
{
click: ""
corner: false
dev: false
height: 5.0d
hover: ["MutantGumdrop"]
image: "atm:textures/questpics/welcome/mutantgumdrop.png"
rotation: 0.0d
width: 3.75d
x: -10.0d
y: 5.0d
}
{
click: ""
corner: false
dev: false
height: 1.0d
hover: [ ]
image: "atm:textures/questpics/welcome/signs/alfredgg_name.png"
rotation: 0.0d
width: 3.396039603960396d
x: 15.0d
y: 8.13d
}
{
click: ""
corner: false
dev: false
height: 1.0d
hover: [ ]
image: "atm:textures/questpics/welcome/signs/thevortex_name.png"
rotation: 0.0d
width: 4.048543689320389d
x: 10.0d
y: 8.15d
}
{
click: ""
corner: false
dev: false
height: 1.0d
hover: [ ]
image: "atm:textures/questpics/welcome/signs/mutant_name.png"
rotation: 0.0d
width: 5.515873015873016d
x: -10.0d
y: 8.26d
}
{
click: ""
corner: false
dev: false
height: 1.1d
hover: [ ]
image: "atm:textures/questpics/welcome/signs/enigma_name.png"
rotation: 0.0d
width: 3.8412698412698414d
x: 5.0d
y: 8.29d
}
{
click: ""
corner: false
dev: false
height: 1.0d
hover: [ ]
image: "atm:textures/questpics/welcome/signs/mitchell52_name.png"
rotation: 0.0d
width: 4.048543689320389d
x: -5.0d
y: 8.15d
}
{
click: ""
corner: false
dev: false
height: 1.2d
hover: [ ]
image: "atm:textures/questpics/welcome/signs/oly2o6.png"
rotation: 0.0d
width: 2.457142857142857d
x: -15.0d
y: 8.27d
}
{
click: ""
corner: false
dev: false
height: 1.0d
hover: [ ]
image: "atm:textures/questpics/welcome/signs/whatthedrunk.png"
rotation: 0.0d
width: 5.601941747572815d
x: 0.0d
y: 8.15d
}
{
click: ""
corner: false
dev: false
height: 2.9083503054989817d
hover: [ ]
image: "atm:textures/questpics/welcome/signs/name_bar.png"
order: -1
rotation: 0.0d
width: 42.0d
x: 0.0d
y: 8.15d
}
{
click: ""
corner: false
dev: false
height: 6.0d
hover: [ ]
image: "ftbquests:textures/block/base_input.png"
order: -3
rotation: 0.0d
width: 4.0d
x: -5.0d
y: 5.0d
}
{
click: ""
corner: false
dev: false
height: 6.0d
hover: [ ]
image: "ftbquests:textures/block/base_input.png"
order: -3
rotation: 0.0d
width: 4.0d
x: -10.0d
y: 5.0d
}
{
click: ""
corner: false
dev: false
height: 6.0d
hover: [ ]
image: "ftbquests:textures/block/base_input.png"
order: -3
rotation: 0.0d
width: 4.0d
x: -15.0d
y: 5.0d
}
{
click: ""
corner: false
dev: false
height: 6.0d
hover: [ ]
image: "ftbquests:textures/block/base_input.png"
order: -3
rotation: 0.0d
width: 4.0d
x: 0.0d
y: 5.0d
}
{
click: ""
corner: false
dev: false
height: 6.0d
hover: [ ]
image: "ftbquests:textures/block/base_input.png"
order: -3
rotation: 0.0d
width: 4.0d
x: 5.0d
y: 5.0d
}
{
click: ""
corner: false
dev: false
height: 6.0d
hover: [ ]
image: "ftbquests:textures/block/base_input.png"
order: -3
rotation: 0.0d
width: 4.0d
x: 10.0d
y: 5.0d
}
{
click: ""
corner: false
dev: false
height: 6.0d
hover: [ ]
image: "ftbquests:textures/block/base_input.png"
order: -3
rotation: 0.0d
width: 4.0d
x: 15.0d
y: 5.0d
}
{
click: "https://discord.gg/3paFjuRfz9"
corner: false
dev: false
height: 1.0d
hover: ["Join the Discord!"]
image: "ftbchunks:textures/waypoint_default.png"
rotation: 0.0d
width: 1.0d
x: 0.0d
y: 1.5d
}
]
order_index: 0
quest_links: [ ]
quests: [
{
description: [
"ATM8 offers a curated modded experience for those who like kitchensink-style modpacks!"
""
"If you're new to modded MC, make sure to check out the &9Getting Started&r chapter to get you on your feet!"
""
"If you have any questions or issues, feel free to join the ATM discord!"
]
icon: "allthetweaks:atm_star"
id: "3BC0A50886A3222B"
rewards: [{
id: "4956CB79E44FB523" id: "4956CB79E44FB523"
type: "xp" type: "xp"
xp: 10 xp: 10
}]
shape: "diamond"
size: 3.0d
tasks: [{
id: "5A1784C5676CDC62"
title: "Welcome to All The Mods 8!"
type: "checkmark"
}]
title: "&dWelcome to All The Mods 8!"
x: 0.0d
y: -0.5d
}
{
description: [
"In this modpack, Quests are optional. Mods are not gated behind completing any quests!"
""
"The individual questlines outside of the Main questline are meant to serve as mod guides. If you want to follow the progression, make sure to check out the Main Questline!"
""
"Most of the quests in the pack are also made by &2AlfredGG&r. Quests are hard work, so if you'd like to support him, you can click on his player image below!"
]
icon: "ftbquests:book"
id: "3708A4780ACEB34E"
min_width: 250
rewards: [{
id: "4A56DF6E0204666C"
type: "xp"
xp: 10
}]
shape: "rsquare"
size: 1.5d
tasks: [{
id: "52BB142F044075B4"
title: "Quests"
type: "checkmark"
}]
title: "Quests"
x: 2.5d
y: -0.5d
}
{
description: [
"There are plenty of helpful commands within ATM. Here are a few:"
""
"&e/sethome&r (name of home) | Let's you set a home that you can teleport back to using /home (name). Example: /sethome farm - then teleport with /home farm"
""
"&e/back&r | If you teleport anywhere or die, you can use /back to teleport back to your previous location."
""
"&e/spawn&r | This will teleport you to the spawn of your overworld."
]
icon: {
Count: 1b
id: "ftbquests:custom_icon"
tag: {
Icon: "ftbteams:textures/settings.png"
}
} }
] id: "7658C1C663394E85"
}] min_width: 350
quest_links: [ ] rewards: [{
id: "5007C73E170C4FF6"
type: "xp"
xp: 10
}]
shape: "rsquare"
size: 1.5d
tasks: [{
id: "10A16F89D4AD238D"
title: "Useful Commands"
type: "checkmark"
}]
x: -2.5d
y: -0.5d
}
{
description: [
"To claim chunks, the default key to open the Claim Map is &6M&r."
""
"To claim a chunk, left click and drag to claim. "
""
"To force load a chunk, shift-left click the chunk. If done properly, you'll see lines across the chunk."
]
icon: {
Count: 1b
id: "ftbquests:custom_icon"
tag: {
Icon: "ftbchunks:textures/waypoint_home.png"
}
}
id: "0C93D7A607AB8B83"
rewards: [{
id: "1B044C35466AFAEF"
type: "xp"
xp: 10
}]
size: 1.5d
tasks: [{
id: "103C42C743E2A2DB"
title: "Claiming Chunks"
type: "checkmark"
}]
x: 4.5d
y: -0.5d
}
{
description: ["If you want to create a team for you and your friends, use the command &a/ftbteams party create (name of team)&r to create the team!"]
icon: {
Count: 1b
id: "ftbquests:custom_icon"
tag: {
Icon: "ftbteams:textures/teams.png"
}
}
id: "5AC1BE754210429E"
rewards: [{
id: "101D2FD24AB845AC"
type: "xp"
xp: 10
}]
size: 1.5d
tasks: [{
id: "4F13A02FB0055A62"
title: "Creating a Team"
type: "checkmark"
}]
x: -4.5d
y: -0.5d
}
]
title: "Welcome"
} }

View File

@@ -0,0 +1,105 @@
{
loot_crate: {
string_id: "mekanism_advanced_loot_box"
color: 16777215
glow: 1b
drops: {
passive: 0
monster: 0
boss: 0
}
}
id: "74164DBBE7919A3B"
icon: "lootr:lootr_inventory"
use_title: true
title: "&aMekanism:&r &dAdvanced Loot Box&r"
rewards: [
{ item: "alltheores:steel_ingot", count: 4, random_bonus: 4, weight: 100.0f }
{ item: "alltheores:steel_block", random_bonus: 1, weight: 75.0f }
{ item: "mekanism:steel_casing", random_bonus: 3, weight: 50.0f }
{ item: "mekanism:thermal_evaporation_block", count: 16, random_bonus: 16, weight: 50.0f }
{ item: "mekanism:basic_induction_cell", weight: 50.0f }
{ item: "mekanism:basic_induction_provider", weight: 50.0f }
{ item: "mekanism:pellet_polonium" }
{ item: "mekanism:pellet_plutonium", random_bonus: 2, weight: 5.0f }
{ item: "alltheores:uranium_ingot", count: 4, random_bonus: 12, weight: 100.0f }
{ item: "mekanismgenerators:turbine_casing", count: 4, random_bonus: 12, weight: 50.0f }
{ item: "mekanismgenerators:fission_reactor_casing", count: 4, random_bonus: 12, weight: 25.0f }
{ item: "alltheores:uranium_block", random_bonus: 2, weight: 50.0f }
{ item: "mekanism:upgrade_speed", count: 4, random_bonus: 4, weight: 75.0f }
{ item: "mekanism:upgrade_energy", count: 4, random_bonus: 4, weight: 75.0f }
{ item: "mekanism:advanced_tier_installer", random_bonus: 1, weight: 50.0f }
{ item: "mekanism:elite_tier_installer", weight: 50.0f }
{ item: "mekanism:ultimate_tier_installer", weight: 25.0f }
{ item: "mekanism:alloy_reinforced", count: 2, random_bonus: 2, weight: 75.0f }
{ item: "mekanism:alloy_atomic", random_bonus: 2, weight: 50.0f }
{ item: "mekanism:reprocessed_fissile_fragment", count: 2, random_bonus: 3, weight: 10.0f }
{ item: "mekanism:dust_lithium", count: 4, random_bonus: 12, weight: 50.0f }
{ item: "mekanism:quantum_entangloporter", weight: 25.0f }
{
item: {
id: "mekanism:elite_energy_cube"
Count: 1b
tag: {
mekData: {
EnergyContainers: [{
Container: 0b
stored: "64000000"
}]
}
}
}
weight: 10.0f
}
{
item: {
id: "mekanism:ultimate_energy_cube"
Count: 1b
tag: {
mekData: {
EnergyContainers: [{
Container: 0b
stored: "256000000"
}]
}
}
}
weight: 5.0f
}
{ item: "mekanism:ultimate_universal_cable", count: 4, random_bonus: 4, weight: 50.0f }
{ item: "mekanism:ultimate_mechanical_pipe", count: 4, random_bonus: 4, weight: 50.0f }
{ item: "mekanism:ultimate_pressurized_tube", count: 4, random_bonus: 4, weight: 50.0f }
{
item: {
id: "mekanismgenerators:advanced_solar_generator"
Count: 1b
tag: {
mekData: {
EnergyContainers: [{
Container: 0b
stored: "200000"
}]
}
}
}
random_bonus: 2
weight: 50.0f
}
{ item: "mysticalagriculture:uranium_seeds", random_bonus: 1, weight: 25.0f }
{
item: {
id: "productivebees:spawn_egg_configurable_bee"
Count: 1b
tag: {
EntityTag: {
type: "productivebees:radioactive"
}
}
}
random_bonus: 1
weight: 25.0f
}
]
order_index: 40
loot_size: 1
}

View File

@@ -0,0 +1,25 @@
{
"name": "allthemodium",
"disable": false,
"tier": 6,
"color": "ffef0e",
"armorPoints": 150,
"enchantability": 87,
"craftingMaterial": "tag:forge:ingots/allthemodium",
"rarity": 0,
"capacity": 72000000,
"usage": 1650,
"speedVertical": 1.15,
"accelVertical": 0.20,
"speedSideways": 0.25,
"speedHoverDescend": 0.70,
"speedHover": 0.0,
"sprintSpeedMulti": 2.3,
"sprintFuelMulti": 4.4,
"creative": false,
"sprintSpeedMultiVertical": 1.0,
"toughness": 0.0,
"knockbackResistance": 0.0,
"speedHoverAscend": 0.7,
"curios": true
}

View File

@@ -0,0 +1,25 @@
{
"name": "unobtainium",
"disable": false,
"tier": 8,
"color": "d152e3",
"armorPoints": 520,
"enchantability": 420,
"craftingMaterial": "tag:forge:ingots/unobtainium",
"rarity": 0,
"capacity": 184000000,
"usage": 5000,
"speedVertical": 1.5,
"accelVertical": 0.35,
"speedSideways": 0.39,
"speedHoverDescend": 0.90,
"speedHover": 0.0,
"sprintSpeedMulti": 3.0,
"sprintFuelMulti": 5.5,
"creative": false,
"sprintSpeedMultiVertical": 1.0,
"toughness": 0.0,
"knockbackResistance": 0.0,
"speedHoverAscend": 0.9,
"curios": true
}

View File

@@ -0,0 +1,25 @@
{
"name": "vibranium",
"disable": false,
"tier": 7,
"color": "26de88",
"armorPoints": 320,
"enchantability": 187,
"craftingMaterial": "tag:forge:ingots/vibranium",
"rarity": 0,
"capacity": 120000000,
"usage": 2650,
"speedVertical": 1.25,
"accelVertical": 0.25,
"speedSideways": 0.29,
"speedHoverDescend": 0.80,
"speedHover": 0.0,
"sprintSpeedMulti": 2.8,
"sprintFuelMulti": 4.8,
"creative": false,
"sprintSpeedMultiVertical": 1.0,
"toughness": 0.0,
"knockbackResistance": 0.0,
"speedHoverAscend": 0.8,
"curios": true
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,121 @@
Ponder.registry((event) => {
event.create('mekanismgenerators:fission_reactor_casing')
.scene('fission_mek','Mekanism Fission Reactor', 'kubejs:fission_mek',
(scene, util) => {
scene.world.showSection([4, 0, 4], Facing.down);
scene.idle(5);
[1, 2, 3, 4].forEach(num => {
scene.world.showSection([4, num, 4], Facing.down);
scene.world.showSection([4, 0, 4 - num], Facing.down);
scene.world.showSection([4 - num, 0, 4], Facing.down);
scene.idle(5)
});
[1, 2, 3].forEach(num => {
scene.world.showSection([4, 4, 4 - num], Facing.down);
scene.world.showSection([4 - num, 4, 4], Facing.down);
scene.world.showSection([0, 0, 4 - num], Facing.down);
scene.world.showSection([4 - num, 0, 0], Facing.down);
scene.world.showSection([0, num, 4], Facing.down);
scene.world.showSection([4, num, 0], Facing.down);
scene.idle(5)
});
scene.text(80, 'The Edges Must Be Casings', [0, 4.5, 4.5]).placeNearTarget();
scene.world.showSection([4, 4, 0], Facing.down);
scene.world.showSection([0, 4, 4], Facing.down);
scene.world.showSection([0, 0, 0], Facing.down);
scene.idle(5);
[1, 2, 3].forEach(num => {
scene.world.showSection([0, num, 0], Facing.down);
scene.world.showSection([0, 4, 4 - num], Facing.down);
scene.world.showSection([4 - num, 4, 0], Facing.down);
scene.idle(5)
});
scene.world.showSection([0, 4, 0], Facing.down);
scene.addKeyframe();
scene.idle(80);
//top glass
scene.world.showSection([1, 4, 1, 3, 4, 3], Facing.down);
scene.idle(5)
// bottom glass
scene.world.showSection([1, 0, 1, 3, 0, 3], Facing.up);
scene.idle(5)
// north glass
scene.world.showSection([1, 1, 0, 3, 3, 0], Facing.south);
scene.idle(5)
// south glass
scene.world.showSection([1, 1, 4, 3, 3, 4], Facing.north);
scene.idle(5)
// west glass
scene.world.showSection([0, 1, 1, 0, 3, 3], Facing.east);
scene.idle(5)
scene.text(80, 'The Walls Can Be Either Casings Or Glass', [0, 2.5, 2.5]).placeNearTarget();
// east glass
scene.world.showSection([4, 1, 1, 4, 3, 3], Facing.west);
scene.addKeyframe();
scene.idle(80);
scene.world.hideSection([0, 1, 0, 3, 4, 0], Facing.up)
scene.world.hideSection([0, 1, 0, 0, 4, 3], Facing.up)
scene.world.hideSection([1, 4, 1, 3, 4, 3], Facing.up)
scene.idle(10);
scene.text(60, 'Place Fuel Assembly Blocks Inside To Make The Fuel Rods', [2.5, 2.5, 2.5]).placeNearTarget();
scene.world.setBlock([2, 1, 2], 'mekanismgenerators:fission_fuel_assembly', false);
scene.world.showSection([2, 1, 2], Facing.down)
scene.idle(10)
scene.world.setBlock([2, 2, 2], 'mekanismgenerators:fission_fuel_assembly', false);
scene.world.showSection([2, 2, 2], Facing.down)
scene.idle(10)
scene.addKeyframe();
scene.idle(40);
scene.world.setBlock([2, 3, 2], 'mekanismgenerators:control_rod_assembly', false);
scene.world.showSection([2, 3, 2], Facing.down)
scene.idle(10)
scene.text(60, 'Place Control Rod Assembly At The Top Of Each Fuel Rod', [2.5, 3.5, 2.5]).placeNearTarget();
scene.idle(20);
scene.addKeyframe();
scene.idle(60);
scene.world.showSection([0, 1, 0, 3, 4, 0], Facing.up)
scene.world.showSection([0, 1, 0, 0, 4, 3], Facing.up)
scene.world.showSection([1, 4, 1, 3, 4, 3], Facing.up)
scene.addKeyframe();
scene.idle(40);
//scene.world.modifyTileNBT([0,0,0, 4, 4, 4], (nbt) => { nbt.activeState = "fissionReactor" });
//scene
// .showControls(40, [1.5, 3, 1.5], 'down')
// .rightClick()
// .withItem('comparator');
//scene
// .text(40, 'Right Click With Comparator For Redstone Control', [1, 1.5, 2])
// .placeNearTarget()
// .attachKeyFrame();
//scene.idle(40);
});
});

View File

@@ -0,0 +1,75 @@
Ponder.registry((event) => {
event.create([
'mekanismgenerators:fission_fuel_assembly',
'mekanismgenerators:control_rod_assembly'
])
.scene('fission_mek_fuelrod','Mekanism Fission Reactor: Fuel Assembly', 'kubejs:fission_mek',
(scene, util) => {
scene.world.showSection([0, 0, 0, 4, 4, 4], Facing.down);
scene.idle(20);
scene.world.hideSection([0, 1, 0, 3, 4, 3], Facing.up);
scene.idle(20);
scene.text(80, 'Place Fuel Assembly Blocks Inside To Make The Fuel Rods', [2.5, 2.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.world.setBlock([2, 1, 2], 'mekanismgenerators:fission_fuel_assembly', true);
scene.world.showSection([2, 1, 2], Facing.down)
scene.idle(10);
scene.world.setBlock([2, 2, 2], 'mekanismgenerators:fission_fuel_assembly', true);
scene.world.showSection([2, 2, 2], Facing.down)
scene.idle(80);
scene.text(120, 'Fuel Rods are created with several Fission Fuel Assembly blocks with a Control Rod Assembly on top.', [1.5, 2.5, 2.5]).placeNearTarget();
scene.idle(40);
scene.addKeyframe();
scene.world.setBlock([2, 3, 2], 'mekanismgenerators:control_rod_assembly', true);
scene.world.showSection([2, 3, 2], Facing.down)
scene.idle(80);
scene.text(80, 'Place Control Rod Assembly At The Top Of Each Fuel Rod', [1.5, 3.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.idle(90);
scene.text(80, 'Control Rod Assembly blocks are placed 1 block from the ceiling.', [1.5, 3.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.idle(90);
scene.text(60, 'Fuel Rods Cannot Touch', [1.5, 1.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.world.setBlock([1, 1, 2], 'mekanismgenerators:fission_fuel_assembly', true);
scene.world.setBlock([3, 1, 2], 'mekanismgenerators:fission_fuel_assembly', true);
scene.world.showSection([1, 1, 2], Facing.down)
scene.world.showSection([3, 1, 2], Facing.down)
scene.idle(60)
scene.world.setBlock([1, 1, 2], 'air', true);
scene.world.setBlock([3, 1, 2], 'air', true);
scene.idle(40);
scene.world.hideSection([1, 1, 1, 3, 3, 3], Facing.up);
scene.idle(40);
scene.world.setBlock([1, 1, 1], 'mekanismgenerators:fission_fuel_assembly', true);
scene.world.setBlock([1, 2, 1], 'mekanismgenerators:fission_fuel_assembly', true);
scene.world.setBlock([1, 3, 1], 'mekanismgenerators:control_rod_assembly', true);
scene.world.setBlock([1, 1, 3], 'mekanismgenerators:fission_fuel_assembly', true);
scene.world.setBlock([1, 2, 3], 'mekanismgenerators:fission_fuel_assembly', true);
scene.world.setBlock([1, 3, 3], 'mekanismgenerators:control_rod_assembly', true);
scene.world.setBlock([3, 1, 1], 'mekanismgenerators:fission_fuel_assembly', true);
scene.world.setBlock([3, 2, 1], 'mekanismgenerators:fission_fuel_assembly', true);
scene.world.setBlock([3, 3, 1], 'mekanismgenerators:control_rod_assembly', true);
scene.world.setBlock([3, 1, 3], 'mekanismgenerators:fission_fuel_assembly', true);
scene.world.setBlock([3, 2, 3], 'mekanismgenerators:fission_fuel_assembly', true);
scene.world.setBlock([3, 3, 3], 'mekanismgenerators:control_rod_assembly', true);
scene.world.showSection([1, 1, 1, 3, 3, 3], Facing.down);
scene.text(80, 'Multiple Fuel Rods work best in a checkerboard pattern.', [1.5, 1.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.idle(100);
scene.world.showSection([0, 1, 0, 3, 4, 0], Facing.down)
scene.idle(5);
scene.world.showSection([0, 1, 1, 0, 4, 3], Facing.down)
scene.idle(5);
scene.world.showSection([1, 4, 1, 3, 4, 3], Facing.down);
scene.idle(20);
});
});

View File

@@ -0,0 +1,66 @@
Ponder.registry((event) => {
event.create('mekanismgenerators:fission_reactor_logic_adapter')
.scene('fission_mek_logic','Mekanism Fission Reactor: Logic Adapters', 'kubejs:fission_logic_example',
(scene, util) => {
scene.world.showSection([0, 0, 2, 4, 4, 6], Facing.down);
scene.world.setBlock([2, 3, 2], 'mekanismgenerators:reactor_glass', false);
scene.idle(20);
scene.text(60, 'Logic Adapters allow Redstone Control for Reactors.', [2.5, 1.5, 2]).placeNearTarget().attachKeyFrame();
scene.idle(80)
scene.text(60, 'Right Click to Open Configuration Settings', [2.5, 1.5, 2]).placeNearTarget().attachKeyFrame();
scene.showControls(60, [2.5, 2.5, 2], 'down').rightClick();
scene.idle(70);
scene.text(80, 'With two, you can set up a Fail Safe that can shut off the Reactor under certain conditions.', [2.5, 3.5, 2]).placeNearTarget().attachKeyFrame();
scene.world.setBlock([2, 3, 2], 'mekanismgenerators:fission_reactor_logic_adapter', true);
scene.idle(90);
scene.text(60, 'Set this one to Activation', [2.5, 3.5, 2]).placeNearTarget().attachKeyFrame();
scene.idle(60);
scene.text(60, 'Set this one to Damage Critical.', [2.5, 1.5, 2]).placeNearTarget().attachKeyFrame();
scene.idle(70);
scene.world.showSection([2, 0, 0], Facing.down);
scene.idle(5);
scene.world.showSection([2, 0, 1], Facing.down);
scene.idle(5);
scene.world.showSection([2, 1, 1], Facing.down);
scene.idle(5);
scene.text(60, 'When the Reactor has Critical Damage, it will give off a redstone signal.', [2.5, 1.5, 2]).placeNearTarget().attachKeyFrame();
scene.idle(10);
scene.idle(60);
scene.world.setBlock([2, 2, 0], 'minecraft:gravel', false);
//scene.world.modifyBlock([2, 3, 1], () => Block.id("minecraft:observer").with("facing", "north"), false);
scene.world.showSection([2, 1, 0, 2, 3, 0], Facing.down);
scene.world.showSection([2, 3, 1], Facing.down);
scene.idle(20);
scene.text(80, 'We can use this to activate a piston with gravel or sand on it to activate an Observer.', [2.5, 1.5, 1]).placeNearTarget().attachKeyFrame();
scene.idle(5);
scene.world.modifyBlock([2, 1, 1], (curState) => curState.with("power", "15"), false);
scene.world.modifyBlock([2, 1, 0], (curState) => curState.with("extended", "true"), false);
scene.world.setBlock([2, 3, 0], 'minecraft:gravel', false);
scene.world.setBlock([2, 2, 0], 'minecraft:piston_head', false);
scene.world.modifyBlock([2, 2, 0], (curState) => curState.with("facing", "up"), false);
scene.idle(90);
scene.text(120, 'This is an Oberserver facing towards the Gravel. The Gravel will activate it and turn off the reactor.', [2.5, 3.5, 2]).placeNearTarget().attachKeyFrame();
scene.idle(60);
});
});

View File

@@ -0,0 +1,43 @@
Ponder.registry((event) => {
event.create('mekanismgenerators:fission_reactor_port')
.scene('fission_mek_port','Mekanism Fission Reactor: Ports', 'kubejs:fission_mek',
(scene, util) => {
scene.showStructure();
scene.idle(20);
scene.world.setBlock([0, 1, 1], 'mekanismgenerators:fission_reactor_port', true);
scene.world.setBlock([0, 1, 3], 'mekanismgenerators:fission_reactor_port', true);
scene.world.modifyBlock([0, 1, 1], (curState) => curState.with("mode", "output_waste"), false);
scene.world.modifyBlock([0, 1, 3], (curState) => curState.with("mode", "output_coolant"), false);
scene.text(60, 'A Reactor Needs At Least 4 Ports', [0, 1.5, 3.5]).placeNearTarget();
scene.addKeyframe();
scene.idle(80)
scene.addKeyframe()
scene.text(60, 'Ports Can Be Changed Using A Configurator', [0, 1.5, 3.5]).placeNearTarget();
scene.showControls(60, [0.5, 2, 3.5], 'down').rightClick().withItem('mekanism:configurator').whileSneaking();
scene.idle(80);
scene.addKeyframe();
scene.text(160, 'Required Ports:', [-1, 4, 4]).placeNearTarget();
scene.text(40, 'Input Coolant', [3.5, 1.5, 0]).placeNearTarget();
scene.idle(40);
scene.text(40, 'Input Fuel', [1.5, 1.5, 0]).placeNearTarget();
scene.idle(40);
scene.text(40, 'Output Waste', [0, 1.5, 1.5]).placeNearTarget();
scene.idle(40);
scene.text(40, 'Output Heated Coolant', [0, 1.5, 3.5]).placeNearTarget();
scene.idle(40);
scene.addKeyframe();
scene.idle(10);
});
});

View File

@@ -0,0 +1,63 @@
Ponder.registry((event) => {
event.create([
'mekanismgenerators:hohlraum',
Item.of('mekanismgenerators:hohlraum', '{mekData:{GasTanks:[{Tank:0b,stored:{amount:10L,gasName:"mekanismgenerators:fusion_fuel"}}]}}'),
'mekanismgenerators:laser_focus_matrix'
])
.scene('fusion_activation','Mekanism Fusion Reactor: Activation', 'kubejs:fusion_activation',
(scene, util) => {
scene.world.showSection([2, 0, 0, 6, 4, 6], Facing.down);
//scene.world.hideSection([3, 0, 0, 5, 2, 0], Facing.up);
scene.idle(10);
scene.text(60, 'To activate the Fusion Reactor, we will need a few things.', [2, 2.5, 4.5]).placeNearTarget().attachKeyFrame();
scene.idle(80)
scene.text(100, 'You will need to put a Hohlraum filled with D-T fuel in the Controller.', [4.5, 5, 3.5]).attachKeyFrame();
scene.showControls(100, [4.5, 5.5, 3.5], 'down').withItem('mekanismgenerators:hohlraum');
scene.idle(110);
//show lasers
scene.world.showSection([0, 0, 0, 1, 4, 6], Facing.down);
scene.idle(10);
//Laser
scene.text(100, 'You will need to shoot 400MRF using Lasers into the Laser Matrix.', [0, 2.5, 3.5]).placeNearTarget().attachKeyFrame();
scene.idle(110);
//show laser
scene.world.hideSection([1, 0, 0, 6, 4, 6], Facing.down);
scene.idle(10)
scene.rotateCameraY(90);
scene.idle(5)
scene.text(100, 'The Laser Amplifier needs to have the Red face pointing towards the Matrix.', [1, 2.5, 3]).placeNearTarget().attachKeyFrame();
scene.idle(110);
scene.rotateCameraY(-90);
scene.idle(5)
//show everything
scene.world.showSection([1, 0, 0, 6, 4, 6], Facing.down);
scene.idle(10)
//hide lasers
scene.world.hideSection([0, 0, 0, 1, 4, 6], Facing.down);
scene.idle(10);
//fuel input
scene.overlay.showText(100).text("You will also need to give the Reactor fuel.").independent(-50);
scene.text(50, 'For Deuterium', [5.5, 2.5, 1]).placeNearTarget().attachKeyFrame();
scene.idle(60);
scene.text(50, 'For Tritium.', [3.5, 2.5, 1]).placeNearTarget().attachKeyFrame();
scene.idle(60);
scene.text(80, 'The Reactor mixes the D-T fuel at a set rate when they are pumped in separately.', [4.5, 2.5, 1]).placeNearTarget().attachKeyFrame();
scene.idle(80);
});
});

View File

@@ -0,0 +1,78 @@
Ponder.registry((event) => {
event.create([
'mekanismgenerators:fusion_reactor_frame',
'mekanismgenerators:fusion_reactor_port',
'mekanismgenerators:fusion_reactor_controller',
'mekanismgenerators:fusion_reactor_logic_adapter'
])
.scene('fusion_reactor','Mekanism Fusion Reactor', 'kubejs:fusion_mek',
(scene, util) => {
scene.world.showSection([0, 0, 0, 4, 4, 4], Facing.down);
scene.idle(10);
scene.text(60, 'The Fusion Reactor can be used to generate millions of RF per tick.', [0, 2.5, 4.5]).placeNearTarget().attachKeyFrame();
scene.idle(80)
scene.text(60, 'Ports Can Be Changed Using A Configurator', [1.5, 2.5, 0]).placeNearTarget().attachKeyFrame();
scene.showControls(60, [1.5, 3.5, 0], 'down').rightClick().withItem('mekanism:configurator').whileSneaking();
scene.idle(10);
scene.world.modifyBlock([1, 2, 0], (curState) => curState.with("active", "true"), true);
scene.idle(20);
scene.world.modifyBlock([1, 2, 0], (curState) => curState.with("active", "false"), true);
scene.idle(40);
//hide front
scene.world.hideSection([0, 0, 0, 4, 4, 3], Facing.up);
scene.idle(10);
scene.text(80, 'The Fusion Reactor is built using this pattern for each face.', [2.5, 2, 4.5]).attachKeyFrame();
scene.idle(90);
//east face
scene.world.showSection([4, 0, 0, 4, 4, 3], Facing.down);
scene.idle(10);
//power port
scene.text(60, 'You will need a port for exporting power.', [4, 2.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.idle(70);
//west face
scene.world.showSection([0, 0, 0, 0, 4, 3], Facing.down);
scene.idle(30);
//Laser
scene.text(60, 'The Laser Matrix is used to kickstart the reactor.', [0, 2.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.idle(70);
//bottom face
scene.world.showSection([1, 0, 0, 3, 0, 3], Facing.down);
scene.idle(30);
//top face
scene.world.showSection([0, 4, 0, 3, 4, 3], Facing.down);
scene.idle(30);
//controller
scene.text(60, 'The Fusion Reactor Controller must be placed in the middle of the top face.', [2.5, 4.5, 3.5]).placeNearTarget().attachKeyFrame();
scene.idle(70);
//north face
scene.world.showSection([1, 1, 0, 3, 3, 0], Facing.down);
scene.idle(30);
//fuel input
scene.text(30, 'You will need two ports for inputting Deuterium', [3.5, 2.5, 0]).placeNearTarget().attachKeyFrame();
scene.idle(40);
scene.text(40, 'and Tritium.', [1.5, 2.5, 0]).placeNearTarget().attachKeyFrame();
scene.idle(50);
});
});

View File

@@ -0,0 +1,135 @@
Ponder.registry((event) => {
event.create([
'mekanism:induction_casing',
'mekanism:induction_port'
])
.scene('induction_mek','Mekanism: Induction Matrix', 'kubejs:induction_matrix',
(scene, util) => {
//Show main build
scene.world.showSection([0, 0, 0, 4, 4, 4], Facing.down);
scene.idle(10);
scene.text(80, 'The Induction Matrix is used to store tons of Power.', [0, 4.5, 4.5]).placeNearTarget().attachKeyFrame();
scene.idle(85);
//Hide and build
scene.world.hideSection([0, 0, 0, 4, 4, 4], Facing.up);
scene.idle(10);
scene.world.showSection([4, 0, 4], Facing.down);
scene.idle(5);
[1, 2, 3, 4].forEach(num => {
scene.world.showSection([4, num, 4], Facing.down);
scene.world.showSection([4, 0, 4 - num], Facing.down);
scene.world.showSection([4 - num, 0, 4], Facing.down);
scene.idle(5)
});
[1, 2, 3].forEach(num => {
scene.world.showSection([4, 4, 4 - num], Facing.down);
scene.world.showSection([4 - num, 4, 4], Facing.down);
scene.world.showSection([0, 0, 4 - num], Facing.down);
scene.world.showSection([4 - num, 0, 0], Facing.down);
scene.world.showSection([0, num, 4], Facing.down);
scene.world.showSection([4, num, 0], Facing.down);
scene.idle(5);
});
scene.text(80, 'The Edges Must Be Casings', [0, 4.5, 4.5]).placeNearTarget().attachKeyFrame();
scene.idle(5);
scene.world.showSection([4, 4, 0], Facing.down);
scene.world.showSection([0, 4, 4], Facing.down);
scene.world.showSection([0, 0, 0], Facing.down);
scene.idle(5);
[1, 2, 3].forEach(num => {
scene.world.showSection([0, num, 0], Facing.down);
scene.world.showSection([0, 4, 4 - num], Facing.down);
scene.world.showSection([4 - num, 4, 0], Facing.down);
scene.idle(5)
});
scene.world.showSection([0, 4, 0], Facing.down);
scene.idle(60);
scene.text(80, 'The Faces Can Be Either Casings Or Structural Glass.', [0, 2.5, 2.5]).placeNearTarget().attachKeyFrame();
//Side Sections
//top glass
scene.world.showSection([1, 4, 1, 3, 4, 3], Facing.down);
scene.idle(5)
// bottom glass
scene.world.showSection([1, 0, 1, 3, 0, 3], Facing.up);
scene.idle(5)
// north glass
scene.world.showSection([1, 1, 0, 3, 3, 0], Facing.south);
scene.idle(5)
// south glass
scene.world.showSection([1, 1, 4, 3, 3, 4], Facing.north);
scene.idle(5)
// west glass
scene.world.showSection([0, 1, 1, 0, 3, 3], Facing.east);
scene.idle(5)
// east glass
scene.world.showSection([4, 1, 1, 4, 3, 3], Facing.west);
scene.idle(80);
//Talk about Ports
scene.text(60, 'Ports Are Used To Transfer Power.', [1.5, 1.5, 0]).placeNearTarget().attachKeyFrame();
scene.idle(80);
scene.text(80, 'Ports Can Be Changed Using A Configurator.', [1.5, 1.5, 0]).placeNearTarget().attachKeyFrame();
scene.showControls(80, [1.5, 2.5, 0], 'down').rightClick().withItem('mekanism:configurator').whileSneaking();
scene.world.modifyBlock([1, 1, 0], (curState) => curState.with("active", "false"), true);
scene.idle(20);
scene.world.modifyBlock([1, 1, 0], (curState) => curState.with("active", "true"), true);
scene.idle(60);
// Inside Part
scene.world.hideSection([0, 1, 0, 3, 4, 0], Facing.up)
scene.world.hideSection([0, 1, 0, 0, 4, 3], Facing.up)
scene.world.hideSection([1, 4, 1, 3, 4, 3], Facing.up)
scene.idle(20);
scene.text(60, 'Induction Cells Are Used To Increase Power Storage.', [2.5, 1.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.world.setBlock([2, 1, 2], 'mekanism:basic_induction_cell', false);
scene.world.showSection([2, 1, 2], Facing.down)
scene.idle(65);
scene.text(60, 'Induction Providers Are Used To Increase Power Transfer Rate.', [2.5, 2.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.world.setBlock([2, 2, 2], 'mekanism:basic_induction_provider', false);
scene.world.showSection([2, 2, 2], Facing.down)
scene.idle(65)
scene.text(60, 'The Matrix Must Have One Cell and One Provider.', [2, 2.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.idle(65)
//Show All
scene.world.showSection([0, 1, 0, 3, 4, 0], Facing.up)
scene.world.showSection([0, 1, 0, 0, 4, 3], Facing.up)
scene.world.showSection([1, 4, 1, 3, 4, 3], Facing.up)
scene.idle(10);
});
});

View File

@@ -0,0 +1,76 @@
Ponder.registry((event) => {
event.create([
'mekanism:sps_casing',
'mekanism:sps_port',
'mekanism:supercharged_coil'])
.scene('sps','Mekanism Supercritical Phase Shifter (SPS)', 'kubejs:sps',
(scene, util) => {
scene.world.showSection([0, 0, 0, 6, 7, 6], Facing.down);
scene.setSceneOffsetY(-1);
scene.idle(20);
scene.text(60, 'The SPS converts Polonium into Antimatter Gas using a large amount of power', [0, 3.5, 6.5]).placeNearTarget();
scene.addKeyframe();
scene.idle(80)
scene.addKeyframe()
scene.text(60, 'Ports Can Be Changed Using A Configurator', [2.5, 1.5, 0]).placeNearTarget();
scene.showControls(60, [2.5, 2.5, 0], 'down').rightClick().withItem('mekanism:configurator').whileSneaking();
scene.idle(10);
scene.world.modifyBlock([2, 1, 0], (curState) => curState.with("active", "true"), false);
scene.idle(20);
scene.world.modifyBlock([2, 1, 0], (curState) => curState.with("active", "false"), false);
scene.idle(40);
scene.world.hideSection([0, 0, 0, 6, 6, 5], Facing.up);
scene.idle(10);
scene.text(60, 'The SPS is built using this pattern for each face.', [2.5, 4, 5]).placeNearTarget().attachKeyFrame();
scene.idle(60);
//east face
scene.world.showSection([6, 0, 0, 6, 7, 5], Facing.down);
scene.idle(10);
scene.text(60, 'On one side, you will need a Port in the middle to input power.', [5.5, 4, 3]).placeNearTarget().attachKeyFrame();
scene.idle(70);
scene.world.showSection([5, 3, 3], Facing.down);
scene.text(60, 'On the inside, place a Supercharged Coil on the Port.', [5, 4, 3]).placeNearTarget().attachKeyFrame();
scene.idle(80);
//west face
scene.world.showSection([0, 0, 0, 0, 6, 5], Facing.down);
scene.idle(30);
scene.world.showSection([1, 3, 3], Facing.down);
scene.text(60, 'You can also use two Supercharged Coils for max power usage.', [0, 4, 3]).placeNearTarget().attachKeyFrame();
scene.idle(80);
//bottom face
scene.world.showSection([1, 0, 0, 5, 0, 5], Facing.down);
scene.idle(30);
//top face
scene.world.showSection([1, 6, 0, 5, 6, 5], Facing.down);
scene.idle(30);
//north face
scene.world.showSection([1, 1, 0, 5, 5, 0], Facing.down);
scene.idle(30);
scene.text(60, 'You will need one Port for inputting Polonium.', [4.5, 1.5, 0]).placeNearTarget().attachKeyFrame();
scene.idle(70);
scene.world.modifyBlock([2, 1, 0], (curState) => curState.with("active", "true"), true);
scene.text(60, 'And another for exporting Antimatter Gas.', [2.5, 1.5, 0]).placeNearTarget().attachKeyFrame();
scene.idle(70);
});
});

View File

@@ -0,0 +1,141 @@
Ponder.registry((event) => {
event.create([
'mekanismgenerators:turbine_casing',
'mekanismgenerators:turbine_valve',
'mekanismgenerators:turbine_vent',
'mekanismgenerators:turbine_rotor',
'mekanismgenerators:turbine_blade',
'mekanismgenerators:rotational_complex',
'mekanismgenerators:saturating_condenser',
'mekanism:pressure_disperser',
'mekanismgenerators:electromagnetic_coil',
])
.scene('turbine_mek','Mekanism: Industrial Turbine', 'kubejs:turbine_mek',
(scene, util) => {
scene.showStructure();
scene.idle(5);
scene.text(60, 'The Industrial Turbine uses Heated Coolant to create Power.', [0, 4.5, 4.5]).placeNearTarget().attachKeyFrame();
scene.idle(65);
scene.text(60, 'The edges must be made of Turbine Casings.', [0, 4.5, 4.5]).placeNearTarget().attachKeyFrame();
scene.idle(65);
scene.text(60, 'The faces can be Turbine Casings, Structural Glass, Valves, or Vents.', [0, 2.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.idle(65);
scene.text(60, 'Turbine Valves pump in Steam, or export Power.', [0, 1.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.idle(65);
//hide top
scene.world.hideSection([0, 4, 0, 4, 6, 4], Facing.up);
scene.idle(5);
//hide walls
scene.world.hideSection([0, 4, 0, 4, 6, 4], Facing.up);
scene.world.hideSection([0, 1, 0, 3, 6, 0], Facing.up);
scene.world.hideSection([0, 1, 0, 0, 6, 3], Facing.up);
scene.idle(10);
//Turbine Rotor
scene.text(80, 'Turbine Rotors must be placed in the middle. Each Rotor uses 2 Turbine Blades.', [2, 3.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.idle(85);
//show next layer
scene.world.showSection([2, 4, 2], Facing.up);
scene.idle(10);
scene.text(80, 'A Rotational Complex must be placed on top of the Turbine Rotor.', [2, 4.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.idle(85);
scene.world.showSection([1, 4, 1, 3, 4, 1], Facing.up);
scene.world.showSection([3, 4, 2], Facing.up);
scene.world.showSection([1, 4, 2], Facing.up);
scene.world.showSection([1, 4, 3, 3, 4, 3], Facing.up);
scene.idle(10);
scene.text(80, 'Pressure Dispersers must fill the layer around the Rotational Complex.', [1, 4.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.idle(85);
//Show Layer Vents
scene.world.showSection([0, 4, 0, 4, 4, 0], Facing.up);
scene.world.showSection([0, 4, 4, 4, 4, 4], Facing.up);
scene.world.showSection([0, 4, 1, 0, 4, 3], Facing.up);
scene.world.showSection([4, 4, 0, 4, 4, 4], Facing.up);
scene.world.showSection([0, 1, 0, 3, 3, 0], Facing.up);
scene.world.showSection([0, 1, 1, 0, 3, 3], Facing.up);
scene.text(120, 'Starting on this layer, Turbine Vents can be used for the outer faces. These also export Water from the Turbine.', [0, 4.5, 3.5]).placeNearTarget().attachKeyFrame();
scene.idle(125);
//Show Electromagnetic Coil
scene.world.showSection([2, 5, 2], Facing.up);
scene.idle(5);
scene.text(60, 'Electromagnetic Coils are placed on top of the Rotational Complex.', [2, 5.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.idle(65);
scene.world.setBlock([2, 5, 1], 'mekanismgenerators:electromagnetic_coil', true);
scene.world.setBlock([1, 5, 2], 'mekanismgenerators:electromagnetic_coil', true);
scene.world.setBlock([2, 5, 3], 'mekanismgenerators:electromagnetic_coil', true);
scene.world.setBlock([3, 5, 2], 'mekanismgenerators:electromagnetic_coil', true);
scene.world.showSection([2, 5, 1], Facing.up);
scene.world.showSection([1, 5, 2], Facing.up);
scene.world.showSection([2, 5, 3], Facing.up);
scene.world.showSection([3, 5, 2], Facing.up);
scene.idle(10);
scene.text(100, 'A max of 5 can be placed. They either must connect to each other, or be touching the Rotational Complex.', [2, 5.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.idle(105);
//Saturating Condensers
scene.world.showSection([3, 5, 3], Facing.up);
scene.world.showSection([1, 5, 1], Facing.up);
scene.world.showSection([1, 5, 3], Facing.up);
scene.world.showSection([3, 5, 1], Facing.up);
scene.text(120, 'Saturating Condensers are used to convert Steam back into Water. These are not required, but must be placed on or above the Coil Layer.', [1, 5.5, 1.5]).placeNearTarget().attachKeyFrame();
scene.idle(130);
//Show other layers
scene.world.showSection([0, 5, 0, 4, 5, 0], Facing.up);
scene.world.showSection([0, 5, 4, 4, 5, 4], Facing.up);
scene.world.showSection([0, 5, 1, 0, 5, 3], Facing.up);
scene.world.showSection([4, 5, 0, 4, 5, 3], Facing.up);
scene.idle(5);
scene.world.showSection([0, 6, 0, 4, 6, 4], Facing.up);
scene.idle(20);
scene.world.hideSection([1, 6, 1, 3, 6, 3], Facing.up);
scene.idle(15);
scene.world.setBlock([1, 6, 1], 'mekanismgenerators:turbine_vent', false);
scene.world.setBlock([2, 6, 1], 'mekanismgenerators:turbine_vent', false);
scene.world.setBlock([3, 6, 1], 'mekanismgenerators:turbine_vent', false);
scene.world.setBlock([1, 6, 2], 'mekanismgenerators:turbine_vent', false);
scene.world.setBlock([2, 6, 2], 'mekanismgenerators:turbine_vent', false);
scene.world.setBlock([3, 6, 2], 'mekanismgenerators:turbine_vent', false);
scene.world.setBlock([1, 6, 3], 'mekanismgenerators:turbine_vent', false);
scene.world.setBlock([2, 6, 3], 'mekanismgenerators:turbine_vent', false);
scene.world.setBlock([3, 6, 3], 'mekanismgenerators:turbine_vent', false);
scene.idle(10);
scene.world.showSection([1, 6, 1, 3, 6, 3], Facing.down);
scene.idle(10);
scene.text(80, 'The Top Face can be replaced with Turbine Vents, if needed.', [2.5, 6.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.idle(85);
});
});

View File

@@ -0,0 +1,40 @@
/*
Authored by Mitchell52
for AllTheMods 8
*/
ServerEvents.recipes(e=>{
let ATM_metal = ['allthemodium','unobtainium','vibranium',]
ATM_metal.forEach(ATM_metal =>
e.custom({
"type": "thermal:crucible",
"ingredient": {
"item": `allthemodium:${ATM_metal}_block`
},
"result": [
{
"fluid": `allthemodium:molten_${ATM_metal}`,
"amount": 1000
}
],
"energy": 232000
}).id(`kubejs:molten_${ATM_metal}`)
)
ATM_metal.forEach(ATM_metal =>
e.custom({
"type": "thermal:chiller",
"ingredients": [
{
"fluid": `allthemodium:molten_${ATM_metal}`,
"amount": 1000
}
],
"result": [
{
"item": `allthemodium:${ATM_metal}_block`
}
],
"energy": 232000
}).id(`kubejs:chilling_${ATM_metal}`)
)
})

View File

@@ -1,12 +1,12 @@
//missing crushed platinum handling //missing crushed platinum handling
ServerEvents.recipes(event => { ServerEvents.recipes(event => {
event.smelting('alltheores:platinum_ingot', 'create:crushed_platinum_ore').xp(0.1).id('kubejs:create/smelting/platinum_ingot_from_crushed') event.smelting('alltheores:platinum_ingot', 'create:crushed_raw_platinum').xp(0.1).id('kubejs:create/smelting/platinum_ingot_from_crushed')
event.blasting('alltheores:platinum_ingot', 'create:crushed_platinum_ore').xp(0.1).id('kubejs:create/blasting/platinum_ingot_from_crushed') event.blasting('alltheores:platinum_ingot', 'create:crushed_raw_platinum').xp(0.1).id('kubejs:create/blasting/platinum_ingot_from_crushed')
event.custom({ event.custom({
type: 'create:splashing', type: 'create:splashing',
ingredients: [ ingredients: [
{ {
'item': 'create:crushed_platinum_ore' 'item': 'create:crushed_raw_platinum'
} }
], ],
results: [ results: [
@@ -15,5 +15,5 @@ ServerEvents.recipes(event => {
'item': 'alltheores:platinum_nugget' 'item': 'alltheores:platinum_nugget'
} }
] ]
}).id('kubejs:create/splashing/crushed_platinum_ore') }).id('kubejs:create/splashing/crushed_raw_platinum')
}) })

View File

@@ -6,6 +6,7 @@ ServerEvents.tags('item', event => {
event.add('forge:dusts/ender', 'ae2:ender_dust') event.add('forge:dusts/ender', 'ae2:ender_dust')
event.add('ars_nouveau:golem/shard', ['minecraft:amethyst_shard', 'ae2:certus_quartz_crystal']) event.add('ars_nouveau:golem/shard', ['minecraft:amethyst_shard', 'ae2:certus_quartz_crystal'])
event.add('forge:raw_materials', ['silentgear:raw_azure_silver', 'silentgear:raw_crimson_iron']) event.add('forge:raw_materials', ['silentgear:raw_azure_silver', 'silentgear:raw_crimson_iron'])
event.add('forge:rubber', ['ftbic:rubber','industrialforegoing:dryrubber','thermal:cured_rubber'])
event.add('mysticalagriculture:essences', [ event.add('mysticalagriculture:essences', [
'mysticalagriculture:allthemodium_essence', 'mysticalagriculture:allthemodium_essence',
'mysticalagriculture:azure_silver_essence', 'mysticalagriculture:azure_silver_essence',
@@ -57,7 +58,13 @@ ServerEvents.tags('block', event => {
}) })
ServerEvents.tags('fluid', event => { ServerEvents.tags('fluid', event => {
event.remove('minecraft:water', 'ad_astra:oil') event.remove('minecraft:water',[
'ad_astra:oil','ad_astra:flowing_oil',
'ad_astra:cryo_fuel','ad_astra:flowing_cryo_fuel',
'ad_astra:fuel','ad_astra:flowing_fuel',
'hexerei:blood_flowing','hexerei:blood_fluid',
'hexerei:tallow_flowing','hexerei:tallow_fluid',
'createaddition:flowing_seed_oil','createaddition:seed_oil'])
}) })
ServerEvents.tags('entity_type', event => { ServerEvents.tags('entity_type', event => {

View File

@@ -5,23 +5,4 @@
authored by EnigmaQuip authored by EnigmaQuip
*/ */
const $MinecraftForge = Java.loadClass('net.minecraftforge.common.MinecraftForge') /// Deleted due to bug
const $BlockEvent = Java.loadClass('net.minecraftforge.event.level.BlockEvent')
const $SaplingGrowTreeEvent = Java.loadClass('net.minecraftforge.event.level.SaplingGrowTreeEvent')
const $BlockItem = Java.loadClass('net.minecraft.world.item.BlockItem')
const $CropBlock = Java.loadClass('net.minecraft.world.level.block.CropBlock')
const $SaplingBlock = Java.loadClass('net.minecraft.world.level.block.SaplingBlock')
ForgeEvents.onEvent('net.darkhax.botanypots.events.CropDropEvent', event => {
const { level, pos, crop } = event;
let seed = crop.getSeed().getFirst().getItem()
if (seed instanceof $BlockItem) {
let seedBlock = seed.getBlock()
if (seedBlock instanceof $CropBlock) {
let blockstate = seedBlock.getStateForAge(seedBlock.getMaxAge())
$MinecraftForge.EVENT_BUS.post(new $BlockEvent.CropGrowEvent.Post(level, pos, blockstate, level.getBlockState(pos)))
} else if (seedBlock instanceof $SaplingBlock) {
$MinecraftForge.EVENT_BUS.post(new $SaplingGrowTreeEvent(level, level.getRandom(), pos))
}
}
})

View File

@@ -0,0 +1,76 @@
const $TileEntityMultiblock = Java.loadClass('mekanism.common.tile.prefab.TileEntityMultiblock')
const $TileEntityMekanism = Java.loadClass('mekanism.common.tile.base.TileEntityMekanism')
const $CompoundTag = Java.loadClass('net.minecraft.nbt.CompoundTag')
const mapMekanismMultiblockToTaskID = {
"dynamicTank":"",
"inductionMatrix":"621A4E28BD50F96C",
"thermoelectricBoiler":"",
"evaporation":"",
"sps":"2A13A1B1A85C2981",
"industrialTurbine":"71DB5E5857993B3F",
"fissionReactor":"34D8628732B36EDF",
"fusionReactor": "0B31B1E6089BB33E"
}
const mapMekanismGasToTaskID = {
"mekanism:fissile_fuel": "4E04F8F091D18EA4",
"mekanism:uranium_oxide": "29D6CA9A77ACACC6",
"mekanism:sulfuric_acid": "66C97246C3EEFB7C",
"mekanism:hydrofluoric_acid": "510CE57C709D5A44",
"mekanism:uranium_hexafluoride": "05A215BE7EE2F35D"
}
ClientEvents.tick(event => {
if (Client.hitResult != null && Client.hitResult.getType() == 'BLOCK') {
let block = event.level.getBlock(Client.hitResult.getBlockPos())
if (block.id.contains('mekanism')) {
let blockEntity = block.entity
// Multiblock handler
if (blockEntity && blockEntity instanceof $TileEntityMultiblock) {
// Multiblock is complete
if (blockEntity.getMultiblock().isFormed()) {
let manager = blockEntity.getManager()
if (manager) {
let managerName = manager.getName()
if (managerName) {
let taskString = mapMekanismMultiblockToTaskID[managerName]
if (taskString) {
let tag = new $CompoundTag
tag.putString('task', taskString)
event.player.sendData('customTask', tag)
}
}
}
}
}
// Capability TE's
if (blockEntity instanceof $TileEntityMekanism) {
// Handles Gas
if (blockEntity.canHandleGas()) {
let tanks = blockEntity.getGasTanks(null)
tanks.forEach(tank => {
let gas = tank.getStack().getTypeRegistryName()
let taskString = mapMekanismGasToTaskID[gas.toString()]
if (taskString) {
let tag = new $CompoundTag
tag.putString('task', taskString)
event.player.sendData('customTask', tag)
}
})
}
}
}
}
})
NetworkEvents.fromClient('customTask', event => {
const {entity, data, level} = event
let taskString = data.task
let task = FTBQuests.getObject(level, taskString)
let playerQuestData = FTBQuests.getData(entity)
if (task && playerQuestData && !playerQuestData.isCompleted(task) && playerQuestData.canStartTasks(task.quest)) {
playerQuestData.addProgress(task, 1)
}
})

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More