Compare commits

..

2 Commits
1.0.0 ... main

Author SHA1 Message Date
a0378e44ab Replaced static json data files with datagen 2023-05-12 18:58:46 +02:00
702b64ecc0 Fixed small upgrades needed display bug 2023-05-11 19:39:44 +02:00
39 changed files with 392 additions and 249 deletions

View File

@ -1 +1 @@
mattv
mquarry

View File

@ -1,11 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="EntryPointsManager">
<list size="4">
<item index="0" class="java.lang.String" itemvalue="net.minecraftforge.fml.common.Mod" />
<item index="1" class="java.lang.String" itemvalue="net.minecraftforge.fml.common.Mod.EventHandler" />
<item index="2" class="java.lang.String" itemvalue="net.minecraftforge.fml.common.eventhandler.SubscribeEvent" />
<item index="3" class="java.lang.String" itemvalue="net.minecraftforge.eventbus.api.SubscribeEvent" />
<list size="5">
<item index="0" class="java.lang.String" itemvalue="net.minecraftforge.eventbus.api.SubscribeEvent" />
<item index="1" class="java.lang.String" itemvalue="net.minecraftforge.fml.common.Mod" />
<item index="2" class="java.lang.String" itemvalue="net.minecraftforge.fml.common.Mod.EventBusSubscriber" />
<item index="3" class="java.lang.String" itemvalue="net.minecraftforge.fml.common.Mod.EventHandler" />
<item index="4" class="java.lang.String" itemvalue="net.minecraftforge.fml.common.eventhandler.SubscribeEvent" />
</list>
</component>
<component name="ExternalStorageConfigurationManager" enabled="true" />

View File

@ -2,9 +2,8 @@
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/modules/mattv.iml" filepath="$PROJECT_DIR$/.idea/modules/mattv.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/mattv.main.iml" filepath="$PROJECT_DIR$/.idea/modules/mattv.main.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/mattv.test.iml" filepath="$PROJECT_DIR$/.idea/modules/mattv.test.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/mquarry.main.iml" filepath="$PROJECT_DIR$/.idea/modules/mquarry.main.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/mquarry.test.iml" filepath="$PROJECT_DIR$/.idea/modules/mquarry.test.iml" />
</modules>
</component>
</project>

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="AdditionalModuleElements">
<content url="file://$MODULE_DIR$/../.." dumb="true">
<excludeFolder url="file://$MODULE_DIR$/../../run" />
</content>
</component>
</module>

View File

@ -3,9 +3,14 @@
<component name="FacetManager">
<facet type="minecraft" name="Minecraft">
<configuration>
<userChosenTypes>
<map>
<entry key="ARCHITECTURY" value="false" />
<entry key="FORGE" value="true" />
<entry key="FABRIC" value="false" />
</map>
</userChosenTypes>
<autoDetectTypes>
<platformType>FORGE</platformType>
<platformType>MIXIN</platformType>
<platformType>MCP</platformType>
</autoDetectTypes>
</configuration>

View File

@ -4,8 +4,6 @@
<facet type="minecraft" name="Minecraft">
<configuration>
<autoDetectTypes>
<platformType>FORGE</platformType>
<platformType>MIXIN</platformType>
<platformType>MCP</platformType>
</autoDetectTypes>
</configuration>

View File

