diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..2d8f8e5 --- /dev/null +++ b/.classpath @@ -0,0 +1,615 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1ebf95e --- /dev/null +++ b/.gitignore @@ -0,0 +1,22 @@ +# Gradle build system ignores +.gradle/ +build/ + +# Other IDE related folders +.idea/ +.settings/ + +# MCreator workspace cache +.mcreator/ + +# Minecraft client/server files +run/ + +# MCreator generator ignores (auto-regenerated) +src/main/resources/assets/*/models/custom +src/main/resources/assets/*/models/item +src/main/resources/assets/*/textures/blocks +src/main/resources/assets/*/textures/items +src/main/resources/assets/*/textures/models/armor +src/main/resources/assets/*/textures/*.png +src/main/resources/assets/*/sounds diff --git a/.project b/.project new file mode 100644 index 0000000..b32ea59 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + nims_random_bullshit + + + + org.eclipse.jdt.core.javanature + + + + org.eclipse.jdt.core.javabuilder + + + + + + diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..f4a39f2 --- /dev/null +++ b/build.gradle @@ -0,0 +1,54 @@ +plugins { + id 'eclipse' + id 'net.minecraftforge.gradle' version '[6.0.16,6.2)' +} + +version = '1.0' +group = 'com.yourname.modid' +archivesBaseName = 'modid' + +java.toolchain.languageVersion = JavaLanguageVersion.of(17) + +minecraft { + mappings channel: 'official', version: '1.20.1' + + accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') + + copyIdeResources = true + + runs { + client { + def mcreatorJvmOptions = System.getenv('MCREATOR_JVM_OPTIONS') + if (mcreatorJvmOptions) { + jvmArgs += mcreatorJvmOptions.split("\\s+").findAll { it.trim() }.toList() + } + } + + server { + } + + configureEach { + workingDirectory project.file('run') + + property 'forge.logging.markers', 'REGISTRIES' + property 'forge.logging.console.level', 'debug' + + mods { + examplemod { + source sourceSets.main + } + } + } + } +} + +dependencies { + minecraft 'net.minecraftforge:forge:1.20.1-47.3.0' +} + +tasks.withType(JavaCompile).configureEach { + options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation +} + +apply from: 'mcreator.gradle' + diff --git a/elements/BlockEater.mod.json b/elements/BlockEater.mod.json new file mode 100644 index 0000000..ea38ece --- /dev/null +++ b/elements/BlockEater.mod.json @@ -0,0 +1,62 @@ +{ + "_fv": 73, + "_type": "item", + "definition": { + "renderType": 0, + "texture": "block_eater", + "customModelName": "Normal", + "customProperties": {}, + "states": [], + "name": "Block Eater", + "rarity": "EPIC", + "creativeTabs": [ + { + "value": "TOOLS" + } + ], + "stackSize": 1, + "enchantability": 0, + "useDuration": 0, + "toolType": 1.0, + "damageCount": 0, + "recipeRemainder": { + "value": "" + }, + "destroyAnyBlock": false, + "immuneToFire": false, + "stayInGridWhenCrafting": false, + "damageOnCrafting": false, + "enableMeleeDamage": false, + "damageVsEntity": 0.0, + "specialInformation": { + "fixedValue": [] + }, + "glowCondition": { + "fixedValue": false + }, + "inventorySize": 9, + "inventoryStackSize": 64, + "onRightClickedOnBlock": { + "name": "BlockEaterRightclickedOnBlock" + }, + "enableRanged": false, + "shootConstantly": false, + "rangedItemChargesPower": false, + "projectile": { + "value": "Arrow" + }, + "projectileDisableAmmoCheck": false, + "isFood": false, + "nutritionalValue": 4, + "saturation": 0.3, + "eatResultItem": { + "value": "" + }, + "isMeat": false, + "isAlwaysEdible": false, + "animation": "block", + "isMusicDisc": false, + "musicDiscLengthInTicks": 0, + "musicDiscAnalogOutput": 0 + } +} \ No newline at end of file diff --git a/elements/BlockEaterRecipe.mod.json b/elements/BlockEaterRecipe.mod.json new file mode 100644 index 0000000..7d9328a --- /dev/null +++ b/elements/BlockEaterRecipe.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Crafting", + "recipeRetstackSize": 1, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "EQUIPMENT", + "recipeShapeless": false, + "recipeSlots": [ + { + "value": "Items.SKULL#5" + }, + { + "value": "CUSTOM:CondensedCondensedCondensedNetherrack" + }, + { + "value": "" + }, + { + "value": "CUSTOM:CondensedCondensedCondensedNetherrack" + }, + { + "value": "CUSTOM:CondensedCondensedCondensedNetherrack" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + } + ], + "recipeReturnStack": { + "value": "CUSTOM:BlockEater" + }, + "name": "block_eater_recipe", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/BlockEaterRightclickedOnBlock.mod.json b/elements/BlockEaterRightclickedOnBlock.mod.json new file mode 100644 index 0000000..9818ce2 --- /dev/null +++ b/elements/BlockEaterRightclickedOnBlock.mod.json @@ -0,0 +1,7 @@ +{ + "_fv": 73, + "_type": "procedure", + "definition": { + "procedurexml": "no_ext_triggerNEQ-1ADD4GTE20ADD2entity.generic.eatplayer0.50.84END_ROD41110.4600" + } +} \ No newline at end of file diff --git a/elements/BonemealRecipe.mod.json b/elements/BonemealRecipe.mod.json new file mode 100644 index 0000000..a0e9828 --- /dev/null +++ b/elements/BonemealRecipe.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Crafting", + "recipeRetstackSize": 3, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "MISC", + "recipeShapeless": true, + "recipeSlots": [ + { + "value": "CUSTOM:Shit" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + } + ], + "recipeReturnStack": { + "value": "Items.DYE#15" + }, + "name": "bonemeal_recipe", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/BrokenGlass.mod.json b/elements/BrokenGlass.mod.json new file mode 100644 index 0000000..6d43486 --- /dev/null +++ b/elements/BrokenGlass.mod.json @@ -0,0 +1,138 @@ +{ + "_fv": 73, + "_type": "block", + "definition": { + "texture": "broken_glass", + "textureTop": "", + "textureLeft": "", + "textureFront": "", + "textureRight": "", + "textureBack": "", + "renderType": 11, + "customModelName": "Single texture", + "rotationMode": 0, + "enablePitch": false, + "emissiveRendering": false, + "displayFluidOverlay": false, + "itemTexture": "", + "particleTexture": "", + "blockBase": "Pane", + "tintType": "No tint", + "isItemTinted": false, + "hasTransparency": true, + "connectedSides": false, + "transparencyType": "TRANSLUCENT", + "disableOffset": false, + "boundingBoxes": [ + { + "mx": 0.0, + "my": 0.0, + "mz": 0.0, + "Mx": 16.0, + "My": 16.0, + "Mz": 16.0, + "subtract": false + } + ], + "customProperties": [], + "name": "Broken Glass", + "specialInformation": { + "fixedValue": [] + }, + "hardness": 0.3, + "resistance": 0.3, + "hasGravity": false, + "isWaterloggable": false, + "creativeTabs": [ + { + "value": "BUILDING_BLOCKS" + } + ], + "destroyTool": "Not specified", + "customDrop": { + "value": "" + }, + "dropAmount": 1, + "useLootTableForDrops": false, + "requiresCorrectTool": false, + "enchantPowerBonus": 0.0, + "plantsGrowOn": false, + "canRedstoneConnect": false, + "lightOpacity": 0, + "material": { + "value": "GLASS" + }, + "tickRate": 0, + "tickRandomly": false, + "isReplaceable": false, + "canProvidePower": false, + "emittedRedstonePower": { + "fixedValue": 15.0 + }, + "colorOnMap": "DEFAULT", + "creativePickItem": { + "value": "" + }, + "offsetType": "NONE", + "aiPathNodeType": "DEFAULT", + "flammability": 0, + "fireSpreadSpeed": 0, + "isLadder": false, + "slipperiness": 0.6, + "speedFactor": 1.0, + "jumpFactor": 1.0, + "reactionToPushing": "NORMAL", + "isNotColidable": false, + "isCustomSoundType": false, + "soundOnStep": { + "value": "GLASS" + }, + "breakSound": { + "value": "" + }, + "fallSound": { + "value": "" + }, + "hitSound": { + "value": "" + }, + "placeSound": { + "value": "" + }, + "stepSound": { + "value": "" + }, + "luminance": 0, + "unbreakable": false, + "vanillaToolTier": "STONE", + "isBonemealable": false, + "hasInventory": false, + "openGUIOnRightClick": false, + "inventorySize": 9, + "inventoryStackSize": 64, + "inventoryDropWhenDestroyed": true, + "inventoryComparatorPower": true, + "inventoryOutSlotIDs": [], + "inventoryInSlotIDs": [], + "hasEnergyStorage": false, + "energyInitial": 0, + "energyCapacity": 400000, + "energyMaxReceive": 200, + "energyMaxExtract": 200, + "isFluidTank": false, + "fluidCapacity": 8000, + "fluidRestrictions": [], + "generateFeature": false, + "restrictionBiomes": [], + "blocksToReplace": [ + { + "value": "TAG:stone_ore_replaceables" + } + ], + "generationShape": "UNIFORM", + "frequencyPerChunks": 10, + "frequencyOnChunk": 16, + "minGenerateHeight": 0, + "maxGenerateHeight": 64 + } +} \ No newline at end of file diff --git a/elements/BrokenGlassRecipe.mod.json b/elements/BrokenGlassRecipe.mod.json new file mode 100644 index 0000000..9a74d27 --- /dev/null +++ b/elements/BrokenGlassRecipe.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Crafting", + "recipeRetstackSize": 1, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "BUILDING", + "recipeShapeless": false, + "recipeSlots": [ + { + "value": "Items.DYE#1" + }, + { + "value": "" + }, + { + "value": "Items.DYE#2" + }, + { + "value": "" + }, + { + "value": "Blocks.GLASS_PANE" + }, + { + "value": "" + }, + { + "value": "Items.DYE#18" + }, + { + "value": "" + }, + { + "value": "Items.DYE#11" + } + ], + "recipeReturnStack": { + "value": "CUSTOM:BrokenGlass" + }, + "name": "broken_glass_recipe", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/CondensedCondensedCondensedNetherrack.mod.json b/elements/CondensedCondensedCondensedNetherrack.mod.json new file mode 100644 index 0000000..8c0ed94 --- /dev/null +++ b/elements/CondensedCondensedCondensedNetherrack.mod.json @@ -0,0 +1,137 @@ +{ + "_fv": 73, + "_type": "block", + "definition": { + "texture": "condensed_condensed_condensed_netherrack", + "textureTop": "condensed_condensed_condensed_netherrack", + "textureLeft": "condensed_condensed_condensed_netherrack", + "textureFront": "condensed_condensed_condensed_netherrack", + "textureRight": "condensed_condensed_condensed_netherrack", + "textureBack": "condensed_condensed_condensed_netherrack", + "renderType": 10, + "customModelName": "Normal", + "rotationMode": 0, + "enablePitch": false, + "emissiveRendering": false, + "displayFluidOverlay": false, + "itemTexture": "", + "particleTexture": "", + "tintType": "No tint", + "isItemTinted": false, + "hasTransparency": false, + "connectedSides": false, + "transparencyType": "SOLID", + "disableOffset": false, + "boundingBoxes": [ + { + "mx": 0.0, + "my": 0.0, + "mz": 0.0, + "Mx": 16.0, + "My": 16.0, + "Mz": 16.0, + "subtract": false + } + ], + "customProperties": [], + "name": "Condensed Condensed Condensed Netherrack", + "specialInformation": { + "fixedValue": [] + }, + "hardness": 291.6, + "resistance": 291.6, + "hasGravity": false, + "isWaterloggable": false, + "creativeTabs": [ + { + "value": "BUILDING_BLOCKS" + } + ], + "destroyTool": "pickaxe", + "customDrop": { + "value": "" + }, + "dropAmount": 1, + "useLootTableForDrops": false, + "requiresCorrectTool": true, + "enchantPowerBonus": 0.0, + "plantsGrowOn": false, + "canRedstoneConnect": false, + "lightOpacity": 15, + "material": { + "value": "ROCK" + }, + "tickRate": 0, + "tickRandomly": false, + "isReplaceable": false, + "canProvidePower": false, + "emittedRedstonePower": { + "fixedValue": 15.0 + }, + "colorOnMap": "DEFAULT", + "creativePickItem": { + "value": "" + }, + "offsetType": "NONE", + "aiPathNodeType": "DEFAULT", + "flammability": 0, + "fireSpreadSpeed": 0, + "isLadder": false, + "slipperiness": 0.6, + "speedFactor": 1.0, + "jumpFactor": 1.0, + "reactionToPushing": "NORMAL", + "isNotColidable": false, + "isCustomSoundType": false, + "soundOnStep": { + "value": "NETHERRACK" + }, + "breakSound": { + "value": "" + }, + "fallSound": { + "value": "" + }, + "hitSound": { + "value": "" + }, + "placeSound": { + "value": "" + }, + "stepSound": { + "value": "" + }, + "luminance": 0, + "unbreakable": false, + "vanillaToolTier": "NONE", + "isBonemealable": false, + "hasInventory": false, + "openGUIOnRightClick": false, + "inventorySize": 9, + "inventoryStackSize": 64, + "inventoryDropWhenDestroyed": true, + "inventoryComparatorPower": true, + "inventoryOutSlotIDs": [], + "inventoryInSlotIDs": [], + "hasEnergyStorage": false, + "energyInitial": 0, + "energyCapacity": 400000, + "energyMaxReceive": 200, + "energyMaxExtract": 200, + "isFluidTank": false, + "fluidCapacity": 8000, + "fluidRestrictions": [], + "generateFeature": false, + "restrictionBiomes": [], + "blocksToReplace": [ + { + "value": "TAG:stone_ore_replaceables" + } + ], + "generationShape": "UNIFORM", + "frequencyPerChunks": 10, + "frequencyOnChunk": 16, + "minGenerateHeight": 0, + "maxGenerateHeight": 64 + } +} \ No newline at end of file diff --git a/elements/CondensedCondensedCondensedNetherrackRecipe.mod.json b/elements/CondensedCondensedCondensedNetherrackRecipe.mod.json new file mode 100644 index 0000000..302a5a6 --- /dev/null +++ b/elements/CondensedCondensedCondensedNetherrackRecipe.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Crafting", + "recipeRetstackSize": 1, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "BUILDING", + "recipeShapeless": false, + "recipeSlots": [ + { + "value": "CUSTOM:CondensedCondensedNetherrack" + }, + { + "value": "CUSTOM:CondensedCondensedNetherrack" + }, + { + "value": "CUSTOM:CondensedCondensedNetherrack" + }, + { + "value": "CUSTOM:CondensedCondensedNetherrack" + }, + { + "value": "CUSTOM:CondensedCondensedNetherrack" + }, + { + "value": "CUSTOM:CondensedCondensedNetherrack" + }, + { + "value": "CUSTOM:CondensedCondensedNetherrack" + }, + { + "value": "CUSTOM:CondensedCondensedNetherrack" + }, + { + "value": "CUSTOM:CondensedCondensedNetherrack" + } + ], + "recipeReturnStack": { + "value": "CUSTOM:CondensedCondensedCondensedNetherrack" + }, + "name": "condensed_condensed_condensed_netherrack_recipe", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/CondensedCondensedNetherrack.mod.json b/elements/CondensedCondensedNetherrack.mod.json new file mode 100644 index 0000000..6d36953 --- /dev/null +++ b/elements/CondensedCondensedNetherrack.mod.json @@ -0,0 +1,137 @@ +{ + "_fv": 73, + "_type": "block", + "definition": { + "texture": "condensed_condensed_netherrack_1", + "textureTop": "condensed_condensed_netherrack_1", + "textureLeft": "condensed_condensed_netherrack_1", + "textureFront": "condensed_condensed_netherrack_1", + "textureRight": "condensed_condensed_netherrack_1", + "textureBack": "condensed_condensed_netherrack_1", + "renderType": 10, + "customModelName": "Normal", + "rotationMode": 0, + "enablePitch": false, + "emissiveRendering": false, + "displayFluidOverlay": false, + "itemTexture": "", + "particleTexture": "", + "tintType": "No tint", + "isItemTinted": false, + "hasTransparency": false, + "connectedSides": false, + "transparencyType": "SOLID", + "disableOffset": false, + "boundingBoxes": [ + { + "mx": 0.0, + "my": 0.0, + "mz": 0.0, + "Mx": 16.0, + "My": 16.0, + "Mz": 16.0, + "subtract": false + } + ], + "customProperties": [], + "name": "Condensed Condensed Netherrack", + "specialInformation": { + "fixedValue": [] + }, + "hardness": 32.4, + "resistance": 32.4, + "hasGravity": false, + "isWaterloggable": false, + "creativeTabs": [ + { + "value": "BUILDING_BLOCKS" + } + ], + "destroyTool": "pickaxe", + "customDrop": { + "value": "" + }, + "dropAmount": 1, + "useLootTableForDrops": false, + "requiresCorrectTool": true, + "enchantPowerBonus": 0.0, + "plantsGrowOn": false, + "canRedstoneConnect": false, + "lightOpacity": 15, + "material": { + "value": "ROCK" + }, + "tickRate": 0, + "tickRandomly": false, + "isReplaceable": false, + "canProvidePower": false, + "emittedRedstonePower": { + "fixedValue": 15.0 + }, + "colorOnMap": "DEFAULT", + "creativePickItem": { + "value": "" + }, + "offsetType": "NONE", + "aiPathNodeType": "DEFAULT", + "flammability": 0, + "fireSpreadSpeed": 0, + "isLadder": false, + "slipperiness": 0.6, + "speedFactor": 1.0, + "jumpFactor": 1.0, + "reactionToPushing": "NORMAL", + "isNotColidable": false, + "isCustomSoundType": false, + "soundOnStep": { + "value": "NETHERRACK" + }, + "breakSound": { + "value": "" + }, + "fallSound": { + "value": "" + }, + "hitSound": { + "value": "" + }, + "placeSound": { + "value": "" + }, + "stepSound": { + "value": "" + }, + "luminance": 0, + "unbreakable": false, + "vanillaToolTier": "NONE", + "isBonemealable": false, + "hasInventory": false, + "openGUIOnRightClick": false, + "inventorySize": 9, + "inventoryStackSize": 64, + "inventoryDropWhenDestroyed": true, + "inventoryComparatorPower": true, + "inventoryOutSlotIDs": [], + "inventoryInSlotIDs": [], + "hasEnergyStorage": false, + "energyInitial": 0, + "energyCapacity": 400000, + "energyMaxReceive": 200, + "energyMaxExtract": 200, + "isFluidTank": false, + "fluidCapacity": 8000, + "fluidRestrictions": [], + "generateFeature": false, + "restrictionBiomes": [], + "blocksToReplace": [ + { + "value": "TAG:stone_ore_replaceables" + } + ], + "generationShape": "UNIFORM", + "frequencyPerChunks": 10, + "frequencyOnChunk": 16, + "minGenerateHeight": 0, + "maxGenerateHeight": 64 + } +} \ No newline at end of file diff --git a/elements/CondensedCondensedNetherrack2.mod.json b/elements/CondensedCondensedNetherrack2.mod.json new file mode 100644 index 0000000..863a35c --- /dev/null +++ b/elements/CondensedCondensedNetherrack2.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Crafting", + "recipeRetstackSize": 9, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "BUILDING", + "recipeShapeless": true, + "recipeSlots": [ + { + "value": "CUSTOM:CondensedCondensedCondensedNetherrack" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + } + ], + "recipeReturnStack": { + "value": "CUSTOM:CondensedCondensedNetherrack" + }, + "name": "condensed_condensed_netherrack_2", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/CondensedCondensedNetherrackRecipe.mod.json b/elements/CondensedCondensedNetherrackRecipe.mod.json new file mode 100644 index 0000000..76a9791 --- /dev/null +++ b/elements/CondensedCondensedNetherrackRecipe.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Crafting", + "recipeRetstackSize": 1, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "BUILDING", + "recipeShapeless": false, + "recipeSlots": [ + { + "value": "CUSTOM:CondensedNetherrack" + }, + { + "value": "CUSTOM:CondensedNetherrack" + }, + { + "value": "CUSTOM:CondensedNetherrack" + }, + { + "value": "CUSTOM:CondensedNetherrack" + }, + { + "value": "CUSTOM:CondensedNetherrack" + }, + { + "value": "CUSTOM:CondensedNetherrack" + }, + { + "value": "CUSTOM:CondensedNetherrack" + }, + { + "value": "CUSTOM:CondensedNetherrack" + }, + { + "value": "CUSTOM:CondensedNetherrack" + } + ], + "recipeReturnStack": { + "value": "CUSTOM:CondensedCondensedNetherrack" + }, + "name": "condensed_condensed_netherrack_recipe", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/CondensedNetherrack.mod.json b/elements/CondensedNetherrack.mod.json new file mode 100644 index 0000000..9871857 --- /dev/null +++ b/elements/CondensedNetherrack.mod.json @@ -0,0 +1,137 @@ +{ + "_fv": 73, + "_type": "block", + "definition": { + "texture": "condensed_netherrack_1", + "textureTop": "condensed_netherrack_1", + "textureLeft": "condensed_netherrack_1", + "textureFront": "condensed_netherrack_1", + "textureRight": "condensed_netherrack_1", + "textureBack": "condensed_netherrack_1", + "renderType": 10, + "customModelName": "Normal", + "rotationMode": 0, + "enablePitch": false, + "emissiveRendering": false, + "displayFluidOverlay": false, + "itemTexture": "", + "particleTexture": "", + "tintType": "No tint", + "isItemTinted": false, + "hasTransparency": false, + "connectedSides": false, + "transparencyType": "SOLID", + "disableOffset": false, + "boundingBoxes": [ + { + "mx": 0.0, + "my": 0.0, + "mz": 0.0, + "Mx": 16.0, + "My": 16.0, + "Mz": 16.0, + "subtract": false + } + ], + "customProperties": [], + "name": "Condensed Netherrack", + "specialInformation": { + "fixedValue": [] + }, + "hardness": 3.6, + "resistance": 3.6, + "hasGravity": false, + "isWaterloggable": false, + "creativeTabs": [ + { + "value": "BUILDING_BLOCKS" + } + ], + "destroyTool": "pickaxe", + "customDrop": { + "value": "" + }, + "dropAmount": 1, + "useLootTableForDrops": false, + "requiresCorrectTool": true, + "enchantPowerBonus": 0.0, + "plantsGrowOn": false, + "canRedstoneConnect": false, + "lightOpacity": 15, + "material": { + "value": "ROCK" + }, + "tickRate": 0, + "tickRandomly": false, + "isReplaceable": false, + "canProvidePower": false, + "emittedRedstonePower": { + "fixedValue": 15.0 + }, + "colorOnMap": "DEFAULT", + "creativePickItem": { + "value": "" + }, + "offsetType": "NONE", + "aiPathNodeType": "DEFAULT", + "flammability": 0, + "fireSpreadSpeed": 0, + "isLadder": false, + "slipperiness": 0.6, + "speedFactor": 1.0, + "jumpFactor": 1.0, + "reactionToPushing": "NORMAL", + "isNotColidable": false, + "isCustomSoundType": false, + "soundOnStep": { + "value": "NETHERRACK" + }, + "breakSound": { + "value": "" + }, + "fallSound": { + "value": "" + }, + "hitSound": { + "value": "" + }, + "placeSound": { + "value": "" + }, + "stepSound": { + "value": "" + }, + "luminance": 0, + "unbreakable": false, + "vanillaToolTier": "NONE", + "isBonemealable": false, + "hasInventory": false, + "openGUIOnRightClick": false, + "inventorySize": 9, + "inventoryStackSize": 64, + "inventoryDropWhenDestroyed": true, + "inventoryComparatorPower": true, + "inventoryOutSlotIDs": [], + "inventoryInSlotIDs": [], + "hasEnergyStorage": false, + "energyInitial": 0, + "energyCapacity": 400000, + "energyMaxReceive": 200, + "energyMaxExtract": 200, + "isFluidTank": false, + "fluidCapacity": 8000, + "fluidRestrictions": [], + "generateFeature": false, + "restrictionBiomes": [], + "blocksToReplace": [ + { + "value": "TAG:stone_ore_replaceables" + } + ], + "generationShape": "UNIFORM", + "frequencyPerChunks": 10, + "frequencyOnChunk": 16, + "minGenerateHeight": 0, + "maxGenerateHeight": 64 + } +} \ No newline at end of file diff --git a/elements/CondensedNetherrackRecipe.mod.json b/elements/CondensedNetherrackRecipe.mod.json new file mode 100644 index 0000000..4a747f2 --- /dev/null +++ b/elements/CondensedNetherrackRecipe.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Crafting", + "recipeRetstackSize": 1, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "BUILDING", + "recipeShapeless": false, + "recipeSlots": [ + { + "value": "Blocks.NETHERRACK" + }, + { + "value": "Blocks.NETHERRACK" + }, + { + "value": "Blocks.NETHERRACK" + }, + { + "value": "Blocks.NETHERRACK" + }, + { + "value": "Blocks.NETHERRACK" + }, + { + "value": "Blocks.NETHERRACK" + }, + { + "value": "Blocks.NETHERRACK" + }, + { + "value": "Blocks.NETHERRACK" + }, + { + "value": "Blocks.NETHERRACK" + } + ], + "recipeReturnStack": { + "value": "CUSTOM:CondensedNetherrack" + }, + "name": "condensed_netherrack_recipe", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/CondensedNetherrackRecipe2.mod.json b/elements/CondensedNetherrackRecipe2.mod.json new file mode 100644 index 0000000..7ba990a --- /dev/null +++ b/elements/CondensedNetherrackRecipe2.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Crafting", + "recipeRetstackSize": 9, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "BUILDING", + "recipeShapeless": true, + "recipeSlots": [ + { + "value": "CUSTOM:CondensedCondensedNetherrack" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + } + ], + "recipeReturnStack": { + "value": "CUSTOM:CondensedNetherrack" + }, + "name": "condensed_netherrack_recipe_2", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/Ghoul.mod.json b/elements/Ghoul.mod.json new file mode 100644 index 0000000..a40ce78 --- /dev/null +++ b/elements/Ghoul.mod.json @@ -0,0 +1,160 @@ +{ + "_fv": 73, + "_type": "livingentity", + "definition": { + "mobName": "Ghoul", + "mobLabel": "", + "mobModelName": "Biped", + "mobModelTexture": "ghoul.png", + "transparentModelCondition": { + "fixedValue": false + }, + "isShakingCondition": { + "fixedValue": false + }, + "solidBoundingBox": { + "fixedValue": false + }, + "visualScale": { + "fixedValue": 0.5 + }, + "boundingBoxScale": { + "fixedValue": 0.5 + }, + "modelLayers": [], + "animations": [], + "modelWidth": 0.6, + "modelHeight": 1.8, + "modelShadowSize": 0.25, + "mountedYOffset": 0.0, + "hasSpawnEgg": true, + "spawnEggBaseColor": { + "value": -16777216, + "falpha": 0.0 + }, + "spawnEggDotColor": { + "value": -13421773, + "falpha": 0.0 + }, + "creativeTabs": [ + { + "value": "MISC" + } + ], + "isBoss": false, + "bossBarColor": "PINK", + "bossBarType": "PROGRESS", + "equipmentMainHand": { + "value": "" + }, + "equipmentOffHand": { + "value": "" + }, + "equipmentHelmet": { + "value": "" + }, + "equipmentBody": { + "value": "" + }, + "equipmentLeggings": { + "value": "" + }, + "equipmentBoots": { + "value": "" + }, + "mobBehaviourType": "Mob", + "mobCreatureType": "UNDEAD", + "attackStrength": 3, + "attackKnockback": 0.0, + "knockbackResistance": 0.0, + "movementSpeed": 0.36, + "stepHeight": 0.6, + "armorBaseValue": 0.0, + "trackingRange": 64, + "followRange": 19, + "health": 9, + "xpAmount": 0, + "waterMob": false, + "breatheUnderwater": { + "fixedValue": false + }, + "pushedByFluids": { + "fixedValue": true + }, + "flyingMob": false, + "inventorySize": 9, + "inventoryStackSize": 64, + "disableCollisions": false, + "ridable": false, + "canControlForward": false, + "canControlStrafe": false, + "immuneToFire": true, + "immuneToArrows": false, + "immuneToFallDamage": true, + "immuneToCactus": true, + "immuneToDrowning": true, + "immuneToLightning": false, + "immuneToPotions": false, + "immuneToPlayer": false, + "immuneToExplosion": false, + "immuneToTrident": false, + "immuneToAnvil": false, + "immuneToWither": true, + "immuneToDragonBreath": false, + "mobDrop": { + "value": "" + }, + "livingSound": { + "value": "entity.wither_skeleton.ambient" + }, + "hurtSound": { + "value": "entity.wither_skeleton.hurt" + }, + "deathSound": { + "value": "entity.wither_skeleton.death" + }, + "stepSound": { + "value": "entity.wither_skeleton.step" + }, + "raidCelebrationSound": { + "value": "" + }, + "entityDataEntries": [], + "whenThisMobKillsAnother": { + "name": "GhoulThisEntityKillsAnotherOne" + }, + "onInitialSpawn": { + "name": "GhoulOnInitialEntitySpawn" + }, + "hasAI": true, + "aiBase": "(none)", + "aixml": "FALSETRUEEntityZombienull,nullFALSETRUEEntityZombieVillagernull,nullFALSETRUEEntityCreepernull,nullFALSETRUEEntityEndermannull,nullFALSETRUEEntitySpidernull,nullFALSETRUEEntityCaveSpidernull,nullFALSETRUEEntityPillagernull,nullFALSETRUEEntitySkeletonnull,null1.2FALSEnull,nullFALSEnull,null1null,nullnull,null", + "breedable": false, + "tameable": false, + "breedTriggerItems": [], + "ranged": false, + "rangedAttackItem": { + "value": "" + }, + "rangedItemType": "Default item", + "rangedAttackInterval": 20, + "rangedAttackRadius": 10.0, + "spawnThisMob": false, + "doesDespawnWhenIdle": false, + "spawningProbability": 20, + "mobSpawningType": "monster", + "minNumberOfMobsPerGroup": 1, + "maxNumberOfMobsPerGroup": 4, + "restrictionBiomes": [], + "spawnInDungeons": false, + "raidSpawnsCount": [ + 4, + 3, + 3, + 4, + 4, + 4, + 2 + ] + } +} \ No newline at end of file diff --git a/elements/GhoulOnInitialEntitySpawn.mod.json b/elements/GhoulOnInitialEntitySpawn.mod.json new file mode 100644 index 0000000..8f0ee61 --- /dev/null +++ b/elements/GhoulOnInitialEntitySpawn.mod.json @@ -0,0 +1,7 @@ +{ + "_fv": 73, + "_type": "procedure", + "definition": { + "procedurexml": "no_ext_triggerCUSTOM:SummonedEntityEffect1200FALSEFALSE" + } +} \ No newline at end of file diff --git a/elements/GhoulThisEntityKillsAnotherOne.mod.json b/elements/GhoulThisEntityKillsAnotherOne.mod.json new file mode 100644 index 0000000..e0b19c3 --- /dev/null +++ b/elements/GhoulThisEntityKillsAnotherOne.mod.json @@ -0,0 +1,7 @@ +{ + "_fv": 73, + "_type": "procedure", + "definition": { + "procedurexml": "no_ext_triggerCUSTOM:Ghoul00000" + } +} \ No newline at end of file diff --git a/elements/GoldenBerries.mod.json b/elements/GoldenBerries.mod.json new file mode 100644 index 0000000..f5e7c2c --- /dev/null +++ b/elements/GoldenBerries.mod.json @@ -0,0 +1,63 @@ +{ + "_fv": 73, + "_type": "item", + "definition": { + "renderType": 0, + "texture": "golden_berries", + "customModelName": "Normal", + "customProperties": {}, + "states": [], + "name": "Golden Berries", + "rarity": "UNCOMMON", + "creativeTabs": [ + { + "value": "FOOD" + } + ], + "stackSize": 64, + "enchantability": 0, + "useDuration": 24, + "toolType": 1.0, + "damageCount": 0, + "recipeRemainder": { + "value": "" + }, + "destroyAnyBlock": false, + "immuneToFire": false, + "stayInGridWhenCrafting": false, + "damageOnCrafting": false, + "enableMeleeDamage": false, + "damageVsEntity": 0.0, + "specialInformation": { + "fixedValue": [] + }, + "glowCondition": { + "fixedValue": false + }, + "inventorySize": 9, + "inventoryStackSize": 64, + "enableRanged": false, + "shootConstantly": false, + "rangedItemChargesPower": false, + "projectile": { + "value": "CUSTOM:ShitProjectile" + }, + "projectileDisableAmmoCheck": false, + "isFood": true, + "nutritionalValue": 4, + "saturation": 12.0, + "eatResultItem": { + "value": "" + }, + "isMeat": false, + "isAlwaysEdible": false, + "animation": "eat", + "isMusicDisc": false, + "musicDiscMusic": { + "value": "" + }, + "musicDiscDescription": "", + "musicDiscLengthInTicks": 100, + "musicDiscAnalogOutput": 0 + } +} \ No newline at end of file diff --git a/elements/GoldenBerriesRecipe.mod.json b/elements/GoldenBerriesRecipe.mod.json new file mode 100644 index 0000000..80ae827 --- /dev/null +++ b/elements/GoldenBerriesRecipe.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Crafting", + "recipeRetstackSize": 1, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "MISC", + "recipeShapeless": false, + "recipeSlots": [ + { + "value": "Items.GOLD_NUGGET" + }, + { + "value": "Items.GOLD_NUGGET" + }, + { + "value": "Items.GOLD_NUGGET" + }, + { + "value": "Items.GOLD_NUGGET" + }, + { + "value": "Items.SWEET_BERRIES" + }, + { + "value": "Items.GOLD_NUGGET" + }, + { + "value": "Items.GOLD_NUGGET" + }, + { + "value": "Items.GOLD_NUGGET" + }, + { + "value": "Items.GOLD_NUGGET" + } + ], + "recipeReturnStack": { + "value": "CUSTOM:GoldenBerries" + }, + "name": "golden_berries_recipe", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/Gravedigger.mod.json b/elements/Gravedigger.mod.json new file mode 100644 index 0000000..048cc3f --- /dev/null +++ b/elements/Gravedigger.mod.json @@ -0,0 +1,45 @@ +{ + "_fv": 73, + "_type": "tool", + "definition": { + "toolType": "Spade", + "renderType": 0, + "blockingRenderType": 0, + "texture": "gravedigger", + "customModelName": "Normal", + "blockingModelName": "Normal blocking", + "name": "Gravedigger", + "specialInformation": { + "fixedValue": [ + "Right-Click on soul sand or soul soil to use them, summoning a ghoul that attacks hostile mobs.", + "We must dig!" + ] + }, + "creativeTabs": [ + { + "value": "TOOLS" + } + ], + "efficiency": 4.0, + "attackSpeed": 1.0, + "enchantability": 2, + "damageVsEntity": 4.0, + "usageCount": 3666, + "glowCondition": { + "fixedValue": false + }, + "repairItems": [ + { + "value": "Items.SKULL#1" + } + ], + "immuneToFire": true, + "blockDropsTier": "STONE", + "blocksAffected": [], + "stayInGridWhenCrafting": false, + "damageOnCrafting": false, + "onRightClickedOnBlock": { + "name": "GravediggerRightclickedOnBlock" + } + } +} \ No newline at end of file diff --git a/elements/GravediggerRecipe.mod.json b/elements/GravediggerRecipe.mod.json new file mode 100644 index 0000000..cfb6110 --- /dev/null +++ b/elements/GravediggerRecipe.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Crafting", + "recipeRetstackSize": 1, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "EQUIPMENT", + "recipeShapeless": false, + "recipeSlots": [ + { + "value": "" + }, + { + "value": "Items.SKULL#1" + }, + { + "value": "" + }, + { + "value": "Items.GHAST_TEAR" + }, + { + "value": "Items.BONE" + }, + { + "value": "Items.GHAST_TEAR" + }, + { + "value": "Items.GHAST_TEAR" + }, + { + "value": "Items.BONE" + }, + { + "value": "Items.GHAST_TEAR" + } + ], + "recipeReturnStack": { + "value": "CUSTOM:Gravedigger" + }, + "name": "gravedigger_recipe", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/GravediggerRightclickedOnBlock.mod.json b/elements/GravediggerRightclickedOnBlock.mod.json new file mode 100644 index 0000000..f69d861 --- /dev/null +++ b/elements/GravediggerRightclickedOnBlock.mod.json @@ -0,0 +1,7 @@ +{ + "_fv": 73, + "_type": "procedure", + "definition": { + "procedurexml": "no_ext_triggerORBlocks.SOUL_SANDBlocks.SOUL_SOIL16entity.blaze.ambienthostile0.70.60.7CUSTOM:Ghoul00000" + } +} \ No newline at end of file diff --git a/elements/HexaCondensedNetherrack.mod.json b/elements/HexaCondensedNetherrack.mod.json new file mode 100644 index 0000000..4cd8789 --- /dev/null +++ b/elements/HexaCondensedNetherrack.mod.json @@ -0,0 +1,137 @@ +{ + "_fv": 73, + "_type": "block", + "definition": { + "texture": "hexa-condensed_netherrack", + "textureTop": "hexa-condensed_netherrack", + "textureLeft": "hexa-condensed_netherrack", + "textureFront": "hexa-condensed_netherrack", + "textureRight": "hexa-condensed_netherrack", + "textureBack": "hexa-condensed_netherrack", + "renderType": 10, + "customModelName": "Normal", + "rotationMode": 0, + "enablePitch": false, + "emissiveRendering": false, + "displayFluidOverlay": false, + "itemTexture": "", + "particleTexture": "", + "tintType": "No tint", + "isItemTinted": false, + "hasTransparency": false, + "connectedSides": false, + "transparencyType": "SOLID", + "disableOffset": false, + "boundingBoxes": [ + { + "mx": 0.0, + "my": 0.0, + "mz": 0.0, + "Mx": 16.0, + "My": 16.0, + "Mz": 16.0, + "subtract": false + } + ], + "customProperties": [], + "name": "Hexa-condensed Netherrack", + "specialInformation": { + "fixedValue": [] + }, + "hardness": 64000.0, + "resistance": 64000.0, + "hasGravity": false, + "isWaterloggable": false, + "creativeTabs": [ + { + "value": "BUILDING_BLOCKS" + } + ], + "destroyTool": "pickaxe", + "customDrop": { + "value": "" + }, + "dropAmount": 1, + "useLootTableForDrops": false, + "requiresCorrectTool": true, + "enchantPowerBonus": 0.0, + "plantsGrowOn": false, + "canRedstoneConnect": false, + "lightOpacity": 15, + "material": { + "value": "ROCK" + }, + "tickRate": 0, + "tickRandomly": false, + "isReplaceable": false, + "canProvidePower": false, + "emittedRedstonePower": { + "fixedValue": 15.0 + }, + "colorOnMap": "DEFAULT", + "creativePickItem": { + "value": "" + }, + "offsetType": "NONE", + "aiPathNodeType": "DEFAULT", + "flammability": 0, + "fireSpreadSpeed": 0, + "isLadder": false, + "slipperiness": 0.6, + "speedFactor": 1.0, + "jumpFactor": 1.0, + "reactionToPushing": "NORMAL", + "isNotColidable": false, + "isCustomSoundType": false, + "soundOnStep": { + "value": "NETHERRACK" + }, + "breakSound": { + "value": "" + }, + "fallSound": { + "value": "" + }, + "hitSound": { + "value": "" + }, + "placeSound": { + "value": "" + }, + "stepSound": { + "value": "" + }, + "luminance": 0, + "unbreakable": false, + "vanillaToolTier": "NONE", + "isBonemealable": false, + "hasInventory": false, + "openGUIOnRightClick": false, + "inventorySize": 9, + "inventoryStackSize": 64, + "inventoryDropWhenDestroyed": true, + "inventoryComparatorPower": true, + "inventoryOutSlotIDs": [], + "inventoryInSlotIDs": [], + "hasEnergyStorage": false, + "energyInitial": 0, + "energyCapacity": 400000, + "energyMaxReceive": 200, + "energyMaxExtract": 200, + "isFluidTank": false, + "fluidCapacity": 8000, + "fluidRestrictions": [], + "generateFeature": false, + "restrictionBiomes": [], + "blocksToReplace": [ + { + "value": "TAG:stone_ore_replaceables" + } + ], + "generationShape": "UNIFORM", + "frequencyPerChunks": 10, + "frequencyOnChunk": 16, + "minGenerateHeight": 0, + "maxGenerateHeight": 64 + } +} \ No newline at end of file diff --git a/elements/HexaCondensedNetherrackRecipe.mod.json b/elements/HexaCondensedNetherrackRecipe.mod.json new file mode 100644 index 0000000..34c3aeb --- /dev/null +++ b/elements/HexaCondensedNetherrackRecipe.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Crafting", + "recipeRetstackSize": 1, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "BUILDING", + "recipeShapeless": false, + "recipeSlots": [ + { + "value": "CUSTOM:PentaCondensedNetherrack" + }, + { + "value": "CUSTOM:PentaCondensedNetherrack" + }, + { + "value": "CUSTOM:PentaCondensedNetherrack" + }, + { + "value": "CUSTOM:PentaCondensedNetherrack" + }, + { + "value": "CUSTOM:PentaCondensedNetherrack" + }, + { + "value": "CUSTOM:PentaCondensedNetherrack" + }, + { + "value": "CUSTOM:PentaCondensedNetherrack" + }, + { + "value": "CUSTOM:PentaCondensedNetherrack" + }, + { + "value": "CUSTOM:PentaCondensedNetherrack" + } + ], + "recipeReturnStack": { + "value": "CUSTOM:HexaCondensedNetherrack" + }, + "name": "hexa_condensed_netherrack_recipe", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/HexaCondensedNetherrackRecipe2.mod.json b/elements/HexaCondensedNetherrackRecipe2.mod.json new file mode 100644 index 0000000..7042cfd --- /dev/null +++ b/elements/HexaCondensedNetherrackRecipe2.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Crafting", + "recipeRetstackSize": 9, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "BUILDING", + "recipeShapeless": true, + "recipeSlots": [ + { + "value": "CUSTOM:HexaCondensedNetherrack" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + } + ], + "recipeReturnStack": { + "value": "CUSTOM:PentaCondensedNetherrack" + }, + "name": "hexa_condensed_netherrack_recipe_2", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/LapisLazuliNugget.mod.json b/elements/LapisLazuliNugget.mod.json new file mode 100644 index 0000000..35258fb --- /dev/null +++ b/elements/LapisLazuliNugget.mod.json @@ -0,0 +1,63 @@ +{ + "_fv": 73, + "_type": "item", + "definition": { + "renderType": 0, + "texture": "lapis_lazuli_nugget", + "customModelName": "Normal", + "customProperties": {}, + "states": [], + "name": "Lapis Lazuli Nugget", + "rarity": "COMMON", + "creativeTabs": [ + { + "value": "MATERIALS" + } + ], + "stackSize": 64, + "enchantability": 0, + "useDuration": 0, + "toolType": 1.0, + "damageCount": 0, + "recipeRemainder": { + "value": "" + }, + "destroyAnyBlock": false, + "immuneToFire": false, + "stayInGridWhenCrafting": false, + "damageOnCrafting": false, + "enableMeleeDamage": false, + "damageVsEntity": 0.0, + "specialInformation": { + "fixedValue": [] + }, + "glowCondition": { + "fixedValue": false + }, + "inventorySize": 9, + "inventoryStackSize": 64, + "enableRanged": false, + "shootConstantly": false, + "rangedItemChargesPower": false, + "projectile": { + "value": "Arrow" + }, + "projectileDisableAmmoCheck": false, + "isFood": false, + "nutritionalValue": 4, + "saturation": 0.3, + "eatResultItem": { + "value": "" + }, + "isMeat": false, + "isAlwaysEdible": false, + "animation": "none", + "isMusicDisc": false, + "musicDiscMusic": { + "value": "" + }, + "musicDiscDescription": "", + "musicDiscLengthInTicks": 100, + "musicDiscAnalogOutput": 0 + } +} \ No newline at end of file diff --git a/elements/LapisLazuliNuggetRecipe.mod.json b/elements/LapisLazuliNuggetRecipe.mod.json new file mode 100644 index 0000000..9995903 --- /dev/null +++ b/elements/LapisLazuliNuggetRecipe.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Crafting", + "recipeRetstackSize": 9, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "MISC", + "recipeShapeless": true, + "recipeSlots": [ + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "Items.DYE#4" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + } + ], + "recipeReturnStack": { + "value": "CUSTOM:LapisLazuliNugget" + }, + "name": "lapis_lazuli_nugget_recipe", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/LapisLazuliRecipe.mod.json b/elements/LapisLazuliRecipe.mod.json new file mode 100644 index 0000000..6a0c3ba --- /dev/null +++ b/elements/LapisLazuliRecipe.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Crafting", + "recipeRetstackSize": 1, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "MISC", + "recipeShapeless": true, + "recipeSlots": [ + { + "value": "CUSTOM:LapisLazuliNugget" + }, + { + "value": "CUSTOM:LapisLazuliNugget" + }, + { + "value": "CUSTOM:LapisLazuliNugget" + }, + { + "value": "CUSTOM:LapisLazuliNugget" + }, + { + "value": "CUSTOM:LapisLazuliNugget" + }, + { + "value": "CUSTOM:LapisLazuliNugget" + }, + { + "value": "CUSTOM:LapisLazuliNugget" + }, + { + "value": "CUSTOM:LapisLazuliNugget" + }, + { + "value": "CUSTOM:LapisLazuliNugget" + } + ], + "recipeReturnStack": { + "value": "Items.DYE#4" + }, + "name": "lapis_lazuli_recipe", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/MagicDust.mod.json b/elements/MagicDust.mod.json new file mode 100644 index 0000000..2eb7fc1 --- /dev/null +++ b/elements/MagicDust.mod.json @@ -0,0 +1,63 @@ +{ + "_fv": 73, + "_type": "item", + "definition": { + "renderType": 0, + "texture": "magic_dust", + "customModelName": "Normal", + "customProperties": {}, + "states": [], + "name": "Magic Dust", + "rarity": "UNCOMMON", + "creativeTabs": [ + { + "value": "MATERIALS" + } + ], + "stackSize": 64, + "enchantability": 0, + "useDuration": 0, + "toolType": 1.0, + "damageCount": 0, + "recipeRemainder": { + "value": "" + }, + "destroyAnyBlock": false, + "immuneToFire": false, + "stayInGridWhenCrafting": false, + "damageOnCrafting": false, + "enableMeleeDamage": false, + "damageVsEntity": 0.0, + "specialInformation": { + "fixedValue": [] + }, + "glowCondition": { + "fixedValue": false + }, + "inventorySize": 9, + "inventoryStackSize": 64, + "enableRanged": false, + "shootConstantly": false, + "rangedItemChargesPower": false, + "projectile": { + "value": "Arrow" + }, + "projectileDisableAmmoCheck": false, + "isFood": false, + "nutritionalValue": 4, + "saturation": 0.3, + "eatResultItem": { + "value": "" + }, + "isMeat": false, + "isAlwaysEdible": false, + "animation": "none", + "isMusicDisc": false, + "musicDiscMusic": { + "value": "" + }, + "musicDiscDescription": "", + "musicDiscLengthInTicks": 100, + "musicDiscAnalogOutput": 0 + } +} \ No newline at end of file diff --git a/elements/MagicDustRecipe.mod.json b/elements/MagicDustRecipe.mod.json new file mode 100644 index 0000000..1e71293 --- /dev/null +++ b/elements/MagicDustRecipe.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Crafting", + "recipeRetstackSize": 1, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "MISC", + "recipeShapeless": false, + "recipeSlots": [ + { + "value": "CUSTOM:LapisLazuliNugget" + }, + { + "value": "CUSTOM:LapisLazuliNugget" + }, + { + "value": "CUSTOM:LapisLazuliNugget" + }, + { + "value": "CUSTOM:LapisLazuliNugget" + }, + { + "value": "CUSTOM:SandDust" + }, + { + "value": "CUSTOM:LapisLazuliNugget" + }, + { + "value": "CUSTOM:LapisLazuliNugget" + }, + { + "value": "CUSTOM:LapisLazuliNugget" + }, + { + "value": "CUSTOM:LapisLazuliNugget" + } + ], + "recipeReturnStack": { + "value": "CUSTOM:MagicDust" + }, + "name": "magic_dust_recipe", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/MagicFlesh.mod.json b/elements/MagicFlesh.mod.json new file mode 100644 index 0000000..f945160 --- /dev/null +++ b/elements/MagicFlesh.mod.json @@ -0,0 +1,66 @@ +{ + "_fv": 73, + "_type": "item", + "definition": { + "renderType": 0, + "texture": "magic_flesh", + "customModelName": "Normal", + "customProperties": {}, + "states": [], + "name": "Magic Flesh", + "rarity": "UNCOMMON", + "creativeTabs": [ + { + "value": "FOOD" + } + ], + "stackSize": 64, + "enchantability": 0, + "useDuration": 12, + "toolType": 1.0, + "damageCount": 0, + "recipeRemainder": { + "value": "" + }, + "destroyAnyBlock": false, + "immuneToFire": false, + "stayInGridWhenCrafting": false, + "damageOnCrafting": false, + "enableMeleeDamage": false, + "damageVsEntity": 0.0, + "specialInformation": { + "fixedValue": [] + }, + "glowCondition": { + "fixedValue": false + }, + "inventorySize": 9, + "inventoryStackSize": 64, + "onFinishUsingItem": { + "name": "MagicFleshOnPlayerStoppedUsing" + }, + "enableRanged": false, + "shootConstantly": false, + "rangedItemChargesPower": false, + "projectile": { + "value": "Arrow" + }, + "projectileDisableAmmoCheck": false, + "isFood": true, + "nutritionalValue": 4, + "saturation": 0.2, + "eatResultItem": { + "value": "" + }, + "isMeat": false, + "isAlwaysEdible": true, + "animation": "eat", + "isMusicDisc": false, + "musicDiscMusic": { + "value": "" + }, + "musicDiscDescription": "", + "musicDiscLengthInTicks": 100, + "musicDiscAnalogOutput": 0 + } +} \ No newline at end of file diff --git a/elements/MagicFleshOnPlayerStoppedUsing.mod.json b/elements/MagicFleshOnPlayerStoppedUsing.mod.json new file mode 100644 index 0000000..97912cf --- /dev/null +++ b/elements/MagicFleshOnPlayerStoppedUsing.mod.json @@ -0,0 +1,7 @@ +{ + "_fv": 73, + "_type": "procedure", + "definition": { + "procedurexml": "no_ext_trigger69" + } +} \ No newline at end of file diff --git a/elements/MagicFleshRecipe.mod.json b/elements/MagicFleshRecipe.mod.json new file mode 100644 index 0000000..680b89c --- /dev/null +++ b/elements/MagicFleshRecipe.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Crafting", + "recipeRetstackSize": 1, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "MISC", + "recipeShapeless": true, + "recipeSlots": [ + { + "value": "Items.ROTTEN_FLESH" + }, + { + "value": "CUSTOM:MagicDust" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + } + ], + "recipeReturnStack": { + "value": "CUSTOM:MagicFlesh" + }, + "name": "magic_flesh_recipe", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/NetherrackRecipe.mod.json b/elements/NetherrackRecipe.mod.json new file mode 100644 index 0000000..bbc1e1f --- /dev/null +++ b/elements/NetherrackRecipe.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Crafting", + "recipeRetstackSize": 9, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "BUILDING", + "recipeShapeless": true, + "recipeSlots": [ + { + "value": "CUSTOM:CondensedNetherrack" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + } + ], + "recipeReturnStack": { + "value": "Blocks.NETHERRACK" + }, + "name": "netherrack_recipe", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/NetherrackingEnchantment.mod.json b/elements/NetherrackingEnchantment.mod.json new file mode 100644 index 0000000..dc1f430 --- /dev/null +++ b/elements/NetherrackingEnchantment.mod.json @@ -0,0 +1,26 @@ +{ + "_fv": 73, + "_type": "enchantment", + "definition": { + "name": "Netherracking", + "supportedSlots": "mainhand", + "weight": 2, + "anvilCost": 4, + "maxLevel": 20, + "damageModifier": 0, + "incompatibleEnchantments": [ + { + "value": "EFFICIENCY" + } + ], + "supportedItems": [ + { + "value": "CUSTOM:NetherrackitePickaxe" + } + ], + "isTreasureEnchantment": false, + "isCurse": false, + "canGenerateInLootTables": true, + "canVillagerTrade": true + } +} \ No newline at end of file diff --git a/elements/NetherrackingLogic.mod.json b/elements/NetherrackingLogic.mod.json new file mode 100644 index 0000000..66a90e2 --- /dev/null +++ b/elements/NetherrackingLogic.mod.json @@ -0,0 +1,7 @@ +{ + "_fv": 73, + "_type": "procedure", + "definition": { + "procedurexml": "no_ext_triggerGTCUSTOM:NetherrackingEnchantment0HASTEMULTIPLYCUSTOM:NetherrackingEnchantment42FALSEFALSE" + } +} \ No newline at end of file diff --git a/elements/Netherrackite.mod.json b/elements/Netherrackite.mod.json new file mode 100644 index 0000000..f08a2e5 --- /dev/null +++ b/elements/Netherrackite.mod.json @@ -0,0 +1,59 @@ +{ + "_fv": 73, + "_type": "item", + "definition": { + "renderType": 0, + "texture": "netherrackite", + "customModelName": "Normal", + "customProperties": {}, + "states": [], + "name": "Netherrackite", + "rarity": "RARE", + "creativeTabs": [ + { + "value": "MATERIALS" + } + ], + "stackSize": 64, + "enchantability": 0, + "useDuration": 0, + "toolType": 1.0, + "damageCount": 0, + "recipeRemainder": { + "value": "" + }, + "destroyAnyBlock": false, + "immuneToFire": true, + "stayInGridWhenCrafting": false, + "damageOnCrafting": false, + "enableMeleeDamage": false, + "damageVsEntity": 0.0, + "specialInformation": { + "fixedValue": [] + }, + "glowCondition": { + "fixedValue": false + }, + "inventorySize": 9, + "inventoryStackSize": 64, + "enableRanged": false, + "shootConstantly": false, + "rangedItemChargesPower": false, + "projectile": { + "value": "Arrow" + }, + "projectileDisableAmmoCheck": false, + "isFood": false, + "nutritionalValue": 4, + "saturation": 0.3, + "eatResultItem": { + "value": "" + }, + "isMeat": false, + "isAlwaysEdible": false, + "animation": "none", + "isMusicDisc": false, + "musicDiscLengthInTicks": 0, + "musicDiscAnalogOutput": 0 + } +} \ No newline at end of file diff --git a/elements/NetherrackitePickaxe.mod.json b/elements/NetherrackitePickaxe.mod.json new file mode 100644 index 0000000..2fe933e --- /dev/null +++ b/elements/NetherrackitePickaxe.mod.json @@ -0,0 +1,43 @@ +{ + "_fv": 73, + "_type": "tool", + "definition": { + "toolType": "Pickaxe", + "renderType": 0, + "blockingRenderType": 0, + "texture": "netherrackite_pickaxe", + "customModelName": "Normal", + "blockingModelName": "Normal blocking", + "name": "Netherrackite Pickaxe", + "specialInformation": { + "fixedValue": [ + "Non-condensed netherracks broken by this pickaxe drop themselves an additional time." + ] + }, + "creativeTabs": [ + { + "value": "TOOLS" + } + ], + "efficiency": 729.0, + "attackSpeed": 1.0, + "enchantability": 15, + "damageVsEntity": 4.0, + "usageCount": 18279, + "glowCondition": { + "fixedValue": false + }, + "repairItems": [], + "immuneToFire": true, + "blockDropsTier": "WOOD", + "blocksAffected": [], + "stayInGridWhenCrafting": false, + "damageOnCrafting": false, + "onItemInUseTick": { + "name": "NetherrackingLogic" + }, + "onBlockDestroyedWithTool": { + "name": "NetherrackitePickaxeBlockDestroyedWithTool" + } + } +} \ No newline at end of file diff --git a/elements/NetherrackitePickaxeBlockDestroyedWithTool.mod.json b/elements/NetherrackitePickaxeBlockDestroyedWithTool.mod.json new file mode 100644 index 0000000..52e03e1 --- /dev/null +++ b/elements/NetherrackitePickaxeBlockDestroyedWithTool.mod.json @@ -0,0 +1,7 @@ +{ + "_fv": 73, + "_type": "procedure", + "definition": { + "procedurexml": "no_ext_triggerBlocks.NETHERRACKTRUEBlocks.NETHERRACK10" + } +} \ No newline at end of file diff --git a/elements/NetherrackitePickaxeRecipe.mod.json b/elements/NetherrackitePickaxeRecipe.mod.json new file mode 100644 index 0000000..3caccad --- /dev/null +++ b/elements/NetherrackitePickaxeRecipe.mod.json @@ -0,0 +1,28 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Smithing", + "recipeRetstackSize": 1, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "MISC", + "recipeShapeless": false, + "smithingInputStack": { + "value": "Items.NETHERITE_PICKAXE" + }, + "smithingInputAdditionStack": { + "value": "CUSTOM:Netherrackite" + }, + "smithingInputTemplateStack": { + "value": "" + }, + "smithingReturnStack": { + "value": "CUSTOM:NetherrackitePickaxe" + }, + "name": "netherrackite_pickaxe_recipe", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/NetherrackiteRecipe.mod.json b/elements/NetherrackiteRecipe.mod.json new file mode 100644 index 0000000..fac558d --- /dev/null +++ b/elements/NetherrackiteRecipe.mod.json @@ -0,0 +1,28 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Smithing", + "recipeRetstackSize": 1, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "MISC", + "recipeShapeless": false, + "smithingInputStack": { + "value": "Items.NETHERITE_INGOT" + }, + "smithingInputAdditionStack": { + "value": "CUSTOM:CondensedCondensedCondensedNetherrack" + }, + "smithingInputTemplateStack": { + "value": "" + }, + "smithingReturnStack": { + "value": "CUSTOM:Netherrackite" + }, + "name": "netherrackite_recipe", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/NetherriteTemplateRecipe.mod.json b/elements/NetherriteTemplateRecipe.mod.json new file mode 100644 index 0000000..558be7c --- /dev/null +++ b/elements/NetherriteTemplateRecipe.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Crafting", + "recipeRetstackSize": 1, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "MISC", + "recipeShapeless": false, + "recipeSlots": [ + { + "value": "Items.NETHERITE_SCRAP" + }, + { + "value": "Items.NETHERITE_SCRAP" + }, + { + "value": "Items.NETHERITE_SCRAP" + }, + { + "value": "Items.NETHERITE_SCRAP" + }, + { + "value": "Items.DIAMOND" + }, + { + "value": "Items.NETHERITE_SCRAP" + }, + { + "value": "Items.NETHERITE_SCRAP" + }, + { + "value": "Items.NETHERITE_SCRAP" + }, + { + "value": "Items.NETHERITE_SCRAP" + } + ], + "recipeReturnStack": { + "value": "Items.NETHERITE_UPGRADE" + }, + "name": "netherrite_template_recipe", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/NetherriteTemplateRecipe2.mod.json b/elements/NetherriteTemplateRecipe2.mod.json new file mode 100644 index 0000000..314ced6 --- /dev/null +++ b/elements/NetherriteTemplateRecipe2.mod.json @@ -0,0 +1,28 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Smithing", + "recipeRetstackSize": 1, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "MISC", + "recipeShapeless": false, + "smithingInputStack": { + "value": "Items.NETHERITE_INGOT" + }, + "smithingInputAdditionStack": { + "value": "Items.DIAMOND" + }, + "smithingInputTemplateStack": { + "value": "Items.NETHERITE_INGOT" + }, + "smithingReturnStack": { + "value": "Items.NETHERITE_UPGRADE" + }, + "name": "netherrite_template_recipe_2", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/OreMiner.mod.json b/elements/OreMiner.mod.json new file mode 100644 index 0000000..0a8a720 --- /dev/null +++ b/elements/OreMiner.mod.json @@ -0,0 +1,147 @@ +{ + "_fv": 73, + "_type": "block", + "definition": { + "texture": "ore_miner_bottom", + "textureTop": "ore_miner_top_180", + "textureLeft": "ore_miner_side", + "textureFront": "ore_miner_side", + "textureRight": "ore_miner_side", + "textureBack": "ore_miner_side", + "renderType": 10, + "customModelName": "Normal", + "rotationMode": 1, + "enablePitch": false, + "emissiveRendering": false, + "displayFluidOverlay": false, + "itemTexture": "", + "particleTexture": "", + "tintType": "No tint", + "isItemTinted": false, + "hasTransparency": false, + "connectedSides": false, + "transparencyType": "SOLID", + "disableOffset": false, + "boundingBoxes": [ + { + "mx": 0.0, + "my": 0.0, + "mz": 0.0, + "Mx": 16.0, + "My": 16.0, + "Mz": 16.0, + "subtract": false + } + ], + "customProperties": [], + "name": "Ore Miner", + "specialInformation": { + "fixedValue": [] + }, + "hardness": 1.0, + "resistance": 100.0, + "hasGravity": false, + "isWaterloggable": false, + "creativeTabs": [ + { + "value": "TRANSPORTATION" + } + ], + "destroyTool": "Not specified", + "customDrop": { + "value": "" + }, + "dropAmount": 1, + "useLootTableForDrops": false, + "requiresCorrectTool": false, + "enchantPowerBonus": 0.0, + "plantsGrowOn": false, + "canRedstoneConnect": false, + "lightOpacity": 15, + "material": { + "value": "NONE" + }, + "tickRate": 0, + "tickRandomly": false, + "isReplaceable": false, + "canProvidePower": false, + "emittedRedstonePower": { + "fixedValue": 15.0 + }, + "colorOnMap": "DEFAULT", + "creativePickItem": { + "value": "" + }, + "offsetType": "NONE", + "aiPathNodeType": "DEFAULT", + "flammability": 0, + "fireSpreadSpeed": 0, + "isLadder": false, + "slipperiness": 0.6, + "speedFactor": 1.0, + "jumpFactor": 1.0, + "reactionToPushing": "NORMAL", + "isNotColidable": false, + "isCustomSoundType": false, + "soundOnStep": { + "value": "STONE" + }, + "breakSound": { + "value": "" + }, + "fallSound": { + "value": "" + }, + "hitSound": { + "value": "" + }, + "placeSound": { + "value": "" + }, + "stepSound": { + "value": "" + }, + "luminance": 0, + "unbreakable": false, + "vanillaToolTier": "NONE", + "isBonemealable": false, + "hasInventory": true, + "guiBoundTo": "OreMinerGUI", + "openGUIOnRightClick": true, + "inventorySize": 9, + "inventoryStackSize": 64, + "inventoryDropWhenDestroyed": true, + "inventoryComparatorPower": true, + "inventoryOutSlotIDs": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ], + "inventoryInSlotIDs": [], + "hasEnergyStorage": false, + "energyInitial": 0, + "energyCapacity": 400000, + "energyMaxReceive": 200, + "energyMaxExtract": 200, + "isFluidTank": false, + "fluidCapacity": 8000, + "fluidRestrictions": [], + "generateFeature": false, + "restrictionBiomes": [], + "blocksToReplace": [ + { + "value": "TAG:stone_ore_replaceables" + } + ], + "generationShape": "UNIFORM", + "frequencyPerChunks": 10, + "frequencyOnChunk": 16, + "minGenerateHeight": 0, + "maxGenerateHeight": 64 + } +} \ No newline at end of file diff --git a/elements/OreMinerGUI.mod.json b/elements/OreMinerGUI.mod.json new file mode 100644 index 0000000..faacfea --- /dev/null +++ b/elements/OreMinerGUI.mod.json @@ -0,0 +1,206 @@ +{ + "_fv": 73, + "_type": "gui", + "definition": { + "type": 1, + "width": 176, + "height": 166, + "inventoryOffsetX": 0, + "inventoryOffsetY": 0, + "renderBgLayer": true, + "doesPauseGame": false, + "components": [ + { + "type": "inputslot", + "data": { + "inputLimit": { + "value": "Items.DIAMOND_PICKAXE" + }, + "disablePlacement": { + "fixedValue": false + }, + "id": 0, + "disablePickup": { + "fixedValue": false + }, + "dropItemsWhenNotBound": false, + "x": 156, + "y": 53, + "locked": false + } + }, + { + "type": "button", + "data": { + "name": "button_mine", + "text": "Mine", + "isUndecorated": false, + "onClick": { + "name": "OreMinerMineButtonPressed" + }, + "width": 46, + "height": 20, + "x": 141, + "y": 80, + "locked": false + } + }, + { + "type": "image", + "data": { + "image": "diamond_pickaxe_blueprint.png", + "use1Xscale": false, + "displayCondition": { + "name": "OreMinerGUISlot0ImageDisplayCondition" + }, + "x": 157, + "y": 54, + "locked": false + } + }, + { + "type": "outputslot", + "data": { + "color": { + "value": -16777216, + "falpha": 0.0 + }, + "id": 1, + "disablePickup": { + "fixedValue": false + }, + "dropItemsWhenNotBound": false, + "x": 204, + "y": 53, + "locked": false + } + }, + { + "type": "outputslot", + "data": { + "color": { + "value": -26266, + "falpha": 0.0 + }, + "id": 2, + "disablePickup": { + "fixedValue": false + }, + "dropItemsWhenNotBound": false, + "x": 222, + "y": 53, + "locked": false + } + }, + { + "type": "outputslot", + "data": { + "color": { + "value": -3355393, + "falpha": 0.0 + }, + "id": 3, + "disablePickup": { + "fixedValue": false + }, + "dropItemsWhenNotBound": false, + "x": 240, + "y": 53, + "locked": false + } + }, + { + "type": "outputslot", + "data": { + "color": { + "value": -2838729, + "falpha": 0.0 + }, + "id": 4, + "disablePickup": { + "fixedValue": false + }, + "dropItemsWhenNotBound": false, + "x": 258, + "y": 53, + "locked": false + } + }, + { + "type": "outputslot", + "data": { + "color": { + "value": -10027009, + "falpha": 0.0 + }, + "id": 5, + "disablePickup": { + "fixedValue": false + }, + "dropItemsWhenNotBound": false, + "x": 204, + "y": 71, + "locked": false + } + }, + { + "type": "outputslot", + "data": { + "color": { + "value": -10027162, + "falpha": 0.0 + }, + "id": 6, + "disablePickup": { + "fixedValue": false + }, + "dropItemsWhenNotBound": true, + "x": 222, + "y": 71, + "locked": false + } + }, + { + "type": "outputslot", + "data": { + "color": { + "value": -52429, + "falpha": 0.0 + }, + "id": 7, + "disablePickup": { + "fixedValue": false + }, + "dropItemsWhenNotBound": true, + "x": 240, + "y": 71, + "locked": false + } + }, + { + "type": "outputslot", + "data": { + "color": { + "value": -13434880, + "falpha": 0.0 + }, + "id": 8, + "disablePickup": { + "fixedValue": false + }, + "dropItemsWhenNotBound": true, + "x": 258, + "y": 71, + "locked": false + } + } + ], + "gridSettings": { + "sx": 18, + "sy": 18, + "ox": 11, + "oy": 15, + "snapOnGrid": true + } + } +} \ No newline at end of file diff --git a/elements/OreMinerGUISlot0ImageDisplayCondition.mod.json b/elements/OreMinerGUISlot0ImageDisplayCondition.mod.json new file mode 100644 index 0000000..a6024d2 --- /dev/null +++ b/elements/OreMinerGUISlot0ImageDisplayCondition.mod.json @@ -0,0 +1,7 @@ +{ + "_fv": 73, + "_type": "procedure", + "definition": { + "procedurexml": "no_ext_triggerGT00FALSETRUE" + } +} \ No newline at end of file diff --git a/elements/OreMinerMineButtonPressed.mod.json b/elements/OreMinerMineButtonPressed.mod.json new file mode 100644 index 0000000..b60cde3 --- /dev/null +++ b/elements/OreMinerMineButtonPressed.mod.json @@ -0,0 +1,7 @@ +{ + "_fv": 73, + "_type": "procedure", + "definition": { + "procedurexml": "oreMinerRollno_ext_trigger0Items.DIAMOND_PICKAXEblock.stone.breakblock0.80.91.110local:oreMinerRollRANDOMLTlocal:oreMinerRoll0.125ADD113Items.COAL#01LTlocal:oreMinerRoll0.25ADD224Items.RAW_COPPER2LTlocal:oreMinerRoll0.375ADD31Items.RAW_IRON3LTlocal:oreMinerRoll0.5ADD41Items.RAW_GOLD4LTlocal:oreMinerRoll0.625ADD512Items.DIAMOND5LTlocal:oreMinerRoll0.75ADD612Items.EMERALD6LTlocal:oreMinerRoll0.875ADD736Items.REDSTONE7ADD81Items.NETHERITE_SCRAP8" + } +} \ No newline at end of file diff --git a/elements/OreMinerRecipe.mod.json b/elements/OreMinerRecipe.mod.json new file mode 100644 index 0000000..cd0499e --- /dev/null +++ b/elements/OreMinerRecipe.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Crafting", + "recipeRetstackSize": 1, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "MISC", + "recipeShapeless": true, + "recipeSlots": [ + { + "value": "Items.COAL#0" + }, + { + "value": "Items.RAW_COPPER" + }, + { + "value": "Items.RAW_IRON" + }, + { + "value": "Items.NETHERITE_SCRAP" + }, + { + "value": "CUSTOM:QuadraCondensedNetherrack" + }, + { + "value": "Items.RAW_GOLD" + }, + { + "value": "Items.REDSTONE" + }, + { + "value": "Items.EMERALD" + }, + { + "value": "Items.DIAMOND" + } + ], + "recipeReturnStack": { + "value": "CUSTOM:OreMiner" + }, + "name": "ore_miner_recipe", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/PassiveIncomeEnchantment.mod.json b/elements/PassiveIncomeEnchantment.mod.json new file mode 100644 index 0000000..8b739d7 --- /dev/null +++ b/elements/PassiveIncomeEnchantment.mod.json @@ -0,0 +1,22 @@ +{ + "_fv": 73, + "_type": "enchantment", + "definition": { + "name": "Passive Income", + "supportedSlots": "armor", + "weight": 1, + "anvilCost": 8, + "maxLevel": 5, + "damageModifier": 0, + "incompatibleEnchantments": [], + "supportedItems": [ + { + "value": "TAG:enchantable/equippable" + } + ], + "isTreasureEnchantment": true, + "isCurse": false, + "canGenerateInLootTables": true, + "canVillagerTrade": true + } +} \ No newline at end of file diff --git a/elements/PassiveIncomeProcedure.mod.json b/elements/PassiveIncomeProcedure.mod.json new file mode 100644 index 0000000..6d037cc --- /dev/null +++ b/elements/PassiveIncomeProcedure.mod.json @@ -0,0 +1,7 @@ +{ + "_fv": 73, + "_type": "procedure", + "definition": { + "procedurexml": "player_ticksPassiveIncomeCounterADDPassiveIncomeCounter1EQMODPassiveIncomeCounter800GTCUSTOM:PassiveIncomeEnchantment00CUSTOM:PassiveIncomeEnchantment0GTCUSTOM:PassiveIncomeEnchantment10CUSTOM:PassiveIncomeEnchantment1GTCUSTOM:PassiveIncomeEnchantment20CUSTOM:PassiveIncomeEnchantment2GTCUSTOM:PassiveIncomeEnchantment30CUSTOM:PassiveIncomeEnchantment3" + } +} \ No newline at end of file diff --git a/elements/PentaCondensedNetherrack.mod.json b/elements/PentaCondensedNetherrack.mod.json new file mode 100644 index 0000000..098f28a --- /dev/null +++ b/elements/PentaCondensedNetherrack.mod.json @@ -0,0 +1,137 @@ +{ + "_fv": 73, + "_type": "block", + "definition": { + "texture": "penta-condensed_netherrack", + "textureTop": "penta-condensed_netherrack", + "textureLeft": "penta-condensed_netherrack", + "textureFront": "penta-condensed_netherrack", + "textureRight": "penta-condensed_netherrack", + "textureBack": "penta-condensed_netherrack", + "renderType": 10, + "customModelName": "Normal", + "rotationMode": 0, + "enablePitch": false, + "emissiveRendering": false, + "displayFluidOverlay": false, + "itemTexture": "", + "particleTexture": "", + "tintType": "No tint", + "isItemTinted": false, + "hasTransparency": false, + "connectedSides": false, + "transparencyType": "SOLID", + "disableOffset": false, + "boundingBoxes": [ + { + "mx": 0.0, + "my": 0.0, + "mz": 0.0, + "Mx": 16.0, + "My": 16.0, + "Mz": 16.0, + "subtract": false + } + ], + "customProperties": [], + "name": "Penta-condensed Netherrack", + "specialInformation": { + "fixedValue": [] + }, + "hardness": 23619.6, + "resistance": 23619.6, + "hasGravity": false, + "isWaterloggable": false, + "creativeTabs": [ + { + "value": "BUILDING_BLOCKS" + } + ], + "destroyTool": "pickaxe", + "customDrop": { + "value": "" + }, + "dropAmount": 1, + "useLootTableForDrops": false, + "requiresCorrectTool": true, + "enchantPowerBonus": 0.0, + "plantsGrowOn": false, + "canRedstoneConnect": false, + "lightOpacity": 15, + "material": { + "value": "ROCK" + }, + "tickRate": 0, + "tickRandomly": false, + "isReplaceable": false, + "canProvidePower": false, + "emittedRedstonePower": { + "fixedValue": 15.0 + }, + "colorOnMap": "DEFAULT", + "creativePickItem": { + "value": "" + }, + "offsetType": "NONE", + "aiPathNodeType": "DEFAULT", + "flammability": 0, + "fireSpreadSpeed": 0, + "isLadder": false, + "slipperiness": 0.6, + "speedFactor": 1.0, + "jumpFactor": 1.0, + "reactionToPushing": "NORMAL", + "isNotColidable": false, + "isCustomSoundType": false, + "soundOnStep": { + "value": "NETHERRACK" + }, + "breakSound": { + "value": "" + }, + "fallSound": { + "value": "" + }, + "hitSound": { + "value": "" + }, + "placeSound": { + "value": "" + }, + "stepSound": { + "value": "" + }, + "luminance": 0, + "unbreakable": false, + "vanillaToolTier": "NONE", + "isBonemealable": false, + "hasInventory": false, + "openGUIOnRightClick": false, + "inventorySize": 9, + "inventoryStackSize": 64, + "inventoryDropWhenDestroyed": true, + "inventoryComparatorPower": true, + "inventoryOutSlotIDs": [], + "inventoryInSlotIDs": [], + "hasEnergyStorage": false, + "energyInitial": 0, + "energyCapacity": 400000, + "energyMaxReceive": 200, + "energyMaxExtract": 200, + "isFluidTank": false, + "fluidCapacity": 8000, + "fluidRestrictions": [], + "generateFeature": false, + "restrictionBiomes": [], + "blocksToReplace": [ + { + "value": "TAG:stone_ore_replaceables" + } + ], + "generationShape": "UNIFORM", + "frequencyPerChunks": 10, + "frequencyOnChunk": 16, + "minGenerateHeight": 0, + "maxGenerateHeight": 64 + } +} \ No newline at end of file diff --git a/elements/PentaCondensedNetherrackRecipe.mod.json b/elements/PentaCondensedNetherrackRecipe.mod.json new file mode 100644 index 0000000..5d08680 --- /dev/null +++ b/elements/PentaCondensedNetherrackRecipe.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Crafting", + "recipeRetstackSize": 1, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "BUILDING", + "recipeShapeless": false, + "recipeSlots": [ + { + "value": "CUSTOM:QuadraCondensedNetherrack" + }, + { + "value": "CUSTOM:QuadraCondensedNetherrack" + }, + { + "value": "CUSTOM:QuadraCondensedNetherrack" + }, + { + "value": "CUSTOM:QuadraCondensedNetherrack" + }, + { + "value": "CUSTOM:QuadraCondensedNetherrack" + }, + { + "value": "CUSTOM:QuadraCondensedNetherrack" + }, + { + "value": "CUSTOM:QuadraCondensedNetherrack" + }, + { + "value": "CUSTOM:QuadraCondensedNetherrack" + }, + { + "value": "CUSTOM:QuadraCondensedNetherrack" + } + ], + "recipeReturnStack": { + "value": "CUSTOM:PentaCondensedNetherrack" + }, + "name": "penta_condensed_netherrack_recipe", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/PentaCondensedNetherrackRecipe2.mod.json b/elements/PentaCondensedNetherrackRecipe2.mod.json new file mode 100644 index 0000000..2cd0cbb --- /dev/null +++ b/elements/PentaCondensedNetherrackRecipe2.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Crafting", + "recipeRetstackSize": 9, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "BUILDING", + "recipeShapeless": true, + "recipeSlots": [ + { + "value": "CUSTOM:PentaCondensedNetherrack" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + } + ], + "recipeReturnStack": { + "value": "CUSTOM:QuadraCondensedNetherrack" + }, + "name": "penta_condensed_netherrack_recipe_2", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/QuadraCondensedNetherrack.mod.json b/elements/QuadraCondensedNetherrack.mod.json new file mode 100644 index 0000000..1f4107a --- /dev/null +++ b/elements/QuadraCondensedNetherrack.mod.json @@ -0,0 +1,137 @@ +{ + "_fv": 73, + "_type": "block", + "definition": { + "texture": "quadra-condensed_netherrack", + "textureTop": "quadra-condensed_netherrack", + "textureLeft": "quadra-condensed_netherrack", + "textureFront": "quadra-condensed_netherrack", + "textureRight": "quadra-condensed_netherrack", + "textureBack": "quadra-condensed_netherrack", + "renderType": 10, + "customModelName": "Normal", + "rotationMode": 0, + "enablePitch": false, + "emissiveRendering": false, + "displayFluidOverlay": false, + "itemTexture": "", + "particleTexture": "", + "tintType": "No tint", + "isItemTinted": false, + "hasTransparency": false, + "connectedSides": false, + "transparencyType": "SOLID", + "disableOffset": false, + "boundingBoxes": [ + { + "mx": 0.0, + "my": 0.0, + "mz": 0.0, + "Mx": 16.0, + "My": 16.0, + "Mz": 16.0, + "subtract": false + } + ], + "customProperties": [], + "name": "Quadra-condensed Netherrack", + "specialInformation": { + "fixedValue": [] + }, + "hardness": 2624.4, + "resistance": 2624.4, + "hasGravity": false, + "isWaterloggable": false, + "creativeTabs": [ + { + "value": "BUILDING_BLOCKS" + } + ], + "destroyTool": "pickaxe", + "customDrop": { + "value": "" + }, + "dropAmount": 1, + "useLootTableForDrops": false, + "requiresCorrectTool": true, + "enchantPowerBonus": 0.0, + "plantsGrowOn": false, + "canRedstoneConnect": false, + "lightOpacity": 15, + "material": { + "value": "ROCK" + }, + "tickRate": 0, + "tickRandomly": false, + "isReplaceable": false, + "canProvidePower": false, + "emittedRedstonePower": { + "fixedValue": 15.0 + }, + "colorOnMap": "DEFAULT", + "creativePickItem": { + "value": "" + }, + "offsetType": "NONE", + "aiPathNodeType": "DEFAULT", + "flammability": 0, + "fireSpreadSpeed": 0, + "isLadder": false, + "slipperiness": 0.6, + "speedFactor": 1.0, + "jumpFactor": 1.0, + "reactionToPushing": "NORMAL", + "isNotColidable": false, + "isCustomSoundType": false, + "soundOnStep": { + "value": "NETHERRACK" + }, + "breakSound": { + "value": "" + }, + "fallSound": { + "value": "" + }, + "hitSound": { + "value": "" + }, + "placeSound": { + "value": "" + }, + "stepSound": { + "value": "" + }, + "luminance": 0, + "unbreakable": false, + "vanillaToolTier": "NONE", + "isBonemealable": false, + "hasInventory": false, + "openGUIOnRightClick": false, + "inventorySize": 9, + "inventoryStackSize": 64, + "inventoryDropWhenDestroyed": true, + "inventoryComparatorPower": true, + "inventoryOutSlotIDs": [], + "inventoryInSlotIDs": [], + "hasEnergyStorage": false, + "energyInitial": 0, + "energyCapacity": 400000, + "energyMaxReceive": 200, + "energyMaxExtract": 200, + "isFluidTank": false, + "fluidCapacity": 8000, + "fluidRestrictions": [], + "generateFeature": false, + "restrictionBiomes": [], + "blocksToReplace": [ + { + "value": "TAG:stone_ore_replaceables" + } + ], + "generationShape": "UNIFORM", + "frequencyPerChunks": 10, + "frequencyOnChunk": 16, + "minGenerateHeight": 0, + "maxGenerateHeight": 64 + } +} \ No newline at end of file diff --git a/elements/QuadraCondensedNetherrackRecipe.mod.json b/elements/QuadraCondensedNetherrackRecipe.mod.json new file mode 100644 index 0000000..c3d9b26 --- /dev/null +++ b/elements/QuadraCondensedNetherrackRecipe.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Crafting", + "recipeRetstackSize": 1, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "BUILDING", + "recipeShapeless": false, + "recipeSlots": [ + { + "value": "CUSTOM:CondensedCondensedCondensedNetherrack" + }, + { + "value": "CUSTOM:CondensedCondensedCondensedNetherrack" + }, + { + "value": "CUSTOM:CondensedCondensedCondensedNetherrack" + }, + { + "value": "CUSTOM:CondensedCondensedCondensedNetherrack" + }, + { + "value": "CUSTOM:CondensedCondensedCondensedNetherrack" + }, + { + "value": "CUSTOM:CondensedCondensedCondensedNetherrack" + }, + { + "value": "CUSTOM:CondensedCondensedCondensedNetherrack" + }, + { + "value": "CUSTOM:CondensedCondensedCondensedNetherrack" + }, + { + "value": "CUSTOM:CondensedCondensedCondensedNetherrack" + } + ], + "recipeReturnStack": { + "value": "CUSTOM:QuadraCondensedNetherrack" + }, + "name": "quadra_condensed_netherrack_recipe", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/QuadraCondensedNetherrackRecipe2.mod.json b/elements/QuadraCondensedNetherrackRecipe2.mod.json new file mode 100644 index 0000000..e97d6c7 --- /dev/null +++ b/elements/QuadraCondensedNetherrackRecipe2.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Crafting", + "recipeRetstackSize": 9, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "BUILDING", + "recipeShapeless": true, + "recipeSlots": [ + { + "value": "CUSTOM:QuadraCondensedNetherrack" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + } + ], + "recipeReturnStack": { + "value": "CUSTOM:CondensedCondensedCondensedNetherrack" + }, + "name": "quadra_condensed_netherrack_recipe_2", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/SandDust.mod.json b/elements/SandDust.mod.json new file mode 100644 index 0000000..ff373e1 --- /dev/null +++ b/elements/SandDust.mod.json @@ -0,0 +1,63 @@ +{ + "_fv": 73, + "_type": "item", + "definition": { + "renderType": 0, + "texture": "sand_dust", + "customModelName": "Normal", + "customProperties": {}, + "states": [], + "name": "Sand Dust", + "rarity": "COMMON", + "creativeTabs": [ + { + "value": "MATERIALS" + } + ], + "stackSize": 64, + "enchantability": 0, + "useDuration": 0, + "toolType": 1.0, + "damageCount": 0, + "recipeRemainder": { + "value": "" + }, + "destroyAnyBlock": false, + "immuneToFire": false, + "stayInGridWhenCrafting": false, + "damageOnCrafting": false, + "enableMeleeDamage": false, + "damageVsEntity": 0.0, + "specialInformation": { + "fixedValue": [] + }, + "glowCondition": { + "fixedValue": false + }, + "inventorySize": 9, + "inventoryStackSize": 64, + "enableRanged": false, + "shootConstantly": false, + "rangedItemChargesPower": false, + "projectile": { + "value": "Arrow" + }, + "projectileDisableAmmoCheck": false, + "isFood": false, + "nutritionalValue": 4, + "saturation": 0.3, + "eatResultItem": { + "value": "" + }, + "isMeat": false, + "isAlwaysEdible": false, + "animation": "none", + "isMusicDisc": false, + "musicDiscMusic": { + "value": "" + }, + "musicDiscDescription": "", + "musicDiscLengthInTicks": 100, + "musicDiscAnalogOutput": 0 + } +} \ No newline at end of file diff --git a/elements/SandDustRecipe.mod.json b/elements/SandDustRecipe.mod.json new file mode 100644 index 0000000..987d6a2 --- /dev/null +++ b/elements/SandDustRecipe.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Crafting", + "recipeRetstackSize": 4, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "MISC", + "recipeShapeless": true, + "recipeSlots": [ + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "Blocks.SAND#0" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + } + ], + "recipeReturnStack": { + "value": "CUSTOM:SandDust" + }, + "name": "sand_dust_recipe", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/SandRecipe.mod.json b/elements/SandRecipe.mod.json new file mode 100644 index 0000000..d554a52 --- /dev/null +++ b/elements/SandRecipe.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Crafting", + "recipeRetstackSize": 1, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "MISC", + "recipeShapeless": false, + "recipeSlots": [ + { + "value": "CUSTOM:SandDust" + }, + { + "value": "CUSTOM:SandDust" + }, + { + "value": "" + }, + { + "value": "CUSTOM:SandDust" + }, + { + "value": "CUSTOM:SandDust" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + } + ], + "recipeReturnStack": { + "value": "Blocks.SAND#0" + }, + "name": "sand_recipe", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/Shit.mod.json b/elements/Shit.mod.json new file mode 100644 index 0000000..73f1b14 --- /dev/null +++ b/elements/Shit.mod.json @@ -0,0 +1,63 @@ +{ + "_fv": 73, + "_type": "item", + "definition": { + "renderType": 0, + "texture": "shit", + "customModelName": "Ranged item", + "customProperties": {}, + "states": [], + "name": "Shit", + "rarity": "UNCOMMON", + "creativeTabs": [ + { + "value": "TOOLS" + } + ], + "stackSize": 64, + "enchantability": 0, + "useDuration": 72000, + "toolType": 1.0, + "damageCount": 0, + "recipeRemainder": { + "value": "" + }, + "destroyAnyBlock": false, + "immuneToFire": false, + "stayInGridWhenCrafting": false, + "damageOnCrafting": false, + "enableMeleeDamage": false, + "damageVsEntity": 0.0, + "specialInformation": { + "fixedValue": [] + }, + "glowCondition": { + "fixedValue": false + }, + "inventorySize": 9, + "inventoryStackSize": 64, + "enableRanged": true, + "shootConstantly": false, + "rangedItemChargesPower": true, + "projectile": { + "value": "CUSTOM:ShitProjectile" + }, + "projectileDisableAmmoCheck": false, + "isFood": false, + "nutritionalValue": 4, + "saturation": 0.3, + "eatResultItem": { + "value": "" + }, + "isMeat": false, + "isAlwaysEdible": false, + "animation": "spear", + "isMusicDisc": false, + "musicDiscMusic": { + "value": "" + }, + "musicDiscDescription": "", + "musicDiscLengthInTicks": 100, + "musicDiscAnalogOutput": 0 + } +} \ No newline at end of file diff --git a/elements/ShitGUI.mod.json b/elements/ShitGUI.mod.json new file mode 100644 index 0000000..da6816b --- /dev/null +++ b/elements/ShitGUI.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "gui", + "definition": { + "type": 0, + "width": 176, + "height": 166, + "inventoryOffsetX": 0, + "inventoryOffsetY": 0, + "renderBgLayer": false, + "doesPauseGame": false, + "components": [ + { + "type": "image", + "data": { + "image": "shit.png", + "use1Xscale": false, + "x": 96, + "y": -1, + "locked": false + } + }, + { + "type": "label", + "data": { + "name": "label_uh_ohh_stinky", + "text": { + "fixedValue": "UH OHH!!! STINKY!!! UH OHH!!! STINKY!!! UH OHH!!! STINKY!!! UH OHH!!! STINKY!!! " + }, + "color": { + "value": -52, + "falpha": 0.0 + }, + "x": 5, + "y": 3, + "locked": false + } + } + ], + "gridSettings": { + "sx": 18, + "sy": 18, + "ox": 11, + "oy": 15, + "snapOnGrid": false + } + } +} \ No newline at end of file diff --git a/elements/ShitProjectile.mod.json b/elements/ShitProjectile.mod.json new file mode 100644 index 0000000..f5013ae --- /dev/null +++ b/elements/ShitProjectile.mod.json @@ -0,0 +1,24 @@ +{ + "_fv": 73, + "_type": "projectile", + "definition": { + "projectileItem": { + "value": "CUSTOM:Shit" + }, + "showParticles": false, + "actionSound": { + "value": "entity.snowball.throw" + }, + "igniteFire": false, + "power": 1.0, + "damage": 0.0, + "knockback": 0, + "entityModel": "Default", + "customModelTexture": "", + "modelWidth": 0.5, + "modelHeight": 0.5, + "onHitsPlayer": { + "name": "ShitProjectileProjectileHitsPlayer" + } + } +} \ No newline at end of file diff --git a/elements/ShitProjectileProjectileHitsPlayer.mod.json b/elements/ShitProjectileProjectileHitsPlayer.mod.json new file mode 100644 index 0000000..784841b --- /dev/null +++ b/elements/ShitProjectileProjectileHitsPlayer.mod.json @@ -0,0 +1,7 @@ +{ + "_fv": 73, + "_type": "procedure", + "definition": { + "procedurexml": "no_ext_triggerentity.ghast.screamplayer0.80.91.1CUSTOM:StinkyEffect160FALSEFALSE" + } +} \ No newline at end of file diff --git a/elements/ShitRecipe.mod.json b/elements/ShitRecipe.mod.json new file mode 100644 index 0000000..618d1c2 --- /dev/null +++ b/elements/ShitRecipe.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Crafting", + "recipeRetstackSize": 2, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "MISC", + "recipeShapeless": true, + "recipeSlots": [ + { + "value": "Blocks.DIRT#1" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + } + ], + "recipeReturnStack": { + "value": "CUSTOM:Shit" + }, + "name": "shit_recipe", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/ShitRecipe2.mod.json b/elements/ShitRecipe2.mod.json new file mode 100644 index 0000000..8957409 --- /dev/null +++ b/elements/ShitRecipe2.mod.json @@ -0,0 +1,48 @@ +{ + "_fv": 73, + "_type": "recipe", + "definition": { + "recipeType": "Crafting", + "recipeRetstackSize": 1, + "group": "", + "cookingBookCategory": "MISC", + "xpReward": 0.0, + "cookingTime": 200, + "craftingBookCategory": "MISC", + "recipeShapeless": true, + "recipeSlots": [ + { + "value": "CUSTOM:BrokenGlass" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + }, + { + "value": "" + } + ], + "recipeReturnStack": { + "value": "CUSTOM:Shit" + }, + "name": "shit_recipe_2", + "namespace": "mod" + } +} \ No newline at end of file diff --git a/elements/ShitSpawnLogic.mod.json b/elements/ShitSpawnLogic.mod.json new file mode 100644 index 0000000..c1a0d9c --- /dev/null +++ b/elements/ShitSpawnLogic.mod.json @@ -0,0 +1,7 @@ +{ + "_fv": 73, + "_type": "procedure", + "definition": { + "procedurexml": "entity_ticksShitCounterADDShitCounter1ANDEQMODShitCounter60000LTRANDOM0.125TRUECUSTOM:Shit20" + } +} \ No newline at end of file diff --git a/elements/StinkyEffect.mod.json b/elements/StinkyEffect.mod.json new file mode 100644 index 0000000..d465992 --- /dev/null +++ b/elements/StinkyEffect.mod.json @@ -0,0 +1,26 @@ +{ + "_fv": 73, + "_type": "potioneffect", + "definition": { + "effectName": "Stinky", + "icon": "stinky_effect", + "color": { + "value": -2621555, + "falpha": 0.0 + }, + "isInstant": false, + "mobEffectCategory": "HARMFUL", + "renderStatusInInventory": true, + "renderStatusInHUD": true, + "isCuredByMilk": false, + "isProtectedByTotem": false, + "isCuredbyHoney": false, + "modifiers": [], + "onActiveTick": { + "name": "StinkyEffectOnEffectActiveTick" + }, + "onExpired": { + "name": "StinkyEffectEffectExpires" + } + } +} \ No newline at end of file diff --git a/elements/StinkyEffectEffectExpires.mod.json b/elements/StinkyEffectEffectExpires.mod.json new file mode 100644 index 0000000..33e0c40 --- /dev/null +++ b/elements/StinkyEffectEffectExpires.mod.json @@ -0,0 +1,7 @@ +{ + "_fv": 73, + "_type": "procedure", + "definition": { + "procedurexml": "no_ext_triggerShitGUI" + } +} \ No newline at end of file diff --git a/elements/StinkyEffectOnEffectActiveTick.mod.json b/elements/StinkyEffectOnEffectActiveTick.mod.json new file mode 100644 index 0000000..0962890 --- /dev/null +++ b/elements/StinkyEffectOnEffectActiveTick.mod.json @@ -0,0 +1,7 @@ +{ + "_fv": 73, + "_type": "procedure", + "definition": { + "procedurexml": "no_ext_triggerShitGUIShitGUI" + } +} \ No newline at end of file diff --git a/elements/SummonedEntityEffect.mod.json b/elements/SummonedEntityEffect.mod.json new file mode 100644 index 0000000..16d0f78 --- /dev/null +++ b/elements/SummonedEntityEffect.mod.json @@ -0,0 +1,23 @@ +{ + "_fv": 73, + "_type": "potioneffect", + "definition": { + "effectName": "Summoned Entity", + "icon": "summoned_entity_effect", + "color": { + "value": -16777216, + "falpha": 0.0 + }, + "isInstant": false, + "mobEffectCategory": "HARMFUL", + "renderStatusInInventory": false, + "renderStatusInHUD": false, + "isCuredByMilk": false, + "isProtectedByTotem": false, + "isCuredbyHoney": false, + "modifiers": [], + "onExpired": { + "name": "SummonedEntityEffectEffectExpires" + } + } +} \ No newline at end of file diff --git a/elements/SummonedEntityEffectEffectExpires.mod.json b/elements/SummonedEntityEffectEffectExpires.mod.json new file mode 100644 index 0000000..af06763 --- /dev/null +++ b/elements/SummonedEntityEffectEffectExpires.mod.json @@ -0,0 +1,7 @@ +{ + "_fv": 73, + "_type": "procedure", + "definition": { + "procedurexml": "no_ext_triggerSOUL_FIRE_FLAME60.60.60.60.16999OUT_OF_WORLD" + } +} \ No newline at end of file diff --git a/forge 1.20.1/1.0/nims_random_bullshit-1.0.0-forge-1.20.1.jar b/forge 1.20.1/1.0/nims_random_bullshit-1.0.0-forge-1.20.1.jar deleted file mode 100644 index a1b41ee..0000000 Binary files a/forge 1.20.1/1.0/nims_random_bullshit-1.0.0-forge-1.20.1.jar and /dev/null differ diff --git a/forge 1.20.1/1.1/nims_random_bullshit-1.1.0-forge-1.20.1.jar b/forge 1.20.1/1.1/nims_random_bullshit-1.1.0-forge-1.20.1.jar deleted file mode 100644 index 2a09ac3..0000000 Binary files a/forge 1.20.1/1.1/nims_random_bullshit-1.1.0-forge-1.20.1.jar and /dev/null differ diff --git a/forge 1.20.1/1.1/nims_random_bullshit-1.1.1-forge-1.20.1.jar b/forge 1.20.1/1.1/nims_random_bullshit-1.1.1-forge-1.20.1.jar deleted file mode 100644 index 6cd7273..0000000 Binary files a/forge 1.20.1/1.1/nims_random_bullshit-1.1.1-forge-1.20.1.jar and /dev/null differ diff --git a/forge 1.20.1/1.2/nims_random_bullshit-1.2.0-forge-1.20.1.jar b/forge 1.20.1/1.2/nims_random_bullshit-1.2.0-forge-1.20.1.jar deleted file mode 100644 index 8d2a24a..0000000 Binary files a/forge 1.20.1/1.2/nims_random_bullshit-1.2.0-forge-1.20.1.jar and /dev/null differ diff --git a/forge 1.20.1/1.2/nims_random_bullshit-1.2.1-forge-1.20.1.jar b/forge 1.20.1/1.2/nims_random_bullshit-1.2.1-forge-1.20.1.jar deleted file mode 100644 index d352f48..0000000 Binary files a/forge 1.20.1/1.2/nims_random_bullshit-1.2.1-forge-1.20.1.jar and /dev/null differ diff --git a/forge 1.20.1/1.2/nims_random_bullshit-1.2.2-forge-1.20.1.jar b/forge 1.20.1/1.2/nims_random_bullshit-1.2.2-forge-1.20.1.jar deleted file mode 100644 index 7b6855a..0000000 Binary files a/forge 1.20.1/1.2/nims_random_bullshit-1.2.2-forge-1.20.1.jar and /dev/null differ diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..f237dcf --- /dev/null +++ b/gradle.properties @@ -0,0 +1,2 @@ +org.gradle.jvmargs=-Xmx3G +org.gradle.daemon=false \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..e644113 Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..a441313 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100644 index 0000000..65dcd68 --- /dev/null +++ b/gradlew @@ -0,0 +1,244 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +# 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"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + 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 + +# Increase the maximum file descriptors if we can. +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=SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# 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" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..93e3f59 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +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 + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +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 + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/mcreator.gradle b/mcreator.gradle new file mode 100644 index 0000000..e69de29 diff --git a/nims_random_bullshit.mcreator b/nims_random_bullshit.mcreator new file mode 100644 index 0000000..1fe2ad7 --- /dev/null +++ b/nims_random_bullshit.mcreator @@ -0,0 +1,1347 @@ +{ + "mod_elements": [ + { + "name": "CondensedNetherrack", + "type": "block", + "compiles": true, + "locked_code": false, + "registry_name": "condensed_netherrack", + "metadata": { + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/block/CondensedNetherrackBlock.java", + "src/main/resources/assets/nims_random_bullshit/models/block/condensed_netherrack.json", + "src/main/resources/data/nims_random_bullshit/loot_tables/blocks/condensed_netherrack.json", + "src/main/resources/assets/nims_random_bullshit/models/item/condensed_netherrack.json", + "src/main/resources/assets/nims_random_bullshit/blockstates/condensed_netherrack.json" + ] + }, + "path": "~/Netherracks" + }, + { + "name": "CondensedCondensedNetherrack", + "type": "block", + "compiles": true, + "locked_code": false, + "registry_name": "condensed_condensed_netherrack", + "metadata": { + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/block/CondensedCondensedNetherrackBlock.java", + "src/main/resources/assets/nims_random_bullshit/models/block/condensed_condensed_netherrack.json", + "src/main/resources/data/nims_random_bullshit/loot_tables/blocks/condensed_condensed_netherrack.json", + "src/main/resources/assets/nims_random_bullshit/models/item/condensed_condensed_netherrack.json", + "src/main/resources/assets/nims_random_bullshit/blockstates/condensed_condensed_netherrack.json" + ] + }, + "path": "~/Netherracks" + }, + { + "name": "CondensedCondensedCondensedNetherrack", + "type": "block", + "compiles": true, + "locked_code": false, + "registry_name": "condensed_condensed_condensed_netherrack", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/loot_tables/blocks/condensed_condensed_condensed_netherrack.json", + "src/main/resources/assets/nims_random_bullshit/blockstates/condensed_condensed_condensed_netherrack.json", + "src/main/java/net/mcreator/nimsrandombullshit/block/CondensedCondensedCondensedNetherrackBlock.java", + "src/main/resources/assets/nims_random_bullshit/models/item/condensed_condensed_condensed_netherrack.json", + "src/main/resources/assets/nims_random_bullshit/models/block/condensed_condensed_condensed_netherrack.json" + ] + }, + "path": "~/Netherracks" + }, + { + "name": "CondensedNetherrackRecipe", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "condensed_netherrack_recipe", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/condensed_netherrack_recipe.json" + ] + }, + "path": "~/Netherracks" + }, + { + "name": "CondensedCondensedNetherrackRecipe", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "condensed_condensed_netherrack_recipe", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/condensed_condensed_netherrack_recipe.json" + ] + }, + "path": "~/Netherracks" + }, + { + "name": "CondensedCondensedCondensedNetherrackRecipe", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "condensed_condensed_condensed_netherrack_recipe", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/condensed_condensed_condensed_netherrack_recipe.json" + ] + }, + "path": "~/Netherracks" + }, + { + "name": "NetherrackRecipe", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "netherrack_recipe", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/netherrack_recipe.json" + ] + }, + "path": "~/Netherracks" + }, + { + "name": "CondensedNetherrackRecipe2", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "condensed_netherrack_recipe_2", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/condensed_netherrack_recipe_2.json" + ] + }, + "path": "~/Netherracks" + }, + { + "name": "CondensedCondensedNetherrack2", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "condensed_condensed_netherrack_2", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/condensed_condensed_netherrack_2.json" + ] + }, + "path": "~/Netherracks" + }, + { + "name": "BlockEater", + "type": "item", + "compiles": true, + "locked_code": false, + "registry_name": "block_eater", + "metadata": { + "files": [ + "src/main/resources/assets/nims_random_bullshit/models/item/block_eater.json", + "src/main/java/net/mcreator/nimsrandombullshit/item/BlockEaterItem.java" + ] + }, + "path": "~/Netherracks" + }, + { + "name": "BlockEaterRightclickedOnBlock", + "type": "procedure", + "compiles": true, + "locked_code": false, + "registry_name": "block_eater_rightclicked_on_block", + "metadata": { + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/procedures/BlockEaterRightclickedOnBlockProcedure.java" + ], + "dependencies": [ + { + "name": "entity", + "type": "entity" + }, + { + "name": "itemstack", + "type": "itemstack" + }, + { + "name": "x", + "type": "number" + }, + { + "name": "y", + "type": "number" + }, + { + "name": "z", + "type": "number" + }, + { + "name": "world", + "type": "world" + } + ] + }, + "path": "~/Netherracks" + }, + { + "name": "BlockEaterRecipe", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "block_eater_recipe", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/block_eater_recipe.json" + ] + }, + "path": "~/Netherracks" + }, + { + "name": "PassiveIncomeEnchantment", + "type": "enchantment", + "compiles": true, + "locked_code": false, + "registry_name": "passive_income_enchantment", + "metadata": { + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/enchantment/PassiveIncomeEnchantmentEnchantment.java" + ] + }, + "path": "~/Other" + }, + { + "name": "PassiveIncomeProcedure", + "type": "procedure", + "compiles": true, + "locked_code": false, + "registry_name": "passive_income_procedure", + "metadata": { + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/procedures/PassiveIncomeProcedureProcedure.java" + ], + "dependencies": [ + { + "name": "entity", + "type": "entity" + }, + { + "name": "world", + "type": "world" + } + ] + }, + "path": "~/Other" + }, + { + "name": "BrokenGlass", + "type": "block", + "compiles": true, + "locked_code": false, + "registry_name": "broken_glass", + "metadata": { + "files": [ + "src/main/resources/assets/nims_random_bullshit/blockstates/broken_glass.json", + "src/main/resources/assets/nims_random_bullshit/models/block/broken_glass_side.json", + "src/main/java/net/mcreator/nimsrandombullshit/block/BrokenGlassBlock.java", + "src/main/resources/data/nims_random_bullshit/loot_tables/blocks/broken_glass.json", + "src/main/resources/assets/nims_random_bullshit/models/block/broken_glass_noside_alt.json", + "src/main/resources/assets/nims_random_bullshit/models/item/broken_glass.json", + "src/main/resources/assets/nims_random_bullshit/models/block/broken_glass_noside.json", + "src/main/resources/assets/nims_random_bullshit/models/block/broken_glass_post.json", + "src/main/resources/assets/nims_random_bullshit/models/block/broken_glass_side_alt.json" + ] + }, + "path": "~/Other" + }, + { + "name": "BrokenGlassRecipe", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "broken_glass_recipe", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/broken_glass_recipe.json" + ] + }, + "path": "~/Other" + }, + { + "name": "QuadraCondensedNetherrack", + "type": "block", + "compiles": true, + "locked_code": false, + "registry_name": "quadra_condensed_netherrack", + "metadata": { + "files": [ + "src/main/resources/assets/nims_random_bullshit/models/block/quadra_condensed_netherrack.json", + "src/main/java/net/mcreator/nimsrandombullshit/block/QuadraCondensedNetherrackBlock.java", + "src/main/resources/data/nims_random_bullshit/loot_tables/blocks/quadra_condensed_netherrack.json", + "src/main/resources/assets/nims_random_bullshit/blockstates/quadra_condensed_netherrack.json", + "src/main/resources/assets/nims_random_bullshit/models/item/quadra_condensed_netherrack.json" + ] + }, + "path": "~/Netherracks" + }, + { + "name": "NetherrackitePickaxe", + "type": "tool", + "compiles": true, + "locked_code": false, + "registry_name": "netherrackite_pickaxe", + "metadata": { + "files": [ + "src/main/resources/assets/nims_random_bullshit/models/item/netherrackite_pickaxe.json", + "src/main/java/net/mcreator/nimsrandombullshit/item/NetherrackitePickaxeItem.java" + ] + }, + "path": "~/Netherracks" + }, + { + "name": "Netherrackite", + "type": "item", + "compiles": true, + "locked_code": false, + "registry_name": "netherrackite", + "metadata": { + "files": [ + "src/main/resources/assets/nims_random_bullshit/models/item/netherrackite.json", + "src/main/java/net/mcreator/nimsrandombullshit/item/NetherrackiteItem.java" + ] + }, + "path": "~/Netherracks" + }, + { + "name": "NetherrackiteRecipe", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "netherrackite_recipe", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/netherrackite_recipe.json" + ] + }, + "path": "~/Netherracks" + }, + { + "name": "NetherrackitePickaxeRecipe", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "netherrackite_pickaxe_recipe", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/netherrackite_pickaxe_recipe.json" + ] + }, + "path": "~/Netherracks" + }, + { + "name": "QuadraCondensedNetherrackRecipe", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "quadra_condensed_netherrack_recipe", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/quadra_condensed_netherrack_recipe.json" + ] + }, + "path": "~/Netherracks" + }, + { + "name": "QuadraCondensedNetherrackRecipe2", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "quadra_condensed_netherrack_recipe_2", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/quadra_condensed_netherrack_recipe_2.json" + ] + }, + "path": "~/Netherracks" + }, + { + "name": "NetherrackingEnchantment", + "type": "enchantment", + "compiles": true, + "locked_code": false, + "registry_name": "netherracking_enchantment", + "metadata": { + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/enchantment/NetherrackingEnchantmentEnchantment.java" + ] + }, + "path": "~/Netherracks" + }, + { + "name": "NetherrackingLogic", + "type": "procedure", + "compiles": true, + "locked_code": false, + "registry_name": "netherracking_logic", + "metadata": { + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/procedures/NetherrackingLogicProcedure.java" + ], + "dependencies": [ + { + "name": "entity", + "type": "entity" + }, + { + "name": "itemstack", + "type": "itemstack" + }, + { + "name": "world", + "type": "world" + } + ] + }, + "path": "~/Netherracks" + }, + { + "name": "PentaCondensedNetherrack", + "type": "block", + "compiles": true, + "locked_code": false, + "registry_name": "penta_condensed_netherrack", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/loot_tables/blocks/penta_condensed_netherrack.json", + "src/main/resources/assets/nims_random_bullshit/models/item/penta_condensed_netherrack.json", + "src/main/resources/assets/nims_random_bullshit/blockstates/penta_condensed_netherrack.json", + "src/main/resources/assets/nims_random_bullshit/models/block/penta_condensed_netherrack.json", + "src/main/java/net/mcreator/nimsrandombullshit/block/PentaCondensedNetherrackBlock.java" + ] + }, + "path": "~/Netherracks" + }, + { + "name": "PentaCondensedNetherrackRecipe", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "penta_condensed_netherrack_recipe", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/penta_condensed_netherrack_recipe.json" + ] + }, + "path": "~/Netherracks" + }, + { + "name": "PentaCondensedNetherrackRecipe2", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "penta_condensed_netherrack_recipe_2", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/penta_condensed_netherrack_recipe_2.json" + ] + }, + "path": "~/Netherracks" + }, + { + "name": "HexaCondensedNetherrack", + "type": "block", + "compiles": true, + "locked_code": false, + "registry_name": "hexa_condensed_netherrack", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/loot_tables/blocks/hexa_condensed_netherrack.json", + "src/main/resources/assets/nims_random_bullshit/models/item/hexa_condensed_netherrack.json", + "src/main/resources/assets/nims_random_bullshit/models/block/hexa_condensed_netherrack.json", + "src/main/java/net/mcreator/nimsrandombullshit/block/HexaCondensedNetherrackBlock.java", + "src/main/resources/assets/nims_random_bullshit/blockstates/hexa_condensed_netherrack.json" + ] + }, + "path": "~/Netherracks" + }, + { + "name": "HexaCondensedNetherrackRecipe", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "hexa_condensed_netherrack_recipe", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/hexa_condensed_netherrack_recipe.json" + ] + }, + "path": "~/Netherracks" + }, + { + "name": "HexaCondensedNetherrackRecipe2", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "hexa_condensed_netherrack_recipe_2", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/hexa_condensed_netherrack_recipe_2.json" + ] + }, + "path": "~/Netherracks" + }, + { + "name": "NetherrackitePickaxeBlockDestroyedWithTool", + "type": "procedure", + "compiles": true, + "locked_code": false, + "registry_name": "netherrackite_pickaxe_block_destroyed_with_tool", + "metadata": { + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/procedures/NetherrackitePickaxeBlockDestroyedWithToolProcedure.java" + ], + "dependencies": [ + { + "name": "blockstate", + "type": "blockstate" + }, + { + "name": "x", + "type": "number" + }, + { + "name": "y", + "type": "number" + }, + { + "name": "z", + "type": "number" + }, + { + "name": "world", + "type": "world" + } + ] + }, + "path": "~/Netherracks" + }, + { + "name": "SandDust", + "type": "item", + "compiles": true, + "locked_code": false, + "registry_name": "sand_dust", + "metadata": { + "files": [ + "src/main/resources/assets/nims_random_bullshit/models/item/sand_dust.json", + "src/main/java/net/mcreator/nimsrandombullshit/item/SandDustItem.java" + ] + }, + "path": "~/Lapis" + }, + { + "name": "LapisLazuliNugget", + "type": "item", + "compiles": true, + "locked_code": false, + "registry_name": "lapis_lazuli_nugget", + "metadata": { + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/item/LapisLazuliNuggetItem.java", + "src/main/resources/assets/nims_random_bullshit/models/item/lapis_lazuli_nugget.json" + ] + }, + "path": "~/Lapis" + }, + { + "name": "LapisLazuliNuggetRecipe", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "lapis_lazuli_nugget_recipe", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/lapis_lazuli_nugget_recipe.json" + ] + }, + "path": "~/Lapis" + }, + { + "name": "LapisLazuliRecipe", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "lapis_lazuli_recipe", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/lapis_lazuli_recipe.json" + ] + }, + "path": "~/Lapis" + }, + { + "name": "MagicDust", + "type": "item", + "compiles": true, + "locked_code": false, + "registry_name": "magic_dust", + "metadata": { + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/item/MagicDustItem.java", + "src/main/resources/assets/nims_random_bullshit/models/item/magic_dust.json" + ] + }, + "path": "~/Lapis" + }, + { + "name": "MagicDustRecipe", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "magic_dust_recipe", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/magic_dust_recipe.json" + ] + }, + "path": "~/Lapis" + }, + { + "name": "SandDustRecipe", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "sand_dust_recipe", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/sand_dust_recipe.json" + ] + }, + "path": "~/Lapis" + }, + { + "name": "SandRecipe", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "sand_recipe", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/sand_recipe.json" + ] + }, + "path": "~/Lapis" + }, + { + "name": "MagicFlesh", + "type": "item", + "compiles": true, + "locked_code": false, + "registry_name": "magic_flesh", + "metadata": { + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/item/MagicFleshItem.java", + "src/main/resources/assets/nims_random_bullshit/models/item/magic_flesh.json" + ] + }, + "path": "~/Lapis" + }, + { + "name": "MagicFleshOnPlayerStoppedUsing", + "type": "procedure", + "compiles": true, + "locked_code": false, + "registry_name": "magic_flesh_on_player_stopped_using", + "metadata": { + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/procedures/MagicFleshOnPlayerStoppedUsingProcedure.java" + ], + "dependencies": [ + { + "name": "x", + "type": "number" + }, + { + "name": "y", + "type": "number" + }, + { + "name": "z", + "type": "number" + }, + { + "name": "world", + "type": "world" + } + ] + }, + "path": "~/Lapis" + }, + { + "name": "MagicFleshRecipe", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "magic_flesh_recipe", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/magic_flesh_recipe.json" + ] + }, + "path": "~/Lapis" + }, + { + "name": "Shit", + "type": "item", + "compiles": true, + "locked_code": false, + "registry_name": "shit", + "metadata": { + "files": [ + "src/main/resources/assets/nims_random_bullshit/models/item/shit.json", + "src/main/java/net/mcreator/nimsrandombullshit/item/ShitItem.java" + ] + }, + "path": "~/Shit" + }, + { + "name": "ShitProjectile", + "type": "projectile", + "compiles": true, + "locked_code": false, + "registry_name": "shit_projectile", + "metadata": { + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/entity/ShitProjectileEntity.java" + ] + }, + "path": "~/Shit" + }, + { + "name": "StinkyEffect", + "type": "potioneffect", + "compiles": true, + "locked_code": false, + "registry_name": "stinky_effect", + "metadata": { + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/potion/StinkyEffectMobEffect.java" + ] + }, + "path": "~/Shit" + }, + { + "name": "ShitProjectileProjectileHitsPlayer", + "type": "procedure", + "compiles": true, + "locked_code": false, + "registry_name": "shit_projectile_projectile_hits_player", + "metadata": { + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/procedures/ShitProjectileProjectileHitsPlayerProcedure.java" + ], + "dependencies": [ + { + "name": "entity", + "type": "entity" + }, + { + "name": "sourceentity", + "type": "entity" + }, + { + "name": "x", + "type": "number" + }, + { + "name": "y", + "type": "number" + }, + { + "name": "z", + "type": "number" + }, + { + "name": "world", + "type": "world" + } + ] + }, + "path": "~/Shit" + }, + { + "name": "ShitGUI", + "type": "gui", + "compiles": true, + "locked_code": false, + "registry_name": "shit_gui", + "metadata": { + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/client/gui/ShitGUIScreen.java", + "src/main/java/net/mcreator/nimsrandombullshit/world/inventory/ShitGUIMenu.java" + ] + }, + "path": "~/Shit" + }, + { + "name": "StinkyEffectOnEffectActiveTick", + "type": "procedure", + "compiles": true, + "locked_code": false, + "registry_name": "stinky_effect_on_effect_active_tick", + "metadata": { + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/procedures/StinkyEffectOnEffectActiveTickProcedure.java" + ], + "dependencies": [ + { + "name": "entity", + "type": "entity" + }, + { + "name": "x", + "type": "number" + }, + { + "name": "y", + "type": "number" + }, + { + "name": "z", + "type": "number" + }, + { + "name": "world", + "type": "world" + } + ] + }, + "path": "~/Shit" + }, + { + "name": "StinkyEffectEffectExpires", + "type": "procedure", + "compiles": true, + "locked_code": false, + "registry_name": "stinky_effect_effect_expires", + "metadata": { + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/procedures/StinkyEffectEffectExpiresProcedure.java" + ], + "dependencies": [ + { + "name": "entity", + "type": "entity" + } + ] + }, + "path": "~/Shit" + }, + { + "name": "ShitSpawnLogic", + "type": "procedure", + "compiles": true, + "locked_code": false, + "registry_name": "shit_spawn_logic", + "metadata": { + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/procedures/ShitSpawnLogicProcedure.java" + ], + "dependencies": [ + { + "name": "entity", + "type": "entity" + }, + { + "name": "x", + "type": "number" + }, + { + "name": "y", + "type": "number" + }, + { + "name": "z", + "type": "number" + }, + { + "name": "world", + "type": "world" + } + ] + }, + "path": "~/Shit" + }, + { + "name": "BonemealRecipe", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "bonemeal_recipe", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/bonemeal_recipe.json" + ] + }, + "path": "~/Shit" + }, + { + "name": "ShitRecipe", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "shit_recipe", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/shit_recipe.json" + ] + }, + "path": "~/Shit" + }, + { + "name": "ShitRecipe2", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "shit_recipe_2", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/shit_recipe_2.json" + ] + }, + "path": "~/Shit" + }, + { + "name": "GoldenBerries", + "type": "item", + "compiles": true, + "locked_code": false, + "registry_name": "golden_berries", + "metadata": { + "files": [ + "src/main/resources/assets/nims_random_bullshit/models/item/golden_berries.json", + "src/main/java/net/mcreator/nimsrandombullshit/item/GoldenBerriesItem.java" + ] + }, + "path": "~/Other" + }, + { + "name": "GoldenBerriesRecipe", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "golden_berries_recipe", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/golden_berries_recipe.json" + ] + }, + "path": "~/Other" + }, + { + "name": "OreMinerGUI", + "type": "gui", + "compiles": true, + "locked_code": false, + "registry_name": "ore_miner_gui", + "metadata": { + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/client/gui/OreMinerGUIScreen.java", + "src/main/java/net/mcreator/nimsrandombullshit/world/inventory/OreMinerGUIMenu.java", + "src/main/java/net/mcreator/nimsrandombullshit/network/OreMinerGUIButtonMessage.java" + ] + }, + "path": "~/Other" + }, + { + "name": "OreMinerGUISlot0ImageDisplayCondition", + "type": "procedure", + "compiles": true, + "locked_code": false, + "registry_name": "ore_miner_gui_slot_0_image_display_condition", + "metadata": { + "return_type": "logic", + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/procedures/OreMinerGUISlot0ImageDisplayConditionProcedure.java" + ], + "dependencies": [ + { + "name": "entity", + "type": "entity" + } + ] + }, + "path": "~/Other" + }, + { + "name": "NetherriteTemplateRecipe", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "netherrite_template_recipe", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/netherrite_template_recipe.json" + ] + }, + "path": "~/Other" + }, + { + "name": "OreMiner", + "type": "block", + "compiles": true, + "locked_code": false, + "registry_name": "ore_miner", + "metadata": { + "files": [ + "src/main/resources/assets/nims_random_bullshit/models/item/ore_miner.json", + "src/main/resources/assets/nims_random_bullshit/models/block/ore_miner.json", + "src/main/java/net/mcreator/nimsrandombullshit/block/entity/OreMinerBlockEntity.java", + "src/main/resources/assets/nims_random_bullshit/blockstates/ore_miner.json", + "src/main/java/net/mcreator/nimsrandombullshit/block/OreMinerBlock.java", + "src/main/resources/data/nims_random_bullshit/loot_tables/blocks/ore_miner.json" + ] + }, + "path": "~/Other" + }, + { + "name": "OreMinerMineButtonPressed", + "type": "procedure", + "compiles": true, + "locked_code": false, + "registry_name": "ore_miner_mine_button_pressed", + "metadata": { + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/procedures/OreMinerMineButtonPressedProcedure.java" + ], + "dependencies": [ + { + "name": "entity", + "type": "entity" + }, + { + "name": "x", + "type": "number" + }, + { + "name": "y", + "type": "number" + }, + { + "name": "z", + "type": "number" + }, + { + "name": "world", + "type": "world" + } + ] + }, + "path": "~/Other" + }, + { + "name": "OreMinerRecipe", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "ore_miner_recipe", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/ore_miner_recipe.json" + ] + }, + "path": "~/Other" + }, + { + "name": "NetherriteTemplateRecipe2", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "netherrite_template_recipe_2", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/netherrite_template_recipe_2.json" + ] + }, + "path": "~/Other" + }, + { + "name": "Ghoul", + "type": "livingentity", + "compiles": true, + "locked_code": false, + "registry_name": "ghoul", + "metadata": { + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/entity/GhoulEntity.java", + "src/main/resources/assets/nims_random_bullshit/models/item/ghoul_spawn_egg.json", + "src/main/java/net/mcreator/nimsrandombullshit/client/renderer/GhoulRenderer.java" + ] + }, + "path": "~/Other" + }, + { + "name": "GhoulThisEntityKillsAnotherOne", + "type": "procedure", + "compiles": true, + "locked_code": false, + "registry_name": "ghoul_this_entity_kills_another_one", + "metadata": { + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/procedures/GhoulThisEntityKillsAnotherOneProcedure.java" + ], + "dependencies": [ + { + "name": "x", + "type": "number" + }, + { + "name": "y", + "type": "number" + }, + { + "name": "z", + "type": "number" + }, + { + "name": "world", + "type": "world" + } + ] + }, + "path": "~/Other" + }, + { + "name": "Gravedigger", + "type": "tool", + "compiles": true, + "locked_code": false, + "registry_name": "gravedigger", + "metadata": { + "files": [ + "src/main/resources/assets/nims_random_bullshit/models/item/gravedigger.json", + "src/main/java/net/mcreator/nimsrandombullshit/item/GravediggerItem.java" + ] + }, + "path": "~/Other" + }, + { + "name": "GravediggerRecipe", + "type": "recipe", + "compiles": true, + "locked_code": false, + "registry_name": "gravedigger_recipe", + "metadata": { + "files": [ + "src/main/resources/data/nims_random_bullshit/recipes/gravedigger_recipe.json" + ] + }, + "path": "~/Other" + }, + { + "name": "GravediggerRightclickedOnBlock", + "type": "procedure", + "compiles": true, + "locked_code": false, + "registry_name": "gravedigger_rightclicked_on_block", + "metadata": { + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/procedures/GravediggerRightclickedOnBlockProcedure.java" + ], + "dependencies": [ + { + "name": "blockstate", + "type": "blockstate" + }, + { + "name": "entity", + "type": "entity" + }, + { + "name": "itemstack", + "type": "itemstack" + }, + { + "name": "x", + "type": "number" + }, + { + "name": "y", + "type": "number" + }, + { + "name": "z", + "type": "number" + }, + { + "name": "world", + "type": "world" + } + ] + }, + "path": "~/Other" + }, + { + "name": "SummonedEntityEffect", + "type": "potioneffect", + "compiles": true, + "locked_code": false, + "registry_name": "summoned_entity_effect", + "metadata": { + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/potion/SummonedEntityEffectMobEffect.java" + ] + }, + "path": "~/Other" + }, + { + "name": "SummonedEntityEffectEffectExpires", + "type": "procedure", + "compiles": true, + "locked_code": false, + "registry_name": "summoned_entity_effect_effect_expires", + "metadata": { + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/procedures/SummonedEntityEffectEffectExpiresProcedure.java" + ], + "dependencies": [ + { + "name": "entity", + "type": "entity" + }, + { + "name": "x", + "type": "number" + }, + { + "name": "y", + "type": "number" + }, + { + "name": "z", + "type": "number" + }, + { + "name": "world", + "type": "world" + } + ] + }, + "path": "~/Other" + }, + { + "name": "GhoulOnInitialEntitySpawn", + "type": "procedure", + "compiles": true, + "locked_code": false, + "registry_name": "ghoul_on_initial_entity_spawn", + "metadata": { + "files": [ + "src/main/java/net/mcreator/nimsrandombullshit/procedures/GhoulOnInitialEntitySpawnProcedure.java" + ], + "dependencies": [ + { + "name": "entity", + "type": "entity" + } + ] + }, + "path": "~/Other" + } + ], + "variable_elements": [], + "sound_elements": [], + "tag_elements": { + "BLOCKS:minecraft:mineable/pickaxe": [ + "~CUSTOM:HexaCondensedNetherrack", + "~CUSTOM:PentaCondensedNetherrack", + "~CUSTOM:QuadraCondensedNetherrack", + "~CUSTOM:CondensedCondensedCondensedNetherrack", + "~CUSTOM:CondensedCondensedNetherrack", + "~CUSTOM:CondensedNetherrack" + ], + "ITEMS:minecraft:pickaxes": [ + "~CUSTOM:NetherrackitePickaxe" + ], + "ITEMS:minecraft:shovels": [ + "~CUSTOM:Gravedigger" + ], + "BLOCKS:mod:netherrack": [ + "Blocks.NETHERRACK", + "CUSTOM:CondensedNetherrack", + "CUSTOM:CondensedCondensedNetherrack", + "CUSTOM:CondensedCondensedCondensedNetherrack", + "CUSTOM:QuadraCondensedNetherrack", + "CUSTOM:PentaCondensedNetherrack" + ] + }, + "tab_element_order": {}, + "language_map": { + "en_us": { + "block.nims_random_bullshit.condensed_condensed_netherrack": "Condensed Condensed Netherrack", + "item.nims_random_bullshit.gravedigger": "Gravedigger", + "gui.nims_random_bullshit.ore_miner_gui.button_mine": "Mine", + "block.nims_random_bullshit.quadra_condensed_netherrack": "Quadra-condensed Netherrack", + "block.nims_random_bullshit.penta_condensed_netherrack": "Penta-condensed Netherrack", + "item.nims_random_bullshit.magic_dust": "Magic Dust", + "enchantment.nims_random_bullshit.passive_income_enchantment": "Passive Income", + "item.nims_random_bullshit.netherrackite_pickaxe.description_0": "Non-condensed netherracks broken by this pickaxe drop themselves an additional time.", + "item.nims_random_bullshit.netherrackite_pickaxe": "Netherrackite Pickaxe", + "effect.nims_random_bullshit.stinky_effect": "Stinky", + "block.nims_random_bullshit.broken_glass": "Broken Glass", + "block.nims_random_bullshit.hexa_condensed_netherrack": "Hexa-condensed Netherrack", + "block.nims_random_bullshit.ore_miner": "Ore Miner", + "effect.nims_random_bullshit.summoned_entity_effect": "Summoned Entity", + "item.nims_random_bullshit.sand_dust": "Sand Dust", + "item.nims_random_bullshit.magic_flesh": "Magic Flesh", + "item.nims_random_bullshit.ghoul_spawn_egg": "Ghoul Spawn Egg", + "item.nims_random_bullshit.block_eater": "Block Eater", + "item.nims_random_bullshit.golden_berries": "Golden Berries", + "block.nims_random_bullshit.condensed_condensed_condensed_netherrack": "Condensed Condensed Condensed Netherrack", + "entity.nims_random_bullshit.ghoul": "Ghoul", + "gui.nims_random_bullshit.shit_gui.label_uh_ohh_stinky": "UH OHH!!! STINKY!!! UH OHH!!! STINKY!!! UH OHH!!! STINKY!!! UH OHH!!! STINKY!!! ", + "item.nims_random_bullshit.lapis_lazuli_nugget": "Lapis Lazuli Nugget", + "item.nims_random_bullshit.gravedigger.description_1": "We must dig!", + "item.nims_random_bullshit.gravedigger.description_0": "Right-Click on soul sand or soul soil to use them, summoning a ghoul that attacks hostile mobs.", + "item.nims_random_bullshit.shit": "Shit", + "block.nims_random_bullshit.condensed_netherrack": "Condensed Netherrack", + "enchantment.nims_random_bullshit.netherracking_enchantment": "Netherracking", + "item.nims_random_bullshit.netherrackite": "Netherrackite" + } + }, + "foldersRoot": { + "name": "~", + "children": [ + { + "name": "Netherracks", + "children": [] + }, + { + "name": "Other", + "children": [] + }, + { + "name": "Shit", + "children": [] + }, + { + "name": "Lapis", + "children": [] + } + ] + }, + "workspaceSettings": { + "modid": "nims_random_bullshit", + "modName": "Nim\u0027s Random Bullshit", + "version": "1.0.0", + "author": "nimsolated, MCreator", + "websiteURL": "https://mcreator.net", + "license": "Academic Free License v3.0", + "serverSideOnly": false, + "requiredMods": [], + "dependencies": [], + "dependants": [], + "mcreatorDependencies": [], + "currentGenerator": "forge-1.20.1", + "modElementsPackage": "net.mcreator.nimsrandombullshit" + }, + "mcreatorVersion": 202400452410 +} \ No newline at end of file diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..93f1b80 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,13 @@ +pluginManagement { + repositories { + gradlePluginPortal() + maven { + name = 'MinecraftForge' + url = 'https://maven.minecraftforge.net/' + } + } +} + +plugins { + id 'org.gradle.toolchains.foojay-resolver-convention' version '0.7.0' +} \ No newline at end of file diff --git a/src/main/java/net/mcreator/nimsrandombullshit/NimsRandomBullshitMod.java b/src/main/java/net/mcreator/nimsrandombullshit/NimsRandomBullshitMod.java new file mode 100644 index 0000000..9789cf5 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/NimsRandomBullshitMod.java @@ -0,0 +1,95 @@ +package net.mcreator.nimsrandombullshit; + +import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.LogManager; + +import net.minecraftforge.network.simple.SimpleChannel; +import net.minecraftforge.network.NetworkRegistry; +import net.minecraftforge.network.NetworkEvent; +import net.minecraftforge.fml.util.thread.SidedThreadGroups; +import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.event.TickEvent; +import net.minecraftforge.common.MinecraftForge; + +import net.minecraft.resources.ResourceLocation; +import net.minecraft.network.FriendlyByteBuf; + +import net.mcreator.nimsrandombullshit.init.NimsRandomBullshitModTabs; +import net.mcreator.nimsrandombullshit.init.NimsRandomBullshitModMobEffects; +import net.mcreator.nimsrandombullshit.init.NimsRandomBullshitModMenus; +import net.mcreator.nimsrandombullshit.init.NimsRandomBullshitModItems; +import net.mcreator.nimsrandombullshit.init.NimsRandomBullshitModEntities; +import net.mcreator.nimsrandombullshit.init.NimsRandomBullshitModEnchantments; +import net.mcreator.nimsrandombullshit.init.NimsRandomBullshitModBlocks; +import net.mcreator.nimsrandombullshit.init.NimsRandomBullshitModBlockEntities; + +import java.util.function.Supplier; +import java.util.function.Function; +import java.util.function.BiConsumer; +import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.List; +import java.util.Collection; +import java.util.ArrayList; +import java.util.AbstractMap; + +@Mod("nims_random_bullshit") +public class NimsRandomBullshitMod { + public static final Logger LOGGER = LogManager.getLogger(NimsRandomBullshitMod.class); + public static final String MODID = "nims_random_bullshit"; + + public NimsRandomBullshitMod() { + // Start of user code block mod constructor + // End of user code block mod constructor + MinecraftForge.EVENT_BUS.register(this); + IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus(); + + NimsRandomBullshitModBlocks.REGISTRY.register(bus); + NimsRandomBullshitModBlockEntities.REGISTRY.register(bus); + NimsRandomBullshitModItems.REGISTRY.register(bus); + NimsRandomBullshitModEntities.REGISTRY.register(bus); + NimsRandomBullshitModEnchantments.REGISTRY.register(bus); + NimsRandomBullshitModTabs.REGISTRY.register(bus); + + NimsRandomBullshitModMobEffects.REGISTRY.register(bus); + + NimsRandomBullshitModMenus.REGISTRY.register(bus); + + // Start of user code block mod init + // End of user code block mod init + } + + // Start of user code block mod methods + // End of user code block mod methods + private static final String PROTOCOL_VERSION = "1"; + public static final SimpleChannel PACKET_HANDLER = NetworkRegistry.newSimpleChannel(new ResourceLocation(MODID, MODID), () -> PROTOCOL_VERSION, PROTOCOL_VERSION::equals, PROTOCOL_VERSION::equals); + private static int messageID = 0; + + public static void addNetworkMessage(Class messageType, BiConsumer encoder, Function decoder, BiConsumer> messageConsumer) { + PACKET_HANDLER.registerMessage(messageID, messageType, encoder, decoder, messageConsumer); + messageID++; + } + + private static final Collection> workQueue = new ConcurrentLinkedQueue<>(); + + public static void queueServerWork(int tick, Runnable action) { + if (Thread.currentThread().getThreadGroup() == SidedThreadGroups.SERVER) + workQueue.add(new AbstractMap.SimpleEntry<>(action, tick)); + } + + @SubscribeEvent + public void tick(TickEvent.ServerTickEvent event) { + if (event.phase == TickEvent.Phase.END) { + List> actions = new ArrayList<>(); + workQueue.forEach(work -> { + work.setValue(work.getValue() - 1); + if (work.getValue() == 0) + actions.add(work); + }); + actions.forEach(e -> e.getKey().run()); + workQueue.removeAll(actions); + } + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/block/BrokenGlassBlock.java b/src/main/java/net/mcreator/nimsrandombullshit/block/BrokenGlassBlock.java new file mode 100644 index 0000000..200ef4d --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/block/BrokenGlassBlock.java @@ -0,0 +1,21 @@ + +package net.mcreator.nimsrandombullshit.block; + +import net.minecraft.world.level.block.state.properties.NoteBlockInstrument; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.SoundType; +import net.minecraft.world.level.block.IronBarsBlock; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.core.BlockPos; + +public class BrokenGlassBlock extends IronBarsBlock { + public BrokenGlassBlock() { + super(BlockBehaviour.Properties.of().instrument(NoteBlockInstrument.HAT).sound(SoundType.GLASS).strength(0.3f).noOcclusion().isRedstoneConductor((bs, br, bp) -> false)); + } + + @Override + public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) { + return 0; + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/block/CondensedCondensedCondensedNetherrackBlock.java b/src/main/java/net/mcreator/nimsrandombullshit/block/CondensedCondensedCondensedNetherrackBlock.java new file mode 100644 index 0000000..70f805e --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/block/CondensedCondensedCondensedNetherrackBlock.java @@ -0,0 +1,21 @@ + +package net.mcreator.nimsrandombullshit.block; + +import net.minecraft.world.level.block.state.properties.NoteBlockInstrument; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.SoundType; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.core.BlockPos; + +public class CondensedCondensedCondensedNetherrackBlock extends Block { + public CondensedCondensedCondensedNetherrackBlock() { + super(BlockBehaviour.Properties.of().instrument(NoteBlockInstrument.BASEDRUM).sound(SoundType.NETHERRACK).strength(291.6f).requiresCorrectToolForDrops()); + } + + @Override + public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) { + return 15; + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/block/CondensedCondensedNetherrackBlock.java b/src/main/java/net/mcreator/nimsrandombullshit/block/CondensedCondensedNetherrackBlock.java new file mode 100644 index 0000000..e7bbe13 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/block/CondensedCondensedNetherrackBlock.java @@ -0,0 +1,21 @@ + +package net.mcreator.nimsrandombullshit.block; + +import net.minecraft.world.level.block.state.properties.NoteBlockInstrument; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.SoundType; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.core.BlockPos; + +public class CondensedCondensedNetherrackBlock extends Block { + public CondensedCondensedNetherrackBlock() { + super(BlockBehaviour.Properties.of().instrument(NoteBlockInstrument.BASEDRUM).sound(SoundType.NETHERRACK).strength(32.4f).requiresCorrectToolForDrops()); + } + + @Override + public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) { + return 15; + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/block/CondensedNetherrackBlock.java b/src/main/java/net/mcreator/nimsrandombullshit/block/CondensedNetherrackBlock.java new file mode 100644 index 0000000..98a5ca8 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/block/CondensedNetherrackBlock.java @@ -0,0 +1,21 @@ + +package net.mcreator.nimsrandombullshit.block; + +import net.minecraft.world.level.block.state.properties.NoteBlockInstrument; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.SoundType; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.core.BlockPos; + +public class CondensedNetherrackBlock extends Block { + public CondensedNetherrackBlock() { + super(BlockBehaviour.Properties.of().instrument(NoteBlockInstrument.BASEDRUM).sound(SoundType.NETHERRACK).strength(3.6f).requiresCorrectToolForDrops()); + } + + @Override + public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) { + return 15; + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/block/HexaCondensedNetherrackBlock.java b/src/main/java/net/mcreator/nimsrandombullshit/block/HexaCondensedNetherrackBlock.java new file mode 100644 index 0000000..515e655 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/block/HexaCondensedNetherrackBlock.java @@ -0,0 +1,21 @@ + +package net.mcreator.nimsrandombullshit.block; + +import net.minecraft.world.level.block.state.properties.NoteBlockInstrument; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.SoundType; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.core.BlockPos; + +public class HexaCondensedNetherrackBlock extends Block { + public HexaCondensedNetherrackBlock() { + super(BlockBehaviour.Properties.of().instrument(NoteBlockInstrument.BASEDRUM).sound(SoundType.NETHERRACK).strength(64000f).requiresCorrectToolForDrops()); + } + + @Override + public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) { + return 15; + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/block/OreMinerBlock.java b/src/main/java/net/mcreator/nimsrandombullshit/block/OreMinerBlock.java new file mode 100644 index 0000000..3291171 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/block/OreMinerBlock.java @@ -0,0 +1,133 @@ + +package net.mcreator.nimsrandombullshit.block; + +import net.minecraftforge.network.NetworkHooks; + +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.level.block.state.properties.DirectionProperty; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.SoundType; +import net.minecraft.world.level.block.Rotation; +import net.minecraft.world.level.block.Mirror; +import net.minecraft.world.level.block.HorizontalDirectionalBlock; +import net.minecraft.world.level.block.EntityBlock; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.MenuProvider; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.Containers; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.network.chat.Component; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.core.Direction; +import net.minecraft.core.BlockPos; + +import net.mcreator.nimsrandombullshit.world.inventory.OreMinerGUIMenu; +import net.mcreator.nimsrandombullshit.block.entity.OreMinerBlockEntity; + +import io.netty.buffer.Unpooled; + +public class OreMinerBlock extends Block implements EntityBlock { + public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING; + + public OreMinerBlock() { + super(BlockBehaviour.Properties.of().sound(SoundType.STONE).strength(1f, 100f)); + this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH)); + } + + @Override + public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) { + return 15; + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + super.createBlockStateDefinition(builder); + builder.add(FACING); + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + return super.getStateForPlacement(context).setValue(FACING, context.getHorizontalDirection().getOpposite()); + } + + public BlockState rotate(BlockState state, Rotation rot) { + return state.setValue(FACING, rot.rotate(state.getValue(FACING))); + } + + public BlockState mirror(BlockState state, Mirror mirrorIn) { + return state.rotate(mirrorIn.getRotation(state.getValue(FACING))); + } + + @Override + public InteractionResult use(BlockState blockstate, Level world, BlockPos pos, Player entity, InteractionHand hand, BlockHitResult hit) { + super.use(blockstate, world, pos, entity, hand, hit); + if (entity instanceof ServerPlayer player) { + NetworkHooks.openScreen(player, new MenuProvider() { + @Override + public Component getDisplayName() { + return Component.literal("Ore Miner"); + } + + @Override + public AbstractContainerMenu createMenu(int id, Inventory inventory, Player player) { + return new OreMinerGUIMenu(id, inventory, new FriendlyByteBuf(Unpooled.buffer()).writeBlockPos(pos)); + } + }, pos); + } + return InteractionResult.SUCCESS; + } + + @Override + public MenuProvider getMenuProvider(BlockState state, Level worldIn, BlockPos pos) { + BlockEntity tileEntity = worldIn.getBlockEntity(pos); + return tileEntity instanceof MenuProvider menuProvider ? menuProvider : null; + } + + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new OreMinerBlockEntity(pos, state); + } + + @Override + public boolean triggerEvent(BlockState state, Level world, BlockPos pos, int eventID, int eventParam) { + super.triggerEvent(state, world, pos, eventID, eventParam); + BlockEntity blockEntity = world.getBlockEntity(pos); + return blockEntity == null ? false : blockEntity.triggerEvent(eventID, eventParam); + } + + @Override + public void onRemove(BlockState state, Level world, BlockPos pos, BlockState newState, boolean isMoving) { + if (state.getBlock() != newState.getBlock()) { + BlockEntity blockEntity = world.getBlockEntity(pos); + if (blockEntity instanceof OreMinerBlockEntity be) { + Containers.dropContents(world, pos, be); + world.updateNeighbourForOutputSignal(pos, this); + } + super.onRemove(state, world, pos, newState, isMoving); + } + } + + @Override + public boolean hasAnalogOutputSignal(BlockState state) { + return true; + } + + @Override + public int getAnalogOutputSignal(BlockState blockState, Level world, BlockPos pos) { + BlockEntity tileentity = world.getBlockEntity(pos); + if (tileentity instanceof OreMinerBlockEntity be) + return AbstractContainerMenu.getRedstoneSignalFromContainer(be); + else + return 0; + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/block/PentaCondensedNetherrackBlock.java b/src/main/java/net/mcreator/nimsrandombullshit/block/PentaCondensedNetherrackBlock.java new file mode 100644 index 0000000..f734afc --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/block/PentaCondensedNetherrackBlock.java @@ -0,0 +1,21 @@ + +package net.mcreator.nimsrandombullshit.block; + +import net.minecraft.world.level.block.state.properties.NoteBlockInstrument; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.SoundType; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.core.BlockPos; + +public class PentaCondensedNetherrackBlock extends Block { + public PentaCondensedNetherrackBlock() { + super(BlockBehaviour.Properties.of().instrument(NoteBlockInstrument.BASEDRUM).sound(SoundType.NETHERRACK).strength(23619.6f).requiresCorrectToolForDrops()); + } + + @Override + public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) { + return 15; + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/block/QuadraCondensedNetherrackBlock.java b/src/main/java/net/mcreator/nimsrandombullshit/block/QuadraCondensedNetherrackBlock.java new file mode 100644 index 0000000..bacf92c --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/block/QuadraCondensedNetherrackBlock.java @@ -0,0 +1,21 @@ + +package net.mcreator.nimsrandombullshit.block; + +import net.minecraft.world.level.block.state.properties.NoteBlockInstrument; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.SoundType; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.core.BlockPos; + +public class QuadraCondensedNetherrackBlock extends Block { + public QuadraCondensedNetherrackBlock() { + super(BlockBehaviour.Properties.of().instrument(NoteBlockInstrument.BASEDRUM).sound(SoundType.NETHERRACK).strength(2624.4f).requiresCorrectToolForDrops()); + } + + @Override + public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) { + return 15; + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/block/entity/OreMinerBlockEntity.java b/src/main/java/net/mcreator/nimsrandombullshit/block/entity/OreMinerBlockEntity.java new file mode 100644 index 0000000..3290e6d --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/block/entity/OreMinerBlockEntity.java @@ -0,0 +1,159 @@ +package net.mcreator.nimsrandombullshit.block.entity; + +import net.minecraftforge.items.wrapper.SidedInvWrapper; +import net.minecraftforge.items.IItemHandler; +import net.minecraftforge.common.util.LazyOptional; +import net.minecraftforge.common.capabilities.ForgeCapabilities; +import net.minecraftforge.common.capabilities.Capability; + +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.entity.RandomizableContainerBlockEntity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.WorldlyContainer; +import net.minecraft.world.ContainerHelper; +import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; +import net.minecraft.network.chat.Component; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.core.NonNullList; +import net.minecraft.core.Direction; +import net.minecraft.core.BlockPos; + +import net.mcreator.nimsrandombullshit.world.inventory.OreMinerGUIMenu; +import net.mcreator.nimsrandombullshit.init.NimsRandomBullshitModBlockEntities; + +import javax.annotation.Nullable; + +import java.util.stream.IntStream; + +import io.netty.buffer.Unpooled; + +public class OreMinerBlockEntity extends RandomizableContainerBlockEntity implements WorldlyContainer { + private NonNullList stacks = NonNullList.withSize(9, ItemStack.EMPTY); + private final LazyOptional[] handlers = SidedInvWrapper.create(this, Direction.values()); + + public OreMinerBlockEntity(BlockPos position, BlockState state) { + super(NimsRandomBullshitModBlockEntities.ORE_MINER.get(), position, state); + } + + @Override + public void load(CompoundTag compound) { + super.load(compound); + if (!this.tryLoadLootTable(compound)) + this.stacks = NonNullList.withSize(this.getContainerSize(), ItemStack.EMPTY); + ContainerHelper.loadAllItems(compound, this.stacks); + } + + @Override + public void saveAdditional(CompoundTag compound) { + super.saveAdditional(compound); + if (!this.trySaveLootTable(compound)) { + ContainerHelper.saveAllItems(compound, this.stacks); + } + } + + @Override + public ClientboundBlockEntityDataPacket getUpdatePacket() { + return ClientboundBlockEntityDataPacket.create(this); + } + + @Override + public CompoundTag getUpdateTag() { + return this.saveWithFullMetadata(); + } + + @Override + public int getContainerSize() { + return stacks.size(); + } + + @Override + public boolean isEmpty() { + for (ItemStack itemstack : this.stacks) + if (!itemstack.isEmpty()) + return false; + return true; + } + + @Override + public Component getDefaultName() { + return Component.literal("ore_miner"); + } + + @Override + public int getMaxStackSize() { + return 64; + } + + @Override + public AbstractContainerMenu createMenu(int id, Inventory inventory) { + return new OreMinerGUIMenu(id, inventory, new FriendlyByteBuf(Unpooled.buffer()).writeBlockPos(this.worldPosition)); + } + + @Override + public Component getDisplayName() { + return Component.literal("Ore Miner"); + } + + @Override + protected NonNullList getItems() { + return this.stacks; + } + + @Override + protected void setItems(NonNullList stacks) { + this.stacks = stacks; + } + + @Override + public boolean canPlaceItem(int index, ItemStack stack) { + if (index == 1) + return false; + if (index == 2) + return false; + if (index == 3) + return false; + if (index == 4) + return false; + if (index == 5) + return false; + if (index == 6) + return false; + if (index == 7) + return false; + if (index == 8) + return false; + return true; + } + + @Override + public int[] getSlotsForFace(Direction side) { + return IntStream.range(0, this.getContainerSize()).toArray(); + } + + @Override + public boolean canPlaceItemThroughFace(int index, ItemStack stack, @Nullable Direction direction) { + return this.canPlaceItem(index, stack); + } + + @Override + public boolean canTakeItemThroughFace(int index, ItemStack stack, Direction direction) { + return true; + } + + @Override + public LazyOptional getCapability(Capability capability, @Nullable Direction facing) { + if (!this.remove && facing != null && capability == ForgeCapabilities.ITEM_HANDLER) + return handlers[facing.ordinal()].cast(); + return super.getCapability(capability, facing); + } + + @Override + public void setRemoved() { + super.setRemoved(); + for (LazyOptional handler : handlers) + handler.invalidate(); + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/client/gui/OreMinerGUIScreen.java b/src/main/java/net/mcreator/nimsrandombullshit/client/gui/OreMinerGUIScreen.java new file mode 100644 index 0000000..88e29f5 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/client/gui/OreMinerGUIScreen.java @@ -0,0 +1,85 @@ +package net.mcreator.nimsrandombullshit.client.gui; + +import net.minecraft.world.level.Level; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.network.chat.Component; +import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.GuiGraphics; + +import net.mcreator.nimsrandombullshit.world.inventory.OreMinerGUIMenu; +import net.mcreator.nimsrandombullshit.procedures.OreMinerGUISlot0ImageDisplayConditionProcedure; +import net.mcreator.nimsrandombullshit.network.OreMinerGUIButtonMessage; +import net.mcreator.nimsrandombullshit.NimsRandomBullshitMod; + +import java.util.HashMap; + +import com.mojang.blaze3d.systems.RenderSystem; + +public class OreMinerGUIScreen extends AbstractContainerScreen { + private final static HashMap guistate = OreMinerGUIMenu.guistate; + private final Level world; + private final int x, y, z; + private final Player entity; + Button button_mine; + + public OreMinerGUIScreen(OreMinerGUIMenu container, Inventory inventory, Component text) { + super(container, inventory, text); + this.world = container.world; + this.x = container.x; + this.y = container.y; + this.z = container.z; + this.entity = container.entity; + this.imageWidth = 176; + this.imageHeight = 166; + } + + private static final ResourceLocation texture = new ResourceLocation("nims_random_bullshit:textures/screens/ore_miner_gui.png"); + + @Override + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTicks) { + this.renderBackground(guiGraphics); + super.render(guiGraphics, mouseX, mouseY, partialTicks); + this.renderTooltip(guiGraphics, mouseX, mouseY); + } + + @Override + protected void renderBg(GuiGraphics guiGraphics, float partialTicks, int gx, int gy) { + RenderSystem.setShaderColor(1, 1, 1, 1); + RenderSystem.enableBlend(); + RenderSystem.defaultBlendFunc(); + guiGraphics.blit(texture, this.leftPos, this.topPos, 0, 0, this.imageWidth, this.imageHeight, this.imageWidth, this.imageHeight); + if (OreMinerGUISlot0ImageDisplayConditionProcedure.execute(entity)) { + guiGraphics.blit(new ResourceLocation("nims_random_bullshit:textures/screens/diamond_pickaxe_blueprint.png"), this.leftPos + 31, this.topPos + 17, 0, 0, 16, 16, 16, 16); + } + RenderSystem.disableBlend(); + } + + @Override + public boolean keyPressed(int key, int b, int c) { + if (key == 256) { + this.minecraft.player.closeContainer(); + return true; + } + return super.keyPressed(key, b, c); + } + + @Override + protected void renderLabels(GuiGraphics guiGraphics, int mouseX, int mouseY) { + } + + @Override + public void init() { + super.init(); + button_mine = Button.builder(Component.translatable("gui.nims_random_bullshit.ore_miner_gui.button_mine"), e -> { + if (true) { + NimsRandomBullshitMod.PACKET_HANDLER.sendToServer(new OreMinerGUIButtonMessage(0, x, y, z)); + OreMinerGUIButtonMessage.handleButtonAction(entity, 0, x, y, z); + } + }).bounds(this.leftPos + 15, this.topPos + 43, 46, 20).build(); + guistate.put("button:button_mine", button_mine); + this.addRenderableWidget(button_mine); + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/client/gui/ShitGUIScreen.java b/src/main/java/net/mcreator/nimsrandombullshit/client/gui/ShitGUIScreen.java new file mode 100644 index 0000000..fa1cd2a --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/client/gui/ShitGUIScreen.java @@ -0,0 +1,70 @@ +package net.mcreator.nimsrandombullshit.client.gui; + +import net.minecraft.world.level.Level; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.network.chat.Component; +import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; +import net.minecraft.client.gui.GuiGraphics; + +import net.mcreator.nimsrandombullshit.world.inventory.ShitGUIMenu; + +import java.util.HashMap; + +import com.mojang.blaze3d.systems.RenderSystem; + +public class ShitGUIScreen extends AbstractContainerScreen { + private final static HashMap guistate = ShitGUIMenu.guistate; + private final Level world; + private final int x, y, z; + private final Player entity; + + public ShitGUIScreen(ShitGUIMenu container, Inventory inventory, Component text) { + super(container, inventory, text); + this.world = container.world; + this.x = container.x; + this.y = container.y; + this.z = container.z; + this.entity = container.entity; + this.imageWidth = 176; + this.imageHeight = 166; + } + + @Override + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTicks) { + this.renderBackground(guiGraphics); + super.render(guiGraphics, mouseX, mouseY, partialTicks); + this.renderTooltip(guiGraphics, mouseX, mouseY); + } + + @Override + protected void renderBg(GuiGraphics guiGraphics, float partialTicks, int gx, int gy) { + RenderSystem.setShaderColor(1, 1, 1, 1); + RenderSystem.enableBlend(); + RenderSystem.defaultBlendFunc(); + + guiGraphics.blit(new ResourceLocation("nims_random_bullshit:textures/screens/shit.png"), this.leftPos + -30, this.topPos + -38, 0, 0, 240, 240, 240, 240); + + RenderSystem.disableBlend(); + } + + @Override + public boolean keyPressed(int key, int b, int c) { + if (key == 256) { + this.minecraft.player.closeContainer(); + return true; + } + return super.keyPressed(key, b, c); + } + + @Override + protected void renderLabels(GuiGraphics guiGraphics, int mouseX, int mouseY) { + guiGraphics.drawString(this.font, Component.translatable("gui.nims_random_bullshit.shit_gui.label_uh_ohh_stinky"), -121, -34, -52, false); + } + + @Override + public void init() { + super.init(); + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/client/renderer/GhoulRenderer.java b/src/main/java/net/mcreator/nimsrandombullshit/client/renderer/GhoulRenderer.java new file mode 100644 index 0000000..79c823e --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/client/renderer/GhoulRenderer.java @@ -0,0 +1,30 @@ + +package net.mcreator.nimsrandombullshit.client.renderer; + +import net.minecraft.resources.ResourceLocation; +import net.minecraft.client.renderer.entity.layers.HumanoidArmorLayer; +import net.minecraft.client.renderer.entity.HumanoidMobRenderer; +import net.minecraft.client.renderer.entity.EntityRendererProvider; +import net.minecraft.client.model.geom.ModelLayers; +import net.minecraft.client.model.HumanoidModel; + +import net.mcreator.nimsrandombullshit.entity.GhoulEntity; + +import com.mojang.blaze3d.vertex.PoseStack; + +public class GhoulRenderer extends HumanoidMobRenderer> { + public GhoulRenderer(EntityRendererProvider.Context context) { + super(context, new HumanoidModel(context.bakeLayer(ModelLayers.PLAYER)), 0.25f); + this.addLayer(new HumanoidArmorLayer(this, new HumanoidModel(context.bakeLayer(ModelLayers.PLAYER_INNER_ARMOR)), new HumanoidModel(context.bakeLayer(ModelLayers.PLAYER_OUTER_ARMOR)), context.getModelManager())); + } + + @Override + protected void scale(GhoulEntity entity, PoseStack poseStack, float f) { + poseStack.scale(0.5f, 0.5f, 0.5f); + } + + @Override + public ResourceLocation getTextureLocation(GhoulEntity entity) { + return new ResourceLocation("nims_random_bullshit:textures/entities/ghoul.png"); + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/enchantment/NetherrackingEnchantmentEnchantment.java b/src/main/java/net/mcreator/nimsrandombullshit/enchantment/NetherrackingEnchantmentEnchantment.java new file mode 100644 index 0000000..9e59fb0 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/enchantment/NetherrackingEnchantmentEnchantment.java @@ -0,0 +1,42 @@ + +package net.mcreator.nimsrandombullshit.enchantment; + +import net.minecraft.world.item.enchantment.Enchantments; +import net.minecraft.world.item.enchantment.EnchantmentCategory; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.entity.EquipmentSlot; + +import net.mcreator.nimsrandombullshit.init.NimsRandomBullshitModItems; + +import java.util.List; + +public class NetherrackingEnchantmentEnchantment extends Enchantment { + private static final EnchantmentCategory ENCHANTMENT_CATEGORY = EnchantmentCategory.create("nims_random_bullshit_netherracking_enchantment", + item -> Ingredient.of(new ItemStack(NimsRandomBullshitModItems.NETHERRACKITE_PICKAXE.get())).test(new ItemStack(item))); + + public NetherrackingEnchantmentEnchantment() { + super(Enchantment.Rarity.RARE, ENCHANTMENT_CATEGORY, new EquipmentSlot[]{EquipmentSlot.MAINHAND}); + } + + @Override + public int getMinCost(int level) { + return 1 + level * 10; + } + + @Override + public int getMaxCost(int level) { + return 6 + level * 10; + } + + @Override + public int getMaxLevel() { + return 20; + } + + @Override + protected boolean checkCompatibility(Enchantment enchantment) { + return super.checkCompatibility(enchantment) && !List.of(Enchantments.BLOCK_EFFICIENCY).contains(enchantment); + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/enchantment/PassiveIncomeEnchantmentEnchantment.java b/src/main/java/net/mcreator/nimsrandombullshit/enchantment/PassiveIncomeEnchantmentEnchantment.java new file mode 100644 index 0000000..6153de7 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/enchantment/PassiveIncomeEnchantmentEnchantment.java @@ -0,0 +1,39 @@ + +package net.mcreator.nimsrandombullshit.enchantment; + +import net.minecraft.world.item.enchantment.EnchantmentCategory; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.tags.ItemTags; +import net.minecraft.resources.ResourceLocation; + +public class PassiveIncomeEnchantmentEnchantment extends Enchantment { + private static final EnchantmentCategory ENCHANTMENT_CATEGORY = EnchantmentCategory.create("nims_random_bullshit_passive_income_enchantment", + item -> Ingredient.of(ItemTags.create(new ResourceLocation("enchantable/equippable"))).test(new ItemStack(item))); + + public PassiveIncomeEnchantmentEnchantment() { + super(Enchantment.Rarity.VERY_RARE, ENCHANTMENT_CATEGORY, new EquipmentSlot[]{EquipmentSlot.HEAD, EquipmentSlot.CHEST, EquipmentSlot.LEGS, EquipmentSlot.FEET}); + } + + @Override + public int getMinCost(int level) { + return 1 + level * 10; + } + + @Override + public int getMaxCost(int level) { + return 6 + level * 10; + } + + @Override + public int getMaxLevel() { + return 5; + } + + @Override + public boolean isTreasureOnly() { + return true; + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/entity/GhoulEntity.java b/src/main/java/net/mcreator/nimsrandombullshit/entity/GhoulEntity.java new file mode 100644 index 0000000..12e47a8 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/entity/GhoulEntity.java @@ -0,0 +1,178 @@ + +package net.mcreator.nimsrandombullshit.entity; + +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.network.PlayMessages; +import net.minecraftforge.network.NetworkHooks; + +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.ServerLevelAccessor; +import net.minecraft.world.level.Level; +import net.minecraft.world.entity.monster.ZombieVillager; +import net.minecraft.world.entity.monster.Zombie; +import net.minecraft.world.entity.monster.Spider; +import net.minecraft.world.entity.monster.Skeleton; +import net.minecraft.world.entity.monster.Pillager; +import net.minecraft.world.entity.monster.Monster; +import net.minecraft.world.entity.monster.EnderMan; +import net.minecraft.world.entity.monster.Creeper; +import net.minecraft.world.entity.monster.CaveSpider; +import net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal; +import net.minecraft.world.entity.ai.goal.target.HurtByTargetGoal; +import net.minecraft.world.entity.ai.goal.RandomStrollGoal; +import net.minecraft.world.entity.ai.goal.RandomLookAroundGoal; +import net.minecraft.world.entity.ai.goal.MeleeAttackGoal; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.entity.ai.attributes.AttributeSupplier; +import net.minecraft.world.entity.SpawnGroupData; +import net.minecraft.world.entity.Pose; +import net.minecraft.world.entity.MobType; +import net.minecraft.world.entity.MobSpawnType; +import net.minecraft.world.entity.Mob; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.EntityDimensions; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.damagesource.DamageTypes; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.DifficultyInstance; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.network.protocol.game.ClientGamePacketListener; +import net.minecraft.network.protocol.Packet; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.core.BlockPos; + +import net.mcreator.nimsrandombullshit.procedures.GhoulThisEntityKillsAnotherOneProcedure; +import net.mcreator.nimsrandombullshit.procedures.GhoulOnInitialEntitySpawnProcedure; +import net.mcreator.nimsrandombullshit.init.NimsRandomBullshitModEntities; + +import javax.annotation.Nullable; + +public class GhoulEntity extends Monster { + public GhoulEntity(PlayMessages.SpawnEntity packet, Level world) { + this(NimsRandomBullshitModEntities.GHOUL.get(), world); + } + + public GhoulEntity(EntityType type, Level world) { + super(type, world); + setMaxUpStep(0.6f); + xpReward = 0; + setNoAi(false); + setPersistenceRequired(); + refreshDimensions(); + } + + @Override + public Packet getAddEntityPacket() { + return NetworkHooks.getEntitySpawningPacket(this); + } + + @Override + protected void registerGoals() { + super.registerGoals(); + this.targetSelector.addGoal(1, new NearestAttackableTargetGoal(this, Zombie.class, false, true)); + this.targetSelector.addGoal(2, new NearestAttackableTargetGoal(this, ZombieVillager.class, false, true)); + this.targetSelector.addGoal(3, new NearestAttackableTargetGoal(this, Creeper.class, false, true)); + this.targetSelector.addGoal(4, new NearestAttackableTargetGoal(this, EnderMan.class, false, true)); + this.targetSelector.addGoal(5, new NearestAttackableTargetGoal(this, Spider.class, false, true)); + this.targetSelector.addGoal(6, new NearestAttackableTargetGoal(this, CaveSpider.class, false, true)); + this.targetSelector.addGoal(7, new NearestAttackableTargetGoal(this, Pillager.class, false, true)); + this.targetSelector.addGoal(8, new NearestAttackableTargetGoal(this, Skeleton.class, false, true)); + this.goalSelector.addGoal(9, new MeleeAttackGoal(this, 1.2, false) { + @Override + protected double getAttackReachSqr(LivingEntity entity) { + return this.mob.getBbWidth() * this.mob.getBbWidth() + entity.getBbWidth(); + } + }); + this.targetSelector.addGoal(10, new HurtByTargetGoal(this)); + this.goalSelector.addGoal(11, new RandomStrollGoal(this, 1)); + this.goalSelector.addGoal(12, new RandomLookAroundGoal(this)); + } + + @Override + public MobType getMobType() { + return MobType.UNDEAD; + } + + @Override + public boolean removeWhenFarAway(double distanceToClosestPlayer) { + return false; + } + + @Override + public double getMyRidingOffset() { + return -0.35D; + } + + @Override + public SoundEvent getAmbientSound() { + return ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("entity.wither_skeleton.ambient")); + } + + @Override + public void playStepSound(BlockPos pos, BlockState blockIn) { + this.playSound(ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("entity.wither_skeleton.step")), 0.15f, 1); + } + + @Override + public SoundEvent getHurtSound(DamageSource ds) { + return ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("entity.wither_skeleton.hurt")); + } + + @Override + public SoundEvent getDeathSound() { + return ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("entity.wither_skeleton.death")); + } + + @Override + public boolean hurt(DamageSource damagesource, float amount) { + if (damagesource.is(DamageTypes.IN_FIRE)) + return false; + if (damagesource.is(DamageTypes.FALL)) + return false; + if (damagesource.is(DamageTypes.CACTUS)) + return false; + if (damagesource.is(DamageTypes.DROWN)) + return false; + if (damagesource.is(DamageTypes.WITHER) || damagesource.is(DamageTypes.WITHER_SKULL)) + return false; + return super.hurt(damagesource, amount); + } + + @Override + public boolean fireImmune() { + return true; + } + + @Override + public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType reason, @Nullable SpawnGroupData livingdata, @Nullable CompoundTag tag) { + SpawnGroupData retval = super.finalizeSpawn(world, difficulty, reason, livingdata, tag); + GhoulOnInitialEntitySpawnProcedure.execute(this); + return retval; + } + + @Override + public void awardKillScore(Entity entity, int score, DamageSource damageSource) { + super.awardKillScore(entity, score, damageSource); + GhoulThisEntityKillsAnotherOneProcedure.execute(this.level(), this.getX(), this.getY(), this.getZ()); + } + + @Override + public EntityDimensions getDimensions(Pose pose) { + return super.getDimensions(pose).scale(0.5f); + } + + public static void init() { + } + + public static AttributeSupplier.Builder createAttributes() { + AttributeSupplier.Builder builder = Mob.createMobAttributes(); + builder = builder.add(Attributes.MOVEMENT_SPEED, 0.36); + builder = builder.add(Attributes.MAX_HEALTH, 9); + builder = builder.add(Attributes.ARMOR, 0); + builder = builder.add(Attributes.ATTACK_DAMAGE, 3); + builder = builder.add(Attributes.FOLLOW_RANGE, 19); + return builder; + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/entity/ShitProjectileEntity.java b/src/main/java/net/mcreator/nimsrandombullshit/entity/ShitProjectileEntity.java new file mode 100644 index 0000000..a148023 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/entity/ShitProjectileEntity.java @@ -0,0 +1,116 @@ + +package net.mcreator.nimsrandombullshit.entity; + +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.network.PlayMessages; +import net.minecraftforge.network.NetworkHooks; +import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.api.distmarker.Dist; + +import net.minecraft.world.level.Level; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.entity.projectile.ItemSupplier; +import net.minecraft.world.entity.projectile.AbstractArrow; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.util.RandomSource; +import net.minecraft.sounds.SoundSource; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.network.protocol.game.ClientGamePacketListener; +import net.minecraft.network.protocol.Packet; + +import net.mcreator.nimsrandombullshit.procedures.ShitProjectileProjectileHitsPlayerProcedure; +import net.mcreator.nimsrandombullshit.init.NimsRandomBullshitModItems; +import net.mcreator.nimsrandombullshit.init.NimsRandomBullshitModEntities; + +@OnlyIn(value = Dist.CLIENT, _interface = ItemSupplier.class) +public class ShitProjectileEntity extends AbstractArrow implements ItemSupplier { + public static final ItemStack PROJECTILE_ITEM = new ItemStack(NimsRandomBullshitModItems.SHIT.get()); + + public ShitProjectileEntity(PlayMessages.SpawnEntity packet, Level world) { + super(NimsRandomBullshitModEntities.SHIT_PROJECTILE.get(), world); + } + + public ShitProjectileEntity(EntityType type, Level world) { + super(type, world); + } + + public ShitProjectileEntity(EntityType type, double x, double y, double z, Level world) { + super(type, x, y, z, world); + } + + public ShitProjectileEntity(EntityType type, LivingEntity entity, Level world) { + super(type, entity, world); + } + + @Override + public Packet getAddEntityPacket() { + return NetworkHooks.getEntitySpawningPacket(this); + } + + @Override + @OnlyIn(Dist.CLIENT) + public ItemStack getItem() { + return PROJECTILE_ITEM; + } + + @Override + protected ItemStack getPickupItem() { + return PROJECTILE_ITEM; + } + + @Override + protected void doPostHurtEffects(LivingEntity entity) { + super.doPostHurtEffects(entity); + entity.setArrowCount(entity.getArrowCount() - 1); + } + + @Override + public void playerTouch(Player entity) { + super.playerTouch(entity); + ShitProjectileProjectileHitsPlayerProcedure.execute(this.level(), this.getX(), this.getY(), this.getZ(), entity, this.getOwner()); + } + + @Override + public void tick() { + super.tick(); + if (this.inGround) + this.discard(); + } + + public static ShitProjectileEntity shoot(Level world, LivingEntity entity, RandomSource source) { + return shoot(world, entity, source, 1f, 0, 0); + } + + public static ShitProjectileEntity shoot(Level world, LivingEntity entity, RandomSource source, float pullingPower) { + return shoot(world, entity, source, pullingPower * 1f, 0, 0); + } + + public static ShitProjectileEntity shoot(Level world, LivingEntity entity, RandomSource random, float power, double damage, int knockback) { + ShitProjectileEntity entityarrow = new ShitProjectileEntity(NimsRandomBullshitModEntities.SHIT_PROJECTILE.get(), entity, world); + entityarrow.shoot(entity.getViewVector(1).x, entity.getViewVector(1).y, entity.getViewVector(1).z, power * 2, 0); + entityarrow.setSilent(true); + entityarrow.setCritArrow(false); + entityarrow.setBaseDamage(damage); + entityarrow.setKnockback(knockback); + world.addFreshEntity(entityarrow); + world.playSound(null, entity.getX(), entity.getY(), entity.getZ(), ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("entity.snowball.throw")), SoundSource.PLAYERS, 1, 1f / (random.nextFloat() * 0.5f + 1) + (power / 2)); + return entityarrow; + } + + public static ShitProjectileEntity shoot(LivingEntity entity, LivingEntity target) { + ShitProjectileEntity entityarrow = new ShitProjectileEntity(NimsRandomBullshitModEntities.SHIT_PROJECTILE.get(), entity, entity.level()); + double dx = target.getX() - entity.getX(); + double dy = target.getY() + target.getEyeHeight() - 1.1; + double dz = target.getZ() - entity.getZ(); + entityarrow.shoot(dx, dy - entityarrow.getY() + Math.hypot(dx, dz) * 0.2F, dz, 1f * 2, 12.0F); + entityarrow.setSilent(true); + entityarrow.setBaseDamage(0); + entityarrow.setKnockback(0); + entityarrow.setCritArrow(false); + entity.level().addFreshEntity(entityarrow); + entity.level().playSound(null, entity.getX(), entity.getY(), entity.getZ(), ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("entity.snowball.throw")), SoundSource.PLAYERS, 1, 1f / (RandomSource.create().nextFloat() * 0.5f + 1)); + return entityarrow; + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModBlockEntities.java b/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModBlockEntities.java new file mode 100644 index 0000000..1d4a423 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModBlockEntities.java @@ -0,0 +1,26 @@ + +/* + * MCreator note: This file will be REGENERATED on each build. + */ +package net.mcreator.nimsrandombullshit.init; + +import net.minecraftforge.registries.RegistryObject; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.DeferredRegister; + +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.Block; + +import net.mcreator.nimsrandombullshit.block.entity.OreMinerBlockEntity; +import net.mcreator.nimsrandombullshit.NimsRandomBullshitMod; + +public class NimsRandomBullshitModBlockEntities { + public static final DeferredRegister> REGISTRY = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, NimsRandomBullshitMod.MODID); + public static final RegistryObject> ORE_MINER = register("ore_miner", NimsRandomBullshitModBlocks.ORE_MINER, OreMinerBlockEntity::new); + + // Start of user code block custom block entities + // End of user code block custom block entities + private static RegistryObject> register(String registryname, RegistryObject block, BlockEntityType.BlockEntitySupplier supplier) { + return REGISTRY.register(registryname, () -> BlockEntityType.Builder.of(supplier, block.get()).build(null)); + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModBlocks.java b/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModBlocks.java new file mode 100644 index 0000000..8349073 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModBlocks.java @@ -0,0 +1,35 @@ + +/* + * MCreator note: This file will be REGENERATED on each build. + */ +package net.mcreator.nimsrandombullshit.init; + +import net.minecraftforge.registries.RegistryObject; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.DeferredRegister; + +import net.minecraft.world.level.block.Block; + +import net.mcreator.nimsrandombullshit.block.QuadraCondensedNetherrackBlock; +import net.mcreator.nimsrandombullshit.block.PentaCondensedNetherrackBlock; +import net.mcreator.nimsrandombullshit.block.OreMinerBlock; +import net.mcreator.nimsrandombullshit.block.HexaCondensedNetherrackBlock; +import net.mcreator.nimsrandombullshit.block.CondensedNetherrackBlock; +import net.mcreator.nimsrandombullshit.block.CondensedCondensedNetherrackBlock; +import net.mcreator.nimsrandombullshit.block.CondensedCondensedCondensedNetherrackBlock; +import net.mcreator.nimsrandombullshit.block.BrokenGlassBlock; +import net.mcreator.nimsrandombullshit.NimsRandomBullshitMod; + +public class NimsRandomBullshitModBlocks { + public static final DeferredRegister REGISTRY = DeferredRegister.create(ForgeRegistries.BLOCKS, NimsRandomBullshitMod.MODID); + public static final RegistryObject CONDENSED_NETHERRACK = REGISTRY.register("condensed_netherrack", () -> new CondensedNetherrackBlock()); + public static final RegistryObject CONDENSED_CONDENSED_NETHERRACK = REGISTRY.register("condensed_condensed_netherrack", () -> new CondensedCondensedNetherrackBlock()); + public static final RegistryObject CONDENSED_CONDENSED_CONDENSED_NETHERRACK = REGISTRY.register("condensed_condensed_condensed_netherrack", () -> new CondensedCondensedCondensedNetherrackBlock()); + public static final RegistryObject BROKEN_GLASS = REGISTRY.register("broken_glass", () -> new BrokenGlassBlock()); + public static final RegistryObject QUADRA_CONDENSED_NETHERRACK = REGISTRY.register("quadra_condensed_netherrack", () -> new QuadraCondensedNetherrackBlock()); + public static final RegistryObject PENTA_CONDENSED_NETHERRACK = REGISTRY.register("penta_condensed_netherrack", () -> new PentaCondensedNetherrackBlock()); + public static final RegistryObject HEXA_CONDENSED_NETHERRACK = REGISTRY.register("hexa_condensed_netherrack", () -> new HexaCondensedNetherrackBlock()); + public static final RegistryObject ORE_MINER = REGISTRY.register("ore_miner", () -> new OreMinerBlock()); + // Start of user code block custom blocks + // End of user code block custom blocks +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModEnchantments.java b/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModEnchantments.java new file mode 100644 index 0000000..da92eae --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModEnchantments.java @@ -0,0 +1,21 @@ + +/* + * MCreator note: This file will be REGENERATED on each build. + */ +package net.mcreator.nimsrandombullshit.init; + +import net.minecraftforge.registries.RegistryObject; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.DeferredRegister; + +import net.minecraft.world.item.enchantment.Enchantment; + +import net.mcreator.nimsrandombullshit.enchantment.PassiveIncomeEnchantmentEnchantment; +import net.mcreator.nimsrandombullshit.enchantment.NetherrackingEnchantmentEnchantment; +import net.mcreator.nimsrandombullshit.NimsRandomBullshitMod; + +public class NimsRandomBullshitModEnchantments { + public static final DeferredRegister REGISTRY = DeferredRegister.create(ForgeRegistries.ENCHANTMENTS, NimsRandomBullshitMod.MODID); + public static final RegistryObject PASSIVE_INCOME_ENCHANTMENT = REGISTRY.register("passive_income_enchantment", () -> new PassiveIncomeEnchantmentEnchantment()); + public static final RegistryObject NETHERRACKING_ENCHANTMENT = REGISTRY.register("netherracking_enchantment", () -> new NetherrackingEnchantmentEnchantment()); +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModEntities.java b/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModEntities.java new file mode 100644 index 0000000..2b7b851 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModEntities.java @@ -0,0 +1,48 @@ + +/* + * MCreator note: This file will be REGENERATED on each build. + */ +package net.mcreator.nimsrandombullshit.init; + +import net.minecraftforge.registries.RegistryObject; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.event.entity.EntityAttributeCreationEvent; + +import net.minecraft.world.entity.MobCategory; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.Entity; + +import net.mcreator.nimsrandombullshit.entity.ShitProjectileEntity; +import net.mcreator.nimsrandombullshit.entity.GhoulEntity; +import net.mcreator.nimsrandombullshit.NimsRandomBullshitMod; + +@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD) +public class NimsRandomBullshitModEntities { + public static final DeferredRegister> REGISTRY = DeferredRegister.create(ForgeRegistries.ENTITY_TYPES, NimsRandomBullshitMod.MODID); + public static final RegistryObject> SHIT_PROJECTILE = register("shit_projectile", + EntityType.Builder.of(ShitProjectileEntity::new, MobCategory.MISC).setCustomClientFactory(ShitProjectileEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f)); + public static final RegistryObject> GHOUL = register("ghoul", + EntityType.Builder.of(GhoulEntity::new, MobCategory.MONSTER).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(GhoulEntity::new).fireImmune().sized(0.6f, 1.8f)); + + // Start of user code block custom entities + // End of user code block custom entities + private static RegistryObject> register(String registryname, EntityType.Builder entityTypeBuilder) { + return REGISTRY.register(registryname, () -> (EntityType) entityTypeBuilder.build(registryname)); + } + + @SubscribeEvent + public static void init(FMLCommonSetupEvent event) { + event.enqueueWork(() -> { + GhoulEntity.init(); + }); + } + + @SubscribeEvent + public static void registerAttributes(EntityAttributeCreationEvent event) { + event.put(GHOUL.get(), GhoulEntity.createAttributes().build()); + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModEntityRenderers.java b/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModEntityRenderers.java new file mode 100644 index 0000000..cae8134 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModEntityRenderers.java @@ -0,0 +1,23 @@ + +/* + * MCreator note: This file will be REGENERATED on each build. + */ +package net.mcreator.nimsrandombullshit.init; + +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.client.event.EntityRenderersEvent; +import net.minecraftforge.api.distmarker.Dist; + +import net.minecraft.client.renderer.entity.ThrownItemRenderer; + +import net.mcreator.nimsrandombullshit.client.renderer.GhoulRenderer; + +@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) +public class NimsRandomBullshitModEntityRenderers { + @SubscribeEvent + public static void registerEntityRenderers(EntityRenderersEvent.RegisterRenderers event) { + event.registerEntityRenderer(NimsRandomBullshitModEntities.SHIT_PROJECTILE.get(), ThrownItemRenderer::new); + event.registerEntityRenderer(NimsRandomBullshitModEntities.GHOUL.get(), GhoulRenderer::new); + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModItems.java b/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModItems.java new file mode 100644 index 0000000..00b3caf --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModItems.java @@ -0,0 +1,55 @@ + +/* + * MCreator note: This file will be REGENERATED on each build. + */ +package net.mcreator.nimsrandombullshit.init; + +import net.minecraftforge.registries.RegistryObject; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.common.ForgeSpawnEggItem; + +import net.minecraft.world.level.block.Block; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.BlockItem; + +import net.mcreator.nimsrandombullshit.item.ShitItem; +import net.mcreator.nimsrandombullshit.item.SandDustItem; +import net.mcreator.nimsrandombullshit.item.NetherrackitePickaxeItem; +import net.mcreator.nimsrandombullshit.item.NetherrackiteItem; +import net.mcreator.nimsrandombullshit.item.MagicFleshItem; +import net.mcreator.nimsrandombullshit.item.MagicDustItem; +import net.mcreator.nimsrandombullshit.item.LapisLazuliNuggetItem; +import net.mcreator.nimsrandombullshit.item.GravediggerItem; +import net.mcreator.nimsrandombullshit.item.GoldenBerriesItem; +import net.mcreator.nimsrandombullshit.item.BlockEaterItem; +import net.mcreator.nimsrandombullshit.NimsRandomBullshitMod; + +public class NimsRandomBullshitModItems { + public static final DeferredRegister REGISTRY = DeferredRegister.create(ForgeRegistries.ITEMS, NimsRandomBullshitMod.MODID); + public static final RegistryObject CONDENSED_NETHERRACK = block(NimsRandomBullshitModBlocks.CONDENSED_NETHERRACK); + public static final RegistryObject CONDENSED_CONDENSED_NETHERRACK = block(NimsRandomBullshitModBlocks.CONDENSED_CONDENSED_NETHERRACK); + public static final RegistryObject CONDENSED_CONDENSED_CONDENSED_NETHERRACK = block(NimsRandomBullshitModBlocks.CONDENSED_CONDENSED_CONDENSED_NETHERRACK); + public static final RegistryObject BLOCK_EATER = REGISTRY.register("block_eater", () -> new BlockEaterItem()); + public static final RegistryObject BROKEN_GLASS = block(NimsRandomBullshitModBlocks.BROKEN_GLASS); + public static final RegistryObject QUADRA_CONDENSED_NETHERRACK = block(NimsRandomBullshitModBlocks.QUADRA_CONDENSED_NETHERRACK); + public static final RegistryObject NETHERRACKITE_PICKAXE = REGISTRY.register("netherrackite_pickaxe", () -> new NetherrackitePickaxeItem()); + public static final RegistryObject NETHERRACKITE = REGISTRY.register("netherrackite", () -> new NetherrackiteItem()); + public static final RegistryObject PENTA_CONDENSED_NETHERRACK = block(NimsRandomBullshitModBlocks.PENTA_CONDENSED_NETHERRACK); + public static final RegistryObject HEXA_CONDENSED_NETHERRACK = block(NimsRandomBullshitModBlocks.HEXA_CONDENSED_NETHERRACK); + public static final RegistryObject SAND_DUST = REGISTRY.register("sand_dust", () -> new SandDustItem()); + public static final RegistryObject LAPIS_LAZULI_NUGGET = REGISTRY.register("lapis_lazuli_nugget", () -> new LapisLazuliNuggetItem()); + public static final RegistryObject MAGIC_DUST = REGISTRY.register("magic_dust", () -> new MagicDustItem()); + public static final RegistryObject MAGIC_FLESH = REGISTRY.register("magic_flesh", () -> new MagicFleshItem()); + public static final RegistryObject SHIT = REGISTRY.register("shit", () -> new ShitItem()); + public static final RegistryObject GOLDEN_BERRIES = REGISTRY.register("golden_berries", () -> new GoldenBerriesItem()); + public static final RegistryObject ORE_MINER = block(NimsRandomBullshitModBlocks.ORE_MINER); + public static final RegistryObject GHOUL_SPAWN_EGG = REGISTRY.register("ghoul_spawn_egg", () -> new ForgeSpawnEggItem(NimsRandomBullshitModEntities.GHOUL, -16777216, -13421773, new Item.Properties())); + public static final RegistryObject GRAVEDIGGER = REGISTRY.register("gravedigger", () -> new GravediggerItem()); + + // Start of user code block custom items + // End of user code block custom items + private static RegistryObject block(RegistryObject block) { + return REGISTRY.register(block.getId().getPath(), () -> new BlockItem(block.get(), new Item.Properties())); + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModMenus.java b/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModMenus.java new file mode 100644 index 0000000..1aea716 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModMenus.java @@ -0,0 +1,22 @@ + +/* + * MCreator note: This file will be REGENERATED on each build. + */ +package net.mcreator.nimsrandombullshit.init; + +import net.minecraftforge.registries.RegistryObject; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.common.extensions.IForgeMenuType; + +import net.minecraft.world.inventory.MenuType; + +import net.mcreator.nimsrandombullshit.world.inventory.ShitGUIMenu; +import net.mcreator.nimsrandombullshit.world.inventory.OreMinerGUIMenu; +import net.mcreator.nimsrandombullshit.NimsRandomBullshitMod; + +public class NimsRandomBullshitModMenus { + public static final DeferredRegister> REGISTRY = DeferredRegister.create(ForgeRegistries.MENU_TYPES, NimsRandomBullshitMod.MODID); + public static final RegistryObject> SHIT_GUI = REGISTRY.register("shit_gui", () -> IForgeMenuType.create(ShitGUIMenu::new)); + public static final RegistryObject> ORE_MINER_GUI = REGISTRY.register("ore_miner_gui", () -> IForgeMenuType.create(OreMinerGUIMenu::new)); +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModMobEffects.java b/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModMobEffects.java new file mode 100644 index 0000000..dc130f9 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModMobEffects.java @@ -0,0 +1,21 @@ + +/* + * MCreator note: This file will be REGENERATED on each build. + */ +package net.mcreator.nimsrandombullshit.init; + +import net.minecraftforge.registries.RegistryObject; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.DeferredRegister; + +import net.minecraft.world.effect.MobEffect; + +import net.mcreator.nimsrandombullshit.potion.SummonedEntityEffectMobEffect; +import net.mcreator.nimsrandombullshit.potion.StinkyEffectMobEffect; +import net.mcreator.nimsrandombullshit.NimsRandomBullshitMod; + +public class NimsRandomBullshitModMobEffects { + public static final DeferredRegister REGISTRY = DeferredRegister.create(ForgeRegistries.MOB_EFFECTS, NimsRandomBullshitMod.MODID); + public static final RegistryObject STINKY_EFFECT = REGISTRY.register("stinky_effect", () -> new StinkyEffectMobEffect()); + public static final RegistryObject SUMMONED_ENTITY_EFFECT = REGISTRY.register("summoned_entity_effect", () -> new SummonedEntityEffectMobEffect()); +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModScreens.java b/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModScreens.java new file mode 100644 index 0000000..c852792 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModScreens.java @@ -0,0 +1,26 @@ + +/* + * MCreator note: This file will be REGENERATED on each build. + */ +package net.mcreator.nimsrandombullshit.init; + +import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.api.distmarker.Dist; + +import net.minecraft.client.gui.screens.MenuScreens; + +import net.mcreator.nimsrandombullshit.client.gui.ShitGUIScreen; +import net.mcreator.nimsrandombullshit.client.gui.OreMinerGUIScreen; + +@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) +public class NimsRandomBullshitModScreens { + @SubscribeEvent + public static void clientLoad(FMLClientSetupEvent event) { + event.enqueueWork(() -> { + MenuScreens.register(NimsRandomBullshitModMenus.SHIT_GUI.get(), ShitGUIScreen::new); + MenuScreens.register(NimsRandomBullshitModMenus.ORE_MINER_GUI.get(), OreMinerGUIScreen::new); + }); + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModTabs.java b/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModTabs.java new file mode 100644 index 0000000..b8fbe56 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/init/NimsRandomBullshitModTabs.java @@ -0,0 +1,51 @@ + +/* + * MCreator note: This file will be REGENERATED on each build. + */ +package net.mcreator.nimsrandombullshit.init; + +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.event.BuildCreativeModeTabContentsEvent; + +import net.minecraft.world.item.CreativeModeTabs; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.core.registries.Registries; + +import net.mcreator.nimsrandombullshit.NimsRandomBullshitMod; + +@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD) +public class NimsRandomBullshitModTabs { + public static final DeferredRegister REGISTRY = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, NimsRandomBullshitMod.MODID); + + @SubscribeEvent + public static void buildTabContentsVanilla(BuildCreativeModeTabContentsEvent tabData) { + if (tabData.getTabKey() == CreativeModeTabs.BUILDING_BLOCKS) { + tabData.accept(NimsRandomBullshitModBlocks.CONDENSED_NETHERRACK.get().asItem()); + tabData.accept(NimsRandomBullshitModBlocks.CONDENSED_CONDENSED_NETHERRACK.get().asItem()); + tabData.accept(NimsRandomBullshitModBlocks.CONDENSED_CONDENSED_CONDENSED_NETHERRACK.get().asItem()); + tabData.accept(NimsRandomBullshitModBlocks.BROKEN_GLASS.get().asItem()); + tabData.accept(NimsRandomBullshitModBlocks.QUADRA_CONDENSED_NETHERRACK.get().asItem()); + tabData.accept(NimsRandomBullshitModBlocks.PENTA_CONDENSED_NETHERRACK.get().asItem()); + tabData.accept(NimsRandomBullshitModBlocks.HEXA_CONDENSED_NETHERRACK.get().asItem()); + } else if (tabData.getTabKey() == CreativeModeTabs.TOOLS_AND_UTILITIES) { + tabData.accept(NimsRandomBullshitModItems.BLOCK_EATER.get()); + tabData.accept(NimsRandomBullshitModItems.NETHERRACKITE_PICKAXE.get()); + tabData.accept(NimsRandomBullshitModItems.SHIT.get()); + tabData.accept(NimsRandomBullshitModItems.GRAVEDIGGER.get()); + } else if (tabData.getTabKey() == CreativeModeTabs.INGREDIENTS) { + tabData.accept(NimsRandomBullshitModItems.NETHERRACKITE.get()); + tabData.accept(NimsRandomBullshitModItems.SAND_DUST.get()); + tabData.accept(NimsRandomBullshitModItems.LAPIS_LAZULI_NUGGET.get()); + tabData.accept(NimsRandomBullshitModItems.MAGIC_DUST.get()); + } else if (tabData.getTabKey() == CreativeModeTabs.FOOD_AND_DRINKS) { + tabData.accept(NimsRandomBullshitModItems.MAGIC_FLESH.get()); + tabData.accept(NimsRandomBullshitModItems.GOLDEN_BERRIES.get()); + } else if (tabData.getTabKey() == CreativeModeTabs.FUNCTIONAL_BLOCKS) { + tabData.accept(NimsRandomBullshitModBlocks.ORE_MINER.get().asItem()); + } else if (tabData.getTabKey() == CreativeModeTabs.SPAWN_EGGS) { + tabData.accept(NimsRandomBullshitModItems.GHOUL_SPAWN_EGG.get()); + } + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/item/BlockEaterItem.java b/src/main/java/net/mcreator/nimsrandombullshit/item/BlockEaterItem.java new file mode 100644 index 0000000..44cce9a --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/item/BlockEaterItem.java @@ -0,0 +1,29 @@ + +package net.mcreator.nimsrandombullshit.item; + +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.item.UseAnim; +import net.minecraft.world.item.Rarity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Item; +import net.minecraft.world.InteractionResult; + +import net.mcreator.nimsrandombullshit.procedures.BlockEaterRightclickedOnBlockProcedure; + +public class BlockEaterItem extends Item { + public BlockEaterItem() { + super(new Item.Properties().stacksTo(1).rarity(Rarity.EPIC)); + } + + @Override + public UseAnim getUseAnimation(ItemStack itemstack) { + return UseAnim.BLOCK; + } + + @Override + public InteractionResult useOn(UseOnContext context) { + super.useOn(context); + BlockEaterRightclickedOnBlockProcedure.execute(context.getLevel(), context.getClickedPos().getX(), context.getClickedPos().getY(), context.getClickedPos().getZ(), context.getPlayer(), context.getItemInHand()); + return InteractionResult.SUCCESS; + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/item/GoldenBerriesItem.java b/src/main/java/net/mcreator/nimsrandombullshit/item/GoldenBerriesItem.java new file mode 100644 index 0000000..4cf05ad --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/item/GoldenBerriesItem.java @@ -0,0 +1,18 @@ + +package net.mcreator.nimsrandombullshit.item; + +import net.minecraft.world.item.Rarity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Item; +import net.minecraft.world.food.FoodProperties; + +public class GoldenBerriesItem extends Item { + public GoldenBerriesItem() { + super(new Item.Properties().stacksTo(64).rarity(Rarity.UNCOMMON).food((new FoodProperties.Builder()).nutrition(4).saturationMod(12f).build())); + } + + @Override + public int getUseDuration(ItemStack itemstack) { + return 24; + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/item/GravediggerItem.java b/src/main/java/net/mcreator/nimsrandombullshit/item/GravediggerItem.java new file mode 100644 index 0000000..859e646 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/item/GravediggerItem.java @@ -0,0 +1,63 @@ + +package net.mcreator.nimsrandombullshit.item; + +import net.minecraft.world.level.Level; +import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.Tier; +import net.minecraft.world.item.ShovelItem; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Item; +import net.minecraft.world.InteractionResult; +import net.minecraft.network.chat.Component; + +import net.mcreator.nimsrandombullshit.procedures.GravediggerRightclickedOnBlockProcedure; + +import java.util.List; + +public class GravediggerItem extends ShovelItem { + public GravediggerItem() { + super(new Tier() { + public int getUses() { + return 3666; + } + + public float getSpeed() { + return 4f; + } + + public float getAttackDamageBonus() { + return 2f; + } + + public int getLevel() { + return 1; + } + + public int getEnchantmentValue() { + return 2; + } + + public Ingredient getRepairIngredient() { + return Ingredient.of(new ItemStack(Items.WITHER_SKELETON_SKULL)); + } + }, 1, -3f, new Item.Properties().fireResistant()); + } + + @Override + public void appendHoverText(ItemStack itemstack, Level level, List list, TooltipFlag flag) { + super.appendHoverText(itemstack, level, list, flag); + list.add(Component.translatable("item.nims_random_bullshit.gravedigger.description_0")); + list.add(Component.translatable("item.nims_random_bullshit.gravedigger.description_1")); + } + + @Override + public InteractionResult useOn(UseOnContext context) { + super.useOn(context); + GravediggerRightclickedOnBlockProcedure.execute(context.getLevel(), context.getClickedPos().getX(), context.getClickedPos().getY(), context.getClickedPos().getZ(), context.getLevel().getBlockState(context.getClickedPos()), + context.getPlayer(), context.getItemInHand()); + return InteractionResult.SUCCESS; + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/item/LapisLazuliNuggetItem.java b/src/main/java/net/mcreator/nimsrandombullshit/item/LapisLazuliNuggetItem.java new file mode 100644 index 0000000..e5a99f1 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/item/LapisLazuliNuggetItem.java @@ -0,0 +1,11 @@ + +package net.mcreator.nimsrandombullshit.item; + +import net.minecraft.world.item.Rarity; +import net.minecraft.world.item.Item; + +public class LapisLazuliNuggetItem extends Item { + public LapisLazuliNuggetItem() { + super(new Item.Properties().stacksTo(64).rarity(Rarity.COMMON)); + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/item/MagicDustItem.java b/src/main/java/net/mcreator/nimsrandombullshit/item/MagicDustItem.java new file mode 100644 index 0000000..d21ae6d --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/item/MagicDustItem.java @@ -0,0 +1,11 @@ + +package net.mcreator.nimsrandombullshit.item; + +import net.minecraft.world.item.Rarity; +import net.minecraft.world.item.Item; + +public class MagicDustItem extends Item { + public MagicDustItem() { + super(new Item.Properties().stacksTo(64).rarity(Rarity.UNCOMMON)); + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/item/MagicFleshItem.java b/src/main/java/net/mcreator/nimsrandombullshit/item/MagicFleshItem.java new file mode 100644 index 0000000..ec44f23 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/item/MagicFleshItem.java @@ -0,0 +1,32 @@ + +package net.mcreator.nimsrandombullshit.item; + +import net.minecraft.world.level.Level; +import net.minecraft.world.item.Rarity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Item; +import net.minecraft.world.food.FoodProperties; +import net.minecraft.world.entity.LivingEntity; + +import net.mcreator.nimsrandombullshit.procedures.MagicFleshOnPlayerStoppedUsingProcedure; + +public class MagicFleshItem extends Item { + public MagicFleshItem() { + super(new Item.Properties().stacksTo(64).rarity(Rarity.UNCOMMON).food((new FoodProperties.Builder()).nutrition(4).saturationMod(0.2f).alwaysEat().build())); + } + + @Override + public int getUseDuration(ItemStack itemstack) { + return 12; + } + + @Override + public ItemStack finishUsingItem(ItemStack itemstack, Level world, LivingEntity entity) { + ItemStack retval = super.finishUsingItem(itemstack, world, entity); + double x = entity.getX(); + double y = entity.getY(); + double z = entity.getZ(); + MagicFleshOnPlayerStoppedUsingProcedure.execute(world, x, y, z); + return retval; + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/item/NetherrackiteItem.java b/src/main/java/net/mcreator/nimsrandombullshit/item/NetherrackiteItem.java new file mode 100644 index 0000000..9c111ae --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/item/NetherrackiteItem.java @@ -0,0 +1,11 @@ + +package net.mcreator.nimsrandombullshit.item; + +import net.minecraft.world.item.Rarity; +import net.minecraft.world.item.Item; + +public class NetherrackiteItem extends Item { + public NetherrackiteItem() { + super(new Item.Properties().stacksTo(64).fireResistant().rarity(Rarity.RARE)); + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/item/NetherrackitePickaxeItem.java b/src/main/java/net/mcreator/nimsrandombullshit/item/NetherrackitePickaxeItem.java new file mode 100644 index 0000000..e33bb49 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/item/NetherrackitePickaxeItem.java @@ -0,0 +1,70 @@ + +package net.mcreator.nimsrandombullshit.item; + +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.Level; +import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.Tier; +import net.minecraft.world.item.PickaxeItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Item; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.Entity; +import net.minecraft.network.chat.Component; +import net.minecraft.core.BlockPos; + +import net.mcreator.nimsrandombullshit.procedures.NetherrackitePickaxeBlockDestroyedWithToolProcedure; +import net.mcreator.nimsrandombullshit.procedures.NetherrackingLogicProcedure; + +import java.util.List; + +public class NetherrackitePickaxeItem extends PickaxeItem { + public NetherrackitePickaxeItem() { + super(new Tier() { + public int getUses() { + return 18279; + } + + public float getSpeed() { + return 729f; + } + + public float getAttackDamageBonus() { + return 2f; + } + + public int getLevel() { + return 0; + } + + public int getEnchantmentValue() { + return 15; + } + + public Ingredient getRepairIngredient() { + return Ingredient.of(); + } + }, 1, -3f, new Item.Properties().fireResistant()); + } + + @Override + public boolean mineBlock(ItemStack itemstack, Level world, BlockState blockstate, BlockPos pos, LivingEntity entity) { + boolean retval = super.mineBlock(itemstack, world, blockstate, pos, entity); + NetherrackitePickaxeBlockDestroyedWithToolProcedure.execute(world, pos.getX(), pos.getY(), pos.getZ(), blockstate); + return retval; + } + + @Override + public void appendHoverText(ItemStack itemstack, Level level, List list, TooltipFlag flag) { + super.appendHoverText(itemstack, level, list, flag); + list.add(Component.translatable("item.nims_random_bullshit.netherrackite_pickaxe.description_0")); + } + + @Override + public void inventoryTick(ItemStack itemstack, Level world, Entity entity, int slot, boolean selected) { + super.inventoryTick(itemstack, world, entity, slot, selected); + if (selected) + NetherrackingLogicProcedure.execute(world, entity, itemstack); + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/item/SandDustItem.java b/src/main/java/net/mcreator/nimsrandombullshit/item/SandDustItem.java new file mode 100644 index 0000000..00b941e --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/item/SandDustItem.java @@ -0,0 +1,11 @@ + +package net.mcreator.nimsrandombullshit.item; + +import net.minecraft.world.item.Rarity; +import net.minecraft.world.item.Item; + +public class SandDustItem extends Item { + public SandDustItem() { + super(new Item.Properties().stacksTo(64).rarity(Rarity.COMMON)); + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/item/ShitItem.java b/src/main/java/net/mcreator/nimsrandombullshit/item/ShitItem.java new file mode 100644 index 0000000..5529c76 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/item/ShitItem.java @@ -0,0 +1,87 @@ + +package net.mcreator.nimsrandombullshit.item; + +import net.minecraft.world.level.Level; +import net.minecraft.world.item.UseAnim; +import net.minecraft.world.item.Rarity; +import net.minecraft.world.item.ProjectileWeaponItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.BowItem; +import net.minecraft.world.entity.projectile.AbstractArrow; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.InteractionHand; +import net.minecraft.server.level.ServerPlayer; + +import net.mcreator.nimsrandombullshit.entity.ShitProjectileEntity; + +public class ShitItem extends Item { + public ShitItem() { + super(new Item.Properties().stacksTo(64).rarity(Rarity.UNCOMMON)); + } + + @Override + public UseAnim getUseAnimation(ItemStack itemstack) { + return UseAnim.SPEAR; + } + + @Override + public int getUseDuration(ItemStack itemstack) { + return 72000; + } + + @Override + public InteractionResultHolder use(Level world, Player entity, InteractionHand hand) { + InteractionResultHolder ar = InteractionResultHolder.fail(entity.getItemInHand(hand)); + if (entity.getAbilities().instabuild || findAmmo(entity) != ItemStack.EMPTY) { + ar = InteractionResultHolder.success(entity.getItemInHand(hand)); + entity.startUsingItem(hand); + } + return ar; + } + + @Override + public void releaseUsing(ItemStack itemstack, Level world, LivingEntity entity, int time) { + if (!world.isClientSide() && entity instanceof ServerPlayer player) { + float pullingPower = BowItem.getPowerForTime(this.getUseDuration(itemstack) - time); + if (pullingPower < 0.1) + return; + ItemStack stack = findAmmo(player); + if (player.getAbilities().instabuild || stack != ItemStack.EMPTY) { + ShitProjectileEntity projectile = ShitProjectileEntity.shoot(world, entity, world.getRandom(), pullingPower); + if (player.getAbilities().instabuild) { + projectile.pickup = AbstractArrow.Pickup.CREATIVE_ONLY; + } else { + if (stack.isDamageableItem()) { + if (stack.hurt(1, world.getRandom(), player)) { + stack.shrink(1); + stack.setDamageValue(0); + if (stack.isEmpty()) + player.getInventory().removeItem(stack); + } + } else { + stack.shrink(1); + if (stack.isEmpty()) + player.getInventory().removeItem(stack); + } + } + } + } + } + + private ItemStack findAmmo(Player player) { + ItemStack stack = ProjectileWeaponItem.getHeldProjectile(player, e -> e.getItem() == ShitProjectileEntity.PROJECTILE_ITEM.getItem()); + if (stack == ItemStack.EMPTY) { + for (int i = 0; i < player.getInventory().items.size(); i++) { + ItemStack teststack = player.getInventory().items.get(i); + if (teststack != null && teststack.getItem() == ShitProjectileEntity.PROJECTILE_ITEM.getItem()) { + stack = teststack; + break; + } + } + } + return stack; + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/network/OreMinerGUIButtonMessage.java b/src/main/java/net/mcreator/nimsrandombullshit/network/OreMinerGUIButtonMessage.java new file mode 100644 index 0000000..6c0d069 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/network/OreMinerGUIButtonMessage.java @@ -0,0 +1,75 @@ + +package net.mcreator.nimsrandombullshit.network; + +import net.minecraftforge.network.NetworkEvent; +import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.eventbus.api.SubscribeEvent; + +import net.minecraft.world.level.Level; +import net.minecraft.world.entity.player.Player; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.core.BlockPos; + +import net.mcreator.nimsrandombullshit.world.inventory.OreMinerGUIMenu; +import net.mcreator.nimsrandombullshit.procedures.OreMinerMineButtonPressedProcedure; +import net.mcreator.nimsrandombullshit.NimsRandomBullshitMod; + +import java.util.function.Supplier; +import java.util.HashMap; + +@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD) +public class OreMinerGUIButtonMessage { + private final int buttonID, x, y, z; + + public OreMinerGUIButtonMessage(FriendlyByteBuf buffer) { + this.buttonID = buffer.readInt(); + this.x = buffer.readInt(); + this.y = buffer.readInt(); + this.z = buffer.readInt(); + } + + public OreMinerGUIButtonMessage(int buttonID, int x, int y, int z) { + this.buttonID = buttonID; + this.x = x; + this.y = y; + this.z = z; + } + + public static void buffer(OreMinerGUIButtonMessage message, FriendlyByteBuf buffer) { + buffer.writeInt(message.buttonID); + buffer.writeInt(message.x); + buffer.writeInt(message.y); + buffer.writeInt(message.z); + } + + public static void handler(OreMinerGUIButtonMessage message, Supplier contextSupplier) { + NetworkEvent.Context context = contextSupplier.get(); + context.enqueueWork(() -> { + Player entity = context.getSender(); + int buttonID = message.buttonID; + int x = message.x; + int y = message.y; + int z = message.z; + handleButtonAction(entity, buttonID, x, y, z); + }); + context.setPacketHandled(true); + } + + public static void handleButtonAction(Player entity, int buttonID, int x, int y, int z) { + Level world = entity.level(); + HashMap guistate = OreMinerGUIMenu.guistate; + // security measure to prevent arbitrary chunk generation + if (!world.hasChunkAt(new BlockPos(x, y, z))) + return; + if (buttonID == 0) { + + OreMinerMineButtonPressedProcedure.execute(world, x, y, z, entity); + } + } + + @SubscribeEvent + public static void registerMessage(FMLCommonSetupEvent event) { + NimsRandomBullshitMod.addNetworkMessage(OreMinerGUIButtonMessage.class, OreMinerGUIButtonMessage::buffer, OreMinerGUIButtonMessage::new, OreMinerGUIButtonMessage::handler); + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/potion/StinkyEffectMobEffect.java b/src/main/java/net/mcreator/nimsrandombullshit/potion/StinkyEffectMobEffect.java new file mode 100644 index 0000000..d353a85 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/potion/StinkyEffectMobEffect.java @@ -0,0 +1,42 @@ + +package net.mcreator.nimsrandombullshit.potion; + +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.entity.ai.attributes.AttributeMap; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.effect.MobEffectCategory; +import net.minecraft.world.effect.MobEffect; + +import net.mcreator.nimsrandombullshit.procedures.StinkyEffectOnEffectActiveTickProcedure; +import net.mcreator.nimsrandombullshit.procedures.StinkyEffectEffectExpiresProcedure; + +import java.util.List; +import java.util.ArrayList; + +public class StinkyEffectMobEffect extends MobEffect { + public StinkyEffectMobEffect() { + super(MobEffectCategory.HARMFUL, -2621555); + } + + @Override + public List getCurativeItems() { + ArrayList cures = new ArrayList(); + return cures; + } + + @Override + public void applyEffectTick(LivingEntity entity, int amplifier) { + StinkyEffectOnEffectActiveTickProcedure.execute(entity.level(), entity.getX(), entity.getY(), entity.getZ(), entity); + } + + @Override + public void removeAttributeModifiers(LivingEntity entity, AttributeMap attributeMap, int amplifier) { + super.removeAttributeModifiers(entity, attributeMap, amplifier); + StinkyEffectEffectExpiresProcedure.execute(entity); + } + + @Override + public boolean isDurationEffectTick(int duration, int amplifier) { + return true; + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/potion/SummonedEntityEffectMobEffect.java b/src/main/java/net/mcreator/nimsrandombullshit/potion/SummonedEntityEffectMobEffect.java new file mode 100644 index 0000000..fef4d5a --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/potion/SummonedEntityEffectMobEffect.java @@ -0,0 +1,61 @@ + +package net.mcreator.nimsrandombullshit.potion; + +import net.minecraftforge.client.extensions.common.IClientMobEffectExtensions; + +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.entity.ai.attributes.AttributeMap; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffectCategory; +import net.minecraft.world.effect.MobEffect; +import net.minecraft.client.gui.screens.inventory.EffectRenderingInventoryScreen; +import net.minecraft.client.gui.GuiGraphics; + +import net.mcreator.nimsrandombullshit.procedures.SummonedEntityEffectEffectExpiresProcedure; + +import java.util.List; +import java.util.ArrayList; + +public class SummonedEntityEffectMobEffect extends MobEffect { + public SummonedEntityEffectMobEffect() { + super(MobEffectCategory.HARMFUL, -16777216); + } + + @Override + public List getCurativeItems() { + ArrayList cures = new ArrayList(); + return cures; + } + + @Override + public void removeAttributeModifiers(LivingEntity entity, AttributeMap attributeMap, int amplifier) { + super.removeAttributeModifiers(entity, attributeMap, amplifier); + SummonedEntityEffectEffectExpiresProcedure.execute(entity.level(), entity.getX(), entity.getY(), entity.getZ(), entity); + } + + @Override + public boolean isDurationEffectTick(int duration, int amplifier) { + return true; + } + + @Override + public void initializeClient(java.util.function.Consumer consumer) { + consumer.accept(new IClientMobEffectExtensions() { + @Override + public boolean isVisibleInInventory(MobEffectInstance effect) { + return false; + } + + @Override + public boolean renderInventoryText(MobEffectInstance instance, EffectRenderingInventoryScreen screen, GuiGraphics guiGraphics, int x, int y, int blitOffset) { + return false; + } + + @Override + public boolean isVisibleInGui(MobEffectInstance effect) { + return false; + } + }); + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/procedures/BlockEaterRightclickedOnBlockProcedure.java b/src/main/java/net/mcreator/nimsrandombullshit/procedures/BlockEaterRightclickedOnBlockProcedure.java new file mode 100644 index 0000000..a690141 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/procedures/BlockEaterRightclickedOnBlockProcedure.java @@ -0,0 +1,42 @@ +package net.mcreator.nimsrandombullshit.procedures; + +import net.minecraftforge.registries.ForgeRegistries; + +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.Level; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.entity.Entity; +import net.minecraft.sounds.SoundSource; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.core.BlockPos; + +public class BlockEaterRightclickedOnBlockProcedure { + public static void execute(LevelAccessor world, double x, double y, double z, Entity entity, ItemStack itemstack) { + if (entity == null) + return; + if (world.getBlockState(BlockPos.containing(x, y, z)).getDestroySpeed(world, BlockPos.containing(x, y, z)) != -1) { + world.setBlock(BlockPos.containing(x, y, z), Blocks.AIR.defaultBlockState(), 3); + if (entity instanceof Player _player) + _player.getFoodData().setFoodLevel((int) ((entity instanceof Player _plr ? _plr.getFoodData().getFoodLevel() : 0) + 4)); + if ((entity instanceof Player _plr ? _plr.getFoodData().getFoodLevel() : 0) >= 20) { + if (entity instanceof Player _player) + _player.getFoodData().setSaturation((float) ((entity instanceof Player _plr ? _plr.getFoodData().getSaturationLevel() : 0) + 2)); + } + if (world instanceof Level _level) { + if (!_level.isClientSide()) { + _level.playSound(null, BlockPos.containing(x, y, z), ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("entity.generic.eat")), SoundSource.PLAYERS, (float) 0.5, (float) 0.84); + } else { + _level.playLocalSound(x, y, z, ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("entity.generic.eat")), SoundSource.PLAYERS, (float) 0.5, (float) 0.84, false); + } + } + if (world instanceof ServerLevel _level) + _level.sendParticles(ParticleTypes.END_ROD, x, y, z, 4, 1, 1, 1, 0.4); + if (entity instanceof Player _player) + _player.getCooldowns().addCooldown(itemstack.getItem(), 600); + } + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/procedures/GhoulOnInitialEntitySpawnProcedure.java b/src/main/java/net/mcreator/nimsrandombullshit/procedures/GhoulOnInitialEntitySpawnProcedure.java new file mode 100644 index 0000000..f59eee6 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/procedures/GhoulOnInitialEntitySpawnProcedure.java @@ -0,0 +1,16 @@ +package net.mcreator.nimsrandombullshit.procedures; + +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.effect.MobEffectInstance; + +import net.mcreator.nimsrandombullshit.init.NimsRandomBullshitModMobEffects; + +public class GhoulOnInitialEntitySpawnProcedure { + public static void execute(Entity entity) { + if (entity == null) + return; + if (entity instanceof LivingEntity _entity && !_entity.level().isClientSide()) + _entity.addEffect(new MobEffectInstance(NimsRandomBullshitModMobEffects.SUMMONED_ENTITY_EFFECT.get(), 200, 1, false, false)); + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/procedures/GhoulThisEntityKillsAnotherOneProcedure.java b/src/main/java/net/mcreator/nimsrandombullshit/procedures/GhoulThisEntityKillsAnotherOneProcedure.java new file mode 100644 index 0000000..d00b072 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/procedures/GhoulThisEntityKillsAnotherOneProcedure.java @@ -0,0 +1,20 @@ +package net.mcreator.nimsrandombullshit.procedures; + +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.entity.MobSpawnType; +import net.minecraft.world.entity.Entity; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.core.BlockPos; + +import net.mcreator.nimsrandombullshit.init.NimsRandomBullshitModEntities; + +public class GhoulThisEntityKillsAnotherOneProcedure { + public static void execute(LevelAccessor world, double x, double y, double z) { + if (world instanceof ServerLevel _level) { + Entity entityToSpawn = NimsRandomBullshitModEntities.GHOUL.get().spawn(_level, BlockPos.containing(x, y, z), MobSpawnType.MOB_SUMMONED); + if (entityToSpawn != null) { + entityToSpawn.setDeltaMovement(0, 0, 0); + } + } + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/procedures/GravediggerRightclickedOnBlockProcedure.java b/src/main/java/net/mcreator/nimsrandombullshit/procedures/GravediggerRightclickedOnBlockProcedure.java new file mode 100644 index 0000000..5cb0fc5 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/procedures/GravediggerRightclickedOnBlockProcedure.java @@ -0,0 +1,45 @@ +package net.mcreator.nimsrandombullshit.procedures; + +import net.minecraftforge.registries.ForgeRegistries; + +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.Level; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.entity.MobSpawnType; +import net.minecraft.world.entity.Entity; +import net.minecraft.util.RandomSource; +import net.minecraft.util.Mth; +import net.minecraft.sounds.SoundSource; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.core.BlockPos; + +import net.mcreator.nimsrandombullshit.init.NimsRandomBullshitModEntities; + +public class GravediggerRightclickedOnBlockProcedure { + public static void execute(LevelAccessor world, double x, double y, double z, BlockState blockstate, Entity entity, ItemStack itemstack) { + if (entity == null) + return; + if (blockstate == Blocks.SOUL_SAND.defaultBlockState() || blockstate == Blocks.SOUL_SOIL.defaultBlockState()) { + if (entity instanceof Player _player) + _player.getCooldowns().addCooldown(itemstack.getItem(), 16); + world.setBlock(BlockPos.containing(x, y, z), Blocks.AIR.defaultBlockState(), 3); + if (world instanceof Level _level) { + if (!_level.isClientSide()) { + _level.playSound(null, BlockPos.containing(x, y, z), ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("entity.blaze.ambient")), SoundSource.HOSTILE, (float) 0.7, (float) Mth.nextDouble(RandomSource.create(), 0.6, 0.7)); + } else { + _level.playLocalSound(x, y, z, ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("entity.blaze.ambient")), SoundSource.HOSTILE, (float) 0.7, (float) Mth.nextDouble(RandomSource.create(), 0.6, 0.7), false); + } + } + if (world instanceof ServerLevel _level) { + Entity entityToSpawn = NimsRandomBullshitModEntities.GHOUL.get().spawn(_level, BlockPos.containing(x, y, z), MobSpawnType.MOB_SUMMONED); + if (entityToSpawn != null) { + entityToSpawn.setDeltaMovement(0, 0, 0); + } + } + } + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/procedures/MagicFleshOnPlayerStoppedUsingProcedure.java b/src/main/java/net/mcreator/nimsrandombullshit/procedures/MagicFleshOnPlayerStoppedUsingProcedure.java new file mode 100644 index 0000000..017bd18 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/procedures/MagicFleshOnPlayerStoppedUsingProcedure.java @@ -0,0 +1,14 @@ +package net.mcreator.nimsrandombullshit.procedures; + +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.entity.ExperienceOrb; +import net.minecraft.util.RandomSource; +import net.minecraft.util.Mth; +import net.minecraft.server.level.ServerLevel; + +public class MagicFleshOnPlayerStoppedUsingProcedure { + public static void execute(LevelAccessor world, double x, double y, double z) { + if (world instanceof ServerLevel _level) + _level.addFreshEntity(new ExperienceOrb(_level, x, y, z, Mth.nextInt(RandomSource.create(), 6, 9))); + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/procedures/NetherrackingLogicProcedure.java b/src/main/java/net/mcreator/nimsrandombullshit/procedures/NetherrackingLogicProcedure.java new file mode 100644 index 0000000..447c8b6 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/procedures/NetherrackingLogicProcedure.java @@ -0,0 +1,21 @@ +package net.mcreator.nimsrandombullshit.procedures; + +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.effect.MobEffectInstance; + +import net.mcreator.nimsrandombullshit.init.NimsRandomBullshitModEnchantments; + +public class NetherrackingLogicProcedure { + public static void execute(LevelAccessor world, Entity entity, ItemStack itemstack) { + if (entity == null) + return; + if (itemstack.getEnchantmentLevel(NimsRandomBullshitModEnchantments.NETHERRACKING_ENCHANTMENT.get()) > 0) { + if (entity instanceof LivingEntity _entity && !_entity.level().isClientSide()) + _entity.addEffect(new MobEffectInstance(MobEffects.DIG_SPEED, 2, (int) (itemstack.getEnchantmentLevel(NimsRandomBullshitModEnchantments.NETHERRACKING_ENCHANTMENT.get()) * 4), false, false)); + } + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/procedures/NetherrackitePickaxeBlockDestroyedWithToolProcedure.java b/src/main/java/net/mcreator/nimsrandombullshit/procedures/NetherrackitePickaxeBlockDestroyedWithToolProcedure.java new file mode 100644 index 0000000..19d9e0a --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/procedures/NetherrackitePickaxeBlockDestroyedWithToolProcedure.java @@ -0,0 +1,20 @@ +package net.mcreator.nimsrandombullshit.procedures; + +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.entity.item.ItemEntity; +import net.minecraft.server.level.ServerLevel; + +public class NetherrackitePickaxeBlockDestroyedWithToolProcedure { + public static void execute(LevelAccessor world, double x, double y, double z, BlockState blockstate) { + if (blockstate.getBlock() == Blocks.NETHERRACK) { + if (world instanceof ServerLevel _level) { + ItemEntity entityToSpawn = new ItemEntity(_level, x, y, z, new ItemStack(Blocks.NETHERRACK)); + entityToSpawn.setPickUpDelay(10); + _level.addFreshEntity(entityToSpawn); + } + } + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/procedures/OreMinerGUISlot0ImageDisplayConditionProcedure.java b/src/main/java/net/mcreator/nimsrandombullshit/procedures/OreMinerGUISlot0ImageDisplayConditionProcedure.java new file mode 100644 index 0000000..fd9ea2e --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/procedures/OreMinerGUISlot0ImageDisplayConditionProcedure.java @@ -0,0 +1,29 @@ +package net.mcreator.nimsrandombullshit.procedures; + +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.inventory.Slot; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.entity.Entity; + +import java.util.function.Supplier; +import java.util.Map; + +public class OreMinerGUISlot0ImageDisplayConditionProcedure { + public static boolean execute(Entity entity) { + if (entity == null) + return false; + if (new Object() { + public int getAmount(int sltid) { + if (entity instanceof Player _player && _player.containerMenu instanceof Supplier _current && _current.get() instanceof Map _slots) { + ItemStack stack = ((Slot) _slots.get(sltid)).getItem(); + if (stack != null) + return stack.getCount(); + } + return 0; + } + }.getAmount(0) > 0) { + return false; + } + return true; + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/procedures/OreMinerMineButtonPressedProcedure.java b/src/main/java/net/mcreator/nimsrandombullshit/procedures/OreMinerMineButtonPressedProcedure.java new file mode 100644 index 0000000..69c4c87 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/procedures/OreMinerMineButtonPressedProcedure.java @@ -0,0 +1,173 @@ +package net.mcreator.nimsrandombullshit.procedures; + +import net.minecraftforge.registries.ForgeRegistries; + +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.Level; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.inventory.Slot; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.entity.Entity; +import net.minecraft.util.RandomSource; +import net.minecraft.util.Mth; +import net.minecraft.sounds.SoundSource; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.core.BlockPos; + +import java.util.function.Supplier; +import java.util.Map; + +public class OreMinerMineButtonPressedProcedure { + public static void execute(LevelAccessor world, double x, double y, double z, Entity entity) { + if (entity == null) + return; + double oreMinerRoll = 0; + if ((entity instanceof Player _plrSlotItem && _plrSlotItem.containerMenu instanceof Supplier _splr && _splr.get() instanceof Map _slt ? ((Slot) _slt.get(0)).getItem() : ItemStack.EMPTY).getItem() == Items.DIAMOND_PICKAXE) { + if (world instanceof Level _level) { + if (!_level.isClientSide()) { + _level.playSound(null, BlockPos.containing(x, y, z), ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("block.stone.break")), SoundSource.BLOCKS, (float) 0.8, (float) Mth.nextDouble(RandomSource.create(), 0.9, 1.1)); + } else { + _level.playLocalSound(x, y, z, ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("block.stone.break")), SoundSource.BLOCKS, (float) 0.8, (float) Mth.nextDouble(RandomSource.create(), 0.9, 1.1), false); + } + } + { + ItemStack _ist = (entity instanceof Player _plrSlotItem && _plrSlotItem.containerMenu instanceof Supplier _splr && _splr.get() instanceof Map _slt ? ((Slot) _slt.get(0)).getItem() : ItemStack.EMPTY); + if (_ist.hurt(1, RandomSource.create(), null)) { + _ist.shrink(1); + _ist.setDamageValue(0); + } + } + oreMinerRoll = Math.random(); + if (oreMinerRoll < 0.125) { + if (entity instanceof Player _player && _player.containerMenu instanceof Supplier _current && _current.get() instanceof Map _slots) { + ItemStack _setstack = new ItemStack(Items.COAL).copy(); + _setstack.setCount((int) (new Object() { + public int getAmount(int sltid) { + if (entity instanceof Player _player && _player.containerMenu instanceof Supplier _current && _current.get() instanceof Map _slots) { + ItemStack stack = ((Slot) _slots.get(sltid)).getItem(); + if (stack != null) + return stack.getCount(); + } + return 0; + } + }.getAmount(1) + Mth.nextInt(RandomSource.create(), 1, 3))); + ((Slot) _slots.get(1)).set(_setstack); + _player.containerMenu.broadcastChanges(); + } + } else if (oreMinerRoll < 0.25) { + if (entity instanceof Player _player && _player.containerMenu instanceof Supplier _current && _current.get() instanceof Map _slots) { + ItemStack _setstack = new ItemStack(Items.RAW_COPPER).copy(); + _setstack.setCount((int) (new Object() { + public int getAmount(int sltid) { + if (entity instanceof Player _player && _player.containerMenu instanceof Supplier _current && _current.get() instanceof Map _slots) { + ItemStack stack = ((Slot) _slots.get(sltid)).getItem(); + if (stack != null) + return stack.getCount(); + } + return 0; + } + }.getAmount(2) + Mth.nextInt(RandomSource.create(), 2, 4))); + ((Slot) _slots.get(2)).set(_setstack); + _player.containerMenu.broadcastChanges(); + } + } else if (oreMinerRoll < 0.375) { + if (entity instanceof Player _player && _player.containerMenu instanceof Supplier _current && _current.get() instanceof Map _slots) { + ItemStack _setstack = new ItemStack(Items.RAW_IRON).copy(); + _setstack.setCount((int) (new Object() { + public int getAmount(int sltid) { + if (entity instanceof Player _player && _player.containerMenu instanceof Supplier _current && _current.get() instanceof Map _slots) { + ItemStack stack = ((Slot) _slots.get(sltid)).getItem(); + if (stack != null) + return stack.getCount(); + } + return 0; + } + }.getAmount(3) + 1)); + ((Slot) _slots.get(3)).set(_setstack); + _player.containerMenu.broadcastChanges(); + } + } else if (oreMinerRoll < 0.5) { + if (entity instanceof Player _player && _player.containerMenu instanceof Supplier _current && _current.get() instanceof Map _slots) { + ItemStack _setstack = new ItemStack(Items.RAW_GOLD).copy(); + _setstack.setCount((int) (new Object() { + public int getAmount(int sltid) { + if (entity instanceof Player _player && _player.containerMenu instanceof Supplier _current && _current.get() instanceof Map _slots) { + ItemStack stack = ((Slot) _slots.get(sltid)).getItem(); + if (stack != null) + return stack.getCount(); + } + return 0; + } + }.getAmount(4) + 1)); + ((Slot) _slots.get(4)).set(_setstack); + _player.containerMenu.broadcastChanges(); + } + } else if (oreMinerRoll < 0.625) { + if (entity instanceof Player _player && _player.containerMenu instanceof Supplier _current && _current.get() instanceof Map _slots) { + ItemStack _setstack = new ItemStack(Items.DIAMOND).copy(); + _setstack.setCount((int) (new Object() { + public int getAmount(int sltid) { + if (entity instanceof Player _player && _player.containerMenu instanceof Supplier _current && _current.get() instanceof Map _slots) { + ItemStack stack = ((Slot) _slots.get(sltid)).getItem(); + if (stack != null) + return stack.getCount(); + } + return 0; + } + }.getAmount(5) + Mth.nextInt(RandomSource.create(), 1, 2))); + ((Slot) _slots.get(5)).set(_setstack); + _player.containerMenu.broadcastChanges(); + } + } else if (oreMinerRoll < 0.75) { + if (entity instanceof Player _player && _player.containerMenu instanceof Supplier _current && _current.get() instanceof Map _slots) { + ItemStack _setstack = new ItemStack(Items.EMERALD).copy(); + _setstack.setCount((int) (new Object() { + public int getAmount(int sltid) { + if (entity instanceof Player _player && _player.containerMenu instanceof Supplier _current && _current.get() instanceof Map _slots) { + ItemStack stack = ((Slot) _slots.get(sltid)).getItem(); + if (stack != null) + return stack.getCount(); + } + return 0; + } + }.getAmount(6) + Mth.nextInt(RandomSource.create(), 1, 2))); + ((Slot) _slots.get(6)).set(_setstack); + _player.containerMenu.broadcastChanges(); + } + } else if (oreMinerRoll < 0.875) { + if (entity instanceof Player _player && _player.containerMenu instanceof Supplier _current && _current.get() instanceof Map _slots) { + ItemStack _setstack = new ItemStack(Items.REDSTONE).copy(); + _setstack.setCount((int) (new Object() { + public int getAmount(int sltid) { + if (entity instanceof Player _player && _player.containerMenu instanceof Supplier _current && _current.get() instanceof Map _slots) { + ItemStack stack = ((Slot) _slots.get(sltid)).getItem(); + if (stack != null) + return stack.getCount(); + } + return 0; + } + }.getAmount(7) + Mth.nextInt(RandomSource.create(), 3, 6))); + ((Slot) _slots.get(7)).set(_setstack); + _player.containerMenu.broadcastChanges(); + } + } else { + if (entity instanceof Player _player && _player.containerMenu instanceof Supplier _current && _current.get() instanceof Map _slots) { + ItemStack _setstack = new ItemStack(Items.NETHERITE_SCRAP).copy(); + _setstack.setCount((int) (new Object() { + public int getAmount(int sltid) { + if (entity instanceof Player _player && _player.containerMenu instanceof Supplier _current && _current.get() instanceof Map _slots) { + ItemStack stack = ((Slot) _slots.get(sltid)).getItem(); + if (stack != null) + return stack.getCount(); + } + return 0; + } + }.getAmount(8) + 1)); + ((Slot) _slots.get(8)).set(_setstack); + _player.containerMenu.broadcastChanges(); + } + } + } + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/procedures/PassiveIncomeProcedureProcedure.java b/src/main/java/net/mcreator/nimsrandombullshit/procedures/PassiveIncomeProcedureProcedure.java new file mode 100644 index 0000000..db42140 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/procedures/PassiveIncomeProcedureProcedure.java @@ -0,0 +1,59 @@ +package net.mcreator.nimsrandombullshit.procedures; + +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.eventbus.api.Event; +import net.minecraftforge.event.TickEvent; + +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.entity.Entity; + +import net.mcreator.nimsrandombullshit.init.NimsRandomBullshitModEnchantments; + +import javax.annotation.Nullable; + +@Mod.EventBusSubscriber +public class PassiveIncomeProcedureProcedure { + @SubscribeEvent + public static void onPlayerTick(TickEvent.PlayerTickEvent event) { + if (event.phase == TickEvent.Phase.END) { + execute(event, event.player.level(), event.player); + } + } + + public static void execute(LevelAccessor world, Entity entity) { + execute(null, world, entity); + } + + private static void execute(@Nullable Event event, LevelAccessor world, Entity entity) { + if (entity == null) + return; + entity.getPersistentData().putDouble("PassiveIncomeCounter", (entity.getPersistentData().getDouble("PassiveIncomeCounter") + 1)); + if (entity.getPersistentData().getDouble("PassiveIncomeCounter") % 80 == 0) { + if ((entity instanceof LivingEntity _entGetArmor ? _entGetArmor.getItemBySlot(EquipmentSlot.FEET) : ItemStack.EMPTY).getEnchantmentLevel(NimsRandomBullshitModEnchantments.PASSIVE_INCOME_ENCHANTMENT.get()) > 0) { + if (entity instanceof Player _player) + _player.giveExperiencePoints( + (entity instanceof LivingEntity _entGetArmor ? _entGetArmor.getItemBySlot(EquipmentSlot.FEET) : ItemStack.EMPTY).getEnchantmentLevel(NimsRandomBullshitModEnchantments.PASSIVE_INCOME_ENCHANTMENT.get())); + } + if ((entity instanceof LivingEntity _entGetArmor ? _entGetArmor.getItemBySlot(EquipmentSlot.LEGS) : ItemStack.EMPTY).getEnchantmentLevel(NimsRandomBullshitModEnchantments.PASSIVE_INCOME_ENCHANTMENT.get()) > 0) { + if (entity instanceof Player _player) + _player.giveExperiencePoints( + (entity instanceof LivingEntity _entGetArmor ? _entGetArmor.getItemBySlot(EquipmentSlot.LEGS) : ItemStack.EMPTY).getEnchantmentLevel(NimsRandomBullshitModEnchantments.PASSIVE_INCOME_ENCHANTMENT.get())); + } + if ((entity instanceof LivingEntity _entGetArmor ? _entGetArmor.getItemBySlot(EquipmentSlot.CHEST) : ItemStack.EMPTY).getEnchantmentLevel(NimsRandomBullshitModEnchantments.PASSIVE_INCOME_ENCHANTMENT.get()) > 0) { + if (entity instanceof Player _player) + _player.giveExperiencePoints( + (entity instanceof LivingEntity _entGetArmor ? _entGetArmor.getItemBySlot(EquipmentSlot.CHEST) : ItemStack.EMPTY).getEnchantmentLevel(NimsRandomBullshitModEnchantments.PASSIVE_INCOME_ENCHANTMENT.get())); + } + if ((entity instanceof LivingEntity _entGetArmor ? _entGetArmor.getItemBySlot(EquipmentSlot.HEAD) : ItemStack.EMPTY).getEnchantmentLevel(NimsRandomBullshitModEnchantments.PASSIVE_INCOME_ENCHANTMENT.get()) > 0) { + if (entity instanceof Player _player) + _player.giveExperiencePoints( + (entity instanceof LivingEntity _entGetArmor ? _entGetArmor.getItemBySlot(EquipmentSlot.HEAD) : ItemStack.EMPTY).getEnchantmentLevel(NimsRandomBullshitModEnchantments.PASSIVE_INCOME_ENCHANTMENT.get())); + } + } + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/procedures/ShitProjectileProjectileHitsPlayerProcedure.java b/src/main/java/net/mcreator/nimsrandombullshit/procedures/ShitProjectileProjectileHitsPlayerProcedure.java new file mode 100644 index 0000000..ee60e2e --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/procedures/ShitProjectileProjectileHitsPlayerProcedure.java @@ -0,0 +1,34 @@ +package net.mcreator.nimsrandombullshit.procedures; + +import net.minecraftforge.registries.ForgeRegistries; + +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.Level; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.util.RandomSource; +import net.minecraft.util.Mth; +import net.minecraft.sounds.SoundSource; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.core.BlockPos; + +import net.mcreator.nimsrandombullshit.init.NimsRandomBullshitModMobEffects; + +public class ShitProjectileProjectileHitsPlayerProcedure { + public static void execute(LevelAccessor world, double x, double y, double z, Entity entity, Entity sourceentity) { + if (entity == null || sourceentity == null) + return; + if (!(entity == sourceentity)) { + if (world instanceof Level _level) { + if (!_level.isClientSide()) { + _level.playSound(null, BlockPos.containing(x, y, z), ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("entity.ghast.scream")), SoundSource.PLAYERS, (float) 0.8, (float) Mth.nextDouble(RandomSource.create(), 0.9, 1.1)); + } else { + _level.playLocalSound(x, y, z, ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("entity.ghast.scream")), SoundSource.PLAYERS, (float) 0.8, (float) Mth.nextDouble(RandomSource.create(), 0.9, 1.1), false); + } + } + if (entity instanceof LivingEntity _entity && !_entity.level().isClientSide()) + _entity.addEffect(new MobEffectInstance(NimsRandomBullshitModMobEffects.STINKY_EFFECT.get(), 60, 1, false, false)); + } + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/procedures/ShitSpawnLogicProcedure.java b/src/main/java/net/mcreator/nimsrandombullshit/procedures/ShitSpawnLogicProcedure.java new file mode 100644 index 0000000..d74b0b1 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/procedures/ShitSpawnLogicProcedure.java @@ -0,0 +1,41 @@ +package net.mcreator.nimsrandombullshit.procedures; + +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.eventbus.api.Event; +import net.minecraftforge.event.entity.living.LivingEvent; + +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.entity.item.ItemEntity; +import net.minecraft.world.entity.Entity; +import net.minecraft.server.level.ServerLevel; + +import net.mcreator.nimsrandombullshit.init.NimsRandomBullshitModItems; + +import javax.annotation.Nullable; + +@Mod.EventBusSubscriber +public class ShitSpawnLogicProcedure { + @SubscribeEvent + public static void onEntityTick(LivingEvent.LivingTickEvent event) { + execute(event, event.getEntity().level(), event.getEntity().getX(), event.getEntity().getY(), event.getEntity().getZ(), event.getEntity()); + } + + public static void execute(LevelAccessor world, double x, double y, double z, Entity entity) { + execute(null, world, x, y, z, entity); + } + + private static void execute(@Nullable Event event, LevelAccessor world, double x, double y, double z, Entity entity) { + if (entity == null) + return; + entity.getPersistentData().putDouble("ShitCounter", (entity.getPersistentData().getDouble("ShitCounter") + 1)); + if (entity.getPersistentData().getDouble("ShitCounter") % 6000 == 0 && Math.random() < 0.125) { + if (world instanceof ServerLevel _level) { + ItemEntity entityToSpawn = new ItemEntity(_level, x, y, z, new ItemStack(NimsRandomBullshitModItems.SHIT.get())); + entityToSpawn.setPickUpDelay(20); + _level.addFreshEntity(entityToSpawn); + } + } + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/procedures/StinkyEffectEffectExpiresProcedure.java b/src/main/java/net/mcreator/nimsrandombullshit/procedures/StinkyEffectEffectExpiresProcedure.java new file mode 100644 index 0000000..e7cf0c9 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/procedures/StinkyEffectEffectExpiresProcedure.java @@ -0,0 +1,17 @@ +package net.mcreator.nimsrandombullshit.procedures; + +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.entity.Entity; + +import net.mcreator.nimsrandombullshit.world.inventory.ShitGUIMenu; + +public class StinkyEffectEffectExpiresProcedure { + public static void execute(Entity entity) { + if (entity == null) + return; + if (entity instanceof Player _plr0 && _plr0.containerMenu instanceof ShitGUIMenu) { + if (entity instanceof Player _player) + _player.closeContainer(); + } + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/procedures/StinkyEffectOnEffectActiveTickProcedure.java b/src/main/java/net/mcreator/nimsrandombullshit/procedures/StinkyEffectOnEffectActiveTickProcedure.java new file mode 100644 index 0000000..475b7a4 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/procedures/StinkyEffectOnEffectActiveTickProcedure.java @@ -0,0 +1,41 @@ +package net.mcreator.nimsrandombullshit.procedures; + +import net.minecraftforge.network.NetworkHooks; + +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.MenuProvider; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.network.chat.Component; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.core.BlockPos; + +import net.mcreator.nimsrandombullshit.world.inventory.ShitGUIMenu; + +import io.netty.buffer.Unpooled; + +public class StinkyEffectOnEffectActiveTickProcedure { + public static void execute(LevelAccessor world, double x, double y, double z, Entity entity) { + if (entity == null) + return; + if (!(entity instanceof Player _plr0 && _plr0.containerMenu instanceof ShitGUIMenu)) { + if (entity instanceof ServerPlayer _ent) { + BlockPos _bpos = BlockPos.containing(x, y, z); + NetworkHooks.openScreen((ServerPlayer) _ent, new MenuProvider() { + @Override + public Component getDisplayName() { + return Component.literal("ShitGUI"); + } + + @Override + public AbstractContainerMenu createMenu(int id, Inventory inventory, Player player) { + return new ShitGUIMenu(id, inventory, new FriendlyByteBuf(Unpooled.buffer()).writeBlockPos(_bpos)); + } + }, _bpos); + } + } + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/procedures/SummonedEntityEffectEffectExpiresProcedure.java b/src/main/java/net/mcreator/nimsrandombullshit/procedures/SummonedEntityEffectEffectExpiresProcedure.java new file mode 100644 index 0000000..7881076 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/procedures/SummonedEntityEffectEffectExpiresProcedure.java @@ -0,0 +1,19 @@ +package net.mcreator.nimsrandombullshit.procedures; + +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.damagesource.DamageTypes; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.core.registries.Registries; +import net.minecraft.core.particles.ParticleTypes; + +public class SummonedEntityEffectEffectExpiresProcedure { + public static void execute(LevelAccessor world, double x, double y, double z, Entity entity) { + if (entity == null) + return; + if (world instanceof ServerLevel _level) + _level.sendParticles(ParticleTypes.SOUL_FIRE_FLAME, x, y, z, 6, 0.6, 0.6, 0.6, 0.16); + entity.hurt(new DamageSource(world.registryAccess().registryOrThrow(Registries.DAMAGE_TYPE).getHolderOrThrow(DamageTypes.FELL_OUT_OF_WORLD)), 999); + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/world/inventory/OreMinerGUIMenu.java b/src/main/java/net/mcreator/nimsrandombullshit/world/inventory/OreMinerGUIMenu.java new file mode 100644 index 0000000..0613cd6 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/world/inventory/OreMinerGUIMenu.java @@ -0,0 +1,342 @@ + +package net.mcreator.nimsrandombullshit.world.inventory; + +import net.minecraftforge.items.SlotItemHandler; +import net.minecraftforge.items.ItemStackHandler; +import net.minecraftforge.items.IItemHandler; +import net.minecraftforge.common.capabilities.ForgeCapabilities; + +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.Level; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.inventory.Slot; +import net.minecraft.world.inventory.ContainerLevelAccess; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.Entity; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.core.BlockPos; + +import net.mcreator.nimsrandombullshit.init.NimsRandomBullshitModMenus; + +import java.util.function.Supplier; +import java.util.Map; +import java.util.HashMap; + +public class OreMinerGUIMenu extends AbstractContainerMenu implements Supplier> { + public final static HashMap guistate = new HashMap<>(); + public final Level world; + public final Player entity; + public int x, y, z; + private ContainerLevelAccess access = ContainerLevelAccess.NULL; + private IItemHandler internal; + private final Map customSlots = new HashMap<>(); + private boolean bound = false; + private Supplier boundItemMatcher = null; + private Entity boundEntity = null; + private BlockEntity boundBlockEntity = null; + + public OreMinerGUIMenu(int id, Inventory inv, FriendlyByteBuf extraData) { + super(NimsRandomBullshitModMenus.ORE_MINER_GUI.get(), id); + this.entity = inv.player; + this.world = inv.player.level(); + this.internal = new ItemStackHandler(9); + BlockPos pos = null; + if (extraData != null) { + pos = extraData.readBlockPos(); + this.x = pos.getX(); + this.y = pos.getY(); + this.z = pos.getZ(); + access = ContainerLevelAccess.create(world, pos); + } + if (pos != null) { + if (extraData.readableBytes() == 1) { // bound to item + byte hand = extraData.readByte(); + ItemStack itemstack = hand == 0 ? this.entity.getMainHandItem() : this.entity.getOffhandItem(); + this.boundItemMatcher = () -> itemstack == (hand == 0 ? this.entity.getMainHandItem() : this.entity.getOffhandItem()); + itemstack.getCapability(ForgeCapabilities.ITEM_HANDLER, null).ifPresent(capability -> { + this.internal = capability; + this.bound = true; + }); + } else if (extraData.readableBytes() > 1) { // bound to entity + extraData.readByte(); // drop padding + boundEntity = world.getEntity(extraData.readVarInt()); + if (boundEntity != null) + boundEntity.getCapability(ForgeCapabilities.ITEM_HANDLER, null).ifPresent(capability -> { + this.internal = capability; + this.bound = true; + }); + } else { // might be bound to block + boundBlockEntity = this.world.getBlockEntity(pos); + if (boundBlockEntity != null) + boundBlockEntity.getCapability(ForgeCapabilities.ITEM_HANDLER, null).ifPresent(capability -> { + this.internal = capability; + this.bound = true; + }); + } + } + this.customSlots.put(0, this.addSlot(new SlotItemHandler(internal, 0, 31, 17) { + private final int slot = 0; + private int x = OreMinerGUIMenu.this.x; + private int y = OreMinerGUIMenu.this.y; + + @Override + public boolean mayPlace(ItemStack stack) { + return Items.DIAMOND_PICKAXE == stack.getItem(); + } + })); + this.customSlots.put(1, this.addSlot(new SlotItemHandler(internal, 1, 79, 17) { + private final int slot = 1; + private int x = OreMinerGUIMenu.this.x; + private int y = OreMinerGUIMenu.this.y; + + @Override + public boolean mayPlace(ItemStack stack) { + return false; + } + })); + this.customSlots.put(2, this.addSlot(new SlotItemHandler(internal, 2, 97, 17) { + private final int slot = 2; + private int x = OreMinerGUIMenu.this.x; + private int y = OreMinerGUIMenu.this.y; + + @Override + public boolean mayPlace(ItemStack stack) { + return false; + } + })); + this.customSlots.put(3, this.addSlot(new SlotItemHandler(internal, 3, 115, 17) { + private final int slot = 3; + private int x = OreMinerGUIMenu.this.x; + private int y = OreMinerGUIMenu.this.y; + + @Override + public boolean mayPlace(ItemStack stack) { + return false; + } + })); + this.customSlots.put(4, this.addSlot(new SlotItemHandler(internal, 4, 133, 17) { + private final int slot = 4; + private int x = OreMinerGUIMenu.this.x; + private int y = OreMinerGUIMenu.this.y; + + @Override + public boolean mayPlace(ItemStack stack) { + return false; + } + })); + this.customSlots.put(5, this.addSlot(new SlotItemHandler(internal, 5, 79, 35) { + private final int slot = 5; + private int x = OreMinerGUIMenu.this.x; + private int y = OreMinerGUIMenu.this.y; + + @Override + public boolean mayPlace(ItemStack stack) { + return false; + } + })); + this.customSlots.put(6, this.addSlot(new SlotItemHandler(internal, 6, 97, 35) { + private final int slot = 6; + private int x = OreMinerGUIMenu.this.x; + private int y = OreMinerGUIMenu.this.y; + + @Override + public boolean mayPlace(ItemStack stack) { + return false; + } + })); + this.customSlots.put(7, this.addSlot(new SlotItemHandler(internal, 7, 115, 35) { + private final int slot = 7; + private int x = OreMinerGUIMenu.this.x; + private int y = OreMinerGUIMenu.this.y; + + @Override + public boolean mayPlace(ItemStack stack) { + return false; + } + })); + this.customSlots.put(8, this.addSlot(new SlotItemHandler(internal, 8, 133, 35) { + private final int slot = 8; + private int x = OreMinerGUIMenu.this.x; + private int y = OreMinerGUIMenu.this.y; + + @Override + public boolean mayPlace(ItemStack stack) { + return false; + } + })); + for (int si = 0; si < 3; ++si) + for (int sj = 0; sj < 9; ++sj) + this.addSlot(new Slot(inv, sj + (si + 1) * 9, 0 + 8 + sj * 18, 0 + 84 + si * 18)); + for (int si = 0; si < 9; ++si) + this.addSlot(new Slot(inv, si, 0 + 8 + si * 18, 0 + 142)); + } + + @Override + public boolean stillValid(Player player) { + if (this.bound) { + if (this.boundItemMatcher != null) + return this.boundItemMatcher.get(); + else if (this.boundBlockEntity != null) + return AbstractContainerMenu.stillValid(this.access, player, this.boundBlockEntity.getBlockState().getBlock()); + else if (this.boundEntity != null) + return this.boundEntity.isAlive(); + } + return true; + } + + @Override + public ItemStack quickMoveStack(Player playerIn, int index) { + ItemStack itemstack = ItemStack.EMPTY; + Slot slot = (Slot) this.slots.get(index); + if (slot != null && slot.hasItem()) { + ItemStack itemstack1 = slot.getItem(); + itemstack = itemstack1.copy(); + if (index < 9) { + if (!this.moveItemStackTo(itemstack1, 9, this.slots.size(), true)) + return ItemStack.EMPTY; + slot.onQuickCraft(itemstack1, itemstack); + } else if (!this.moveItemStackTo(itemstack1, 0, 9, false)) { + if (index < 9 + 27) { + if (!this.moveItemStackTo(itemstack1, 9 + 27, this.slots.size(), true)) + return ItemStack.EMPTY; + } else { + if (!this.moveItemStackTo(itemstack1, 9, 9 + 27, false)) + return ItemStack.EMPTY; + } + return ItemStack.EMPTY; + } + if (itemstack1.getCount() == 0) + slot.set(ItemStack.EMPTY); + else + slot.setChanged(); + if (itemstack1.getCount() == itemstack.getCount()) + return ItemStack.EMPTY; + slot.onTake(playerIn, itemstack1); + } + return itemstack; + } + + @Override + protected boolean moveItemStackTo(ItemStack p_38904_, int p_38905_, int p_38906_, boolean p_38907_) { + boolean flag = false; + int i = p_38905_; + if (p_38907_) { + i = p_38906_ - 1; + } + if (p_38904_.isStackable()) { + while (!p_38904_.isEmpty()) { + if (p_38907_) { + if (i < p_38905_) { + break; + } + } else if (i >= p_38906_) { + break; + } + Slot slot = this.slots.get(i); + ItemStack itemstack = slot.getItem(); + if (slot.mayPlace(itemstack) && !itemstack.isEmpty() && ItemStack.isSameItemSameTags(p_38904_, itemstack)) { + int j = itemstack.getCount() + p_38904_.getCount(); + int maxSize = Math.min(slot.getMaxStackSize(), p_38904_.getMaxStackSize()); + if (j <= maxSize) { + p_38904_.setCount(0); + itemstack.setCount(j); + slot.set(itemstack); + flag = true; + } else if (itemstack.getCount() < maxSize) { + p_38904_.shrink(maxSize - itemstack.getCount()); + itemstack.setCount(maxSize); + slot.set(itemstack); + flag = true; + } + } + if (p_38907_) { + --i; + } else { + ++i; + } + } + } + if (!p_38904_.isEmpty()) { + if (p_38907_) { + i = p_38906_ - 1; + } else { + i = p_38905_; + } + while (true) { + if (p_38907_) { + if (i < p_38905_) { + break; + } + } else if (i >= p_38906_) { + break; + } + Slot slot1 = this.slots.get(i); + ItemStack itemstack1 = slot1.getItem(); + if (itemstack1.isEmpty() && slot1.mayPlace(p_38904_)) { + if (p_38904_.getCount() > slot1.getMaxStackSize()) { + slot1.setByPlayer(p_38904_.split(slot1.getMaxStackSize())); + } else { + slot1.setByPlayer(p_38904_.split(p_38904_.getCount())); + } + slot1.setChanged(); + flag = true; + break; + } + if (p_38907_) { + --i; + } else { + ++i; + } + } + } + return flag; + } + + @Override + public void removed(Player playerIn) { + super.removed(playerIn); + if (!bound && playerIn instanceof ServerPlayer serverPlayer) { + if (!serverPlayer.isAlive() || serverPlayer.hasDisconnected()) { + for (int j = 0; j < internal.getSlots(); ++j) { + if (j == 0) + continue; + if (j == 1) + continue; + if (j == 2) + continue; + if (j == 3) + continue; + if (j == 4) + continue; + if (j == 5) + continue; + playerIn.drop(internal.extractItem(j, internal.getStackInSlot(j).getCount(), false), false); + } + } else { + for (int i = 0; i < internal.getSlots(); ++i) { + if (i == 0) + continue; + if (i == 1) + continue; + if (i == 2) + continue; + if (i == 3) + continue; + if (i == 4) + continue; + if (i == 5) + continue; + playerIn.getInventory().placeItemBackInInventory(internal.extractItem(i, internal.getStackInSlot(i).getCount(), false)); + } + } + } + } + + public Map get() { + return customSlots; + } +} diff --git a/src/main/java/net/mcreator/nimsrandombullshit/world/inventory/ShitGUIMenu.java b/src/main/java/net/mcreator/nimsrandombullshit/world/inventory/ShitGUIMenu.java new file mode 100644 index 0000000..515b043 --- /dev/null +++ b/src/main/java/net/mcreator/nimsrandombullshit/world/inventory/ShitGUIMenu.java @@ -0,0 +1,74 @@ + +package net.mcreator.nimsrandombullshit.world.inventory; + +import net.minecraftforge.items.ItemStackHandler; +import net.minecraftforge.items.IItemHandler; + +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.Level; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.inventory.Slot; +import net.minecraft.world.inventory.ContainerLevelAccess; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.Entity; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.core.BlockPos; + +import net.mcreator.nimsrandombullshit.init.NimsRandomBullshitModMenus; + +import java.util.function.Supplier; +import java.util.Map; +import java.util.HashMap; + +public class ShitGUIMenu extends AbstractContainerMenu implements Supplier> { + public final static HashMap guistate = new HashMap<>(); + public final Level world; + public final Player entity; + public int x, y, z; + private ContainerLevelAccess access = ContainerLevelAccess.NULL; + private IItemHandler internal; + private final Map customSlots = new HashMap<>(); + private boolean bound = false; + private Supplier boundItemMatcher = null; + private Entity boundEntity = null; + private BlockEntity boundBlockEntity = null; + + public ShitGUIMenu(int id, Inventory inv, FriendlyByteBuf extraData) { + super(NimsRandomBullshitModMenus.SHIT_GUI.get(), id); + this.entity = inv.player; + this.world = inv.player.level(); + this.internal = new ItemStackHandler(0); + BlockPos pos = null; + if (extraData != null) { + pos = extraData.readBlockPos(); + this.x = pos.getX(); + this.y = pos.getY(); + this.z = pos.getZ(); + access = ContainerLevelAccess.create(world, pos); + } + } + + @Override + public boolean stillValid(Player player) { + if (this.bound) { + if (this.boundItemMatcher != null) + return this.boundItemMatcher.get(); + else if (this.boundBlockEntity != null) + return AbstractContainerMenu.stillValid(this.access, player, this.boundBlockEntity.getBlockState().getBlock()); + else if (this.boundEntity != null) + return this.boundEntity.isAlive(); + } + return true; + } + + @Override + public ItemStack quickMoveStack(Player playerIn, int index) { + return ItemStack.EMPTY; + } + + public Map get() { + return customSlots; + } +} diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml new file mode 100644 index 0000000..aac270f --- /dev/null +++ b/src/main/resources/META-INF/mods.toml @@ -0,0 +1,27 @@ +modLoader="javafml" +loaderVersion="[47,)" +license="Academic Free License v3.0" + +[[mods]] +modId="nims_random_bullshit" +version="1.0.0" +displayName="Nim's Random Bullshit" +displayURL="https://mcreator.net" +credits="Created using mod maker MCreator - https://mcreator.net/about" +authors="nimsolated, MCreator" + +# Start of user code block mod configuration +# End of user code block mod configuration + +[[dependencies.nims_random_bullshit]] + modId="minecraft" + mandatory=true + versionRange="[1.20.1]" + ordering="AFTER" + side="BOTH" + + + + +# Start of user code block dependencies configuration +# End of user code block dependencies configuration \ No newline at end of file diff --git a/src/main/resources/assets/nims_random_bullshit/blockstates/broken_glass.json b/src/main/resources/assets/nims_random_bullshit/blockstates/broken_glass.json new file mode 100644 index 0000000..a965d5b --- /dev/null +++ b/src/main/resources/assets/nims_random_bullshit/blockstates/broken_glass.json @@ -0,0 +1,77 @@ +{ + "multipart": [ + { + "apply": { + "model": "nims_random_bullshit:block/broken_glass_post" + } + }, + { + "when": { + "north": true + }, + "apply": { + "model": "nims_random_bullshit:block/broken_glass_side" + } + }, + { + "when": { + "east": true + }, + "apply": { + "model": "nims_random_bullshit:block/broken_glass_side", + "y": 90 + } + }, + { + "when": { + "south": true + }, + "apply": { + "model": "nims_random_bullshit:block/broken_glass_side_alt" + } + }, + { + "when": { + "west": true + }, + "apply": { + "model": "nims_random_bullshit:block/broken_glass_side_alt", + "y": 90 + } + }, + { + "when": { + "north": false + }, + "apply": { + "model": "nims_random_bullshit:block/broken_glass_noside" + } + }, + { + "when": { + "east": false + }, + "apply": { + "model": "nims_random_bullshit:block/broken_glass_noside_alt" + } + }, + { + "when": { + "south": false + }, + "apply": { + "model": "nims_random_bullshit:block/broken_glass_noside_alt", + "y": 90 + } + }, + { + "when": { + "west": false + }, + "apply": { + "model": "nims_random_bullshit:block/broken_glass_noside", + "y": 270 + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/nims_random_bullshit/blockstates/condensed_condensed_condensed_netherrack.json b/src/main/resources/assets/nims_random_bullshit/blockstates/condensed_condensed_condensed_netherrack.json new file mode 100644 index 0000000..d152817 --- /dev/null +++ b/src/main/resources/assets/nims_random_bullshit/blockstates/condensed_condensed_condensed_netherrack.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "nims_random_bullshit:block/condensed_condensed_condensed_netherrack" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/nims_random_bullshit/blockstates/condensed_condensed_netherrack.json b/src/main/resources/assets/nims_random_bullshit/blockstates/condensed_condensed_netherrack.json new file mode 100644 index 0000000..90a1b69 --- /dev/null +++ b/src/main/resources/assets/nims_random_bullshit/blockstates/condensed_condensed_netherrack.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "nims_random_bullshit:block/condensed_condensed_netherrack" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/nims_random_bullshit/blockstates/condensed_netherrack.json b/src/main/resources/assets/nims_random_bullshit/blockstates/condensed_netherrack.json new file mode 100644 index 0000000..6c8dfcb --- /dev/null +++ b/src/main/resources/assets/nims_random_bullshit/blockstates/condensed_netherrack.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "nims_random_bullshit:block/condensed_netherrack" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/nims_random_bullshit/blockstates/hexa_condensed_netherrack.json b/src/main/resources/assets/nims_random_bullshit/blockstates/hexa_condensed_netherrack.json new file mode 100644 index 0000000..4f4eae2 --- /dev/null +++ b/src/main/resources/assets/nims_random_bullshit/blockstates/hexa_condensed_netherrack.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "nims_random_bullshit:block/hexa_condensed_netherrack" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/nims_random_bullshit/blockstates/ore_miner.json b/src/main/resources/assets/nims_random_bullshit/blockstates/ore_miner.json new file mode 100644 index 0000000..339981b --- /dev/null +++ b/src/main/resources/assets/nims_random_bullshit/blockstates/ore_miner.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=north": { + "model": "nims_random_bullshit:block/ore_miner" + }, + "facing=east": { + "model": "nims_random_bullshit:block/ore_miner", + "y": 90 + }, + "facing=south": { + "model": "nims_random_bullshit:block/ore_miner", + "y": 180 + }, + "facing=west": { + "model": "nims_random_bullshit:block/ore_miner", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/nims_random_bullshit/blockstates/penta_condensed_netherrack.json b/src/main/resources/assets/nims_random_bullshit/blockstates/penta_condensed_netherrack.json new file mode 100644 index 0000000..c84a287 --- /dev/null +++ b/src/main/resources/assets/nims_random_bullshit/blockstates/penta_condensed_netherrack.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "nims_random_bullshit:block/penta_condensed_netherrack" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/nims_random_bullshit/blockstates/quadra_condensed_netherrack.json b/src/main/resources/assets/nims_random_bullshit/blockstates/quadra_condensed_netherrack.json new file mode 100644 index 0000000..e9fbe0e --- /dev/null +++ b/src/main/resources/assets/nims_random_bullshit/blockstates/quadra_condensed_netherrack.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "nims_random_bullshit:block/quadra_condensed_netherrack" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/nims_random_bullshit/lang/en_us.json b/src/main/resources/assets/nims_random_bullshit/lang/en_us.json new file mode 100644 index 0000000..bed1af4 --- /dev/null +++ b/src/main/resources/assets/nims_random_bullshit/lang/en_us.json @@ -0,0 +1,31 @@ +{ + "block.nims_random_bullshit.condensed_condensed_netherrack": "Condensed Condensed Netherrack", + "item.nims_random_bullshit.gravedigger": "Gravedigger", + "gui.nims_random_bullshit.ore_miner_gui.button_mine": "Mine", + "block.nims_random_bullshit.quadra_condensed_netherrack": "Quadra-condensed Netherrack", + "block.nims_random_bullshit.penta_condensed_netherrack": "Penta-condensed Netherrack", + "item.nims_random_bullshit.magic_dust": "Magic Dust", + "enchantment.nims_random_bullshit.passive_income_enchantment": "Passive Income", + "item.nims_random_bullshit.netherrackite_pickaxe.description_0": "Non-condensed netherracks broken by this pickaxe drop themselves an additional time.", + "item.nims_random_bullshit.netherrackite_pickaxe": "Netherrackite Pickaxe", + "effect.nims_random_bullshit.stinky_effect": "Stinky", + "block.nims_random_bullshit.broken_glass": "Broken Glass", + "block.nims_random_bullshit.hexa_condensed_netherrack": "Hexa-condensed Netherrack", + "block.nims_random_bullshit.ore_miner": "Ore Miner", + "effect.nims_random_bullshit.summoned_entity_effect": "Summoned Entity", + "item.nims_random_bullshit.sand_dust": "Sand Dust", + "item.nims_random_bullshit.magic_flesh": "Magic Flesh", + "item.nims_random_bullshit.ghoul_spawn_egg": "Ghoul Spawn Egg", + "item.nims_random_bullshit.block_eater": "Block Eater", + "item.nims_random_bullshit.golden_berries": "Golden Berries", + "block.nims_random_bullshit.condensed_condensed_condensed_netherrack": "Condensed Condensed Condensed Netherrack", + "entity.nims_random_bullshit.ghoul": "Ghoul", + "gui.nims_random_bullshit.shit_gui.label_uh_ohh_stinky": "UH OHH!!! STINKY!!! UH OHH!!! STINKY!!! UH OHH!!! STINKY!!! UH OHH!!! STINKY!!! ", + "item.nims_random_bullshit.lapis_lazuli_nugget": "Lapis Lazuli Nugget", + "item.nims_random_bullshit.gravedigger.description_1": "We must dig!", + "item.nims_random_bullshit.gravedigger.description_0": "Right-Click on soul sand or soul soil to use them, summoning a ghoul that attacks hostile mobs.", + "item.nims_random_bullshit.shit": "Shit", + "block.nims_random_bullshit.condensed_netherrack": "Condensed Netherrack", + "enchantment.nims_random_bullshit.netherracking_enchantment": "Netherracking", + "item.nims_random_bullshit.netherrackite": "Netherrackite" +} \ No newline at end of file diff --git a/src/main/resources/assets/nims_random_bullshit/models/block/broken_glass_noside.json b/src/main/resources/assets/nims_random_bullshit/models/block/broken_glass_noside.json new file mode 100644 index 0000000..1a69cfd --- /dev/null +++ b/src/main/resources/assets/nims_random_bullshit/models/block/broken_glass_noside.json @@ -0,0 +1,8 @@ +{ + "parent": "block/template_glass_pane_noside", + "textures": { + "particle": "nims_random_bullshit:block/broken_glass", + "pane": "nims_random_bullshit:block/broken_glass" + }, + "render_type": "translucent" +} \ No newline at end of file diff --git a/src/main/resources/assets/nims_random_bullshit/models/block/broken_glass_noside_alt.json b/src/main/resources/assets/nims_random_bullshit/models/block/broken_glass_noside_alt.json new file mode 100644 index 0000000..fc164d6 --- /dev/null +++ b/src/main/resources/assets/nims_random_bullshit/models/block/broken_glass_noside_alt.json @@ -0,0 +1,8 @@ +{ + "parent": "block/template_glass_pane_noside_alt", + "textures": { + "particle": "nims_random_bullshit:block/broken_glass", + "pane": "nims_random_bullshit:block/broken_glass" + }, + "render_type": "translucent" +} \ No newline at end of file diff --git a/src/main/resources/assets/nims_random_bullshit/models/block/broken_glass_post.json b/src/main/resources/assets/nims_random_bullshit/models/block/broken_glass_post.json new file mode 100644 index 0000000..10d6566 --- /dev/null +++ b/src/main/resources/assets/nims_random_bullshit/models/block/broken_glass_post.json @@ -0,0 +1,9 @@ +{ + "parent": "block/template_glass_pane_post", + "textures": { + "particle": "nims_random_bullshit:block/broken_glass", + "edge": "nims_random_bullshit:block/broken_glass", + "pane": "nims_random_bullshit:block/broken_glass" + }, + "render_type": "translucent" +} \ No newline at end of file diff --git a/src/main/resources/assets/nims_random_bullshit/models/block/broken_glass_side.json b/src/main/resources/assets/nims_random_bullshit/models/block/broken_glass_side.json new file mode 100644 index 0000000..7c08094 --- /dev/null +++ b/src/main/resources/assets/nims_random_bullshit/models/block/broken_glass_side.json @@ -0,0 +1,9 @@ +{ + "parent": "block/template_glass_pane_side", + "textures": { + "particle": "nims_random_bullshit:block/broken_glass", + "edge": "nims_random_bullshit:block/broken_glass", + "pane": "nims_random_bullshit:block/broken_glass" + }, + "render_type": "translucent" +} \ No newline at end of file diff --git a/src/main/resources/assets/nims_random_bullshit/models/block/broken_glass_side_alt.json b/src/main/resources/assets/nims_random_bullshit/models/block/broken_glass_side_alt.json new file mode 100644 index 0000000..8e7b891 --- /dev/null +++ b/src/main/resources/assets/nims_random_bullshit/models/block/broken_glass_side_alt.json @@ -0,0 +1,9 @@ +{ + "parent": "block/template_glass_pane_side_alt", + "textures": { + "particle": "nims_random_bullshit:block/broken_glass", + "edge": "nims_random_bullshit:block/broken_glass", + "pane": "nims_random_bullshit:block/broken_glass" + }, + "render_type": "translucent" +} \ No newline at end of file diff --git a/src/main/resources/assets/nims_random_bullshit/models/block/condensed_condensed_condensed_netherrack.json b/src/main/resources/assets/nims_random_bullshit/models/block/condensed_condensed_condensed_netherrack.json new file mode 100644 index 0000000..0a8432c --- /dev/null +++ b/src/main/resources/assets/nims_random_bullshit/models/block/condensed_condensed_condensed_netherrack.json @@ -0,0 +1,13 @@ +{ + "parent": "block/cube", + "textures": { + "down": "nims_random_bullshit:block/condensed_condensed_condensed_netherrack", + "up": "nims_random_bullshit:block/condensed_condensed_condensed_netherrack", + "north": "nims_random_bullshit:block/condensed_condensed_condensed_netherrack", + "east": "nims_random_bullshit:block/condensed_condensed_condensed_netherrack", + "south": "nims_random_bullshit:block/condensed_condensed_condensed_netherrack", + "west": "nims_random_bullshit:block/condensed_condensed_condensed_netherrack", + "particle": "nims_random_bullshit:block/condensed_condensed_condensed_netherrack" + }, + "render_type": "solid" +} \ No newline at end of file diff --git a/src/main/resources/assets/nims_random_bullshit/models/block/condensed_condensed_netherrack.json b/src/main/resources/assets/nims_random_bullshit/models/block/condensed_condensed_netherrack.json new file mode 100644 index 0000000..eccf45e --- /dev/null +++ b/src/main/resources/assets/nims_random_bullshit/models/block/condensed_condensed_netherrack.json @@ -0,0 +1,13 @@ +{ + "parent": "block/cube", + "textures": { + "down": "nims_random_bullshit:block/condensed_condensed_netherrack_1", + "up": "nims_random_bullshit:block/condensed_condensed_netherrack_1", + "north": "nims_random_bullshit:block/condensed_condensed_netherrack_1", + "east": "nims_random_bullshit:block/condensed_condensed_netherrack_1", + "south": "nims_random_bullshit:block/condensed_condensed_netherrack_1", + "west": "nims_random_bullshit:block/condensed_condensed_netherrack_1", + "particle": "nims_random_bullshit:block/condensed_condensed_netherrack_1" + }, + "render_type": "solid" +} \ No newline at end of file diff --git a/src/main/resources/assets/nims_random_bullshit/models/block/condensed_netherrack.json b/src/main/resources/assets/nims_random_bullshit/models/block/condensed_netherrack.json new file mode 100644 index 0000000..c2d28c9 --- /dev/null +++ b/src/main/resources/assets/nims_random_bullshit/models/block/condensed_netherrack.json @@ -0,0 +1,13 @@ +{ + "parent": "block/cube", + "textures": { + "down": "nims_random_bullshit:block/condensed_netherrack_1", + "up": "nims_random_bullshit:block/condensed_netherrack_1", + "north": "nims_random_bullshit:block/condensed_netherrack_1", + "east": "nims_random_bullshit:block/condensed_netherrack_1", + "south": "nims_random_bullshit:block/condensed_netherrack_1", + "west": "nims_random_bullshit:block/condensed_netherrack_1", + "particle": "nims_random_bullshit:block/condensed_netherrack_1" + }, + "render_type": "solid" +} \ No newline at end of file diff --git a/src/main/resources/assets/nims_random_bullshit/models/block/hexa_condensed_netherrack.json b/src/main/resources/assets/nims_random_bullshit/models/block/hexa_condensed_netherrack.json new file mode 100644 index 0000000..ef827ee --- /dev/null +++ b/src/main/resources/assets/nims_random_bullshit/models/block/hexa_condensed_netherrack.json @@ -0,0 +1,13 @@ +{ + "parent": "block/cube", + "textures": { + "down": "nims_random_bullshit:block/hexa-condensed_netherrack", + "up": "nims_random_bullshit:block/hexa-condensed_netherrack", + "north": "nims_random_bullshit:block/hexa-condensed_netherrack", + "east": "nims_random_bullshit:block/hexa-condensed_netherrack", + "south": "nims_random_bullshit:block/hexa-condensed_netherrack", + "west": "nims_random_bullshit:block/hexa-condensed_netherrack", + "particle": "nims_random_bullshit:block/hexa-condensed_netherrack" + }, + "render_type": "solid" +} \ No newline at end of file diff --git a/src/main/resources/assets/nims_random_bullshit/models/block/ore_miner.json b/src/main/resources/assets/nims_random_bullshit/models/block/ore_miner.json new file mode 100644 index 0000000..f044178 --- /dev/null +++ b/src/main/resources/assets/nims_random_bullshit/models/block/ore_miner.json @@ -0,0 +1,13 @@ +{ + "parent": "block/cube", + "textures": { + "down": "nims_random_bullshit:block/ore_miner_bottom", + "up": "nims_random_bullshit:block/ore_miner_top_180", + "north": "nims_random_bullshit:block/ore_miner_side", + "east": "nims_random_bullshit:block/ore_miner_side", + "south": "nims_random_bullshit:block/ore_miner_side", + "west": "nims_random_bullshit:block/ore_miner_side", + "particle": "nims_random_bullshit:block/ore_miner_bottom" + }, + "render_type": "solid" +} \ No newline at end of file diff --git a/src/main/resources/assets/nims_random_bullshit/models/block/penta_condensed_netherrack.json b/src/main/resources/assets/nims_random_bullshit/models/block/penta_condensed_netherrack.json new file mode 100644 index 0000000..6376131 --- /dev/null +++ b/src/main/resources/assets/nims_random_bullshit/models/block/penta_condensed_netherrack.json @@ -0,0 +1,13 @@ +{ + "parent": "block/cube", + "textures": { + "down": "nims_random_bullshit:block/penta-condensed_netherrack", + "up": "nims_random_bullshit:block/penta-condensed_netherrack", + "north": "nims_random_bullshit:block/penta-condensed_netherrack", + "east": "nims_random_bullshit:block/penta-condensed_netherrack", + "south": "nims_random_bullshit:block/penta-condensed_netherrack", + "west": "nims_random_bullshit:block/penta-condensed_netherrack", + "particle": "nims_random_bullshit:block/penta-condensed_netherrack" + }, + "render_type": "solid" +} \ No newline at end of file diff --git a/src/main/resources/assets/nims_random_bullshit/models/block/quadra_condensed_netherrack.json b/src/main/resources/assets/nims_random_bullshit/models/block/quadra_condensed_netherrack.json new file mode 100644 index 0000000..2050899 --- /dev/null +++ b/src/main/resources/assets/nims_random_bullshit/models/block/quadra_condensed_netherrack.json @@ -0,0 +1,13 @@ +{ + "parent": "block/cube", + "textures": { + "down": "nims_random_bullshit:block/quadra-condensed_netherrack", + "up": "nims_random_bullshit:block/quadra-condensed_netherrack", + "north": "nims_random_bullshit:block/quadra-condensed_netherrack", + "east": "nims_random_bullshit:block/quadra-condensed_netherrack", + "south": "nims_random_bullshit:block/quadra-condensed_netherrack", + "west": "nims_random_bullshit:block/quadra-condensed_netherrack", + "particle": "nims_random_bullshit:block/quadra-condensed_netherrack" + }, + "render_type": "solid" +} \ No newline at end of file diff --git a/src/main/resources/assets/nims_random_bullshit/textures/block/broken_glass.png b/src/main/resources/assets/nims_random_bullshit/textures/block/broken_glass.png new file mode 100644 index 0000000..23f77f7 Binary files /dev/null and b/src/main/resources/assets/nims_random_bullshit/textures/block/broken_glass.png differ diff --git a/src/main/resources/assets/nims_random_bullshit/textures/block/condensed_condensed_condensed_netherrack.png b/src/main/resources/assets/nims_random_bullshit/textures/block/condensed_condensed_condensed_netherrack.png new file mode 100644 index 0000000..24731ad Binary files /dev/null and b/src/main/resources/assets/nims_random_bullshit/textures/block/condensed_condensed_condensed_netherrack.png differ diff --git a/src/main/resources/assets/nims_random_bullshit/textures/block/condensed_condensed_netherrack_1.png b/src/main/resources/assets/nims_random_bullshit/textures/block/condensed_condensed_netherrack_1.png new file mode 100644 index 0000000..fabdaf7 Binary files /dev/null and b/src/main/resources/assets/nims_random_bullshit/textures/block/condensed_condensed_netherrack_1.png differ diff --git a/src/main/resources/assets/nims_random_bullshit/textures/block/condensed_netherrack_1.png b/src/main/resources/assets/nims_random_bullshit/textures/block/condensed_netherrack_1.png new file mode 100644 index 0000000..b9fb22c Binary files /dev/null and b/src/main/resources/assets/nims_random_bullshit/textures/block/condensed_netherrack_1.png differ diff --git a/src/main/resources/assets/nims_random_bullshit/textures/block/hexa-condensed_netherrack.png b/src/main/resources/assets/nims_random_bullshit/textures/block/hexa-condensed_netherrack.png new file mode 100644 index 0000000..97e6b7f Binary files /dev/null and b/src/main/resources/assets/nims_random_bullshit/textures/block/hexa-condensed_netherrack.png differ diff --git a/src/main/resources/assets/nims_random_bullshit/textures/block/ore_miner_bottom.png b/src/main/resources/assets/nims_random_bullshit/textures/block/ore_miner_bottom.png new file mode 100644 index 0000000..dce32f4 Binary files /dev/null and b/src/main/resources/assets/nims_random_bullshit/textures/block/ore_miner_bottom.png differ diff --git a/src/main/resources/assets/nims_random_bullshit/textures/block/ore_miner_side.png b/src/main/resources/assets/nims_random_bullshit/textures/block/ore_miner_side.png new file mode 100644 index 0000000..9ccd2ab Binary files /dev/null and b/src/main/resources/assets/nims_random_bullshit/textures/block/ore_miner_side.png differ diff --git a/src/main/resources/assets/nims_random_bullshit/textures/block/ore_miner_top.png b/src/main/resources/assets/nims_random_bullshit/textures/block/ore_miner_top.png new file mode 100644 index 0000000..9fe17bd Binary files /dev/null and b/src/main/resources/assets/nims_random_bullshit/textures/block/ore_miner_top.png differ diff --git a/src/main/resources/assets/nims_random_bullshit/textures/block/ore_miner_top_180.png b/src/main/resources/assets/nims_random_bullshit/textures/block/ore_miner_top_180.png new file mode 100644 index 0000000..7dc0fcb Binary files /dev/null and b/src/main/resources/assets/nims_random_bullshit/textures/block/ore_miner_top_180.png differ diff --git a/src/main/resources/assets/nims_random_bullshit/textures/block/penta-condensed_netherrack.png b/src/main/resources/assets/nims_random_bullshit/textures/block/penta-condensed_netherrack.png new file mode 100644 index 0000000..aa41088 Binary files /dev/null and b/src/main/resources/assets/nims_random_bullshit/textures/block/penta-condensed_netherrack.png differ diff --git a/src/main/resources/assets/nims_random_bullshit/textures/block/quadra-condensed_netherrack.png b/src/main/resources/assets/nims_random_bullshit/textures/block/quadra-condensed_netherrack.png new file mode 100644 index 0000000..9e8c325 Binary files /dev/null and b/src/main/resources/assets/nims_random_bullshit/textures/block/quadra-condensed_netherrack.png differ diff --git a/src/main/resources/assets/nims_random_bullshit/textures/entities/ghoul.png b/src/main/resources/assets/nims_random_bullshit/textures/entities/ghoul.png new file mode 100644 index 0000000..35b2bcb Binary files /dev/null and b/src/main/resources/assets/nims_random_bullshit/textures/entities/ghoul.png differ diff --git a/src/main/resources/assets/nims_random_bullshit/textures/item/block_eater.png b/src/main/resources/assets/nims_random_bullshit/textures/item/block_eater.png new file mode 100644 index 0000000..f35cde4 Binary files /dev/null and b/src/main/resources/assets/nims_random_bullshit/textures/item/block_eater.png differ diff --git a/src/main/resources/assets/nims_random_bullshit/textures/item/golden_berries.png b/src/main/resources/assets/nims_random_bullshit/textures/item/golden_berries.png new file mode 100644 index 0000000..8276a2a Binary files /dev/null and b/src/main/resources/assets/nims_random_bullshit/textures/item/golden_berries.png differ diff --git a/src/main/resources/assets/nims_random_bullshit/textures/item/gravedigger.png b/src/main/resources/assets/nims_random_bullshit/textures/item/gravedigger.png new file mode 100644 index 0000000..b033c98 Binary files /dev/null and b/src/main/resources/assets/nims_random_bullshit/textures/item/gravedigger.png differ diff --git a/src/main/resources/assets/nims_random_bullshit/textures/item/lapis_lazuli_nugget.png b/src/main/resources/assets/nims_random_bullshit/textures/item/lapis_lazuli_nugget.png new file mode 100644 index 0000000..685c154 Binary files /dev/null and b/src/main/resources/assets/nims_random_bullshit/textures/item/lapis_lazuli_nugget.png differ diff --git a/src/main/resources/assets/nims_random_bullshit/textures/item/magic_dust.png b/src/main/resources/assets/nims_random_bullshit/textures/item/magic_dust.png new file mode 100644 index 0000000..e4cfde7 Binary files /dev/null and b/src/main/resources/assets/nims_random_bullshit/textures/item/magic_dust.png differ diff --git a/src/main/resources/assets/nims_random_bullshit/textures/item/magic_flesh.png b/src/main/resources/assets/nims_random_bullshit/textures/item/magic_flesh.png new file mode 100644 index 0000000..558ff08 Binary files /dev/null and b/src/main/resources/assets/nims_random_bullshit/textures/item/magic_flesh.png differ diff --git a/src/main/resources/assets/nims_random_bullshit/textures/item/netherrackite.png b/src/main/resources/assets/nims_random_bullshit/textures/item/netherrackite.png new file mode 100644 index 0000000..5cb5f0b Binary files /dev/null and b/src/main/resources/assets/nims_random_bullshit/textures/item/netherrackite.png differ diff --git a/src/main/resources/assets/nims_random_bullshit/textures/item/netherrackite_pickaxe.png b/src/main/resources/assets/nims_random_bullshit/textures/item/netherrackite_pickaxe.png new file mode 100644 index 0000000..8ee3eac Binary files /dev/null and b/src/main/resources/assets/nims_random_bullshit/textures/item/netherrackite_pickaxe.png differ diff --git a/src/main/resources/assets/nims_random_bullshit/textures/item/sand_dust.png b/src/main/resources/assets/nims_random_bullshit/textures/item/sand_dust.png new file mode 100644 index 0000000..a540432 Binary files /dev/null and b/src/main/resources/assets/nims_random_bullshit/textures/item/sand_dust.png differ diff --git a/src/main/resources/assets/nims_random_bullshit/textures/item/shit.png b/src/main/resources/assets/nims_random_bullshit/textures/item/shit.png new file mode 100644 index 0000000..7305422 Binary files /dev/null and b/src/main/resources/assets/nims_random_bullshit/textures/item/shit.png differ diff --git a/src/main/resources/assets/nims_random_bullshit/textures/mob_effect/stinky_effect.png b/src/main/resources/assets/nims_random_bullshit/textures/mob_effect/stinky_effect.png new file mode 100644 index 0000000..0c5bf01 Binary files /dev/null and b/src/main/resources/assets/nims_random_bullshit/textures/mob_effect/stinky_effect.png differ diff --git a/src/main/resources/assets/nims_random_bullshit/textures/mob_effect/summoned_entity_effect.png b/src/main/resources/assets/nims_random_bullshit/textures/mob_effect/summoned_entity_effect.png new file mode 100644 index 0000000..a16b3fd Binary files /dev/null and b/src/main/resources/assets/nims_random_bullshit/textures/mob_effect/summoned_entity_effect.png differ diff --git a/src/main/resources/assets/nims_random_bullshit/textures/screens/diamond_pickaxe_blueprint.png b/src/main/resources/assets/nims_random_bullshit/textures/screens/diamond_pickaxe_blueprint.png new file mode 100644 index 0000000..d144c80 Binary files /dev/null and b/src/main/resources/assets/nims_random_bullshit/textures/screens/diamond_pickaxe_blueprint.png differ diff --git a/src/main/resources/assets/nims_random_bullshit/textures/screens/ore_miner_gui.png b/src/main/resources/assets/nims_random_bullshit/textures/screens/ore_miner_gui.png new file mode 100644 index 0000000..0debaf0 Binary files /dev/null and b/src/main/resources/assets/nims_random_bullshit/textures/screens/ore_miner_gui.png differ diff --git a/src/main/resources/assets/nims_random_bullshit/textures/screens/shit.png b/src/main/resources/assets/nims_random_bullshit/textures/screens/shit.png new file mode 100644 index 0000000..4d60589 Binary files /dev/null and b/src/main/resources/assets/nims_random_bullshit/textures/screens/shit.png differ diff --git a/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json new file mode 100644 index 0000000..29473f8 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json @@ -0,0 +1,11 @@ +{ + "replace": false, + "values": [ + "nims_random_bullshit:hexa_condensed_netherrack", + "nims_random_bullshit:penta_condensed_netherrack", + "nims_random_bullshit:quadra_condensed_netherrack", + "nims_random_bullshit:condensed_condensed_condensed_netherrack", + "nims_random_bullshit:condensed_condensed_netherrack", + "nims_random_bullshit:condensed_netherrack" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/items/pickaxes.json b/src/main/resources/data/minecraft/tags/items/pickaxes.json new file mode 100644 index 0000000..30e3d99 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/items/pickaxes.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "nims_random_bullshit:netherrackite_pickaxe" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/items/shovels.json b/src/main/resources/data/minecraft/tags/items/shovels.json new file mode 100644 index 0000000..3233afd --- /dev/null +++ b/src/main/resources/data/minecraft/tags/items/shovels.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "nims_random_bullshit:gravedigger" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/loot_tables/blocks/broken_glass.json b/src/main/resources/data/nims_random_bullshit/loot_tables/blocks/broken_glass.json new file mode 100644 index 0000000..4b8872c --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/loot_tables/blocks/broken_glass.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "random_sequence": "nims_random_bullshit:blocks/broken_glass", + "pools": [ + { + "rolls": 1.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "nims_random_bullshit:broken_glass" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/loot_tables/blocks/condensed_condensed_condensed_netherrack.json b/src/main/resources/data/nims_random_bullshit/loot_tables/blocks/condensed_condensed_condensed_netherrack.json new file mode 100644 index 0000000..ce78470 --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/loot_tables/blocks/condensed_condensed_condensed_netherrack.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "random_sequence": "nims_random_bullshit:blocks/condensed_condensed_condensed_netherrack", + "pools": [ + { + "rolls": 1.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "nims_random_bullshit:condensed_condensed_condensed_netherrack" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/loot_tables/blocks/condensed_condensed_netherrack.json b/src/main/resources/data/nims_random_bullshit/loot_tables/blocks/condensed_condensed_netherrack.json new file mode 100644 index 0000000..d832dc2 --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/loot_tables/blocks/condensed_condensed_netherrack.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "random_sequence": "nims_random_bullshit:blocks/condensed_condensed_netherrack", + "pools": [ + { + "rolls": 1.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "nims_random_bullshit:condensed_condensed_netherrack" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/loot_tables/blocks/condensed_netherrack.json b/src/main/resources/data/nims_random_bullshit/loot_tables/blocks/condensed_netherrack.json new file mode 100644 index 0000000..ba63bdf --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/loot_tables/blocks/condensed_netherrack.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "random_sequence": "nims_random_bullshit:blocks/condensed_netherrack", + "pools": [ + { + "rolls": 1.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "nims_random_bullshit:condensed_netherrack" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/loot_tables/blocks/hexa_condensed_netherrack.json b/src/main/resources/data/nims_random_bullshit/loot_tables/blocks/hexa_condensed_netherrack.json new file mode 100644 index 0000000..11b782d --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/loot_tables/blocks/hexa_condensed_netherrack.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "random_sequence": "nims_random_bullshit:blocks/hexa_condensed_netherrack", + "pools": [ + { + "rolls": 1.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "nims_random_bullshit:hexa_condensed_netherrack" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/loot_tables/blocks/ore_miner.json b/src/main/resources/data/nims_random_bullshit/loot_tables/blocks/ore_miner.json new file mode 100644 index 0000000..e1a84b6 --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/loot_tables/blocks/ore_miner.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "random_sequence": "nims_random_bullshit:blocks/ore_miner", + "pools": [ + { + "rolls": 1.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "nims_random_bullshit:ore_miner" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/loot_tables/blocks/penta_condensed_netherrack.json b/src/main/resources/data/nims_random_bullshit/loot_tables/blocks/penta_condensed_netherrack.json new file mode 100644 index 0000000..81667c8 --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/loot_tables/blocks/penta_condensed_netherrack.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "random_sequence": "nims_random_bullshit:blocks/penta_condensed_netherrack", + "pools": [ + { + "rolls": 1.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "nims_random_bullshit:penta_condensed_netherrack" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/loot_tables/blocks/quadra_condensed_netherrack.json b/src/main/resources/data/nims_random_bullshit/loot_tables/blocks/quadra_condensed_netherrack.json new file mode 100644 index 0000000..61160f8 --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/loot_tables/blocks/quadra_condensed_netherrack.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "random_sequence": "nims_random_bullshit:blocks/quadra_condensed_netherrack", + "pools": [ + { + "rolls": 1.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "nims_random_bullshit:quadra_condensed_netherrack" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/block_eater_recipe.json b/src/main/resources/data/nims_random_bullshit/recipes/block_eater_recipe.json new file mode 100644 index 0000000..49d3151 --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/block_eater_recipe.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "ab", + "bb" + ], + "key": { + "a": { + "item": "minecraft:dragon_head" + }, + "b": { + "item": "nims_random_bullshit:condensed_condensed_condensed_netherrack" + } + }, + "result": { + "item": "nims_random_bullshit:block_eater", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/bonemeal_recipe.json b/src/main/resources/data/nims_random_bullshit/recipes/bonemeal_recipe.json new file mode 100644 index 0000000..8d7cad2 --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/bonemeal_recipe.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "nims_random_bullshit:shit" + } + ], + "result": { + "item": "minecraft:bone_meal", + "count": 3 + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/broken_glass_recipe.json b/src/main/resources/data/nims_random_bullshit/recipes/broken_glass_recipe.json new file mode 100644 index 0000000..d18981f --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/broken_glass_recipe.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "a b", + " c ", + "d e" + ], + "key": { + "a": { + "item": "minecraft:red_dye" + }, + "b": { + "item": "minecraft:green_dye" + }, + "c": { + "item": "minecraft:glass_pane" + }, + "d": { + "item": "minecraft:blue_dye" + }, + "e": { + "item": "minecraft:yellow_dye" + } + }, + "result": { + "item": "nims_random_bullshit:broken_glass", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/condensed_condensed_condensed_netherrack_recipe.json b/src/main/resources/data/nims_random_bullshit/recipes/condensed_condensed_condensed_netherrack_recipe.json new file mode 100644 index 0000000..02f4c06 --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/condensed_condensed_condensed_netherrack_recipe.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "aaa", + "aaa", + "aaa" + ], + "key": { + "a": { + "item": "nims_random_bullshit:condensed_condensed_netherrack" + } + }, + "result": { + "item": "nims_random_bullshit:condensed_condensed_condensed_netherrack", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/condensed_condensed_netherrack_2.json b/src/main/resources/data/nims_random_bullshit/recipes/condensed_condensed_netherrack_2.json new file mode 100644 index 0000000..ed7dbc3 --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/condensed_condensed_netherrack_2.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "nims_random_bullshit:condensed_condensed_condensed_netherrack" + } + ], + "result": { + "item": "nims_random_bullshit:condensed_condensed_netherrack", + "count": 9 + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/condensed_condensed_netherrack_recipe.json b/src/main/resources/data/nims_random_bullshit/recipes/condensed_condensed_netherrack_recipe.json new file mode 100644 index 0000000..1f888ba --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/condensed_condensed_netherrack_recipe.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "aaa", + "aaa", + "aaa" + ], + "key": { + "a": { + "item": "nims_random_bullshit:condensed_netherrack" + } + }, + "result": { + "item": "nims_random_bullshit:condensed_condensed_netherrack", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/condensed_netherrack_recipe.json b/src/main/resources/data/nims_random_bullshit/recipes/condensed_netherrack_recipe.json new file mode 100644 index 0000000..bb66af5 --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/condensed_netherrack_recipe.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "aaa", + "aaa", + "aaa" + ], + "key": { + "a": { + "item": "minecraft:netherrack" + } + }, + "result": { + "item": "nims_random_bullshit:condensed_netherrack", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/condensed_netherrack_recipe_2.json b/src/main/resources/data/nims_random_bullshit/recipes/condensed_netherrack_recipe_2.json new file mode 100644 index 0000000..727bd50 --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/condensed_netherrack_recipe_2.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "nims_random_bullshit:condensed_condensed_netherrack" + } + ], + "result": { + "item": "nims_random_bullshit:condensed_netherrack", + "count": 9 + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/golden_berries_recipe.json b/src/main/resources/data/nims_random_bullshit/recipes/golden_berries_recipe.json new file mode 100644 index 0000000..d7784cc --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/golden_berries_recipe.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "pattern": [ + "aaa", + "aba", + "aaa" + ], + "key": { + "a": { + "item": "minecraft:gold_nugget" + }, + "b": { + "item": "minecraft:sweet_berries" + } + }, + "result": { + "item": "nims_random_bullshit:golden_berries", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/gravedigger_recipe.json b/src/main/resources/data/nims_random_bullshit/recipes/gravedigger_recipe.json new file mode 100644 index 0000000..63fcff4 --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/gravedigger_recipe.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + " a ", + "bcb", + "bcb" + ], + "key": { + "a": { + "item": "minecraft:wither_skeleton_skull" + }, + "b": { + "item": "minecraft:ghast_tear" + }, + "c": { + "item": "minecraft:bone" + } + }, + "result": { + "item": "nims_random_bullshit:gravedigger", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/hexa_condensed_netherrack_recipe.json b/src/main/resources/data/nims_random_bullshit/recipes/hexa_condensed_netherrack_recipe.json new file mode 100644 index 0000000..52674a4 --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/hexa_condensed_netherrack_recipe.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "aaa", + "aaa", + "aaa" + ], + "key": { + "a": { + "item": "nims_random_bullshit:penta_condensed_netherrack" + } + }, + "result": { + "item": "nims_random_bullshit:hexa_condensed_netherrack", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/hexa_condensed_netherrack_recipe_2.json b/src/main/resources/data/nims_random_bullshit/recipes/hexa_condensed_netherrack_recipe_2.json new file mode 100644 index 0000000..3de6566 --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/hexa_condensed_netherrack_recipe_2.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "nims_random_bullshit:hexa_condensed_netherrack" + } + ], + "result": { + "item": "nims_random_bullshit:penta_condensed_netherrack", + "count": 9 + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/lapis_lazuli_nugget_recipe.json b/src/main/resources/data/nims_random_bullshit/recipes/lapis_lazuli_nugget_recipe.json new file mode 100644 index 0000000..6ed3f3d --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/lapis_lazuli_nugget_recipe.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:lapis_lazuli" + } + ], + "result": { + "item": "nims_random_bullshit:lapis_lazuli_nugget", + "count": 9 + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/lapis_lazuli_recipe.json b/src/main/resources/data/nims_random_bullshit/recipes/lapis_lazuli_recipe.json new file mode 100644 index 0000000..4a8abaa --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/lapis_lazuli_recipe.json @@ -0,0 +1,37 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "nims_random_bullshit:lapis_lazuli_nugget" + }, + { + "item": "nims_random_bullshit:lapis_lazuli_nugget" + }, + { + "item": "nims_random_bullshit:lapis_lazuli_nugget" + }, + { + "item": "nims_random_bullshit:lapis_lazuli_nugget" + }, + { + "item": "nims_random_bullshit:lapis_lazuli_nugget" + }, + { + "item": "nims_random_bullshit:lapis_lazuli_nugget" + }, + { + "item": "nims_random_bullshit:lapis_lazuli_nugget" + }, + { + "item": "nims_random_bullshit:lapis_lazuli_nugget" + }, + { + "item": "nims_random_bullshit:lapis_lazuli_nugget" + } + ], + "result": { + "item": "minecraft:lapis_lazuli", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/magic_dust_recipe.json b/src/main/resources/data/nims_random_bullshit/recipes/magic_dust_recipe.json new file mode 100644 index 0000000..17d4929 --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/magic_dust_recipe.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "pattern": [ + "aaa", + "aba", + "aaa" + ], + "key": { + "a": { + "item": "nims_random_bullshit:lapis_lazuli_nugget" + }, + "b": { + "item": "nims_random_bullshit:sand_dust" + } + }, + "result": { + "item": "nims_random_bullshit:magic_dust", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/magic_flesh_recipe.json b/src/main/resources/data/nims_random_bullshit/recipes/magic_flesh_recipe.json new file mode 100644 index 0000000..d8fd04a --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/magic_flesh_recipe.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:rotten_flesh" + }, + { + "item": "nims_random_bullshit:magic_dust" + } + ], + "result": { + "item": "nims_random_bullshit:magic_flesh", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/netherrack_recipe.json b/src/main/resources/data/nims_random_bullshit/recipes/netherrack_recipe.json new file mode 100644 index 0000000..c411ed0 --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/netherrack_recipe.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "nims_random_bullshit:condensed_netherrack" + } + ], + "result": { + "item": "minecraft:netherrack", + "count": 9 + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/netherrackite_pickaxe_recipe.json b/src/main/resources/data/nims_random_bullshit/recipes/netherrackite_pickaxe_recipe.json new file mode 100644 index 0000000..dc7bf47 --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/netherrackite_pickaxe_recipe.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smithing_transform", + "template": [], + "base": { + "item": "minecraft:netherite_pickaxe" + }, + "addition": { + "item": "nims_random_bullshit:netherrackite" + }, + "result": { + "item": "nims_random_bullshit:netherrackite_pickaxe" + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/netherrackite_recipe.json b/src/main/resources/data/nims_random_bullshit/recipes/netherrackite_recipe.json new file mode 100644 index 0000000..80aff90 --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/netherrackite_recipe.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smithing_transform", + "template": [], + "base": { + "item": "minecraft:netherite_ingot" + }, + "addition": { + "item": "nims_random_bullshit:condensed_condensed_condensed_netherrack" + }, + "result": { + "item": "nims_random_bullshit:netherrackite" + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/netherrite_template_recipe.json b/src/main/resources/data/nims_random_bullshit/recipes/netherrite_template_recipe.json new file mode 100644 index 0000000..122ae85 --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/netherrite_template_recipe.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "pattern": [ + "aaa", + "aba", + "aaa" + ], + "key": { + "a": { + "item": "minecraft:netherite_scrap" + }, + "b": { + "item": "minecraft:diamond" + } + }, + "result": { + "item": "minecraft:netherite_upgrade_smithing_template", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/netherrite_template_recipe_2.json b/src/main/resources/data/nims_random_bullshit/recipes/netherrite_template_recipe_2.json new file mode 100644 index 0000000..44d890b --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/netherrite_template_recipe_2.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:smithing_transform", + "template": { + "item": "minecraft:netherite_ingot" + }, + "base": { + "item": "minecraft:netherite_ingot" + }, + "addition": { + "item": "minecraft:diamond" + }, + "result": { + "item": "minecraft:netherite_upgrade_smithing_template" + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/ore_miner_recipe.json b/src/main/resources/data/nims_random_bullshit/recipes/ore_miner_recipe.json new file mode 100644 index 0000000..d8a60ec --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/ore_miner_recipe.json @@ -0,0 +1,37 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:coal" + }, + { + "item": "minecraft:raw_copper" + }, + { + "item": "minecraft:raw_iron" + }, + { + "item": "minecraft:netherite_scrap" + }, + { + "item": "nims_random_bullshit:quadra_condensed_netherrack" + }, + { + "item": "minecraft:raw_gold" + }, + { + "item": "minecraft:redstone" + }, + { + "item": "minecraft:emerald" + }, + { + "item": "minecraft:diamond" + } + ], + "result": { + "item": "nims_random_bullshit:ore_miner", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/penta_condensed_netherrack_recipe.json b/src/main/resources/data/nims_random_bullshit/recipes/penta_condensed_netherrack_recipe.json new file mode 100644 index 0000000..3499433 --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/penta_condensed_netherrack_recipe.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "aaa", + "aaa", + "aaa" + ], + "key": { + "a": { + "item": "nims_random_bullshit:quadra_condensed_netherrack" + } + }, + "result": { + "item": "nims_random_bullshit:penta_condensed_netherrack", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/penta_condensed_netherrack_recipe_2.json b/src/main/resources/data/nims_random_bullshit/recipes/penta_condensed_netherrack_recipe_2.json new file mode 100644 index 0000000..54993fb --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/penta_condensed_netherrack_recipe_2.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "nims_random_bullshit:penta_condensed_netherrack" + } + ], + "result": { + "item": "nims_random_bullshit:quadra_condensed_netherrack", + "count": 9 + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/quadra_condensed_netherrack_recipe.json b/src/main/resources/data/nims_random_bullshit/recipes/quadra_condensed_netherrack_recipe.json new file mode 100644 index 0000000..c10ec5d --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/quadra_condensed_netherrack_recipe.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "aaa", + "aaa", + "aaa" + ], + "key": { + "a": { + "item": "nims_random_bullshit:condensed_condensed_condensed_netherrack" + } + }, + "result": { + "item": "nims_random_bullshit:quadra_condensed_netherrack", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/quadra_condensed_netherrack_recipe_2.json b/src/main/resources/data/nims_random_bullshit/recipes/quadra_condensed_netherrack_recipe_2.json new file mode 100644 index 0000000..5244c13 --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/quadra_condensed_netherrack_recipe_2.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "nims_random_bullshit:quadra_condensed_netherrack" + } + ], + "result": { + "item": "nims_random_bullshit:condensed_condensed_condensed_netherrack", + "count": 9 + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/sand_dust_recipe.json b/src/main/resources/data/nims_random_bullshit/recipes/sand_dust_recipe.json new file mode 100644 index 0000000..5ef6668 --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/sand_dust_recipe.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "nims_random_bullshit:sand_dust", + "count": 4 + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/sand_recipe.json b/src/main/resources/data/nims_random_bullshit/recipes/sand_recipe.json new file mode 100644 index 0000000..6336032 --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/sand_recipe.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "pattern": [ + "aa", + "aa" + ], + "key": { + "a": { + "item": "nims_random_bullshit:sand_dust" + } + }, + "result": { + "item": "minecraft:sand", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/shit_recipe.json b/src/main/resources/data/nims_random_bullshit/recipes/shit_recipe.json new file mode 100644 index 0000000..2c9c4c7 --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/shit_recipe.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "minecraft:coarse_dirt" + } + ], + "result": { + "item": "nims_random_bullshit:shit", + "count": 2 + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/recipes/shit_recipe_2.json b/src/main/resources/data/nims_random_bullshit/recipes/shit_recipe_2.json new file mode 100644 index 0000000..ad5fff0 --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/recipes/shit_recipe_2.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "nims_random_bullshit:broken_glass" + } + ], + "result": { + "item": "nims_random_bullshit:shit", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/nims_random_bullshit/tags/blocks/netherrack.json b/src/main/resources/data/nims_random_bullshit/tags/blocks/netherrack.json new file mode 100644 index 0000000..3eb8454 --- /dev/null +++ b/src/main/resources/data/nims_random_bullshit/tags/blocks/netherrack.json @@ -0,0 +1,11 @@ +{ + "replace": false, + "values": [ + "minecraft:netherrack", + "nims_random_bullshit:condensed_netherrack", + "nims_random_bullshit:condensed_condensed_netherrack", + "nims_random_bullshit:condensed_condensed_condensed_netherrack", + "nims_random_bullshit:quadra_condensed_netherrack", + "nims_random_bullshit:penta_condensed_netherrack" + ] +} \ No newline at end of file diff --git a/src/main/resources/pack.mcmeta b/src/main/resources/pack.mcmeta new file mode 100644 index 0000000..e690c7f --- /dev/null +++ b/src/main/resources/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "pack_format": 15, + "description": "" + } +} \ No newline at end of file