1.20.1适配
@@ -3,7 +3,7 @@ Minecraft Forge: Credits/Thank You
|
||||
Forge is a set of tools and modifications to the Minecraft base game code to assist
|
||||
mod developers in creating new and exciting content. It has been in development for
|
||||
several years now, but I would like to take this time thank a few people who have
|
||||
helped it along its way.
|
||||
helped it along it's way.
|
||||
|
||||
First, the people who originally created the Forge projects way back in Minecraft
|
||||
alpha. Eloraam of RedPower, and SpaceToad of Buildcraft, without their acceptiance
|
||||
@@ -11,7 +11,7 @@ of me taking over the project, who knows what Minecraft modding would be today.
|
||||
|
||||
Secondly, someone who has worked with me, and developed some of the core features
|
||||
that allow modding to be as functional, and as simple as it is, cpw. For developing
|
||||
FML, which stabilized the client and server modding ecosystem. As well as the base
|
||||
FML, which stabelized the client and server modding ecosystem. As well as the base
|
||||
loading system that allows us to modify Minecraft's code as elegently as possible.
|
||||
|
||||
Mezz, who has stepped up as the issue and pull request manager. Helping to keep me
|
||||
@@ -45,11 +45,11 @@ and minecraft clients.
|
||||
The code is authored by cpw.
|
||||
|
||||
It began by partially implementing an API defined by the client side ModLoader, authored by Risugami.
|
||||
https://www.minecraftforum.net/topic/75440-
|
||||
http://www.minecraftforum.net/topic/75440-
|
||||
This support has been dropped as of Minecraft release 1.7, as Risugami no longer maintains ModLoader.
|
||||
|
||||
It also contains suggestions and hints and generous helpings of code from LexManos, author of MinecraftForge.
|
||||
https://minecraftforge.net/
|
||||
http://www.minecraftforge.net/
|
||||
|
||||
Additionally, it contains an implementation of topological sort based on that
|
||||
published at http://keithschwarz.com/interesting/code/?dir=topological-sort
|
||||
|
||||
183
README.txt
@@ -1,155 +1,46 @@
|
||||
为了防止我自己忘掉配方,我让AI写了这个↓
|
||||
|
||||
# BlackSugar Mod
|
||||
Source installation information for modders
|
||||
-------------------------------------------
|
||||
This code follows the Minecraft Forge installation methodology. It will apply
|
||||
some small patches to the vanilla MCP source code, giving you and it access
|
||||
to some of the data and functions you need to build a successful mod.
|
||||
|
||||
一个为Minecraft添加各种美味食物和可爱小猫咪的模组!
|
||||
Note also that the patches are built against "un-renamed" MCP source code (aka
|
||||
SRG Names) - this means that you will not be able to read them directly against
|
||||
normal code.
|
||||
|
||||
## 模组介绍
|
||||
Setup Process:
|
||||
==============================
|
||||
|
||||
BlackSugar Mod为游戏增加了丰富的食物系统和小猫咪互动机制。玩家可以通过不同的食物来改变小猫咪的状态,体验有趣的合成系统。模组包含了从基础材料到终极物品的完整制作链。
|
||||
Step 1: Open your command-line and browse to the folder where you extracted the zip file.
|
||||
|
||||
## 新增物品
|
||||
Step 2: You're left with a choice.
|
||||
If you prefer to use Eclipse:
|
||||
1. Run the following command: `./gradlew genEclipseRuns`
|
||||
2. Open Eclipse, Import > Existing Gradle Project > Select Folder
|
||||
or run `gradlew eclipse` to generate the project.
|
||||
|
||||
### 基础材料
|
||||
- **黑糖** (Black Sugar) - 模组的核心材料
|
||||
- **面团** (Dough) - 用小麦和水制作的基础材料
|
||||
- **食用油** (Cooking Oil) - 烹饪用油
|
||||
- **葱花** (Scallion) - 调味料
|
||||
If you prefer to use IntelliJ:
|
||||
1. Open IDEA, and import project.
|
||||
2. Select your build.gradle file and have it import.
|
||||
3. Run the following command: `./gradlew genIntellijRuns`
|
||||
4. Refresh the Gradle Project in IDEA if required.
|
||||
|
||||
### 海星系列
|
||||
- **坚不可摧的海星** (Indestructible Starfish) - 坚硬的海星
|
||||
- **海星串** (Starfish Skewer) - 串好的海星
|
||||
- **香喷喷的串海星** (Fragrant Starfish Skewer) - 美味的烤海星串 ⭐可食用
|
||||
|
||||
### 甲鱼系列
|
||||
- **萨卡班甲鱼** (Sakaban Turtle) - 原始甲鱼
|
||||
- **腌好的萨卡班甲鱼** (Pickled Turtle) - 腌制后的甲鱼
|
||||
- **炭烤萨卡班甲鱼** (Charcoal Grilled Turtle) - 烤制的美味甲鱼 ⭐可食用
|
||||
|
||||
### 棉花糖系列
|
||||
- **棉花糖** (Marshmallow) - 基础棉花糖 ⭐可食用
|
||||
- **烤棉花糖** (Roasted Marshmallow) - 烤制的棉花糖 ⭐可食用
|
||||
- **致癌的棉花糖** (Carcinogenic Marshmallow) - 危险的棉花糖 ⭐可食用
|
||||
|
||||
### 蔬菜系列
|
||||
- **一锅牢菜** (Pot of Prison Vegetables) - 蔬菜锅
|
||||
- **闷牢菜** (Braised Prison Vegetables) - 炖煮的蔬菜 ⭐可食用
|
||||
|
||||
### 其他食物
|
||||
- **黑糖团子** (Black Sugar Dumpling) - 甜美的团子 ⭐可食用
|
||||
- **脆香bro** (Crispy Bro) - 酥脆美味的食物 ⭐可食用
|
||||
|
||||
### 小猫咪系列
|
||||
- **一只觉得嘴里淡淡的小猫咪** (Bland Kitten) - 基础小猫咪
|
||||
- **心满意足的小猫咪** (Satisfied Kitten) - 吃饱后的快乐小猫咪
|
||||
- **发情的小猫咪** (Horny Kitten) - 吃了萝卜后的兴奋小猫咪
|
||||
- **想吃肉的小猫咪** (Meat Craving Kitten) - 吃了素食后渴望肉类的小猫咪
|
||||
- **一只心怀歹念的小猫咪** (Malicious Kitten) - 神秘的黑暗小猫咪
|
||||
|
||||
### 终极物品
|
||||
- **Lover's Lover** - 需要多种珍贵材料合成的终极食物 ⭐可食用
|
||||
|
||||
## 合成配方
|
||||
|
||||
### 基础制作配方
|
||||
|
||||
#### 面团制作
|
||||
- 小麦 + 水桶 + 小麦 = 面团 x2
|
||||
|
||||
### 小猫咪状态转换配方
|
||||
|
||||
#### 普通小猫咪 + 素食 → 想吃肉的小猫咪
|
||||
- 一只觉得嘴里淡淡的小猫咪 + 闷牢菜 = 想吃肉的小猫咪
|
||||
|
||||
#### 普通小猫咪 + 肉类 → 心满意足的小猫咪
|
||||
- 一只觉得嘴里淡淡的小猫咪 + 香喷喷的串海星 = 心满意足的小猫咪
|
||||
- 一只觉得嘴里淡淡的小猫咪 + 炭烤萨卡班甲鱼 = 心满意足的小猫咪
|
||||
- 一只觉得嘴里淡淡的小猫咪 + 脆香bro = 心满意足的小猫咪
|
||||
|
||||
#### 普通小猫咪 + 萝卜 → 发情的小猫咪
|
||||
- 一只觉得嘴里淡淡的小猫咪 + 萝卜 = 发情的小猫咪
|
||||
|
||||
#### 想吃肉的小猫咪 + 肉类 → 心满意足的小猫咪
|
||||
- 想吃肉的小猫咪 + 香喷喷的串海星 = 心满意足的小猫咪
|
||||
- 想吃肉的小猫咪 + 炭烤萨卡班甲鱼 = 心满意足的小猫咪
|
||||
- 想吃肉的小猫咪 + 脆香bro = 心满意足的小猫咪
|
||||
|
||||
### 终极合成配方
|
||||
|
||||
#### Lover's Lover 合成配方
|
||||
需要以下9种材料(无序合成):
|
||||
- 1x 一只心怀歹念的小猫咪
|
||||
- 1x 脆香bro
|
||||
- 1x 香喷喷的串海星
|
||||
- 1x 闷牢菜
|
||||
- 1x 烤棉花糖
|
||||
- 1x 致癌的棉花糖
|
||||
- 1x 棉花糖
|
||||
- 1x 炭烤萨卡班甲鱼
|
||||
- 1x 黑糖团子
|
||||
|
||||
## 游戏机制
|
||||
|
||||
### 小猫咪饮食系统
|
||||
1. **普通小猫咪**可以吃任何可食用物品
|
||||
2. **素食**会让小猫咪变成想吃肉的状态
|
||||
3. **肉类**会让小猫咪变得心满意足
|
||||
4. **萝卜**会让小猫咪进入发情状态
|
||||
5. **想吃肉的小猫咪**吃到肉类后会变得心满意足
|
||||
|
||||
### 食物分类
|
||||
- **素食**: 闷牢菜
|
||||
- **肉类**: 香喷喷的串海星、炭烤萨卡班甲鱼、脆香bro
|
||||
- **甜食**: 黑糖团子、棉花糖、烤棉花糖、致癌的棉花糖
|
||||
- **终极食物**: Lover's Lover(最高营养价值的终极美食)
|
||||
- **特殊**: 萝卜(触发发情状态)
|
||||
|
||||
### 营养价值
|
||||
- **Lover's Lover**: 10点饥饿值,20.0饱和度
|
||||
- **炭烤萨卡班甲鱼**: 9点饥饿值,14.0饱和度
|
||||
- **香喷喷的串海星**: 7点饥饿值,10.0饱和度
|
||||
- **脆香bro**: 6点饥饿值,8.0饱和度
|
||||
- **闷牢菜**: 5点饥饿值,7.0饱和度
|
||||
- **黑糖团子**: 4点饥饿值,9.6饱和度
|
||||
- **烤棉花糖**: 3点饥饿值,5.0饱和度
|
||||
- **棉花糖**: 2点饥饿值,2.0饱和度
|
||||
- **致癌的棉花糖**: 0点饥饿值,0.0饱和度(纯装饰)
|
||||
|
||||
## 制作链条
|
||||
|
||||
### 海星制作链
|
||||
坚不可摧的海星 → 海星串 → 香喷喷的串海星
|
||||
|
||||
### 甲鱼制作链
|
||||
萨卡班甲鱼 → 腌好的萨卡班甲鱼 → 炭烤萨卡班甲鱼
|
||||
|
||||
### 蔬菜制作链
|
||||
一锅牢菜 → 闷牢菜
|
||||
|
||||
### 棉花糖制作链
|
||||
棉花糖 → 烤棉花糖/致癌的棉花糖
|
||||
|
||||
## 安装说明
|
||||
|
||||
1. 确保已安装Minecraft Forge 1.21.4
|
||||
2. 将mod文件放入mods文件夹
|
||||
3. 启动游戏即可体验
|
||||
4. 所有物品都会出现在创造模式的"食物和饮品"标签页中
|
||||
|
||||
## 版本信息
|
||||
|
||||
- Minecraft版本: 1.21.4
|
||||
- Forge版本: 兼容最新版本
|
||||
- 模组ID: blacksugarmod
|
||||
|
||||
## 特色功能
|
||||
|
||||
- 🐱 独特的小猫咪互动系统
|
||||
- 🍖 丰富的食物制作链条
|
||||
- 🎯 多样化的合成配方
|
||||
- 🌟 终极物品"Lover's Lover"挑战
|
||||
- 📊 详细的营养价值系统
|
||||
|
||||
享受与小猫咪们和美食的美好时光吧!🐱🍽️
|
||||
If at any point you are missing libraries in your IDE, or you've run into problems you can
|
||||
run `gradlew --refresh-dependencies` to refresh the local cache. `gradlew clean` to reset everything
|
||||
(this does not affect your code) and then start the process again.
|
||||
|
||||
Mapping Names:
|
||||
=============================
|
||||
By default, the MDK is configured to use the official mapping names from Mojang for methods and fields
|
||||
in the Minecraft codebase. These names are covered by a specific license. All modders should be aware of this
|
||||
license, if you do not agree with it you can change your mapping names to other crowdsourced names in your
|
||||
build.gradle. For the latest license text, refer to the mapping file itself, or the reference copy here:
|
||||
https://github.com/MinecraftForge/MCPConfig/blob/master/Mojang.md
|
||||
|
||||
Additional Resources:
|
||||
=========================
|
||||
Community Documentation: https://docs.minecraftforge.net/en/1.20.1/gettingstarted/
|
||||
LexManos' Install Video: https://youtu.be/8VEdtQLuLO0
|
||||
Forge Forums: https://forums.minecraftforge.net/
|
||||
Forge Discord: https://discord.minecraftforge.net/
|
||||
|
||||
BIN
black_sugar.png
104
build.gradle
@@ -2,7 +2,7 @@ plugins {
|
||||
id 'eclipse'
|
||||
id 'idea'
|
||||
id 'maven-publish'
|
||||
id 'net.minecraftforge.gradle' version '[6.0.36,6.2)'
|
||||
id 'net.minecraftforge.gradle' version '[6.0,6.2)'
|
||||
}
|
||||
|
||||
version = mod_version
|
||||
@@ -12,8 +12,8 @@ base {
|
||||
archivesName = mod_id
|
||||
}
|
||||
|
||||
// Mojang ships Java 21 to end users in 1.20.5+, so your mod should target Java 21.
|
||||
java.toolchain.languageVersion = JavaLanguageVersion.of(21)
|
||||
// Mojang ships Java 17 to end users in 1.18+, so your mod should target Java 17.
|
||||
java.toolchain.languageVersion = JavaLanguageVersion.of(17)
|
||||
|
||||
println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}"
|
||||
minecraft {
|
||||
@@ -22,15 +22,16 @@ minecraft {
|
||||
// official MCVersion Official field/method names from Mojang mapping files
|
||||
// parchment YYYY.MM.DD-MCVersion Open community-sourced parameter names and javadocs layered on top of official
|
||||
//
|
||||
// You must be aware of the Mojang license when using the 'official' or 'parchment' mappings.
|
||||
// See more information here: https://github.com/MinecraftForge/MCPConfig/blob/master/Mojang.md
|
||||
//
|
||||
// Parchment is an unofficial project maintained by ParchmentMC, separate from MinecraftForge
|
||||
// Additional setup is needed to use their mappings: https://parchmentmc.org/docs/getting-started
|
||||
//
|
||||
// Use non-default mappings at your own risk. They may not always work.
|
||||
// Simply re-run your setup task after changing the mappings to update your workspace.
|
||||
mappings channel: mapping_channel, version: mapping_version
|
||||
|
||||
// Forge 1.20.6 and newer use official mappings at runtime, so we shouldn't reobf from official to SRG
|
||||
reobf = false
|
||||
|
||||
// When true, this property will have all Eclipse/IntelliJ IDEA run configurations run the "prepareX" task for the given run configuration before launching the game.
|
||||
// In most cases, it is not necessary to enable.
|
||||
// enableEclipsePrepareRuns = true
|
||||
@@ -46,7 +47,8 @@ minecraft {
|
||||
// By default, the folder name of a run configuration is the name of the Gradle project containing it.
|
||||
// generateRunFolders = true
|
||||
|
||||
// This property enables access transformers for use in development, applied to the Minecraft artifact.
|
||||
// This property enables access transformers for use in development.
|
||||
// They will be applied to the Minecraft artifact.
|
||||
// The access transformer file can be anywhere in the project.
|
||||
// However, it must be at "META-INF/accesstransformer.cfg" in the final mod jar to be loaded by Forge.
|
||||
// This default location is a best practice to automatically put the file in the right place in the final jar.
|
||||
@@ -60,15 +62,23 @@ minecraft {
|
||||
configureEach {
|
||||
workingDirectory project.file('run')
|
||||
|
||||
// Optional additional logging. The markers can be added/remove as needed, separated by commas.
|
||||
// Recommended logging data for a userdev environment
|
||||
// The markers can be added/remove as needed separated by commas.
|
||||
// "SCAN": For mods scan.
|
||||
// "REGISTRIES": For firing of registry events.
|
||||
// "REGISTRYDUMP": For getting the contents of all registries.
|
||||
// property 'forge.logging.markers', 'REGISTRIES'
|
||||
property 'forge.logging.markers', 'REGISTRIES'
|
||||
|
||||
// Recommended logging level for the console
|
||||
// You can set various levels here.
|
||||
// Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels
|
||||
property 'forge.logging.console.level', 'debug'
|
||||
|
||||
// arg "-mixin.config=${mod_id}.mixins.json"
|
||||
mods {
|
||||
"${mod_id}" {
|
||||
source sourceSets.main
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
client {
|
||||
@@ -103,26 +113,7 @@ sourceSets.main.resources { srcDir 'src/generated/resources' }
|
||||
|
||||
repositories {
|
||||
// Put repositories for dependencies here
|
||||
mavenCentral()
|
||||
maven {
|
||||
name = 'Forge'
|
||||
url = 'https://maven.minecraftforge.net'
|
||||
}
|
||||
maven {
|
||||
name = 'Minecraft libraries'
|
||||
url = 'https://libraries.minecraft.net'
|
||||
}
|
||||
exclusiveContent {
|
||||
forRepository {
|
||||
maven {
|
||||
name = 'Sponge'
|
||||
url = 'https://repo.spongepowered.org/repository/maven-public'
|
||||
}
|
||||
}
|
||||
filter {
|
||||
includeGroupAndSubgroups('org.spongepowered')
|
||||
}
|
||||
}
|
||||
// ForgeGradle automatically adds the Forge maven and Maven Central for you
|
||||
|
||||
// If you have mod jar dependencies in ./libs, you can declare them as a repository like so.
|
||||
// See https://docs.gradle.org/current/userguide/declaring_repositories.html#sub:flat_dir_resolver
|
||||
@@ -139,11 +130,11 @@ dependencies {
|
||||
// then special handling is done to allow a setup of a vanilla dependency without the use of an external repository.
|
||||
minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}"
|
||||
|
||||
// Example mod dependency with JEI
|
||||
// Example mod dependency with JEI - using fg.deobf() ensures the dependency is remapped to your development mappings
|
||||
// The JEI API is declared for compile time use, while the full JEI artifact is used at runtime
|
||||
// compileOnly "mezz.jei:jei-${mc_version}-common-api:${jei_version}"
|
||||
// compileOnly "mezz.jei:jei-${mc_version}-forge-api:${jei_version}"
|
||||
// runtimeOnly "mezz.jei:jei-${mc_version}-forge:${jei_version}"
|
||||
// compileOnly fg.deobf("mezz.jei:jei-${mc_version}-common-api:${jei_version}")
|
||||
// compileOnly fg.deobf("mezz.jei:jei-${mc_version}-forge-api:${jei_version}")
|
||||
// runtimeOnly fg.deobf("mezz.jei:jei-${mc_version}-forge:${jei_version}")
|
||||
|
||||
// Example mod dependency using a mod jar from ./libs with a flat dir repository
|
||||
// This maps to ./libs/coolmod-${mc_version}-${coolmod_version}.jar
|
||||
@@ -159,7 +150,7 @@ dependencies {
|
||||
// A missing property will result in an error. Properties are expanded using ${} Groovy notation.
|
||||
// When "copyIdeResources" is enabled, this will also run before the game launches in IDE environments.
|
||||
// See https://docs.gradle.org/current/dsl/org.gradle.language.jvm.tasks.ProcessResources.html
|
||||
tasks.named('processResources', ProcessResources) {
|
||||
tasks.named('processResources', ProcessResources).configure {
|
||||
var replaceProperties = [
|
||||
minecraft_version: minecraft_version, minecraft_version_range: minecraft_version_range,
|
||||
forge_version: forge_version, forge_version_range: forge_version_range,
|
||||
@@ -175,20 +166,28 @@ tasks.named('processResources', ProcessResources) {
|
||||
}
|
||||
|
||||
// Example for how to get properties into the manifest for reading at runtime.
|
||||
tasks.named('jar', Jar) {
|
||||
tasks.named('jar', Jar).configure {
|
||||
manifest {
|
||||
attributes([
|
||||
'Specification-Title' : mod_id,
|
||||
'Specification-Vendor' : mod_authors,
|
||||
'Specification-Version' : '1', // We are version 1 of ourselves
|
||||
'Implementation-Title' : project.name,
|
||||
'Implementation-Version' : project.jar.archiveVersion,
|
||||
'Implementation-Vendor' : mod_authors
|
||||
'Specification-Title' : mod_id,
|
||||
'Specification-Vendor' : mod_authors,
|
||||
'Specification-Version' : '1', // We are version 1 of ourselves
|
||||
'Implementation-Title' : project.name,
|
||||
'Implementation-Version' : project.jar.archiveVersion,
|
||||
'Implementation-Vendor' : mod_authors,
|
||||
'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
|
||||
])
|
||||
// attributes['MixinConfigs'] = "${mod_id}.mixins.json"
|
||||
}
|
||||
|
||||
// This is the preferred method to reobfuscate your jar file
|
||||
finalizedBy 'reobfJar'
|
||||
}
|
||||
|
||||
// However if you are in a multi-project build, dev time needs unobfed jar files, so you can delay the obfuscation until publishing by doing:
|
||||
// tasks.named('publish').configure {
|
||||
// dependsOn 'reobfJar'
|
||||
// }
|
||||
|
||||
// Example configuration to allow publishing using the maven-publish plugin
|
||||
publishing {
|
||||
publications {
|
||||
@@ -206,22 +205,3 @@ publishing {
|
||||
tasks.withType(JavaCompile).configureEach {
|
||||
options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation
|
||||
}
|
||||
|
||||
// IntelliJ no longer downloads javadocs and sources by default, this tells Gradle to force IntelliJ to do it.
|
||||
idea.module { downloadJavadoc = downloadSources = true }
|
||||
|
||||
eclipse {
|
||||
// Run everytime eclipse builds the code
|
||||
//autoBuildTasks genEclipseRuns
|
||||
// Run when importing the project
|
||||
synchronizationTasks 'genEclipseRuns'
|
||||
}
|
||||
|
||||
// Merge the resources and classes into the same directory, because Java expects modules to be in a single directory.
|
||||
// And if we have it in multiple we have to do performance intensive hacks like having the UnionFileSystem
|
||||
// This will eventually be migrated to ForgeGradle so modders don't need to manually do it. But that is later.
|
||||
sourceSets.each {
|
||||
def dir = layout.buildDirectory.dir("sourcesSets/$it.name")
|
||||
it.output.resourcesDir = dir
|
||||
it.java.destinationDirectory = dir
|
||||
}
|
||||
|
||||
1438
changelog.txt
@@ -1,30 +1,23 @@
|
||||
# Sets default memory used for Gradle commands. Can be overridden by user or command line properties.
|
||||
# Sets default memory used for gradle commands. Can be overridden by user or command line properties.
|
||||
# This is required to provide enough memory for the Minecraft decompilation process.
|
||||
org.gradle.jvmargs=-Xmx5G
|
||||
org.gradle.jvmargs=-Xmx3G
|
||||
org.gradle.daemon=false
|
||||
|
||||
# In the case that Gradle needs to fork to recompile, this will set the memory for that process.
|
||||
systemProp.net.minecraftforge.gradle.repo.recompile.fork=true
|
||||
systemProp.net.minecraftforge.gradle.repo.recompile.fork.args=-Xmx5G
|
||||
|
||||
# Opts-out of ForgeGradle automatically adding mavenCentral(), Forge's maven and MC libs maven to the repositories block
|
||||
systemProp.net.minecraftforge.gradle.repo.attach=false
|
||||
|
||||
|
||||
## Environment Properties
|
||||
|
||||
# The Minecraft version must agree with the Forge version to get a valid artifact
|
||||
minecraft_version=1.21.4
|
||||
minecraft_version=1.20.1
|
||||
# The Minecraft version range can use any release version of Minecraft as bounds.
|
||||
# Snapshots, pre-releases, and release candidates are not guaranteed to sort properly
|
||||
# as they do not follow standard versioning conventions.
|
||||
minecraft_version_range=[1.21.4,1.22)
|
||||
minecraft_version_range=[1.20.1,1.21)
|
||||
# The Forge version must agree with the Minecraft version to get a valid artifact
|
||||
forge_version=54.1.6
|
||||
forge_version=47.4.8
|
||||
# The Forge version range can use any version of Forge as bounds or match the loader version range
|
||||
forge_version_range=[0,)
|
||||
forge_version_range=[47,)
|
||||
# The loader version range can only use the major version of Forge/FML as bounds
|
||||
loader_version_range=[0,)
|
||||
loader_version_range=[47,)
|
||||
# The mapping channel to use for mappings.
|
||||
# The default set of supported mapping channels are ["official", "snapshot", "snapshot_nodoc", "stable", "stable_nodoc"].
|
||||
# Additional mapping channels can be registered through the "channelProviders" extension in a Gradle plugin.
|
||||
@@ -42,7 +35,7 @@ loader_version_range=[0,)
|
||||
mapping_channel=official
|
||||
# The mapping version to query from the mapping channel.
|
||||
# This must match the format required by the mapping channel.
|
||||
mapping_version=1.21.4
|
||||
mapping_version=1.20.1
|
||||
|
||||
|
||||
## Mod Properties
|
||||
@@ -55,7 +48,7 @@ mod_name=BlackSugar Mod
|
||||
# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default.
|
||||
mod_license=All Rights Reserved
|
||||
# The mod version. See https://semver.org/
|
||||
mod_version=0.5.20
|
||||
mod_version=0.5.21
|
||||
# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository.
|
||||
# This should match the base package used for the mod sources.
|
||||
# See https://maven.apache.org/guides/mini/guide-naming-conventions.html
|
||||
|
||||
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
3
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,7 +1,6 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip
|
||||
networkTimeout=10000
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
||||
22
gradlew
vendored
@@ -83,8 +83,7 @@ done
|
||||
# This is normally unused
|
||||
# shellcheck disable=SC2034
|
||||
APP_BASE_NAME=${0##*/}
|
||||
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
||||
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
|
||||
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD=maximum
|
||||
@@ -131,13 +130,10 @@ location of your Java installation."
|
||||
fi
|
||||
else
|
||||
JAVACMD=java
|
||||
if ! command -v java >/dev/null 2>&1
|
||||
then
|
||||
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
@@ -145,7 +141,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||
case $MAX_FD in #(
|
||||
max*)
|
||||
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
# shellcheck disable=SC3045
|
||||
MAX_FD=$( ulimit -H -n ) ||
|
||||
warn "Could not query maximum file descriptor limit"
|
||||
esac
|
||||
@@ -153,7 +149,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||
'' | soft) :;; #(
|
||||
*)
|
||||
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
# shellcheck disable=SC3045
|
||||
ulimit -n "$MAX_FD" ||
|
||||
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||
esac
|
||||
@@ -202,11 +198,11 @@ fi
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Collect all arguments for the java command:
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||
# and any embedded shellness will be escaped.
|
||||
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
||||
# treated as '${Hostname}' itself on the command line.
|
||||
# Collect all arguments for the java command;
|
||||
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
|
||||
# shell script including quotes and variable substitutions, so put them in
|
||||
# double quotes to make sure that they get re-expanded; and
|
||||
# * put everything else in single quotes, so that it's not re-expanded.
|
||||
|
||||
set -- \
|
||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||
|
||||
20
gradlew.bat
vendored
@@ -43,11 +43,11 @@ set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if %ERRORLEVEL% equ 0 goto execute
|
||||
|
||||
echo. 1>&2
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
|
||||
echo. 1>&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||
echo location of your Java installation. 1>&2
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
@@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto execute
|
||||
|
||||
echo. 1>&2
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
|
||||
echo. 1>&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||
echo location of your Java installation. 1>&2
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
|
||||
@@ -9,5 +9,5 @@ pluginManagement {
|
||||
}
|
||||
|
||||
plugins {
|
||||
id 'org.gradle.toolchains.foojay-resolver-convention' version '0.10.0'
|
||||
}
|
||||
id 'org.gradle.toolchains.foojay-resolver-convention' version '0.7.0'
|
||||
}
|
||||
@@ -4,11 +4,14 @@ import com.mojang.logging.LogUtils;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.world.food.FoodProperties;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.CreativeModeTabs;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.material.MapColor;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.event.BuildCreativeModeTabContentsEvent;
|
||||
@@ -27,7 +30,8 @@ import org.slf4j.Logger;
|
||||
|
||||
// 这里的值应该与 META-INF/mods.toml 文件中的条目匹配
|
||||
@Mod(BlackSugarModMain.MODID)
|
||||
public class BlackSugarModMain {
|
||||
public class BlackSugarModMain
|
||||
{
|
||||
// 在一个公共位置定义模组ID,供所有地方引用
|
||||
public static final String MODID = "blacksugarmod";
|
||||
// 直接引用slf4j日志记录器
|
||||
@@ -39,226 +43,35 @@ public class BlackSugarModMain {
|
||||
// 创建一个延迟注册器来保存创造模式标签页,所有标签页都将在"blacksugarmod"命名空间下注册
|
||||
public static final DeferredRegister<CreativeModeTab> CREATIVE_MODE_TABS = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, MODID);
|
||||
|
||||
// 创建黑糖物品,ID为"blacksugarmod:black_sugar"// 黑糖物品
|
||||
// 创建黑糖物品,ID为"blacksugarmod:black_sugar"
|
||||
public static final RegistryObject<Item> BLACK_SUGAR = ITEMS.register("black_sugar",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ITEMS.key("black_sugar"))
|
||||
)
|
||||
() -> new Item(new Item.Properties())
|
||||
);
|
||||
|
||||
// 面团物品
|
||||
public static final RegistryObject<Item> DOUGH = ITEMS.register("dough",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ITEMS.key("dough"))
|
||||
)
|
||||
() -> new Item(new Item.Properties())
|
||||
);
|
||||
|
||||
// 黑糖团子物品,可食用
|
||||
public static final RegistryObject<Item> BLACK_SUGAR_DUMPLING = ITEMS.register("black_sugar_dumpling",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ITEMS.key("black_sugar_dumpling"))
|
||||
.food(new FoodProperties.Builder()
|
||||
.alwaysEdible()
|
||||
.alwaysEat()
|
||||
.nutrition(4)
|
||||
.saturationModifier(9.6f)
|
||||
.saturationMod(9.6f)
|
||||
.build()
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
// 脆香bro物品,可食用
|
||||
public static final RegistryObject<Item> CRISPY_BRO = ITEMS.register("crispy_bro",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ITEMS.key("crispy_bro"))
|
||||
.food(new FoodProperties.Builder()
|
||||
.alwaysEdible()
|
||||
.nutrition(6)
|
||||
.saturationModifier(8.0f)
|
||||
.build()
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
// 食用油物品
|
||||
public static final RegistryObject<Item> COOKING_OIL = ITEMS.register("cooking_oil",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ITEMS.key("cooking_oil"))
|
||||
)
|
||||
);
|
||||
|
||||
// 坚不可摧的海星物品
|
||||
public static final RegistryObject<Item> INDESTRUCTIBLE_STARFISH = ITEMS.register("indestructible_starfish",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ITEMS.key("indestructible_starfish"))
|
||||
)
|
||||
);
|
||||
|
||||
// 串海星物品
|
||||
public static final RegistryObject<Item> STARFISH_SKEWER = ITEMS.register("starfish_skewer",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ITEMS.key("starfish_skewer"))
|
||||
)
|
||||
);
|
||||
|
||||
// 棉花糖物品,可食用
|
||||
public static final RegistryObject<Item> MARSHMALLOW = ITEMS.register("marshmallow",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ITEMS.key("marshmallow"))
|
||||
.food(new FoodProperties.Builder()
|
||||
.alwaysEdible()
|
||||
.nutrition(2)
|
||||
.saturationModifier(2.0f)
|
||||
.build()
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
// 烤棉花糖物品,可食用
|
||||
public static final RegistryObject<Item> ROASTED_MARSHMALLOW = ITEMS.register("roasted_marshmallow",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ITEMS.key("roasted_marshmallow"))
|
||||
.food(new FoodProperties.Builder()
|
||||
.alwaysEdible()
|
||||
.nutrition(3)
|
||||
.saturationModifier(5.0f)
|
||||
.build()
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
// 致癌的棉花糖物品,可食用但无营养
|
||||
public static final RegistryObject<Item> CARCINOGENIC_MARSHMALLOW = ITEMS.register("carcinogenic_marshmallow",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ITEMS.key("carcinogenic_marshmallow"))
|
||||
.food(new FoodProperties.Builder()
|
||||
.alwaysEdible()
|
||||
.nutrition(0)
|
||||
.saturationModifier(0.0f)
|
||||
.build()
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
// 萨卡班甲鱼物品
|
||||
public static final RegistryObject<Item> SAKABAN_TURTLE = ITEMS.register("sakaban_turtle",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ITEMS.key("sakaban_turtle"))
|
||||
)
|
||||
);
|
||||
|
||||
// 葱花物品
|
||||
public static final RegistryObject<Item> SCALLION = ITEMS.register("scallion",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ITEMS.key("scallion"))
|
||||
)
|
||||
);
|
||||
|
||||
// 腌制的甲鱼物品
|
||||
public static final RegistryObject<Item> PICKLED_TURTLE = ITEMS.register("pickled_turtle",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ITEMS.key("pickled_turtle"))
|
||||
)
|
||||
);
|
||||
|
||||
// 一只觉得嘴里淡淡的小猫咪物品
|
||||
public static final RegistryObject<Item> BLAND_KITTEN = ITEMS.register("bland_kitten",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ITEMS.key("bland_kitten"))
|
||||
)
|
||||
);
|
||||
|
||||
// 一只心怀歹念的小猫咪物品,本来是想吃完之后返回自己,然后给玩家上一个超级debuff,现在看来好像有点难
|
||||
public static final RegistryObject<Item> MALICIOUS_KITTEN = ITEMS.register("malicious_kitten",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ITEMS.key("malicious_kitten"))
|
||||
)
|
||||
);
|
||||
|
||||
// 心满意足的小猫咪物品
|
||||
public static final RegistryObject<Item> SATISFIED_KITTEN = ITEMS.register("satisfied_kitten",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ITEMS.key("satisfied_kitten"))
|
||||
)
|
||||
);
|
||||
|
||||
// 发情的小猫咪物品
|
||||
public static final RegistryObject<Item> HORNY_KITTEN = ITEMS.register("horny_kitten",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ITEMS.key("horny_kitten"))
|
||||
)
|
||||
);
|
||||
|
||||
// 想吃肉的小猫咪物品
|
||||
public static final RegistryObject<Item> MEAT_CRAVING_KITTEN = ITEMS.register("meat_craving_kitten",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ITEMS.key("meat_craving_kitten"))
|
||||
)
|
||||
);
|
||||
|
||||
// 香喷喷的串海星物品,可食用
|
||||
public static final RegistryObject<Item> FRAGRANT_STARFISH_SKEWER = ITEMS.register("fragrant_starfish_skewer",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ITEMS.key("fragrant_starfish_skewer"))
|
||||
.food(new FoodProperties.Builder()
|
||||
.alwaysEdible()
|
||||
.nutrition(7)
|
||||
.saturationModifier(10.0f)
|
||||
.build()
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
// 一锅牢菜物品
|
||||
public static final RegistryObject<Item> POT_OF_PRISON_VEGETABLES = ITEMS.register("pot_of_prison_vegetables",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ITEMS.key("pot_of_prison_vegetables"))
|
||||
)
|
||||
);
|
||||
|
||||
// 闷牢菜物品,可食用
|
||||
public static final RegistryObject<Item> BRAISED_PRISON_VEGETABLES = ITEMS.register("braised_prison_vegetables",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ITEMS.key("braised_prison_vegetables"))
|
||||
.food(new FoodProperties.Builder()
|
||||
.alwaysEdible()
|
||||
.nutrition(5)
|
||||
.saturationModifier(7.0f)
|
||||
.build()
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
// 碳烤甲鱼物品,可食用
|
||||
public static final RegistryObject<Item> CHARCOAL_GRILLED_TURTLE = ITEMS.register("charcoal_grilled_turtle",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ITEMS.key("charcoal_grilled_turtle"))
|
||||
.food(new FoodProperties.Builder()
|
||||
.alwaysEdible()
|
||||
.nutrition(9)
|
||||
.saturationModifier(14.0f)
|
||||
.build()
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
// Lover's Lover物品,可食用
|
||||
public static final RegistryObject<Item> LOVERS_LOVER = ITEMS.register("lovers_lover",
|
||||
() -> new Item(new Item.Properties()
|
||||
.setId(ITEMS.key("lovers_lover"))
|
||||
.food(new FoodProperties.Builder()
|
||||
.alwaysEdible()
|
||||
.nutrition(10)
|
||||
.saturationModifier(20.0f)
|
||||
.build()
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
public BlackSugarModMain(FMLJavaModLoadingContext context) {
|
||||
public BlackSugarModMain(FMLJavaModLoadingContext context)
|
||||
{
|
||||
IEventBus modEventBus = context.getModEventBus();
|
||||
|
||||
// 为模组加载注册commonSetup方法
|
||||
modEventBus.addListener(this::commonSetup);
|
||||
|
||||
// 将延迟注册器注册到模组事件总线,以便方块得到注册
|
||||
BLOCKS.register(modEventBus);
|
||||
// 将延迟注册器注册到模组事件总线,以便物品得到注册
|
||||
@@ -276,37 +89,8 @@ public class BlackSugarModMain {
|
||||
context.registerConfig(ModConfig.Type.COMMON, Config.SPEC);
|
||||
}
|
||||
|
||||
// 将示例方块物品添加到建筑方块标签页
|
||||
private void addCreative(BuildCreativeModeTabContentsEvent event) {
|
||||
// 将黑糖物品添加到食物和饮品标签页
|
||||
if (event.getTabKey() == CreativeModeTabs.FOOD_AND_DRINKS) {
|
||||
event.accept(BLACK_SUGAR);
|
||||
event.accept(DOUGH);
|
||||
event.accept(BLACK_SUGAR_DUMPLING);
|
||||
event.accept(CRISPY_BRO);
|
||||
event.accept(COOKING_OIL);
|
||||
event.accept(INDESTRUCTIBLE_STARFISH);
|
||||
event.accept(STARFISH_SKEWER);
|
||||
event.accept(MARSHMALLOW);
|
||||
event.accept(ROASTED_MARSHMALLOW);
|
||||
event.accept(CARCINOGENIC_MARSHMALLOW);
|
||||
event.accept(SAKABAN_TURTLE);
|
||||
event.accept(SCALLION);
|
||||
event.accept(PICKLED_TURTLE);
|
||||
event.accept(BLAND_KITTEN);
|
||||
event.accept(MALICIOUS_KITTEN);
|
||||
event.accept(SATISFIED_KITTEN);
|
||||
event.accept(HORNY_KITTEN);
|
||||
event.accept(MEAT_CRAVING_KITTEN);
|
||||
event.accept(FRAGRANT_STARFISH_SKEWER);
|
||||
event.accept(POT_OF_PRISON_VEGETABLES);
|
||||
event.accept(BRAISED_PRISON_VEGETABLES);
|
||||
event.accept(CHARCOAL_GRILLED_TURTLE);
|
||||
event.accept(LOVERS_LOVER);
|
||||
}
|
||||
}
|
||||
|
||||
private void commonSetup(final FMLCommonSetupEvent event) {
|
||||
private void commonSetup(final FMLCommonSetupEvent event)
|
||||
{
|
||||
// 一些通用设置代码
|
||||
LOGGER.info("HELLO FROM COMMON SETUP");
|
||||
|
||||
@@ -318,20 +102,31 @@ public class BlackSugarModMain {
|
||||
Config.items.forEach((item) -> LOGGER.info("ITEM >> {}", item.toString()));
|
||||
}
|
||||
|
||||
|
||||
// 将黑糖物品添加到食物和饮品标签页
|
||||
private void addCreative(BuildCreativeModeTabContentsEvent event)
|
||||
{
|
||||
if (event.getTabKey() == CreativeModeTabs.FOOD_AND_DRINKS) {
|
||||
event.accept(BLACK_SUGAR);
|
||||
event.accept(DOUGH);
|
||||
event.accept(BLACK_SUGAR_DUMPLING);
|
||||
}
|
||||
}
|
||||
|
||||
// 你可以使用SubscribeEvent并让事件总线发现要调用的方法
|
||||
@SubscribeEvent
|
||||
public void onServerStarting(ServerStartingEvent event) {
|
||||
public void onServerStarting(ServerStartingEvent event)
|
||||
{
|
||||
// 当服务器启动时执行某些操作
|
||||
LOGGER.info("HELLO from server starting");
|
||||
}
|
||||
|
||||
// 你可以使用EventBusSubscriber来自动注册类中所有带有@SubscribeEvent注解的静态方法
|
||||
@Mod.EventBusSubscriber(modid = MODID, bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT)
|
||||
public static class ClientModEvents {
|
||||
public static class ClientModEvents
|
||||
{
|
||||
@SubscribeEvent
|
||||
public static void onClientSetup(FMLClientSetupEvent event) {
|
||||
public static void onClientSetup(FMLClientSetupEvent event)
|
||||
{
|
||||
// 一些客户端设置代码
|
||||
LOGGER.info("HELLO FROM CLIENT SETUP");
|
||||
LOGGER.info("MINECRAFT NAME >> {}", Minecraft.getInstance().getUser().getName());
|
||||
|
||||
@@ -15,7 +15,8 @@ import java.util.stream.Collectors;
|
||||
// An example config class. This is not required, but it's a good idea to have one to keep your config organized.
|
||||
// Demonstrates how to use Forge's config APIs
|
||||
@Mod.EventBusSubscriber(modid = BlackSugarModMain.MODID, bus = Mod.EventBusSubscriber.Bus.MOD)
|
||||
public class Config {
|
||||
public class Config
|
||||
{
|
||||
private static final ForgeConfigSpec.Builder BUILDER = new ForgeConfigSpec.Builder();
|
||||
|
||||
private static final ForgeConfigSpec.BooleanValue LOG_DIRT_BLOCK = BUILDER
|
||||
@@ -33,7 +34,7 @@ public class Config {
|
||||
// a list of strings that are treated as resource locations for items
|
||||
private static final ForgeConfigSpec.ConfigValue<List<? extends String>> ITEM_STRINGS = BUILDER
|
||||
.comment("A list of items to log on common setup.")
|
||||
.defineListAllowEmpty("assets/blacksugarmod/items", List.of("minecraft:iron_ingot"), Config::validateItemName);
|
||||
.defineListAllowEmpty("items", List.of("minecraft:iron_ingot"), Config::validateItemName);
|
||||
|
||||
static final ForgeConfigSpec SPEC = BUILDER.build();
|
||||
|
||||
@@ -42,19 +43,21 @@ public class Config {
|
||||
public static String magicNumberIntroduction;
|
||||
public static Set<Item> items;
|
||||
|
||||
private static boolean validateItemName(final Object obj) {
|
||||
return obj instanceof final String itemName && ForgeRegistries.ITEMS.containsKey(ResourceLocation.tryParse(itemName));
|
||||
private static boolean validateItemName(final Object obj)
|
||||
{
|
||||
return obj instanceof final String itemName && ForgeRegistries.ITEMS.containsKey(ResourceLocation.parse(itemName));
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
static void onLoad(final ModConfigEvent event) {
|
||||
static void onLoad(final ModConfigEvent event)
|
||||
{
|
||||
logDirtBlock = LOG_DIRT_BLOCK.get();
|
||||
magicNumber = MAGIC_NUMBER.get();
|
||||
magicNumberIntroduction = MAGIC_NUMBER_INTRODUCTION.get();
|
||||
|
||||
// convert the list of strings into a set of items
|
||||
items = ITEM_STRINGS.get().stream()
|
||||
.map(itemName -> ForgeRegistries.ITEMS.getValue(ResourceLocation.tryParse(itemName)))
|
||||
.map(itemName -> ForgeRegistries.ITEMS.getValue(ResourceLocation.parse(itemName)))
|
||||
.collect(Collectors.toSet());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,18 +19,20 @@ license="${mod_license}"
|
||||
[[mods]] #mandatory
|
||||
# The modid of the mod
|
||||
modId="${mod_id}" #mandatory
|
||||
# The version number of the mod
|
||||
# The version number of the mod - there's a few well known ${} variables useable here or just hardcode it
|
||||
# ${mod_version} will substitute the value from gradle.properties
|
||||
# see the associated build.gradle script for how to populate this completely automatically
|
||||
version="${mod_version}" #mandatory
|
||||
# A display name for the mod
|
||||
# A display name for the mod
|
||||
displayName="${mod_name}" #mandatory
|
||||
# A URL to query for updates for this mod. See the JSON update specification https://docs.minecraftforge.net/en/latest/misc/updatechecker/
|
||||
#updateJSONURL="https://change.me.example.invalid/updates.json" #optional
|
||||
# A URL for the "homepage" for this mod, displayed in the mod UI
|
||||
#displayURL="https://change.me.to.your.mods.homepage.example.invalid/" #optional
|
||||
# A file name (in the root of the mod JAR) containing a logo for display
|
||||
#logoFile="examplemod.png" #optional
|
||||
logoFile="examplemod.png" #optional
|
||||
# A text field displayed in the mod UI
|
||||
#credits="" #optional
|
||||
credits="${mod_description}" #optional
|
||||
# A text field displayed in the mod UI
|
||||
authors="${mod_authors}" #optional
|
||||
# Display Test controls the display for your mod in the server connection screen
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "blacksugarmod:item/bland_kitten"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "blacksugarmod:item/braised_prison_vegetables"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "blacksugarmod:item/carcinogenic_marshmallow"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "blacksugarmod:item/charcoal_grilled_turtle"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "blacksugarmod:item/cooking_oil"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "blacksugarmod:item/crispy_bro"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "blacksugarmod:item/fragrant_starfish_skewer"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "blacksugarmod:item/horny_kitten"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "blacksugarmod:item/indestructible_starfish"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "blacksugarmod:item/lovers_lover"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "blacksugarmod:item/malicious_kitten"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "blacksugarmod:item/marshmallow"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "blacksugarmod:item/meat_craving_kitten"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "blacksugarmod:item/pickled_turtle"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "blacksugarmod:item/pot_of_prison_vegetables"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "blacksugarmod:item/roasted_marshmallow"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "blacksugarmod:item/sakaban_turtle"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "blacksugarmod:item/satisfied_kitten"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "blacksugarmod:item/scallion"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "blacksugarmod:item/starfish_skewer"
|
||||
}
|
||||
}
|
||||
@@ -1,25 +1,5 @@
|
||||
{
|
||||
"item.blacksugarmod.black_sugar": "黑糖",
|
||||
"item.blacksugarmod.dough": "面团",
|
||||
"item.blacksugarmod.black_sugar_dumpling": "黑糖团子",
|
||||
"item.blacksugarmod.crispy_bro": "脆香bro",
|
||||
"item.blacksugarmod.cooking_oil": "食用油",
|
||||
"item.blacksugarmod.indestructible_starfish": "坚不可摧的海星",
|
||||
"item.blacksugarmod.starfish_skewer": "海星串",
|
||||
"item.blacksugarmod.marshmallow": "棉花糖",
|
||||
"item.blacksugarmod.roasted_marshmallow": "烤棉花糖",
|
||||
"item.blacksugarmod.carcinogenic_marshmallow": "致癌的棉花糖",
|
||||
"item.blacksugarmod.sakaban_turtle": "萨卡班甲鱼",
|
||||
"item.blacksugarmod.scallion": "葱花",
|
||||
"item.blacksugarmod.pickled_turtle": "腌好的萨卡班甲鱼",
|
||||
"item.blacksugarmod.bland_kitten": "一只觉得嘴里淡淡的小猫咪",
|
||||
"item.blacksugarmod.malicious_kitten": "一只心怀歹念的小猫咪",
|
||||
"item.blacksugarmod.fragrant_starfish_skewer": "香喷喷的串海星",
|
||||
"item.blacksugarmod.pot_of_prison_vegetables": "一锅牢菜",
|
||||
"item.blacksugarmod.braised_prison_vegetables": "闷牢菜",
|
||||
"item.blacksugarmod.charcoal_grilled_turtle": "炭烤萨卡班甲鱼",
|
||||
"item.blacksugarmod.satisfied_kitten": "心满意足的小猫咪",
|
||||
"item.blacksugarmod.horny_kitten": "发情的小猫咪",
|
||||
"item.blacksugarmod.meat_craving_kitten": "想吃肉的小猫咪",
|
||||
"item.blacksugarmod.lovers_lover": "Lover's Lover"
|
||||
"item.blacksugarmod.black_sugar_dumpling": "黑糖团子"
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "blacksugarmod:item/bland_kitten"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "blacksugarmod:item/braised_prison_vegetables"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "blacksugarmod:item/carcinogenic_marshmallow"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "blacksugarmod:item/charcoal_grilled_turtle"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "blacksugarmod:item/cooking_oil"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "blacksugarmod:item/crispy_bro"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "blacksugarmod:item/fragrant_starfish_skewer"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "blacksugarmod:item/horny_kitten"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "blacksugarmod:item/indestructible_starfish"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "blacksugarmod:item/lovers_lover"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "blacksugarmod:item/malicious_kitten"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "blacksugarmod:item/marshmallow"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "blacksugarmod:item/bland_kitten"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "blacksugarmod:item/pickled_turtle"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "blacksugarmod:item/pot_of_prison_vegetables"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "blacksugarmod:item/roasted_marshmallow"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "blacksugarmod:item/sakaban_turtle"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "blacksugarmod:item/satisfied_kitten"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "blacksugarmod:item/scallion"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "blacksugarmod:item/starfish_skewer"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:smelting",
|
||||
"experience": 0.1,
|
||||
"cookingtime": 100,
|
||||
"ingredient": "minecraft:sugar_cane",
|
||||
"result":{
|
||||
"id":"blacksugarmod:black_sugar",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"key": {
|
||||
"B":"blacksugarmod:black_sugar",
|
||||
"D":"blacksugarmod:dough"
|
||||
},
|
||||
"pattern": [
|
||||
"BBB",
|
||||
"BDB",
|
||||
"BBB"
|
||||
],
|
||||
"result": {
|
||||
"id": "blacksugarmod:black_sugar_dumpling",
|
||||
"count": 2
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:smelting",
|
||||
"experience": 0.35,
|
||||
"cookingtime": 400,
|
||||
"ingredient": "blacksugarmod:pot_of_prison_vegetables",
|
||||
"result": {
|
||||
"id": "blacksugarmod:braised_prison_vegetables",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:campfire_cooking",
|
||||
"experience": 0.35,
|
||||
"cookingtime": 100,
|
||||
"ingredient": "blacksugarmod:marshmallow",
|
||||
"result": {
|
||||
"id": "blacksugarmod:carcinogenic_marshmallow",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:campfire_cooking",
|
||||
"experience": 0.35,
|
||||
"cookingtime": 200,
|
||||
"ingredient": "blacksugarmod:pickled_turtle",
|
||||
"result": {
|
||||
"id": "blacksugarmod:charcoal_grilled_turtle",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
"minecraft:bone",
|
||||
"blacksugarmod:cooking_oil",
|
||||
"blacksugarmod:scallion"
|
||||
],
|
||||
"result": {
|
||||
"id": "blacksugarmod:crispy_bro",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
"minecraft:wheat",
|
||||
"minecraft:water_bucket",
|
||||
"minecraft:wheat"
|
||||
],
|
||||
"result": {
|
||||
"id": "blacksugarmod:dough",
|
||||
"count": 2
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:campfire_cooking",
|
||||
"experience": 0.35,
|
||||
"cookingtime": 200,
|
||||
"ingredient": "blacksugarmod:starfish_skewer",
|
||||
"result": {
|
||||
"id": "blacksugarmod:fragrant_starfish_skewer",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
"blacksugarmod:bland_kitten",
|
||||
"minecraft:carrot"
|
||||
],
|
||||
"result": {
|
||||
"id": "blacksugarmod:horny_kitten",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
"blacksugarmod:malicious_kitten",
|
||||
"blacksugarmod:crispy_bro",
|
||||
"blacksugarmod:fragrant_starfish_skewer",
|
||||
"blacksugarmod:braised_prison_vegetables",
|
||||
"blacksugarmod:roasted_marshmallow",
|
||||
"blacksugarmod:carcinogenic_marshmallow",
|
||||
"blacksugarmod:marshmallow",
|
||||
"blacksugarmod:charcoal_grilled_turtle",
|
||||
"blacksugarmod:black_sugar_dumpling"
|
||||
],
|
||||
"result": {
|
||||
"id": "blacksugarmod:lovers_lover",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
"blacksugarmod:bland_kitten",
|
||||
"minecraft:nether_wart"
|
||||
],
|
||||
"result": {
|
||||
"id": "blacksugarmod:malicious_kitten",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
"blacksugarmod:bland_kitten",
|
||||
"blacksugarmod:carcinogenic_marshmallow"
|
||||
],
|
||||
"result": {
|
||||
"id": "blacksugarmod:meat_craving_kitten",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
"blacksugarmod:bland_kitten",
|
||||
"blacksugarmod:black_sugar_dumpling"
|
||||
],
|
||||
"result": {
|
||||
"id": "blacksugarmod:meat_craving_kitten",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
"blacksugarmod:bland_kitten",
|
||||
"blacksugarmod:marshmallow"
|
||||
],
|
||||
"result": {
|
||||
"id": "blacksugarmod:meat_craving_kitten",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
"blacksugarmod:bland_kitten",
|
||||
"blacksugarmod:roasted_marshmallow"
|
||||
],
|
||||
"result": {
|
||||
"id": "blacksugarmod:meat_craving_kitten",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
"blacksugarmod:bland_kitten",
|
||||
"blacksugarmod:braised_prison_vegetables"
|
||||
],
|
||||
"result": {
|
||||
"id": "blacksugarmod:meat_craving_kitten",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
"blacksugarmod:sakaban_turtle",
|
||||
"blacksugarmod:scallion",
|
||||
"blacksugarmod:cooking_oil"
|
||||
],
|
||||
"result": {
|
||||
"id": "blacksugarmod:pickled_turtle",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
"minecraft:poppy",
|
||||
"minecraft:carrot",
|
||||
"minecraft:water_bucket"
|
||||
],
|
||||
"result": {
|
||||
"id": "blacksugarmod:pot_of_prison_vegetables",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:smelting",
|
||||
"experience": 0.35,
|
||||
"cookingtime": 100,
|
||||
"ingredient": "blacksugarmod:marshmallow",
|
||||
"result": {
|
||||
"id": "blacksugarmod:roasted_marshmallow",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
"blacksugarmod:bland_kitten",
|
||||
"blacksugarmod:crispy_bro"
|
||||
],
|
||||
"result": {
|
||||
"id": "blacksugarmod:satisfied_kitten",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
"blacksugarmod:meat_craving_kitten",
|
||||
"blacksugarmod:crispy_bro"
|
||||
],
|
||||
"result": {
|
||||
"id": "blacksugarmod:satisfied_kitten",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
"blacksugarmod:meat_craving_kitten",
|
||||
"blacksugarmod:fragrant_starfish_skewer"
|
||||
],
|
||||
"result": {
|
||||
"id": "blacksugarmod:satisfied_kitten",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
"blacksugarmod:meat_craving_kitten",
|
||||
"blacksugarmod:charcoal_grilled_turtle"
|
||||
],
|
||||
"result": {
|
||||
"id": "blacksugarmod:satisfied_kitten",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
"blacksugarmod:bland_kitten",
|
||||
"blacksugarmod:fragrant_starfish_skewer"
|
||||
],
|
||||
"result": {
|
||||
"id": "blacksugarmod:satisfied_kitten",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
"blacksugarmod:bland_kitten",
|
||||
"blacksugarmod:charcoal_grilled_turtle"
|
||||
],
|
||||
"result": {
|
||||
"id": "blacksugarmod:satisfied_kitten",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
"blacksugarmod:indestructible_starfish",
|
||||
"blacksugarmod:indestructible_starfish",
|
||||
"blacksugarmod:indestructible_starfish",
|
||||
"minecraft:nether_wart",
|
||||
"blacksugarmod:cooking_oil",
|
||||
"blacksugarmod:scallion",
|
||||
"minecraft:stick"
|
||||
],
|
||||
"result": {
|
||||
"id": "blacksugarmod:starfish_skewer",
|
||||
"count": 1
|
||||
}
|
||||
}
|
||||