@ -1,17 +0,0 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="runClient" type="Application" factoryName="Application" singleton="true">
<envs>
<env name="MOD_CLASSES" value="quarry%%$PROJECT_DIR$/build/resources/main:quarry%%$PROJECT_DIR$/build/classes/java/main" />
<env name="MCP_MAPPINGS" value="official_1.18.2" />
</envs>
<option name="MAIN_CLASS_NAME" value="cpw.mods.bootstraplauncher.BootstrapLauncher" />
<module name="mattv.main" />
<option name="PROGRAM_PARAMETERS" value="--launchTarget forgeclientuserdev --version MOD_DEV --assetIndex 1.18 --assetsDir $USER_HOME$/.gradle/caches/forge_gradle/assets --gameDir . --fml.forgeVersion 40.2.2 --fml.mcVersion 1.18.2 --fml.forgeGroup net.minecraftforge --fml.mcpVersion 20220404.173914" />
<option name="VM_PARAMETERS" value="-Dforge.logging.console.level=debug -Dforge.logging.markers=REGISTRIES -DlegacyClassPath.file=$PROJECT_DIR$/build/classpath/runClient_minecraftClasspath.txt -DignoreList=bootstraplauncher,securejarhandler,asm-commons,asm-util,asm-analysis,asm-tree,asm,client-extra,fmlcore,javafmllanguage,lowcodelanguage,mclanguage,forge- -DnativesDirectory=$PROJECT_DIR$/build/natives -DmergeModules=jna-5.10.0.jar,jna-platform-5.10.0.jar,java-objc-bridge-1.0.0.jar -Dforge.enabledGameTestNamespaces=mattv -Dforge.enableGameTest=true -Djava.net.preferIPv6Addresses=system -p $USER_HOME$/.gradle/caches/modules-2/files-2.1/cpw.mods/bootstraplauncher/1.0.0/f55ddbb35612c6745cefc47d1a0d6dbfb25d3982/bootstraplauncher-1.0.0.jar:$USER_HOME$/.gradle/caches/modules-2/files-2.1/cpw.mods/securejarhandler/1.0.3/acbf5e3c8a38fb8bf824a54fe45eee121c510392/securejarhandler-1.0.3.jar:$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-commons/9.2/f4d7f0fc9054386f2893b602454d48e07d4fbead/asm-commons-9.2.jar:$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-util/9.2/fbc178fc5ba3dab50fd7e8a5317b8b647c8e8946/asm-util-9.2.jar:$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-analysis/9.2/7487dd756daf96cab9986e44b9d7bcb796a61c10/asm-analysis-9.2.jar:$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-tree/9.2/d96c99a30f5e1a19b0e609dbb19a44d8518ac01e/asm-tree-9.2.jar:$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm/9.2/81a03f76019c67362299c40e0ba13405f5467bff/asm-9.2.jar --add-modules ALL-MODULE-PATH --add-opens java.base/java.util.jar=cpw.mods.securejarhandler --add-exports java.base/sun.security.util=cpw.mods.securejarhandler --add-exports jdk.naming.dns/com.sun.jndi.dns=java.naming" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/run" />
<method v="2">
<option name="Make" enabled="true" />
<option name="Gradle.BeforeRunTask" enabled="true" tasks=":prepareRunClient" externalProjectPath="$PROJECT_DIR$" />
</method>
</configuration>
</component>

View File

@ -1,17 +0,0 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="runData" type="Application" factoryName="Application" singleton="true">
<envs>
<env name="MOD_CLASSES" value="quarry%%$PROJECT_DIR$/build/resources/main:quarry%%$PROJECT_DIR$/build/classes/java/main" />
<env name="MCP_MAPPINGS" value="official_1.18.2" />
</envs>
<option name="MAIN_CLASS_NAME" value="cpw.mods.bootstraplauncher.BootstrapLauncher" />
<module name="mattv.main" />
<option name="PROGRAM_PARAMETERS" value="--launchTarget forgedatauserdev --assetIndex 1.18 --assetsDir $USER_HOME$/.gradle/caches/forge_gradle/assets --gameDir . --fml.forgeVersion 40.2.2 --fml.mcVersion 1.18.2 --fml.forgeGroup net.minecraftforge --fml.mcpVersion 20220404.173914 --mod quarry --all --output $PROJECT_DIR$/src/generated/resources --existing $PROJECT_DIR$/src/main/resources" />
<option name="VM_PARAMETERS" value="-Dforge.logging.console.level=debug -Dforge.logging.markers=REGISTRIES -DlegacyClassPath.file=$PROJECT_DIR$/build/classpath/runData_minecraftClasspath.txt -DignoreList=bootstraplauncher,securejarhandler,asm-commons,asm-util,asm-analysis,asm-tree,asm,client-extra,fmlcore,javafmllanguage,lowcodelanguage,mclanguage,forge- -DmergeModules=jna-5.10.0.jar,jna-platform-5.10.0.jar,java-objc-bridge-1.0.0.jar -Djava.net.preferIPv6Addresses=system -p $USER_HOME$/.gradle/caches/modules-2/files-2.1/cpw.mods/bootstraplauncher/1.0.0/f55ddbb35612c6745cefc47d1a0d6dbfb25d3982/bootstraplauncher-1.0.0.jar:$USER_HOME$/.gradle/caches/modules-2/files-2.1/cpw.mods/securejarhandler/1.0.3/acbf5e3c8a38fb8bf824a54fe45eee121c510392/securejarhandler-1.0.3.jar:$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-commons/9.2/f4d7f0fc9054386f2893b602454d48e07d4fbead/asm-commons-9.2.jar:$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-util/9.2/fbc178fc5ba3dab50fd7e8a5317b8b647c8e8946/asm-util-9.2.jar:$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-analysis/9.2/7487dd756daf96cab9986e44b9d7bcb796a61c10/asm-analysis-9.2.jar:$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-tree/9.2/d96c99a30f5e1a19b0e609dbb19a44d8518ac01e/asm-tree-9.2.jar:$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm/9.2/81a03f76019c67362299c40e0ba13405f5467bff/asm-9.2.jar --add-modules ALL-MODULE-PATH --add-opens java.base/java.util.jar=cpw.mods.securejarhandler --add-exports java.base/sun.security.util=cpw.mods.securejarhandler --add-exports jdk.naming.dns/com.sun.jndi.dns=java.naming" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/run" />
<method v="2">
<option name="Make" enabled="true" />
<option name="Gradle.BeforeRunTask" enabled="true" tasks=":prepareRunData" externalProjectPath="$PROJECT_DIR$" />
</method>
</configuration>
</component>

View File

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<component>
<configuration default="false" factoryName="Application" name="runGameTestServer" singleton="false" type="Application">
<option name="MAIN_CLASS_NAME" value="cpw.mods.bootstraplauncher.BootstrapLauncher"/>
<option name="VM_PARAMETERS" value="-Dforge.logging.console.level=debug -Dforge.logging.markers=REGISTRIES -DlegacyClassPath.file=/home/mutzi/_/MQuarry/build/classpath/runGameTestServer_minecraftClasspath.txt -DignoreList=bootstraplauncher,securejarhandler,asm-commons,asm-util,asm-analysis,asm-tree,asm,client-extra,fmlcore,javafmllanguage,lowcodelanguage,mclanguage,forge- -DmergeModules=jna-5.10.0.jar,jna-platform-5.10.0.jar,java-objc-bridge-1.0.0.jar -Dforge.enabledGameTestNamespaces=mattv -Djava.net.preferIPv6Addresses=system -p /home/mutzi/.gradle/caches/modules-2/files-2.1/cpw.mods/bootstraplauncher/1.0.0/f55ddbb35612c6745cefc47d1a0d6dbfb25d3982/bootstraplauncher-1.0.0.jar:/home/mutzi/.gradle/caches/modules-2/files-2.1/cpw.mods/securejarhandler/1.0.3/acbf5e3c8a38fb8bf824a54fe45eee121c510392/securejarhandler-1.0.3.jar:/home/mutzi/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-commons/9.2/f4d7f0fc9054386f2893b602454d48e07d4fbead/asm-commons-9.2.jar:/home/mutzi/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-util/9.2/fbc178fc5ba3dab50fd7e8a5317b8b647c8e8946/asm-util-9.2.jar:/home/mutzi/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-analysis/9.2/7487dd756daf96cab9986e44b9d7bcb796a61c10/asm-analysis-9.2.jar:/home/mutzi/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-tree/9.2/d96c99a30f5e1a19b0e609dbb19a44d8518ac01e/asm-tree-9.2.jar:/home/mutzi/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm/9.2/81a03f76019c67362299c40e0ba13405f5467bff/asm-9.2.jar --add-modules ALL-MODULE-PATH --add-opens java.base/java.util.jar=cpw.mods.securejarhandler --add-exports java.base/sun.security.util=cpw.mods.securejarhandler --add-exports jdk.naming.dns/com.sun.jndi.dns=java.naming"/>
<option name="PROGRAM_PARAMETERS" value="--launchTarget forgegametestserveruserdev --gameDir . --fml.forgeVersion 40.2.2 --fml.mcVersion 1.18.2 --fml.forgeGroup net.minecraftforge --fml.mcpVersion 20220404.173914"/>
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/run"/>
<module name="mattv.main"/>
<envs>
<env name="MOD_CLASSES" value="quarry%%$PROJECT_DIR$/build/resources/main:quarry%%$PROJECT_DIR$/build/classes/java/main"/>
<env name="MCP_MAPPINGS" value="official_1.18.2"/>
</envs>
<method v="2">
<option enabled="true" name="Make"/>
<option enabled="true" externalProjectPath="$PROJECT_DIR$" name="Gradle.BeforeRunTask" tasks=":prepareRunGameTestServer"/>
</method>
</configuration>
</component>

View File

@ -1,17 +0,0 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="runServer" type="Application" factoryName="Application" singleton="true">
<envs>
<env name="MOD_CLASSES" value="quarry%%$PROJECT_DIR$/build/resources/main:quarry%%$PROJECT_DIR$/build/classes/java/main" />
<env name="MCP_MAPPINGS" value="official_1.18.2" />
</envs>
<option name="MAIN_CLASS_NAME" value="cpw.mods.bootstraplauncher.BootstrapLauncher" />
<module name="mattv.main" />
<option name="PROGRAM_PARAMETERS" value="--launchTarget forgeserveruserdev --gameDir . --fml.forgeVersion 40.2.2 --fml.mcVersion 1.18.2 --fml.forgeGroup net.minecraftforge --fml.mcpVersion 20220404.173914" />
<option name="VM_PARAMETERS" value="-Dforge.logging.console.level=debug -Dforge.logging.markers=REGISTRIES -DlegacyClassPath.file=$PROJECT_DIR$/build/classpath/runServer_minecraftClasspath.txt -DignoreList=bootstraplauncher,securejarhandler,asm-commons,asm-util,asm-analysis,asm-tree,asm,client-extra,fmlcore,javafmllanguage,lowcodelanguage,mclanguage,forge- -DmergeModules=jna-5.10.0.jar,jna-platform-5.10.0.jar,java-objc-bridge-1.0.0.jar -Dforge.enabledGameTestNamespaces=mattv -Dforge.enableGameTest=true -Djava.net.preferIPv6Addresses=system -p $USER_HOME$/.gradle/caches/modules-2/files-2.1/cpw.mods/bootstraplauncher/1.0.0/f55ddbb35612c6745cefc47d1a0d6dbfb25d3982/bootstraplauncher-1.0.0.jar:$USER_HOME$/.gradle/caches/modules-2/files-2.1/cpw.mods/securejarhandler/1.0.3/acbf5e3c8a38fb8bf824a54fe45eee121c510392/securejarhandler-1.0.3.jar:$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-commons/9.2/f4d7f0fc9054386f2893b602454d48e07d4fbead/asm-commons-9.2.jar:$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-util/9.2/fbc178fc5ba3dab50fd7e8a5317b8b647c8e8946/asm-util-9.2.jar:$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-analysis/9.2/7487dd756daf96cab9986e44b9d7bcb796a61c10/asm-analysis-9.2.jar:$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-tree/9.2/d96c99a30f5e1a19b0e609dbb19a44d8518ac01e/asm-tree-9.2.jar:$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm/9.2/81a03f76019c67362299c40e0ba13405f5467bff/asm-9.2.jar --add-modules ALL-MODULE-PATH --add-opens java.base/java.util.jar=cpw.mods.securejarhandler --add-exports java.base/sun.security.util=cpw.mods.securejarhandler --add-exports jdk.naming.dns/com.sun.jndi.dns=java.naming" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/run" />
<method v="2">
<option name="Make" enabled="true" />
<option name="Gradle.BeforeRunTask" enabled="true" tasks=":prepareRunServer" externalProjectPath="$PROJECT_DIR$" />
</method>
</configuration>
</component>

View File

@ -1,4 +1,3 @@
plugins {
id 'net.minecraftforge.gradle' version '5.1.+'
id 'org.jetbrains.kotlin.jvm' version '1.8.21'
@ -34,67 +33,6 @@ minecraft {
// Default run configurations.
// These can be tweaked, removed, or duplicated as needed.
runs {
client {
workingDirectory project.file('run')
// 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'
// 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'
// Comma-separated list of namespaces to load gametests from. Empty = all namespaces.
property 'forge.enabledGameTestNamespaces', 'mattv'
mods {
quarry {
source sourceSets.main
}
}
}
server {
workingDirectory project.file('run')
property 'forge.logging.markers', 'REGISTRIES'
property 'forge.logging.console.level', 'debug'
property 'forge.enabledGameTestNamespaces', 'mattv'
mods {
quarry {
source sourceSets.main
}
}
}
// This run config launches GameTestServer and runs all registered gametests, then exits.
// By default, the server will crash when no gametests are provided.
// The gametest system is also enabled by default for other run configs under the /test command.
gameTestServer {
workingDirectory project.file('run')
property 'forge.logging.markers', 'REGISTRIES'
property 'forge.logging.console.level', 'debug'
property 'forge.enabledGameTestNamespaces', 'mattv'
mods {
quarry {
source sourceSets.main
}
}
}
data {
workingDirectory project.file('run')
@ -103,10 +41,10 @@ minecraft {
property 'forge.logging.console.level', 'debug'
// Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources.
args '--mod', 'quarry', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
args '--mod', 'mquarry', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
mods {
quarry {
mquarry {
source sourceSets.main
}
}

View File

@ -5,4 +5,4 @@ pluginManagement {
}
}
rootProject.name = 'mattv'
rootProject.name = 'mquarry'

View File

@ -0,0 +1,17 @@
7b3fd1814758741d669955a94a335814801dc443 assets/mquarry/blockstates/quarry.json
cfc584fffe5ae3e47f2e43576177fe3b8fc01716 assets/mquarry/lang/en_us.json
0b9c1b24e1c1e35ffefac69707a7fb061aabee1d assets/mquarry/models/block/quarry.json
4cf439a6c11ccf4f890097123eee3c333774d1cf assets/mquarry/models/item/controller.json
4bb1d41c62ac0ff4f0fda72807e95eb4f8ab2db8 assets/mquarry/models/item/quarry.json
26792c633f94d1fe4a1ce9f6cd04857c61446b46 assets/mquarry/models/item/upgrade_fortune.json
b4c303efcde3f154effdfd5e82c96b1f9f7d9a28 assets/mquarry/models/item/upgrade_speed.json
d75bd4ba05c1014ba0c4c17a287d3a442b3ebd55 data/minecraft/tags/blocks/mineable/pickaxe.json
d75bd4ba05c1014ba0c4c17a287d3a442b3ebd55 data/minecraft/tags/blocks/needs_iron_tool.json
57c4a44bb5b0f0caef784a7d3e4a287e8e5e7255 data/mquarry/advancements/recipes/misc/controller.json
56cc9c88e7143b5defc447852bb4f9be5d2362c7 data/mquarry/advancements/recipes/misc/quarry.json
ceb30d9aeb5908beae5298093ef46d0f31de2939 data/mquarry/advancements/recipes/misc/upgrade_fortune.json
7cb959a2d3838c18b463ed39e4216e11bd1234ca data/mquarry/advancements/recipes/misc/upgrade_speed.json
20ae285accbee967d9458ff7c727502ecf987a61 data/mquarry/recipes/controller.json
cd032661812d4df345e9b2b1994b9a70831442e8 data/mquarry/recipes/quarry.json
f04d10d847d84057879a6801c222ce9dc83be8de data/mquarry/recipes/upgrade_fortune.json
49f0b2988a9dc3dd28c93ec4d389e81daf80c04d data/mquarry/recipes/upgrade_speed.json

View File

@ -0,0 +1,6 @@
{
"block.mquarry.quarry": "MQuarry",
"item.mquarry.controller": "MQuarry controller",
"item.mquarry.upgrade_fortune": "MQuarry fortune upgrade",
"item.mquarry.upgrade_speed": "MQuarry speed upgrade"
}

View File

@ -0,0 +1,7 @@
{
"parent": "minecraft:block/cube_column",
"textures": {
"side": "mquarry:blocks/quarry/side",
"end": "mquarry:blocks/quarry/updown"
}
}

View File

@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "mquarry:items/controller"
}

View File

@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "mquarry:items/upgrade_fortune"
}

View File

@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "minecraft:item/generated",
"textures": {
"layer0": "mquarry:items/upgrade_speed"
}

View File

@ -0,0 +1,25 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"mquarry:controller"
]
},
"criteria": {
"never": {
"trigger": "minecraft:impossible"
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "mquarry:controller"
}
}
},
"requirements": [
[
"never",
"has_the_recipe"
]
]
}

View File

@ -0,0 +1,25 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"mquarry:quarry"
]
},
"criteria": {
"never": {
"trigger": "minecraft:impossible"
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "mquarry:quarry"
}
}
},
"requirements": [
[
"never",
"has_the_recipe"
]
]
}

View File

@ -0,0 +1,25 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"mquarry:upgrade_fortune"
]
},
"criteria": {
"never": {
"trigger": "minecraft:impossible"
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "mquarry:upgrade_fortune"
}
}
},
"requirements": [
[
"never",
"has_the_recipe"
]
]
}

View File

@ -0,0 +1,25 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"mquarry:upgrade_speed"
]
},
"criteria": {
"never": {
"trigger": "minecraft:impossible"
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "mquarry:upgrade_speed"
}
}
},
"requirements": [
[
"never",
"has_the_recipe"
]
]
}

View File

@ -0,0 +1,22 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"i i",
"rrr",
" d "
],
"key": {
"i": {
"tag": "forge:ingots/iron"
},
"r": {
"tag": "forge:dusts/redstone"
},
"d": {
"tag": "forge:gems/diamond"
}
},
"result": {
"item": "mquarry:controller"
}
}

View File

@ -0,0 +1,37 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"eEe",
"pRs",
"DGI"
],
"key": {
"e": {
"tag": "forge:ender_pearls"
},
"p": {
"item": "minecraft:netherite_pickaxe"
},
"s": {
"item": "minecraft:netherite_shovel"
},
"E": {
"item": "minecraft:emerald_block"
},
"R": {
"item": "minecraft:redstone_block"
},
"D": {
"item": "minecraft:diamond_block"
},
"G": {
"item": "minecraft:gold_block"
},
"I": {
"item": "minecraft:iron_block"
}
},
"result": {
"item": "mquarry:quarry"
}
}

View File

@ -0,0 +1,25 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"LLL",
"eRe",
"RIR"
],
"key": {
"e": {
"tag": "forge:gems/emerald"
},
"R": {
"item": "minecraft:redstone_block"
},
"I": {
"item": "minecraft:iron_block"
},
"L": {
"item": "minecraft:lapis_block"
}
},
"result": {
"item": "mquarry:upgrade_fortune"
}
}

View File

@ -0,0 +1,25 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"sss",
"dRd",
"RIR"
],
"key": {
"s": {
"item": "minecraft:sugar"
},
"d": {
"tag": "forge:gems/diamond"
},
"R": {
"item": "minecraft:redstone_block"
},
"I": {
"item": "minecraft:iron_block"
}
},
"result": {
"item": "mquarry:upgrade_speed"
}
}

View File

@ -0,0 +1,124 @@
package de.mattv.quarry
import net.minecraft.data.DataGenerator
import net.minecraft.data.recipes.FinishedRecipe
import net.minecraft.data.recipes.RecipeProvider
import net.minecraft.data.recipes.ShapedRecipeBuilder
import net.minecraft.data.tags.BlockTagsProvider
import net.minecraft.tags.BlockTags
import net.minecraft.world.item.Items
import net.minecraftforge.client.model.generators.BlockStateProvider
import net.minecraftforge.client.model.generators.ItemModelProvider
import net.minecraftforge.common.Tags
import net.minecraftforge.common.data.ExistingFileHelper
import net.minecraftforge.common.data.LanguageProvider
import net.minecraftforge.eventbus.api.SubscribeEvent
import net.minecraftforge.fml.common.Mod
import net.minecraftforge.forge.event.lifecycle.GatherDataEvent
import java.util.function.Consumer
@Mod.EventBusSubscriber(modid=QuarryMod.ID, bus=Mod.EventBusSubscriber.Bus.MOD)
object DataGenSubscriber {
@SubscribeEvent
fun gatherData(event: GatherDataEvent) {
val gen = event.generator
if (event.includeServer()) {
gen.addProvider(DataGenBlockTags(gen, event.existingFileHelper))
gen.addProvider(DataGenRecipes(gen))
}
if (event.includeClient()) {
gen.addProvider(DataGenBlockStates(gen, event.existingFileHelper))
gen.addProvider(DataGenItemModels(gen, event.existingFileHelper))
gen.addProvider(DataGenTranslation(gen, "en_us"))
}
}
}
class DataGenBlockStates(gen: DataGenerator?, helper: ExistingFileHelper?) : BlockStateProvider(gen, QuarryMod.ID, helper) {
override fun registerStatesAndModels() {
val quarryBlock = QuarryMod.QUARRY_BLOCK.get()
val quarryUpDown = modLoc("blocks/quarry/updown")
val quarrySide = modLoc("blocks/quarry/side")
simpleBlock(quarryBlock, models().cubeColumn(quarryBlock.registryName!!.path, quarrySide, quarryUpDown))
}
}
class DataGenItemModels(gen: DataGenerator?, helper: ExistingFileHelper?) : ItemModelProvider(gen, QuarryMod.ID, helper) {
override fun registerModels() {
withExistingParent(QuarryMod.QUARRY_ITEM.get().registryName!!.path, modLoc("block/quarry"))
singleTexture(QuarryMod.CONTROLLER_ITEM.get().registryName!!.path, mcLoc("item/generated"), "layer0", modLoc("items/controller"))
singleTexture(QuarryMod.QUARRY_SPEED_UPGRADE.get().registryName!!.path, mcLoc("item/generated"), "layer0", modLoc("items/upgrade_speed"))
singleTexture(QuarryMod.QUARRY_FORTUNE_UPGRADE.get().registryName!!.path, mcLoc("item/generated"), "layer0", modLoc("items/upgrade_fortune"))
}
}
class DataGenBlockTags(gen: DataGenerator, helper: ExistingFileHelper?) : BlockTagsProvider(gen, QuarryMod.ID, helper) {
override fun addTags() {
tag(BlockTags.MINEABLE_WITH_PICKAXE)
.add(QuarryMod.QUARRY_BLOCK.get())
tag(BlockTags.NEEDS_IRON_TOOL)
.add(QuarryMod.QUARRY_BLOCK.get())
}
override fun getName(): String = "MQuarry Tags"
}
class DataGenTranslation(gen: DataGenerator, locale: String) : LanguageProvider(gen, QuarryMod.ID, locale) {
override fun addTranslations() {
add(QuarryMod.QUARRY_BLOCK.get(), "MQuarry")
add(QuarryMod.QUARRY_SPEED_UPGRADE.get(), "MQuarry speed upgrade")
add(QuarryMod.QUARRY_FORTUNE_UPGRADE.get(), "MQuarry fortune upgrade")
add(QuarryMod.CONTROLLER_ITEM.get(), "MQuarry controller")
}
}
class DataGenRecipes(gen: DataGenerator) : RecipeProvider(gen) {
override fun buildCraftingRecipes(consumer: Consumer<FinishedRecipe>) {
ShapedRecipeBuilder.shaped(QuarryMod.QUARRY_ITEM.get())
.pattern("eEe")
.pattern("pRs")
.pattern("DGI")
.define('e', Tags.Items.ENDER_PEARLS)
.define('p', Items.NETHERITE_PICKAXE)
.define('s', Items.NETHERITE_SHOVEL)
.define('E', Items.EMERALD_BLOCK)
.define('R', Items.REDSTONE_BLOCK)
.define('D', Items.DIAMOND_BLOCK)
.define('G', Items.GOLD_BLOCK)
.define('I', Items.IRON_BLOCK)
.unlockedBy("never", net.minecraft.advancements.critereon.ImpossibleTrigger.TriggerInstance())
.save(consumer)
ShapedRecipeBuilder.shaped(QuarryMod.QUARRY_SPEED_UPGRADE.get())
.pattern("sss")
.pattern("dRd")
.pattern("RIR")
.define('s', Items.SUGAR)
.define('d', Tags.Items.GEMS_DIAMOND)
.define('R', Items.REDSTONE_BLOCK)
.define('I', Items.IRON_BLOCK)
.unlockedBy("never", net.minecraft.advancements.critereon.ImpossibleTrigger.TriggerInstance())
.save(consumer)
ShapedRecipeBuilder.shaped(QuarryMod.QUARRY_FORTUNE_UPGRADE.get())
.pattern("LLL")
.pattern("eRe")
.pattern("RIR")
.define('e', Tags.Items.GEMS_EMERALD)
.define('R', Items.REDSTONE_BLOCK)
.define('I', Items.IRON_BLOCK)
.define('L', Items.LAPIS_BLOCK)
.unlockedBy("never", net.minecraft.advancements.critereon.ImpossibleTrigger.TriggerInstance())
.save(consumer)
ShapedRecipeBuilder.shaped(QuarryMod.CONTROLLER_ITEM.get())
.pattern("i i")
.pattern("rrr")
.pattern(" d ")
.define('i', Tags.Items.INGOTS_IRON)
.define('r', Tags.Items.DUSTS_REDSTONE)
.define('d', Tags.Items.GEMS_DIAMOND)
.unlockedBy("never", net.minecraft.advancements.critereon.ImpossibleTrigger.TriggerInstance())
.save(consumer)
}
}

View File

@ -3,19 +3,14 @@ package de.mattv.quarry
import net.minecraft.world.item.BlockItem
import net.minecraft.world.item.CreativeModeTab
import net.minecraft.world.item.Item
import net.minecraft.world.level.block.Block
import net.minecraft.world.level.block.entity.BlockEntityType
import net.minecraftforge.event.RegistryEvent
import net.minecraftforge.eventbus.api.SubscribeEvent
import net.minecraftforge.fml.common.Mod
import net.minecraftforge.registries.DeferredRegister
import net.minecraftforge.registries.ForgeRegistries
import net.minecraftforge.registries.RegistryObject
import thedarkcolour.kotlinforforge.forge.MOD_BUS
import thedarkcolour.kotlinforforge.forge.registerObject
@Mod(QuarryMod.ID)
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
object QuarryMod {
const val ID = "mquarry"
@ -30,9 +25,9 @@ object QuarryMod {
val QUARRY_SPEED_UPGRADE = ITEM_REGISTRY.registerObject("upgrade_speed") { QuarryUpgrade(QuarryUpgrade.Type.SPEED) }
val QUARRY_FORTUNE_UPGRADE = ITEM_REGISTRY.registerObject("upgrade_fortune") { QuarryUpgrade(QuarryUpgrade.Type.FORTUNE) }
val QUARRY_ITEM = ITEM_REGISTRY.registerObject("quarry") { BlockItem(QUARRY_BLOCK.get(), Item.Properties().tab(CreativeModeTab.TAB_MISC)) }
val CONTROLLER_ITEM = ITEM_REGISTRY.registerObject("controller", ::QuarryController)
init {
ITEM_REGISTRY.registerObject("controller", ::QuarryController)
//LOGGER.log(Level.INFO, "MQuarry initializing")
BLOCK_REGISTRY.register(MOD_BUS)
TILES_REGISTRY.register(MOD_BUS)

View File

@ -98,6 +98,8 @@ class QuarryTile(private val myPos: BlockPos, state: BlockState) : BlockEntity(Q
return super<BlockEntity>.getCapability(cap, side)
}
private fun upgradesNeededForLevel(level: Int): Int = level.toFloat().pow(1.5f).toInt()
private fun getPickaxe(): ItemStack = Items.NETHERITE_PICKAXE.defaultInstance.apply {
if (fortuneLevel > 0) enchant(Enchantments.BLOCK_FORTUNE, fortuneLevel)
}
@ -174,7 +176,7 @@ class QuarryTile(private val myPos: BlockPos, state: BlockState) : BlockEntity(Q
speedUpgradesNeeded -= used
if (speedUpgradesNeeded == 0) {
speedLevel++
speedUpgradesNeeded = speedLevel.toFloat().pow(1.5f).toInt()
speedUpgradesNeeded = upgradesNeededForLevel(speedLevel)
player.displayClientMessage(TextComponent("New speed level: $speedLevel, upgrades needed for next level: $speedUpgradesNeeded"), true)
} else
player.displayClientMessage(TextComponent("Upgrades needed for next level: $speedUpgradesNeeded"), true)
@ -184,7 +186,7 @@ class QuarryTile(private val myPos: BlockPos, state: BlockState) : BlockEntity(Q
fortuneUpgradesNeeded -= used
if (fortuneUpgradesNeeded == 0) {
fortuneLevel++
fortuneUpgradesNeeded = fortuneLevel.toFloat().pow(1.5f).toInt()
fortuneUpgradesNeeded = upgradesNeededForLevel(fortuneLevel)
player.displayClientMessage(TextComponent("New fortune level: $fortuneLevel, upgrades needed for next level: $fortuneUpgradesNeeded"), true)
} else
player.displayClientMessage(TextComponent("Upgrades needed for next level: $fortuneUpgradesNeeded"), true)
@ -265,9 +267,9 @@ class QuarryTile(private val myPos: BlockPos, state: BlockState) : BlockEntity(Q
override fun getUpdatePacket(): Packet<ClientGamePacketListener>? = ClientboundBlockEntityDataPacket.create(this)
fun probeInfo(info: IProbeInfo) {
val speedMax = (2.0).pow(speedLevel).toInt()
val speedMax = upgradesNeededForLevel(speedLevel)
info.text("Speed: level $speedLevel, ${speedMax - speedUpgradesNeeded}/$speedMax")
val fortuneMax = (2.0).pow(fortuneLevel).toInt()
val fortuneMax = upgradesNeededForLevel(fortuneLevel)
info.text("Fortune: level $fortuneLevel, ${fortuneMax - fortuneUpgradesNeeded}/$fortuneMax")
if (itemsToDrop.isNotEmpty())
info.text("Waiting to extract items...")

View File

@ -1,7 +0,0 @@
{
"block.mquarry.quarry": "MQuarry",
"item.mquarry.upgrade_speed": "MQuarry speed upgrade",
"item.mquarry.upgrade_fortune": "MQuarry fortune upgrade",
"item.mquarry.controller": "MQuarry controller"
}

View File

@ -1,11 +0,0 @@
{
"parent": "block/cube_all",
"textures": {
"up": "mquarry:blocks/quarry/updown",
"down": "mquarry:blocks/quarry/updown",
"north": "mquarry:blocks/quarry/side",
"south": "mquarry:blocks/quarry/side",
"west": "mquarry:blocks/quarry/side",
"east": "mquarry:blocks/quarry/side"
}
}

View File

@ -1,14 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"i i",
"rrr",
" d "
],
"key": {
"i": { "item": "minecraft:iron_ingot" },
"r": { "item": "minecraft:redstone" },
"d": { "item": "minecraft:diamond" }
},
"result": { "item": "mquarry:controller" }
}

View File

@ -1,19 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"eEe",
"pRs",
"DGI"
],
"key": {
"e": { "item": "minecraft:ender_pearl" },
"p": { "item": "minecraft:netherite_pickaxe" },
"s": { "item": "minecraft:netherite_shovel" },
"E": { "item": "minecraft:emerald_block" },
"R": { "item": "minecraft:redstone_block" },
"D": { "item": "minecraft:diamond_block" },
"G": { "item": "minecraft:gold_block" },
"I": { "item": "minecraft:iron_block" }
},
"result": { "item": "mquarry:quarry" }
}

View File

@ -1,15 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"LLL",
"eRe",
"RIR"
],
"key": {
"L": { "item": "minecraft:lapis_block" },
"e": { "item": "minecraft:emerald" },
"R": { "item": "minecraft:redstone_block" },
"I": { "item": "minecraft:iron_block" }
},
"result": { "item": "mquarry:upgrade_fortune" }
}

View File

@ -1,15 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"sss",
"dRd",
"RIR"
],
"key": {
"s": { "item": "minecraft:sugar" },
"d": { "item": "minecraft:diamond" },
"R": { "item": "minecraft:redstone_block" },
"I": { "item": "minecraft:iron_block" }
},
"result": { "item": "mquarry:upgrade_speed" }
}