From 77d2413884d68bc6aed74500caeb7d495150d19a Mon Sep 17 00:00:00 2001 From: EasyCanadianGamer <39717944+EasyCanadianGamer@users.noreply.github.com> Date: Fri, 14 Dec 2018 17:32:06 -0500 Subject: [PATCH 01/13] Add files via upload --- .../com/canadiangamer/randommod/Main.java | 52 +++ .../randommod/blocks/BlockBase.java | 32 ++ .../randommod/blocks/BlockTowelHanger.java | 41 ++ .../randommod/blocks/RandomBlock.java | 19 + .../randommod/blocks/RandomOre.java | 15 + .../randommod/init/ModBlocks.java | 24 + .../randommod/init/ModItems.java | 63 +++ .../randommod/init/ModRecipes.java | 13 + .../randommod/items/ItemBase.java | 27 ++ .../randommod/items/armor/ArmorBase.java | 28 ++ .../randommod/items/food/FoodBase.java | 28 ++ .../randommod/items/food/FoodEffectBase.java | 36 ++ .../randommod/items/tools/ToolAxe.java | 27 ++ .../randommod/items/tools/ToolHoe.java | 27 ++ .../randommod/items/tools/ToolPickaxe.java | 30 ++ .../randommod/items/tools/ToolSpade.java | 28 ++ .../randommod/items/tools/ToolSword.java | 26 ++ .../randommod/proxy/ClientProxy.java | 16 + .../randommod/proxy/CommonProxy.java | 8 + .../randommod/tabs/RandomTab.java | 15 + .../randommod/util/IHasModel.java | 6 + .../randommod/util/Reference.java | 15 + .../util/handlers/RegistryHandler.java | 56 +++ .../randommod/world/ModWorldGen.java | 41 ++ .../creative_inventory/tab_randommod.png | Bin 0 -> 965 bytes .../assets/rm/blockstates/random_block.json | 5 + .../assets/rm/blockstates/random_ore.json | 5 + .../assets/rm/blockstates/towel_hanger.json | 5 + main/resources/assets/rm/lang/en_us.lang | 33 ++ .../assets/rm/models/block/random_block.json | 6 + .../assets/rm/models/block/random_ore.json | 6 + .../assets/rm/models/block/towel_hanger.json | 426 ++++++++++++++++++ .../assets/rm/models/item/random_axe.json | 6 + .../assets/rm/models/item/random_block.json | 4 + .../assets/rm/models/item/random_boots.json | 6 + .../rm/models/item/random_chestplate.json | 6 + .../assets/rm/models/item/random_helmet.json | 6 + .../assets/rm/models/item/random_hoe.json | 6 + .../assets/rm/models/item/random_ingot.json | 6 + .../rm/models/item/random_leggings.json | 6 + .../rm/models/item/random_meat_cooked.json | 6 + .../rm/models/item/random_meat_raw.json | 6 + .../assets/rm/models/item/random_ore.json | 4 + .../assets/rm/models/item/random_pickaxe.json | 6 + .../assets/rm/models/item/random_shovel.json | 6 + .../assets/rm/models/item/random_sword.json | 6 + .../assets/rm/models/item/towel_hanger.json | 3 + .../assets/rm/recipes/random_axe.json | 28 ++ .../assets/rm/recipes/random_block.json | 24 + .../assets/rm/recipes/random_boots.json | 24 + .../assets/rm/recipes/random_chestplate.json | 24 + .../assets/rm/recipes/random_helmet.json | 24 + .../assets/rm/recipes/random_hoe.json | 28 ++ .../assets/rm/recipes/random_leggings.json | 24 + .../assets/rm/recipes/random_pickaxe.json | 28 ++ .../assets/rm/recipes/random_shovel.json | 28 ++ .../assets/rm/recipes/random_sword.json | 28 ++ .../rm/textures/blocks/random_block.png | Bin 0 -> 1227 bytes .../assets/rm/textures/blocks/random_ore.png | Bin 0 -> 2226 bytes .../assets/rm/textures/items/random_axe.png | Bin 0 -> 1351 bytes .../assets/rm/textures/items/random_boots.png | Bin 0 -> 1301 bytes .../rm/textures/items/random_chestplate.png | Bin 0 -> 1429 bytes .../rm/textures/items/random_helmet.png | Bin 0 -> 1299 bytes .../assets/rm/textures/items/random_hoe.png | Bin 0 -> 1287 bytes .../assets/rm/textures/items/random_ingot.png | Bin 0 -> 1526 bytes .../rm/textures/items/random_leggings.png | Bin 0 -> 1309 bytes .../rm/textures/items/random_meat_cooked.png | Bin 0 -> 1546 bytes .../rm/textures/items/random_meat_raw.png | Bin 0 -> 1761 bytes .../rm/textures/items/random_pickaxe.png | Bin 0 -> 1395 bytes .../rm/textures/items/random_shovel.png | Bin 0 -> 1365 bytes .../assets/rm/textures/items/random_sword.png | Bin 0 -> 1471 bytes .../models/armor/random_ingot_layer_1.png | Bin 0 -> 4085 bytes .../models/armor/random_ingot_layer_2.png | Bin 0 -> 1976 bytes main/resources/mcmod.info | 16 + main/resources/pack.mcmeta | 7 + 75 files changed, 1525 insertions(+) create mode 100644 main/java/com/canadiangamer/randommod/Main.java create mode 100644 main/java/com/canadiangamer/randommod/blocks/BlockBase.java create mode 100644 main/java/com/canadiangamer/randommod/blocks/BlockTowelHanger.java create mode 100644 main/java/com/canadiangamer/randommod/blocks/RandomBlock.java create mode 100644 main/java/com/canadiangamer/randommod/blocks/RandomOre.java create mode 100644 main/java/com/canadiangamer/randommod/init/ModBlocks.java create mode 100644 main/java/com/canadiangamer/randommod/init/ModItems.java create mode 100644 main/java/com/canadiangamer/randommod/init/ModRecipes.java create mode 100644 main/java/com/canadiangamer/randommod/items/ItemBase.java create mode 100644 main/java/com/canadiangamer/randommod/items/armor/ArmorBase.java create mode 100644 main/java/com/canadiangamer/randommod/items/food/FoodBase.java create mode 100644 main/java/com/canadiangamer/randommod/items/food/FoodEffectBase.java create mode 100644 main/java/com/canadiangamer/randommod/items/tools/ToolAxe.java create mode 100644 main/java/com/canadiangamer/randommod/items/tools/ToolHoe.java create mode 100644 main/java/com/canadiangamer/randommod/items/tools/ToolPickaxe.java create mode 100644 main/java/com/canadiangamer/randommod/items/tools/ToolSpade.java create mode 100644 main/java/com/canadiangamer/randommod/items/tools/ToolSword.java create mode 100644 main/java/com/canadiangamer/randommod/proxy/ClientProxy.java create mode 100644 main/java/com/canadiangamer/randommod/proxy/CommonProxy.java create mode 100644 main/java/com/canadiangamer/randommod/tabs/RandomTab.java create mode 100644 main/java/com/canadiangamer/randommod/util/IHasModel.java create mode 100644 main/java/com/canadiangamer/randommod/util/Reference.java create mode 100644 main/java/com/canadiangamer/randommod/util/handlers/RegistryHandler.java create mode 100644 main/java/com/canadiangamer/randommod/world/ModWorldGen.java create mode 100644 main/resources/assets/minecraft/textures/gui/container/creative_inventory/tab_randommod.png create mode 100644 main/resources/assets/rm/blockstates/random_block.json create mode 100644 main/resources/assets/rm/blockstates/random_ore.json create mode 100644 main/resources/assets/rm/blockstates/towel_hanger.json create mode 100644 main/resources/assets/rm/lang/en_us.lang create mode 100644 main/resources/assets/rm/models/block/random_block.json create mode 100644 main/resources/assets/rm/models/block/random_ore.json create mode 100644 main/resources/assets/rm/models/block/towel_hanger.json create mode 100644 main/resources/assets/rm/models/item/random_axe.json create mode 100644 main/resources/assets/rm/models/item/random_block.json create mode 100644 main/resources/assets/rm/models/item/random_boots.json create mode 100644 main/resources/assets/rm/models/item/random_chestplate.json create mode 100644 main/resources/assets/rm/models/item/random_helmet.json create mode 100644 main/resources/assets/rm/models/item/random_hoe.json create mode 100644 main/resources/assets/rm/models/item/random_ingot.json create mode 100644 main/resources/assets/rm/models/item/random_leggings.json create mode 100644 main/resources/assets/rm/models/item/random_meat_cooked.json create mode 100644 main/resources/assets/rm/models/item/random_meat_raw.json create mode 100644 main/resources/assets/rm/models/item/random_ore.json create mode 100644 main/resources/assets/rm/models/item/random_pickaxe.json create mode 100644 main/resources/assets/rm/models/item/random_shovel.json create mode 100644 main/resources/assets/rm/models/item/random_sword.json create mode 100644 main/resources/assets/rm/models/item/towel_hanger.json create mode 100644 main/resources/assets/rm/recipes/random_axe.json create mode 100644 main/resources/assets/rm/recipes/random_block.json create mode 100644 main/resources/assets/rm/recipes/random_boots.json create mode 100644 main/resources/assets/rm/recipes/random_chestplate.json create mode 100644 main/resources/assets/rm/recipes/random_helmet.json create mode 100644 main/resources/assets/rm/recipes/random_hoe.json create mode 100644 main/resources/assets/rm/recipes/random_leggings.json create mode 100644 main/resources/assets/rm/recipes/random_pickaxe.json create mode 100644 main/resources/assets/rm/recipes/random_shovel.json create mode 100644 main/resources/assets/rm/recipes/random_sword.json create mode 100644 main/resources/assets/rm/textures/blocks/random_block.png create mode 100644 main/resources/assets/rm/textures/blocks/random_ore.png create mode 100644 main/resources/assets/rm/textures/items/random_axe.png create mode 100644 main/resources/assets/rm/textures/items/random_boots.png create mode 100644 main/resources/assets/rm/textures/items/random_chestplate.png create mode 100644 main/resources/assets/rm/textures/items/random_helmet.png create mode 100644 main/resources/assets/rm/textures/items/random_hoe.png create mode 100644 main/resources/assets/rm/textures/items/random_ingot.png create mode 100644 main/resources/assets/rm/textures/items/random_leggings.png create mode 100644 main/resources/assets/rm/textures/items/random_meat_cooked.png create mode 100644 main/resources/assets/rm/textures/items/random_meat_raw.png create mode 100644 main/resources/assets/rm/textures/items/random_pickaxe.png create mode 100644 main/resources/assets/rm/textures/items/random_shovel.png create mode 100644 main/resources/assets/rm/textures/items/random_sword.png create mode 100644 main/resources/assets/rm/textures/models/armor/random_ingot_layer_1.png create mode 100644 main/resources/assets/rm/textures/models/armor/random_ingot_layer_2.png create mode 100644 main/resources/mcmod.info create mode 100644 main/resources/pack.mcmeta diff --git a/main/java/com/canadiangamer/randommod/Main.java b/main/java/com/canadiangamer/randommod/Main.java new file mode 100644 index 0000000..de81e53 --- /dev/null +++ b/main/java/com/canadiangamer/randommod/Main.java @@ -0,0 +1,52 @@ +package com.canadiangamer.randommod; + +import com.canadiangamer.randommod.init.ModRecipes; +import com.canadiangamer.randommod.proxy.CommonProxy; +import com.canadiangamer.randommod.tabs.RandomTab; +import com.canadiangamer.randommod.util.Reference; +import com.canadiangamer.randommod.world.ModWorldGen; + +import net.minecraft.creativetab.CreativeTabs; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.Mod.EventHandler; +import net.minecraftforge.fml.common.Mod.Instance; +import net.minecraftforge.fml.common.SidedProxy; +import net.minecraftforge.fml.common.event.FMLInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; +import net.minecraftforge.fml.common.registry.GameRegistry; + +@Mod(modid = Reference.MOD_ID, name = Reference.NAME, version = Reference.VERSION) +public class Main { + + @Instance + public static Main instance; + + @SidedProxy(clientSide = Reference.CLIENT_PROXY_CLASS, serverSide = Reference.COMMON_PROXY_CLASS) + public static CommonProxy proxy; + + @EventHandler + public static void PreInit(FMLPreInitializationEvent event) + { + GameRegistry.registerWorldGenerator(new ModWorldGen(), 3); + + } + + @EventHandler + public static void init(FMLInitializationEvent event) + { + ModRecipes.init(); + } + + @EventHandler + public static void Postinit(FMLPostInitializationEvent event) + { + + } + + public static final CreativeTabs randomtab = new RandomTab("randommod"); + + + + +} diff --git a/main/java/com/canadiangamer/randommod/blocks/BlockBase.java b/main/java/com/canadiangamer/randommod/blocks/BlockBase.java new file mode 100644 index 0000000..bc1955f --- /dev/null +++ b/main/java/com/canadiangamer/randommod/blocks/BlockBase.java @@ -0,0 +1,32 @@ +package com.canadiangamer.randommod.blocks; + +import com.canadiangamer.randommod.Main; +import com.canadiangamer.randommod.init.ModBlocks; +import com.canadiangamer.randommod.init.ModItems; +import com.canadiangamer.randommod.util.IHasModel; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; + +public class BlockBase extends Block implements IHasModel +{ + public BlockBase (String name, Material material) + { + super(material); + setUnlocalizedName(name); + setRegistryName(name); + setCreativeTab(Main.randomtab); + + ModBlocks.BLOCKS.add(this); + ModItems.ITEMS.add(new ItemBlock(this).setRegistryName(this.getRegistryName())); + } + +@Override +public void registerModels() +{ +Main.proxy.registerItemRenderer(Item.getItemFromBlock(this), 0, "inventory"); +} +} diff --git a/main/java/com/canadiangamer/randommod/blocks/BlockTowelHanger.java b/main/java/com/canadiangamer/randommod/blocks/BlockTowelHanger.java new file mode 100644 index 0000000..3059191 --- /dev/null +++ b/main/java/com/canadiangamer/randommod/blocks/BlockTowelHanger.java @@ -0,0 +1,41 @@ +package com.canadiangamer.randommod.blocks; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; +import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IBlockAccess; + +public class BlockTowelHanger extends BlockBase { + +public BlockTowelHanger(String name, Material cloth) { + super(name, Material.CLOTH); + + } + +public static final AxisAlignedBB TOWEL_HANGER_ABB = new AxisAlignedBB(0.1875D, 0, 0.1875D, 0.8125D, 0.625D, 0.8125); + + + + + + @Override + public boolean isOpaqueCube(IBlockState state) + { + return false; + } + + @Override + public boolean isFullCube(IBlockState state) + { + return false; + } + +@Override +public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) +{ + return TOWEL_HANGER_ABB; +} + +} diff --git a/main/java/com/canadiangamer/randommod/blocks/RandomBlock.java b/main/java/com/canadiangamer/randommod/blocks/RandomBlock.java new file mode 100644 index 0000000..a2d5a5e --- /dev/null +++ b/main/java/com/canadiangamer/randommod/blocks/RandomBlock.java @@ -0,0 +1,19 @@ +package com.canadiangamer.randommod.blocks; + +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; + +public class RandomBlock extends BlockBase +{ + + public RandomBlock(String name, Material material) + { + super(name, material); + + setSoundType(SoundType.METAL); + setHardness(5.0F); + setResistance(15.0F); + setHarvestLevel("pickaxe", 2); + setLightLevel(1.0f); + } +} diff --git a/main/java/com/canadiangamer/randommod/blocks/RandomOre.java b/main/java/com/canadiangamer/randommod/blocks/RandomOre.java new file mode 100644 index 0000000..b74e5e3 --- /dev/null +++ b/main/java/com/canadiangamer/randommod/blocks/RandomOre.java @@ -0,0 +1,15 @@ +package com.canadiangamer.randommod.blocks; + +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; + +public class RandomOre extends BlockBase { + + public RandomOre(String name, Material material) { + super(name, material); + setSoundType(SoundType.METAL); + setHardness(5.0F); + setResistance(15.0F); + setHarvestLevel("pickaxe", 2); + } +} diff --git a/main/java/com/canadiangamer/randommod/init/ModBlocks.java b/main/java/com/canadiangamer/randommod/init/ModBlocks.java new file mode 100644 index 0000000..67fdcf5 --- /dev/null +++ b/main/java/com/canadiangamer/randommod/init/ModBlocks.java @@ -0,0 +1,24 @@ +package com.canadiangamer.randommod.init; + +import java.util.ArrayList; +import java.util.List; + +import com.canadiangamer.randommod.blocks.BlockBase; +import com.canadiangamer.randommod.blocks.BlockTowelHanger; +import com.canadiangamer.randommod.blocks.RandomBlock; +import com.canadiangamer.randommod.blocks.RandomOre; + + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; + +public class ModBlocks +{ + public static final List BLOCKS = new ArrayList(); + + //Blocks + public static final Block RANDOM_BLOCK = new RandomBlock("random_block", Material.IRON); + public static final Block RANDOM_ORE = new RandomOre("random_ore", Material.ROCK); + public static final Block TOWEL_HANGER = new BlockTowelHanger("towel_hanger", Material.CLOTH); +; +} diff --git a/main/java/com/canadiangamer/randommod/init/ModItems.java b/main/java/com/canadiangamer/randommod/init/ModItems.java new file mode 100644 index 0000000..7381cfc --- /dev/null +++ b/main/java/com/canadiangamer/randommod/init/ModItems.java @@ -0,0 +1,63 @@ +package com.canadiangamer.randommod.init; + +import java.util.ArrayList; +import java.util.List; + +import com.canadiangamer.randommod.items.ItemBase; +import com.canadiangamer.randommod.items.armor.ArmorBase; +import com.canadiangamer.randommod.items.food.FoodBase; +import com.canadiangamer.randommod.items.food.FoodEffectBase; +import com.canadiangamer.randommod.items.tools.ToolAxe; +import com.canadiangamer.randommod.items.tools.ToolHoe; +import com.canadiangamer.randommod.items.tools.ToolPickaxe; +import com.canadiangamer.randommod.items.tools.ToolSpade; +import com.canadiangamer.randommod.items.tools.ToolSword; +import com.canadiangamer.randommod.util.Reference; + +import net.minecraft.init.MobEffects; +import net.minecraft.init.SoundEvents; +import net.minecraft.inventory.EntityEquipmentSlot; +import net.minecraft.item.Item; +import net.minecraft.item.Item.ToolMaterial; +import net.minecraft.item.ItemArmor.ArmorMaterial; +import net.minecraft.item.ItemAxe; +import net.minecraft.item.ItemHoe; +import net.minecraft.item.ItemPickaxe; +import net.minecraft.item.ItemSpade; +import net.minecraft.item.ItemSword; +import net.minecraft.potion.PotionEffect; +import net.minecraftforge.common.util.EnumHelper; + +public class ModItems +{ + + //Material + public static final ToolMaterial MATERIAL_RANDOM_INGOT = EnumHelper.addToolMaterial("material_random_ingot", 3, 43353645, 10.0f, 900.0f, 20); + public static final ArmorMaterial ARMOR_MATERIAL_RANDOM_INGOT = EnumHelper.addArmorMaterial("armour_material_random_ingot", Reference.MOD_ID + ":random_ingot", 50, new int[] {27, 28, 29, 30}, 20, SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, 0.0F); + + + //Items + public static final List ITEMS = new ArrayList(); + + public static final Item RANDOM_INGOT = new ItemBase ("random_ingot"); + + //Tools + public static final ItemSword RANDOM_SWORD = new ToolSword("random_sword", MATERIAL_RANDOM_INGOT); + public static final ItemSpade RANDOM_SHOVEL = new ToolSpade("random_shovel", MATERIAL_RANDOM_INGOT); + public static final ItemPickaxe RANDOM_PICKAXE = new ToolPickaxe("random_pickaxe", MATERIAL_RANDOM_INGOT); + public static final ItemAxe RANDOM_AXE = new ToolAxe("random_axe", MATERIAL_RANDOM_INGOT); + public static final ItemHoe RANDOM_HOE = new ToolHoe("random_hoe", MATERIAL_RANDOM_INGOT); + + //Armor + public static final Item RANDOM_HELMET = new ArmorBase("random_helmet", ARMOR_MATERIAL_RANDOM_INGOT, 1, EntityEquipmentSlot.HEAD); + public static final Item RANDOM_CHESTPLATE = new ArmorBase("random_chestplate", ARMOR_MATERIAL_RANDOM_INGOT, 1, EntityEquipmentSlot.CHEST); + public static final Item RANDOM_LEGGINGS = new ArmorBase("random_leggings", ARMOR_MATERIAL_RANDOM_INGOT, 2, EntityEquipmentSlot.LEGS); + public static final Item RANDOM_BOOTS = new ArmorBase("random_boots", ARMOR_MATERIAL_RANDOM_INGOT, 1, EntityEquipmentSlot.FEET); + + //Food + //public static final Item RANDOM_MEAT_RAW = new FoodBase("random_meat_raw", 8, 4.2f, false); + //public static final Item RANDOM_MEAT_COOKED = new FoodBase("random_meat_cooked", 16, 5.2f, false); + public static final Item RANDOM_MEAT_RAW = new FoodEffectBase("random_meat_raw", 8, 4.2f, false, new PotionEffect(MobEffects.SLOWNESS, (60*20), 2, false, true)); + public static final Item RANDOM_MEAT_COOKED = new FoodEffectBase("random_meat_cooked", 16, 5.2f, false, new PotionEffect(MobEffects.SPEED, 2*(60*20), 4, false, true)); +} + \ No newline at end of file diff --git a/main/java/com/canadiangamer/randommod/init/ModRecipes.java b/main/java/com/canadiangamer/randommod/init/ModRecipes.java new file mode 100644 index 0000000..7c6d3d2 --- /dev/null +++ b/main/java/com/canadiangamer/randommod/init/ModRecipes.java @@ -0,0 +1,13 @@ +package com.canadiangamer.randommod.init; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fml.common.registry.GameRegistry; + +public class ModRecipes { + + public static void init() { + GameRegistry.addSmelting(ModBlocks.RANDOM_BLOCK , new ItemStack(ModItems.RANDOM_INGOT, 9), 3.5f); + GameRegistry.addSmelting(ModBlocks.RANDOM_ORE , new ItemStack(ModItems.RANDOM_INGOT, 1), 6.5f); + GameRegistry.addSmelting(ModItems.RANDOM_MEAT_RAW , new ItemStack(ModItems.RANDOM_MEAT_COOKED, 1), 6.5f); + } +} diff --git a/main/java/com/canadiangamer/randommod/items/ItemBase.java b/main/java/com/canadiangamer/randommod/items/ItemBase.java new file mode 100644 index 0000000..c0b492e --- /dev/null +++ b/main/java/com/canadiangamer/randommod/items/ItemBase.java @@ -0,0 +1,27 @@ +package com.canadiangamer.randommod.items; + +import com.canadiangamer.randommod.Main; +import com.canadiangamer.randommod.init.ModItems; +import com.canadiangamer.randommod.util.IHasModel; + +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; + +public class ItemBase extends Item implements IHasModel { + + public ItemBase(String name) + { + setUnlocalizedName(name); + setRegistryName(name); + setCreativeTab(Main.randomtab); + + ModItems.ITEMS.add(this); + } + + @Override + public void registerModels() + { + Main.proxy.registerItemRenderer(this,0,"inventory"); + } + +} diff --git a/main/java/com/canadiangamer/randommod/items/armor/ArmorBase.java b/main/java/com/canadiangamer/randommod/items/armor/ArmorBase.java new file mode 100644 index 0000000..4013bc1 --- /dev/null +++ b/main/java/com/canadiangamer/randommod/items/armor/ArmorBase.java @@ -0,0 +1,28 @@ +package com.canadiangamer.randommod.items.armor; + +import com.canadiangamer.randommod.Main; +import com.canadiangamer.randommod.init.ModItems; +import com.canadiangamer.randommod.util.IHasModel; + +import net.minecraft.inventory.EntityEquipmentSlot; +import net.minecraft.item.ItemArmor; + +public class ArmorBase extends ItemArmor implements IHasModel{ + + public ArmorBase(String name,ArmorMaterial materialIn, int renderIndexIn, EntityEquipmentSlot equipmentSlotIn) { + super(materialIn, renderIndexIn, equipmentSlotIn); + setUnlocalizedName(name); + setRegistryName(name); + setCreativeTab(Main.randomtab); + + ModItems.ITEMS.add(this); + } + + @Override + public void registerModels() + { + Main.proxy.registerItemRenderer(this,0,"inventory"); + } + + +} diff --git a/main/java/com/canadiangamer/randommod/items/food/FoodBase.java b/main/java/com/canadiangamer/randommod/items/food/FoodBase.java new file mode 100644 index 0000000..3c3a1b6 --- /dev/null +++ b/main/java/com/canadiangamer/randommod/items/food/FoodBase.java @@ -0,0 +1,28 @@ +package com.canadiangamer.randommod.items.food; + +import com.canadiangamer.randommod.Main; +import com.canadiangamer.randommod.init.ModItems; +import com.canadiangamer.randommod.util.IHasModel; + +import net.minecraft.item.ItemFood; + +public class FoodBase extends ItemFood implements IHasModel +{ + + public FoodBase(String name, int amount, float saturation, boolean isAnimalFood) + { + super(amount, saturation, isAnimalFood); + setUnlocalizedName(name); + setRegistryName(name); + setCreativeTab(Main.randomtab); + + ModItems.ITEMS.add(this); + } + + @Override + public void registerModels() + { + Main.proxy.registerItemRenderer(this,0,"inventory"); + + } +} diff --git a/main/java/com/canadiangamer/randommod/items/food/FoodEffectBase.java b/main/java/com/canadiangamer/randommod/items/food/FoodEffectBase.java new file mode 100644 index 0000000..00b760c --- /dev/null +++ b/main/java/com/canadiangamer/randommod/items/food/FoodEffectBase.java @@ -0,0 +1,36 @@ +package com.canadiangamer.randommod.items.food; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.PotionEffect; +import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +public class FoodEffectBase extends FoodBase +{ + + PotionEffect effect; + + public FoodEffectBase(String name, int amount, float saturation, boolean isAnimalFood, PotionEffect effect) + { + super(name, amount, saturation, isAnimalFood); + setAlwaysEdible(); + + this.effect = effect; + } + @Override + protected void onFoodEaten(ItemStack stack, World worldIn, EntityPlayer player) + { + if(!worldIn.isRemote) { + player.addPotionEffect(new PotionEffect(effect.getPotion(), effect.getDuration(), effect.getAmplifier(), effect.getIsAmbient(), effect.doesShowParticles())); + } + } + + @SideOnly(Side.CLIENT) + public boolean hasEffect(ItemStack stack) + { + return true; + } + +} diff --git a/main/java/com/canadiangamer/randommod/items/tools/ToolAxe.java b/main/java/com/canadiangamer/randommod/items/tools/ToolAxe.java new file mode 100644 index 0000000..760136a --- /dev/null +++ b/main/java/com/canadiangamer/randommod/items/tools/ToolAxe.java @@ -0,0 +1,27 @@ +package com.canadiangamer.randommod.items.tools; + +import com.canadiangamer.randommod.Main; +import com.canadiangamer.randommod.init.ModItems; +import com.canadiangamer.randommod.util.IHasModel; + +import net.minecraft.item.ItemAxe; +import net.minecraft.item.Item.ToolMaterial; + +public class ToolAxe extends ItemAxe implements IHasModel{ + + public ToolAxe(String name, ToolMaterial material) + { + super(material, 8.0F, -3.0F ); + setUnlocalizedName(name); + setRegistryName(name); + setCreativeTab(Main.randomtab); + + ModItems.ITEMS.add(this); + } + + @Override + public void registerModels() + { + Main.proxy.registerItemRenderer(this,0,"inventory"); + } +} diff --git a/main/java/com/canadiangamer/randommod/items/tools/ToolHoe.java b/main/java/com/canadiangamer/randommod/items/tools/ToolHoe.java new file mode 100644 index 0000000..9824d55 --- /dev/null +++ b/main/java/com/canadiangamer/randommod/items/tools/ToolHoe.java @@ -0,0 +1,27 @@ +package com.canadiangamer.randommod.items.tools; + +import com.canadiangamer.randommod.Main; +import com.canadiangamer.randommod.init.ModItems; +import com.canadiangamer.randommod.util.IHasModel; + +import net.minecraft.item.ItemHoe; +import net.minecraft.item.Item.ToolMaterial; + +public class ToolHoe extends ItemHoe implements IHasModel{ + + public ToolHoe(String name, ToolMaterial material) + { + super(material); + setUnlocalizedName(name); + setRegistryName(name); + setCreativeTab(Main.randomtab); + + ModItems.ITEMS.add(this); + } + + @Override + public void registerModels() + { + Main.proxy.registerItemRenderer(this,0,"inventory"); + } +} diff --git a/main/java/com/canadiangamer/randommod/items/tools/ToolPickaxe.java b/main/java/com/canadiangamer/randommod/items/tools/ToolPickaxe.java new file mode 100644 index 0000000..efc9126 --- /dev/null +++ b/main/java/com/canadiangamer/randommod/items/tools/ToolPickaxe.java @@ -0,0 +1,30 @@ +package com.canadiangamer.randommod.items.tools; + +import com.canadiangamer.randommod.Main; +import com.canadiangamer.randommod.init.ModItems; +import com.canadiangamer.randommod.util.IHasModel; + +import net.minecraft.item.Item.ToolMaterial; +import net.minecraft.item.ItemPickaxe; + +public class ToolPickaxe extends ItemPickaxe implements IHasModel { + + + + public ToolPickaxe(String name, ToolMaterial material) + { + super(material); + setUnlocalizedName(name); + setRegistryName(name); + setCreativeTab(Main.randomtab); + + ModItems.ITEMS.add(this); + } + + @Override + public void registerModels() + { + Main.proxy.registerItemRenderer(this,0,"inventory"); + } + +} diff --git a/main/java/com/canadiangamer/randommod/items/tools/ToolSpade.java b/main/java/com/canadiangamer/randommod/items/tools/ToolSpade.java new file mode 100644 index 0000000..c8095d4 --- /dev/null +++ b/main/java/com/canadiangamer/randommod/items/tools/ToolSpade.java @@ -0,0 +1,28 @@ +package com.canadiangamer.randommod.items.tools; + +import com.canadiangamer.randommod.Main; +import com.canadiangamer.randommod.init.ModItems; +import com.canadiangamer.randommod.util.IHasModel; + +import net.minecraft.item.ItemSpade; +import net.minecraft.item.Item.ToolMaterial; + +public class ToolSpade extends ItemSpade implements IHasModel{ + + public ToolSpade(String name, ToolMaterial material) + + { + super(material); + setUnlocalizedName(name); + setRegistryName(name); + setCreativeTab(Main.randomtab); + + ModItems.ITEMS.add(this); + } + + @Override + public void registerModels() + { + Main.proxy.registerItemRenderer(this,0,"inventory"); + } +} diff --git a/main/java/com/canadiangamer/randommod/items/tools/ToolSword.java b/main/java/com/canadiangamer/randommod/items/tools/ToolSword.java new file mode 100644 index 0000000..3533f77 --- /dev/null +++ b/main/java/com/canadiangamer/randommod/items/tools/ToolSword.java @@ -0,0 +1,26 @@ +package com.canadiangamer.randommod.items.tools; + +import com.canadiangamer.randommod.Main; +import com.canadiangamer.randommod.init.ModItems; +import com.canadiangamer.randommod.util.IHasModel; + +import net.minecraft.item.ItemSword; + +public class ToolSword extends ItemSword implements IHasModel { + + public ToolSword(String name, ToolMaterial material) + { + super(material); + setUnlocalizedName(name); + setRegistryName(name); + setCreativeTab(Main.randomtab); + + ModItems.ITEMS.add(this); + } + + @Override + public void registerModels() + { + Main.proxy.registerItemRenderer(this,0,"inventory"); + } +} diff --git a/main/java/com/canadiangamer/randommod/proxy/ClientProxy.java b/main/java/com/canadiangamer/randommod/proxy/ClientProxy.java new file mode 100644 index 0000000..5402774 --- /dev/null +++ b/main/java/com/canadiangamer/randommod/proxy/ClientProxy.java @@ -0,0 +1,16 @@ +package com.canadiangamer.randommod.proxy; + +import net.minecraft.client.renderer.block.model.ModelResourceLocation; +import net.minecraft.item.Item; +import net.minecraftforge.client.model.ModelLoader; + +public class ClientProxy extends CommonProxy +{ + public void registerItemRenderer(Item item, int meta, String id) +{ + ModelLoader.setCustomModelResourceLocation(item, meta, new ModelResourceLocation (item.getRegistryName(), id)); +} + + +} + diff --git a/main/java/com/canadiangamer/randommod/proxy/CommonProxy.java b/main/java/com/canadiangamer/randommod/proxy/CommonProxy.java new file mode 100644 index 0000000..87ec327 --- /dev/null +++ b/main/java/com/canadiangamer/randommod/proxy/CommonProxy.java @@ -0,0 +1,8 @@ + package com.canadiangamer.randommod.proxy; + +import net.minecraft.item.Item; + +public class CommonProxy +{ + public void registerItemRenderer(Item item, int meta, String id) {} +} diff --git a/main/java/com/canadiangamer/randommod/tabs/RandomTab.java b/main/java/com/canadiangamer/randommod/tabs/RandomTab.java new file mode 100644 index 0000000..a2497c2 --- /dev/null +++ b/main/java/com/canadiangamer/randommod/tabs/RandomTab.java @@ -0,0 +1,15 @@ +package com.canadiangamer.randommod.tabs; + +import com.canadiangamer.randommod.init.ModBlocks; + +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public class RandomTab extends CreativeTabs +{ +public RandomTab(String label ) {super("randommod"); + this.setBackgroundImageName("randommod.png");} +public ItemStack getTabIconItem() { return new ItemStack(Item.getItemFromBlock(ModBlocks.RANDOM_BLOCK));} + +} diff --git a/main/java/com/canadiangamer/randommod/util/IHasModel.java b/main/java/com/canadiangamer/randommod/util/IHasModel.java new file mode 100644 index 0000000..4d711b3 --- /dev/null +++ b/main/java/com/canadiangamer/randommod/util/IHasModel.java @@ -0,0 +1,6 @@ +package com.canadiangamer.randommod.util; + +public interface IHasModel +{ + public void registerModels(); +} diff --git a/main/java/com/canadiangamer/randommod/util/Reference.java b/main/java/com/canadiangamer/randommod/util/Reference.java new file mode 100644 index 0000000..3908e08 --- /dev/null +++ b/main/java/com/canadiangamer/randommod/util/Reference.java @@ -0,0 +1,15 @@ +package com.canadiangamer.randommod.util; + +public class Reference { + + public static final String MOD_ID = "rm"; + public static final String NAME = "Random Mod"; + public static final String VERSION = "1.0"; + public static final String ACCEPTED_VERSIONS = "[1.12.2]"; + public static final String CLIENT_PROXY_CLASS = "com.canadiangamer.randommod.proxy.ClientProxy"; + public static final String COMMON_PROXY_CLASS = "com.canadiangamer.randommod.proxy.CommonProxy"; + + public static final int ENTITY_TIMMY = 120; + } + + \ No newline at end of file diff --git a/main/java/com/canadiangamer/randommod/util/handlers/RegistryHandler.java b/main/java/com/canadiangamer/randommod/util/handlers/RegistryHandler.java new file mode 100644 index 0000000..f3979e9 --- /dev/null +++ b/main/java/com/canadiangamer/randommod/util/handlers/RegistryHandler.java @@ -0,0 +1,56 @@ +package com.canadiangamer.randommod.util.handlers; + +import com.canadiangamer.randommod.init.ModBlocks; +import com.canadiangamer.randommod.init.ModItems; +import com.canadiangamer.randommod.util.IHasModel; + +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import net.minecraftforge.client.event.ModelRegistryEvent; +import net.minecraftforge.event.RegistryEvent; +import net.minecraftforge.fml.common.Mod.EventBusSubscriber; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; + +@EventBusSubscriber +public class RegistryHandler +{ + @SubscribeEvent + public static void onItemRegister(RegistryEvent.Register event) + { + event.getRegistry().registerAll(ModItems.ITEMS.toArray(new Item[0])); + } + + @SubscribeEvent + public static void onBlockRegister(RegistryEvent.Register event) + { + event.getRegistry().registerAll(ModBlocks.BLOCKS.toArray(new Block[0])); + } + + + + + @SubscribeEvent + public static void onModelRegister(ModelRegistryEvent event) + { + for(Item item : ModItems.ITEMS) + { + if(item instanceof IHasModel ) + { + ((IHasModel)item).registerModels(); + } + } + + for(Block block : ModBlocks.BLOCKS) + { + if(block instanceof IHasModel ) + { + ((IHasModel)block).registerModels(); + } + } + + + + + + } +} diff --git a/main/java/com/canadiangamer/randommod/world/ModWorldGen.java b/main/java/com/canadiangamer/randommod/world/ModWorldGen.java new file mode 100644 index 0000000..7da45a6 --- /dev/null +++ b/main/java/com/canadiangamer/randommod/world/ModWorldGen.java @@ -0,0 +1,41 @@ +package com.canadiangamer.randommod.world; + +import java.util.Random; + +import com.canadiangamer.randommod.init.ModBlocks; + +import net.minecraft.block.state.IBlockState; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraft.world.chunk.IChunkProvider; +import net.minecraft.world.gen.IChunkGenerator; +import net.minecraft.world.gen.feature.WorldGenMinable; +import net.minecraftforge.fml.common.IWorldGenerator; + +public class ModWorldGen implements IWorldGenerator { + + @Override + public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider) + { + if(world.provider.getDimension() == 0) { + generateOverworld(random, chunkX, chunkZ, world, chunkGenerator, chunkProvider); + } + } + + private void generateOverworld (Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkgenerator, IChunkProvider chunkprovider) + { + generateOre(ModBlocks.RANDOM_ORE.getDefaultState(), world, random, chunkX * 16, chunkZ * 16, 16, 64, random.nextInt(7) + 4, 6); + } + + private void generateOre(IBlockState ore, World world, Random random, int x, int z, int minY, int maxY, int size, int chances) + { + int deltaY = maxY - minY; + + for (int i = 0; i < chances; i++) { + BlockPos pos = new BlockPos(x + random.nextInt(16), minY + random.nextInt(deltaY), z + random.nextInt(16)); + + WorldGenMinable generator = new WorldGenMinable(ore, size); + generator.generate(world, random, pos); + } + } +} diff --git a/main/resources/assets/minecraft/textures/gui/container/creative_inventory/tab_randommod.png b/main/resources/assets/minecraft/textures/gui/container/creative_inventory/tab_randommod.png new file mode 100644 index 0000000000000000000000000000000000000000..2b6fbb9c3fe931652d714e1c0af02261647e4d8e GIT binary patch literal 965 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|GzJFd9#0p?kcwMx?*wMO3J_>` zsIpqLj*|ZW2In^$W~NEBJu9$S((Ca3$3u3ZdS(U|1_1^K zkQ2}t4d?kB?tgzMdHkYWwNrK6$9;b?`x*WmtlQ6j_G87CAjgOqAE+WLv>Dc2y%qd8^g;T!Pc95GtG6ycw)(*N zcSn`Mu`%JA0S{Bb+;3TxcDwc}97~bBme26EZ1>l!373A>#Mv?5lxMtkn>*2G+sR)K z zaB^>EX>4U6ba`-PAZ2)IW&i+q+P#)-mg^=AhW~37T>_F2AIkyToYNh2`F$abC&?rk z$2YAxF<2Io&?9hY`{(aQf8i3bK;B{sIRuBxXP>2Dklf|E^z8h&&juoB?g{ctk zax~>^cXHj`$UU_$&o?h>cF|p5SGj9#O|5O0)fFF*sX%j4UrQMyC|0CW$FzVJ@iUC$ zXc;YGi3^CWpjput;>?1~Huk)7;l|tO7hVvemramv5m`isEFt|_mI1~0#!aGTT?vdt z7f@4(Wsil2-#q*+oZxw7XbQs^W5$n0kA!F1Zm6|hy38)^xk6mhYZ_s6a{Uf10O2-s zY9qg+(N*2JE3gWJHqxB1z~bt~L^b}dEghT{dgeU2%huqyP6J30d>evc1pyaO*c{kJ zk;sfZCh#eUT+~Yi0XCDBsez4Z0GuS<7fd0)1VP(vKGMd-cUc$C)7|e zHBV+1ELyT`C1~)$LI^SRGpa<5K3WVh#uRfbNs~{OLW(J+oJy9gIKnK494V)qb186I zV7g#-fkr7+s#agEh8k@wbaI`U%hHc30X4P`XXQ=|1pUThjdyn6^(UNzPkOlw>L$LSkMjw2)T$j+eyBTp za=%4zDxxEiytT9w(a{gjw;q2rbsN!%lF;RxWhd`!5mGiT(A^A)VUwAN-0O%F!vq^pe;c=QbS*{XmV;uaghf75%~I z`a==;@wEgGaXf z(Y6W^d{HPPazdeu6)he)P4VE7Bd1QVk_V4mC{L=|yUR|uhed8Uc1GlcW9RM{%DBG? zTZM>5UVB~D+kMamHImkz$98@aoI%@8(8|=dpj8L}S4~BGs0|tbf;TWvxuI{tQq_7N pllQOeePfF}4bj@aN1iJ97aya3 zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1b<3(dgAy`~K`Q$PN(cahnChM=~n%F&fTQ}!}!xH1o z_cZjiKVw~f4ya%2<$c{~U2@_QL`U#-@zgxWYhPS~*xl>2<|eIk*}u56{#;#Rm+--Ldv0-fp z4~*72$zz?58uw&vYkvEnWYxZ2FW8OI;u!t*F8ctaf>};&SFRB@7C_0@v4C6gCm8E> zC)^P(RxsAUX2D$zC2~M}kf%nO2KDP*slr6>x>LNJtB$X=$m)`-7b$+;G@NqcX26l- z3f36Q?$|B|MF`1iB>;fS) z7N&CHd)?+GZtM%O30)&>thWQ3t3jx_RNZL#{!8a6hWz{W$W;v0`85nb(z_?BZ z5YTRNW+Qp;CUcWBn;eot99ScnsaYN4)ML@hk|2wI4X51 zx>cJO2Yw8#aa+@$&iK72Zi%(ew}BDG4;TB|Q5QT`n`iyuOS>!%R)YCMSEDD z8(Y%DR4E%nx1*`+JsNF>ePp^%54PQNi}{Kpq-I6Ku6=z(>1fJ%1?b?)9U-v&*x}A0 zZ0=|W)?muIoZo8Lt$o||metbhQGNpln?H0FzYE-=u(5e8Pa(Uo!<=Q1A zeoOFL5Aox9dRG;QH8;M;EBY4U`+bVdgCz4Q|FHG}kpEr_kRlsbddD2OT!*ur7V&5l zwXv*O%?N|U`UAarYL%0%@ta|Xx%}dtdH0IX=KP-G1?3I_73(g5p$;E=y=9^^m>GSi zSfO<8N@PbaC`WhLb!b51-IGxocUKE4b`_bHMv9cpN1=_+Ul1^FtElbSZ%+*{AG!Wpj^{_V z!`lJ0SCuTvH6cZ45h!-VV83MQsmHDT-sfKGQ8-aAPn%B1693Yr-}ac7Zk-Op{8XF1 zRoMfr@qg_Dem~;>{N}$Zz7b}KY>k2d000JJOGiWi`Tzg`0Q<-Dg8%>k32;bRa{vG? zBLDy{BLR4&KXw2B00(qQO+^Rd3lOVHn3hJ3H>o z`c94Rj~Qu9O@+w>p`u$69gCnt5~vvuiS&Gw!UqZU>n`>p4BVeEB}l`#hf~RVtM_VHmPImY0`N6oo>eK%>#Xwrzah z=U<%=0x3=`%c9k4QLoqObUNgZ-Qh*`IIUI-fS#TnEXyJY0)!9wi8!Ll2~6~=j4I6+`1T`s%lcr zaU7<%wm3U8gX1^=I|gx!j^l7<-&Kyjyh*d!q*kjDh9O}XVp$fFB=PO}b3SfuVHgIU z=OM=eAq3fMmc?0_h4390jO#4U$~adZv%S4drBb24zn^E5lK?1<2Bv8uTb2cY@B5@u zDV!^h>1sAvoITA#_>TR6X`0F8CnhG6yjrc2DwRr|_@S$-izte4U3bsA6h%SPwEtEJ zAjkiY9XB^O$>;MdDc6|)kmHhZ1H&*_Sy=&~P$oWI$T&7m5VHgIgs_q3THW?ZkV(QRsrcQkapxJEl>2;a8N){mm zPtJ!-{<%lJUMD>^Ha4wk8c`IX>pGcC2G8@bEQ<%Helql{OzX&1-mH$WSv-m?%b4Gv zGFQp6EDa!=rkOyI&*xcPU1fN97$B)yU;jcnodzJ6%Q5qN3J$^HfdSIvI5>!^syjoB>FVw6rQL1=B$qcj zItsvUUUtJLcXxLubmf5{2(WEC5y$cGImaCQ1yjBto(M|El>h($07*qoM6N<$f_HH* AhX4Qo literal 0 HcmV?d00001 diff --git a/main/resources/assets/rm/textures/items/random_axe.png b/main/resources/assets/rm/textures/items/random_axe.png new file mode 100644 index 0000000000000000000000000000000000000000..ba5cb726330f37760d10a50cf35c786df8f192a9 GIT binary patch literal 1351 zcmV-N1-SZ&P) zaB^>EX>4U6ba`-PAZ2)IW&i+q+QnCCvNI%BYX(zvtJ`GvrwsP*Xj zzQB?&Gmbr=ofkw@EGv1;+2ko}t?bJQzj?U%-d1vc^JCnCv@2Mc;_W=LE(YCXD zueSx_o*VgcKOEjP|QxUaf$1w<=d0&0;8#-}Z6kR)}9VrStYL6bIuMxqs}Da>+W z;k9mB>s5|exiLoKFjTB79}7J*zEVy{W6aQHHu2;NxMapOU`*xa8>1iykIkuD{H{Vb zabs?TRVe5d%@G^SrW`Jc<7;f`(pfRi8B69k8XVeo0E)1-0~kcNW#d^Ldp1ENFoVYk zeKL@XS}9O~os-5ippB}BI8o->m=k!76(@%osRcqf^%@{e(hRYzb%>u}BVs7y+*oqX zc^6!C$z`wJdgr|le&(ngG}z#R4mLXH}3bkWBUV@xq8Ns1Kal23tBOey7zMKfGy z%+45*bCIIO7FT=;C6-ijMfg-(UG+88SX0eSnl>E&=3Af^TWYy;M<{jMUH3io*i+8~ zu{Lzr;f5b!#F0imRoklGtHuw?eXbgB)uv*0jSE-RU=HEpf@eB$Q!^+gmZ5l<3Lv0m zYGxu^D^t0tnMr~};RLF&o8mN{ia|l!S=``LyQ^}a>PF7~NH_VDax|rThjKKf+sb{^ z?TKnFuNy^|K=Tw%PK^#EHVo)7OU(05dby_GI(Uzxo{rYYmJ}&5udY$BIa{UsI{1fP z=~pm-VhTO`R9e&~A3)WhwfzJlBl@a-Kzw4nSV`>A3XTpWEt*k~BQ|MVhniNeN~p%PXF7|t zag7Fg;aGig`g@l%0t>F))v5R`)AfMbu{MHX18pF*xO3ABBt1d-5=i;UXzPKfH`Dukz9-`RIGZU4YR<_6E`B)_#lSfI|6A*9g5qvzJrtmpS_t zYW}O6_H}B0b3uL?*<+vQQoWY?9bRs0dJ~}k)6u}MHvGq@e*uLM6o?`-lL-I-00v@9 zM??VX00000nH^cAN%MoKgj zaB^>EX>4U6ba`-PAZ2)IW&i+q+U=HGlH@21MgLjFECERf!E!Kb; zU=X7z;t4zMLgI1fIf`HglBD2HxU(>vyeQi9Dro1AwR6|zlX%zGlXkvryF5zaeB2K4 zNuzBieX`4S7=EU98JV9jo4>#Av>T(PG5Wc>5+am}ZZGPxl+}Xc0V!oY7Eug8McY=% zC<#lfAl5+hK&g&0G1MLus8OLoebtpJrWm-hp=Pcu%a+7Ab6rrvEHv08OLJhvQbA2% z=IdN&jhokal@dm71WzUeqe=6*xQ~oKDc3+_%+w|F>8cgx#WSZdjY)3a;RPTxwx+uD zUB%tyjlTmcAgD{`gasCVoFNXSTW-nXEbvnwoIke)S=#|15ynG(~P49AXK6l&}1oq6@nsvEF|PmQPJR3 zHL7XStR+eeQDcl2=NVN@ESOp}vt-#yk`$7rm@K7~Q^}kKN0{cA&E=GHE(L=Ygf4ix zz@wCd4>`i2M?CCEM?OkL`qWUh#%eXyTub974couPX0D}{Tj|u1N<85=&5ij^PTkL+Wp@Ee*=9{_aj~`?)k4!K6ifQ>wY)`B-(0?(xevb z8aI1fD)y36P{Jd;!_>fz1&&00!B z#5-E)V)}~OjY?_v zo2SKdQvMd*JtV_VqV7=cw)VI7sP`>zF5E8o@$r&>Q|gNxxI@j0r~6>6_m8$1*TME; z{@;)3-W>dIp!aLRr&o6W0T~kIT)+9p3jhEB24YJ`L;x8882}mMFMhKC000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2jUAB3Ly&gCs0rT005y$L_t(I%VS^|@_-RtKv!4y zKa73(@?}O`Vlcpju9;D}mf`aEForj8-k{n96_=Eh{EyQB1_lO(i|a$NIu(~Vh5`D4 ztFbD?CC)@?AX3i&U0vP(mo8nxt5{D*ok7%mB1)_Xi2}xI1_djyHBWp$m=xG3#x*-Mtp;AOe84B^p00000 LNkvXXu0mjf^0RM% literal 0 HcmV?d00001 diff --git a/main/resources/assets/rm/textures/items/random_chestplate.png b/main/resources/assets/rm/textures/items/random_chestplate.png new file mode 100644 index 0000000000000000000000000000000000000000..bfb79fb6379f7589318b731335793ac4f1728fd0 GIT binary patch literal 1429 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 literal 0 HcmV?d00001 diff --git a/main/resources/assets/rm/textures/items/random_ingot.png b/main/resources/assets/rm/textures/items/random_ingot.png new file mode 100644 index 0000000000000000000000000000000000000000..9de6343caf2b0373b1e926f7e34c984e30aafebf GIT binary patch literal 1526 zcmV zaB^>EX>4U6ba`-PAZ2)IW&i+q+U-_bvg0TW{bv=k1SAkb%fURVW(U3eIoQNWe3N_o z_H^}En~DJedYmKVxc=kc;r_wHl%k8GIax{`Pqb)UFv$LRj-Gtn-)rJ;gD1H=7Z{>| zJ{;53*Zu;z+z)76^6gpfv@Sh)DWX&H{)B0Hj@Q1t6a_xywC2v%xe_13SwF5z?NWZ7 zM+F#7pf9lF9w>Ocd0GkZAmmV{3~vs~QzH8~;vGVMjh#D(7x2!}1v_7sJUm0;d|DgQ z1*0V=xyZw5hOeyMEI%zs_v#;?2kgdZd5nHUS7HKE$*rJnq3k1U+yG_Rk0mt4PcYWK z8Cph&6^u2oxuI1@Mhs*JMQT)NP~ZDX6)r~Z47i!Oa@b`V@Eg~ilsFp=)?lGIaKxd4 zwE!`nzR+&hc6*gFEH}bVCMYAE_|V)d;jgq)(HJvziF`h>f?qsy8g5MH<{P^}2#tlQ z?D+1@J>-plAU1$O*=PfIKduI8TM7UXYzv&B00w+QVpAfo z%t{0tGx#a+9I4J57$6aDBg1?R#1H5Tmq!2ni`DsIgE$R*ZuD(U_4# zMS?^pB1u%Tn3NP!Op;R4G;37RpixDWs%AAUIpmlnr>r?=%f;9NN|;zOb(YPn6c{Z~ zU2wW!M=2X`VT+q=Y11ulwv~$Xsj*5;Rco$ROXC(Au768SUCYf{>C}-*J$C7-YtP+! z8OXH}MjSHI(2<9YaCnvVT#+PSCuC6H^}s3L7@`TsW8cP5R~D{a*!t6@6FHh;>SMt1a|UM+nEXap?8K zu_66f9zsZuhJA#3M7R%Gt5TN`h35Yy#$P7d$MfID&-L!B4ccII*Iyfr+`Q~7{?=31 zHV00$_o_pTz>^_0{O&AyNml!qs`(eC_!o3cIMrt>A z45kQ$Y0VqbtZuYz%X&vGMO}Auv7&>>`R1Chin{k2iWeBEZOeEe8x3XfT!@GJ z-CL&O=KjO%)0HWZoJBMz-rnL6BiQd? zoG4*X^7(aH*@~ov^m+`yZ3Kd4E-lr+oPyh?Lu-uRjakEB1KEAHflo|AMA c*XNP) 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 literal 0 HcmV?d00001 diff --git a/main/resources/assets/rm/textures/items/random_meat_raw.png b/main/resources/assets/rm/textures/items/random_meat_raw.png new file mode 100644 index 0000000000000000000000000000000000000000..f9ca08834bf41a3baebbd3c39362298115a2671e GIT binary patch literal 1761 zcmV<71|Io|P) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1bvmLw+({O1%t0ulnmaaiB;4SakDOJ%Lyo}O`L zcLGWfA|eD?rvLNzFn{4<^1+CY8d3-rmn2D?QBk|EU6PgcJPmuRJlW0lf?;wf-EM|{ z`e)eveL$3BFVA)p>+z$<5nYbg<>t(@e){QgARDY50}3+sscde6Z0zUJuxf(R7TySC=IKsbJ2cZcAA;bS!{!qY>LMquixinR4UR6kX221<3f3IV ze8oa*-n8bcq?ox8dNRQoO*UU|^U3%-_vL7eDP1C~7gmUir=}6cWNtpu3xv=(nEHk9 zy3K=b>;th54EhDLVu9I~?V@t#<8E2YwQvk@g-{jgWOlvKm48HCCqRG;^1JKK?w0DG~$xaxil zv@OUH+(9iMxx90E`%za57~SuNWY=wN{YkanWwjhft4vI6nvAjwOpJAJhgaZeE zS3};E{SfEKx1KYYj{Rr%;d=M`L^D^vSo2xm0OZX;SA41*!a_Q%WYK4w7tAKq5ZbL3 z^gF(@-yEij9c(`KFvx4zU~VJ4ZnXS6J8}}szJu3}w2PQ4cbuL~>{6T7c5i%4<9cwU zI?8ahnnOnu8MR5-0fsz(PONpz+DV2UlRTK86>1(3zF`p39btQba2dyn-_TZ|k~Vg+ z;?%HP*^{H)+s@<%ZVQm09RKpm_=C9o26^G!w22!oPzm$GK@ZclEBuNA=xy zd~DhmWclc;dA{JOYtM!e(Ld4r(*Q5}zl(SU{B;`LBQy^oc0R0-6nE;~v)*^F4{3AJ z|6k|mEiF5KlUy58+nOl(e$1IS1^zUYQ<@)td3+3!_mO??^(%9KF3tb*b@XSB20jFn z`4<9R4J}%33Wxvz00v@9M??UQ02=_va#^#V00009a7bBm001r{001r{0eGc9b^rhX z2XskIMF-*w78VaII1z@G0003*NklS6otKfN@yR!b(f`dWAL{wvgop4(Zt#mB8f8NqI7gRNhs)D&Yka^`v?3n zNM6#QYC2?mJ^_Og-0g0`xqd*yDM`7?&EtFm0MKwssP(Io?Z)_&G@}Fnpyj#We=^ki zRlZg{kn-)o$-{I_zD0(VPO<@ zv1G{ekXmqC9nr6@o8p~vD|1tta4+v;@3z8q-2~+p72Nn*3GA9#qqE{HM%M&z<>dwT*t$EmPrA!Hoyug4^ghxkZbrTl?k zhaY$ftXyJ2JK_LPTv?X{{J;YM1sn9giz<-Nxr45hLy${g|00000NkvXXu0mjf DZPZZF literal 0 HcmV?d00001 diff --git a/main/resources/assets/rm/textures/items/random_pickaxe.png b/main/resources/assets/rm/textures/items/random_pickaxe.png new file mode 100644 index 0000000000000000000000000000000000000000..6652b8bdd952b2de82bc53b23d6896e7349267d5 GIT binary patch literal 1395 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 literal 0 HcmV?d00001 diff --git a/main/resources/assets/rm/textures/items/random_sword.png b/main/resources/assets/rm/textures/items/random_sword.png new file mode 100644 index 0000000000000000000000000000000000000000..d993294d74bc3071e8d620743760c6dbdd2e1a55 GIT binary patch literal 1471 zcmV;w1wi_VP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1bxaw{ne{nsjH2}nEy%i&oyJDBCq;gOExB({@# zn{oqcwIt3FYE1pVe+T`8OE?;GUSmih7+fy7BpHKf_O*L9Zr#tsybV6c>3Sd#S@d>K zLqGZ%a{vBgkaWw|;4agPMFck5j635lmZ#Dhv$gB4Ut>qt@D99dbcdbEM{YktK_(o9aEH;6 zv%izu%Z=Q#_U8G+gV2nc+v^6qF@6}}&fK;HfsJEr85flrcwClBirucb`b+v>R zvBV0-8rUpol{m2g?ZJ*4XCB;FU%4VgCtVc1NCo0k7OhH>x=3-e@esAiHUdXtD_FA- z%M}YRziIia*a6KnhNdu#G2Zyp=qurG+GS{rnYzp-URWV6nK_LxCUf%+EfB)vVComX ztIXg(81xI~hy`X-wu$2TJ-6)Q*+S17M`mvg)^-d4BKYJz z;26PAM&x3h6fnTvOJf?~#@YaKqDZ_$RBkPIh4Ki zj=cB5tB*eU9BgpGhY&Q(8kN_1oZ&RX zbjI5m8aWp!wz%R;C|Y7kC0C?Rb=B8UwZ@uiZqjVS_HUsnwb)Y2ojX#gyY74F+G9^W z59Hdg!wo;e&=E%(`C{#``jIuhW9~6)d{~=|xuvJ?tU;{$W`buq@sl$!CXT_lP6m+B zGC4Dmos-Gjnwio#oaq|4|yZ+e#D!6#~e-S{swb2sXNSl z=IsmCT3%liy9k=QaAIogKw*PIk6B`#-=tsn^pavfuCVJzQ}^jHMzo%59W_Szlep;h zI7)Gzokx=92>R#Pr&=AaA%REXYUY@I2VRNy1c~~So*pQ08*SUi?#ewOw`PFV417`c zxLBl4-b;%sd3MxYQ&6*G)q*T=Cvan)_4G_Zb!@x%s`Zk6n}J9%$U@;Y&b0>#w8y3+ z)i+Khbzt~o(C8I3Ujd6Qv_64#E$$`I$h?Z?6R_w)>kq-A4MJ(#8!+(kErwt=GOcS( z@dIQCo|}A#qI_$~I0(Yl3s=w>>>pu)5jn z#`a=>+OBkBCimTKmWM}yC44XTOL$yIslUxk`VFu*X?fvG&jEfZ(GB@O45`(s1Lp#yn%C?}PnWPw&C4*fjVP0z4&%&K{kAK~7n~j*ID2xu6y4 zL$Du%{2ka|SEegYNge-2P8EP<%Wq-AP>fHLyj|^I%%i8l;M|x%@Bg}?=`FryD1HC{00v@9M??Vo0Q3L=bZP-V00009 za7bBm001r{001r{0eGc9b^rhX2XskIMF-*w76J_t&}s4z00020Nkl#Vcc*spf4G9#Zzp>Y{~->t?Yl>@i7B&gk_u;iLIV`Q6Mb0w Z*9&zsdc{HlMd<(l002ovPDHLkV1h|PyUhRq literal 0 HcmV?d00001 diff --git a/main/resources/assets/rm/textures/models/armor/random_ingot_layer_1.png b/main/resources/assets/rm/textures/models/armor/random_ingot_layer_1.png new file mode 100644 index 0000000000000000000000000000000000000000..6d90675f9098def7f463710ff979abe4c12eb042 GIT binary patch literal 4085 zcmV zaB^>EX>4U6ba`-PAZ2)IW&i+q+TEF1awI#hME|*pUIOP~IULP;2XFa(Kt_&Is;X|? zuP2!@Ly^G&4#44Hs`-EaUFtvl_*lI1A>~+N)cpA3i>+K_eSXfn(SE<~AAfzs|1bBI zy?tQ0<#>1J-#D-5EBC`=K)Pl!?e)G&{hB9V6Pf$O`^U-3a(z9QuZf&J_s#XcD%ZH` zpUk=bY`>k0P?h0^hQAiiOA-8bRwzPo$PzU;`{F74|FZkgNAFW9X$@>=s)SA7Jjs4k;! z5bi4;Y(VMuu*h%XFL0gqZ{as%V#i|xZ#I6rGR0WXUdEeYs##|4_ij2{^mf|ByS3fA zeJ{IYi|yMfUVhE831&2ih__hRKa?B~`Tyib8I4CTXSduEalu|2;R;I3ut~^m|v&}W%LW?c6+)AsR@aevX z9((G!mtKb*Zjk;Xj-*B&Wz=aVp)~yrGtM;gEVC|RZMo%FSaGG5S6TJ$wacroUNdi= z``K&e@|t+e@8{CPYurxhHiZ#73F0$6X1&4VNjyM6Tk)CB#(OKC6QAi~Ns3_cnhD~Z zVZ>v2&`)Cnsekj`!*f6SO$Gl)ezTuEr^I#thUb*H?(*DMzkTDiQFldg+d-0rf+;iz zvGKsn)#fTS>AbJdR!(hcCYZ+cH3#{cOJ&V8dzc}u-r6esrMVVKtgy_mp}9tEEy=AM znSytWbMkJByh2nqFL`jy82O;3DECKgVWt+;f-Xm_0L_Gb_7YmPsa2Pa%|7bVLTaTr zXnIfRm+WosCBv*W%u(3qQoXG);~HY1>Cu@ikC-}hY&M0xw-Onw?V2TwSxSZ_hw;IL zWp%1uE=gLcx?KG2`%e?46tEIhu_IGjLIs1#7Agq$G-H}muP%l!U6{~ec_Uz9&)!gCe9`;k3$-$PgV8@f*`N6h2Yz0gAWPh)!Hb{xz$7IGZ|3y zmL#=j&xE9zO^0KezApau{V@@fCy79)X>Z=9LKyEzq82V}8My(EcoEZG0-bHm9HMAc zb7NJ($J9ju#d7b~?AHW&wZL?(_cK8xYvLS3;1p|_t@tG4l&NQZBWbjuHdbD*3CfA1 zK?*W_e?Ca}j=zR&Ha6nQ)-i`FU_Qpo&5wiuE4e;+DJGVB4`_d!u><-!oS&ju-NV^b zFd7mw{-j~vuSCxt$PSv5fn)YjNCS&yPST*xGJIEkHYfOYumT@=qj^%^#N`j z*-54fwoL$ljhrNQAUYe5fN7ZuR1HYZHjqGL3=$kd><|QRZQ3?;gM3#Gn^7t#?`-tr zIC2S$B?fg{X^4dw#xlN4Tg%|j2FJ!A!IpX-lxFDJmg>Rqoek7G9eiSgI%<#2G;yRX zN|rGNG%FC+FqAl%#4K1cU7HcN*B;!8WfFZn9w}&f#bkwq8>C-#54AB$sEihw*eR*^m0$0+uduVP4R9t1HY^ zN#MP%q0Tba-I$wDZ4IJ0%-!*8b5X?|Es<+@fatXiTK=9+q((x^kq=XM-dNGhz$fCh&FxS~>_{^*nQ#*!F};9i)K~~^PG)Eb~}>KGX4c4Ebt@`e2Abew8pcb9M16 z&dI{B_@+E$MsJh6X2VV4nJkHMG!SX**b2Pm5i^^i3 zw3~W}w}*B!Phg1xe20tRk#M4UfL{uaN7q%2L?=b&uEL6$HUGKTQvZg?5|&kU5MfU| zk11c69tsqKvqMf+V7r*dE?gJyZ`!A+q3q$< zMc$W%v}@9&5rFJU9Lgo2&`}~#=7cRN{<$aYH`L}T80~I=Fx>sXNOXp|Tf2D`3@LzH zXHlC1?A!+Z2eJIs5$Y#TygK3~O1{L1x&;X|dqV6HD9>T?9whv|#)$f-ku2^b9ik@) z90{+aA}~Xxm!|Il#?1oGi58G1cj9dL6p4_>*0uW5YWRiw*t(@!Q@|*3x7UmQu53-| z2}7(6G|8rQ*bzB8h>Sc4F8cZ!r2GY?{_=!MXNnG5qP;rQxS= zY1tGfrIxxWgezW)qH^fHJ#{KkjHe5iMjGRb$Z4-42fn*Y97W)L?WL=nY0f^uKO%u} zZ(`O?+~s1>hR&xUDr*%p^dVyPGZTL#V!t!>#^c!#*^!C&a0Y-muH3_`*bc#>z}WnD z1zU~yEvMr@Edd)gj#MW#q)j3EPw#xwh&yKbO(jwX<~i=LBG+{g+2?buv{sG9DRD-j z@n&JO(?Zu>Bp{)i{=D&0SLfyK9^d{3kFOqo_4mWwyWdlS*?sU{na1E6EGt73XD}<5 z$6#o{&^)f5rAfe(YJlazr;4_TXiZqV7G3+`O7b!Q!%@6I1q6C|YYgmI_wf<63-_t_ z(2-UpchOM%UWW}%^e|KC`c6OnHsGqI3LO0JWJ9aP7#-gQ6Ulj)i6z(+bkN?DMFoFb_WR$pp{GY_ClC zt3J99hxm+7>g$8>`h({9XW^wpd94r~Q5yrn790)2sss?>8bGb$?G5XeP#=Y$`gist zUqV&;-EMTsITjc};u2O6HU6U*Q@>fmeksOO&cvaiQ9_3-iq70sS9|jdcy8eA=m#D3 zEj+&u&K()`6Ewt^KlNp2K1~j+AK!x$IqgKSZ#QEV>7ZIYRoCy1bVo64N1!T4Av^)~0+ZUBM82iFgY+^{8s5<`f0be_&`_s` zGt|u+?8ui)ul;hEBWjH?82rUoUiZVIO;mAFS7$7TCsEF(_uZFvxsQru2l@uv6P-kf zs0Yeu(^4h|$c(t9Ulkp)qjaAEQnW~d9zDXii_P*4>Ry{dW@TC@2aHWl&WKIaS!g6} zCiI2G4N|)cHx|hffmN)TbkN*$+pv*?$73eKv&-odI6}a)i$22M+6gOqk0OT<~bpm&%Xi56_vFb7qmSQpzR``kGIX#{RN zmnv(A%rsXNd`^~HVvzpSiHe0&NN7iQDlEcgV^%+YRS*!(!!PSwdi!F-y~{`Me@ z35vX{|BYwrx@6p@ndy#<6PmF{#>FkdhMab*kH_6PHzX^@O3I7#zk|XP2>G2;8e;TU7)0unv~$Dl*m+DjP0Wb> znhJ%~t2i7MVi|hbJBpowGpcK5j1Lp^cER$3irTRBE~?7ID1N$_Jw>(=_N!{2U>pkQ z=;u4!Wiu4D^F8b5clCZl-UX#mkShNJ(_LUvQ$v0E00006VoOIv0000a0E4o&huHuC z010qNS#tmYE+YT{E+YYWr9XB6000McNliru;tLiI3=5IiWb#LvgAtN6M9@Ce&Mbp=JmHwg~@Ih_A| z`&$p#8bFf-H-YVCAj&*%8WqvmliS#eLQLS^KpJfh?vc%`O1I_gv|R zt1?AhGYQqI?&faVW1N#__s?zT;S(81G?Fc8lrAZq5tE{#GTA;V=9JtdXc}`bNqRK;hgXS7&H|7o zcv>?hlaK!IU7s(>B-dh9s**Ks0GUyI&rMZEWken2PkR^S>-h-?L+l;62xl{#j68h5 zzhU1y!l-q_D>Xo#+fd1*k>2F>1kRVziINydNtqiD&5$WetrNH4?+a nHd#_COPLBg%;IBl%Lg03N#Ph&;K$Ch00000NkvXXu0mjf?o7_h literal 0 HcmV?d00001 diff --git a/main/resources/assets/rm/textures/models/armor/random_ingot_layer_2.png b/main/resources/assets/rm/textures/models/armor/random_ingot_layer_2.png new file mode 100644 index 0000000000000000000000000000000000000000..1cb598afcbbcdc199fa3c13441f0575baf34e8c3 GIT binary patch literal 1976 zcmV;p2S@mcP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+U-|clH)cE{O2ih1c4w3@;H2oS*YdN7}#pldfC%{~!WE0-dUr<|_;peO$)J8@=6~dd{8MEN1JBuBD7jJoV}%b6?q6`j*? z!;$k}tO6ipS59T;cOT&f>;2=vG7yxV=7Ip*(N7g!=*}(PI5XDCk;1i|N#~^iDS~Yj z2IK+=9GO@s)1fgc5%O4oPlM-?Q|v&1MB=1iz=k;koD$tOo>AIsqr_8;(gGlaGb^CM zb^%x^3HYO_fJ04KQV@|WDn+Wa%sFMrIcxSB)s!`xQfqAuMjKQ&Jl(LOwH`b7)TQUHz4Y4K0DVRpGV;(-MjdU&$rIau=BZ(pS!Y|c zK&6$Ith{uURaY}`&DfHOWm79wt=&+&P<=#=o{;+*HM&r9#L`};chn$O{ZK((PQ)<- zVlfdAS4RMZj*i(;D5dDgIc7(V*c1|h8i|85$q@sBX;BoT8+Lc(zQip^`bW6MA0ZbU zy5E6ZaOf`NUU7Sa+HAX{@CL|tq385qLt(>$Raz{~d(yu?hhJ6jzoP$)B9m@KyB*-q zA|AFT%5|v?l+!h2iQ4GhD!#hRP{RX=P2l6QnS13vd$dkg)%uv$LCC>nWF}jju!)v8 z*)eQRT!Ex3`ps%iNNh}}?t(V4wJc{Wgbm8*d;^pgof*r$^v*uH#WfV;40g~wRyw1w zfGU6qr|rMTFPy_qE#zj{zz8~PtsZpk2zJ2XrHm{lSz%W7sJqRT5jFN5dDLYG*Sfao zc~ztuvxT52b-z7Rj{XLGEB9tq5xro4`Vikshk;*ZEJ?9;miC>wv^0jw&40v z%~wy^?V{db@PUz7Ry!np7tt-C@DkBOJU$2b?-kP-(XnGfOc#`@JOv52H~w5M51p)K%zCj_{rxr#5Jw zTghGHCw(*%x8uWX_@Q0;j*1T3-Kp?3#NURw-EwpSNdx^V`+~FsF#^~N5T9Zf`gYkB z0b&J7@HCOr5ZfM7=6M8EkYv5qo&=@IG6+9;<1xTqw8V4@k7J9s5Stm|2W^aGziN7Y z=&gYVO~L1--{Dnow|<9L;Y!ypdlf#C^;wgkJ9PX(aYkLxj8h(%qT0%>VqQrYT2R6< z`HYO$thO*V1uv$BitL>PGQB^ObEJU?X>3o(PBI9cVzi@uXHyW|!K^k(W<~iN2n7WM ztiwQs;w8Msju~8^@E^f#Wo@P{45!pHv6Zzc9vnTX;y0Q;J%g3u)xu9}dhjW{(f^eu z?X1IJIDK}HJ0<9pNKU|uTK7cuQGLTs%#d@UrTa!hkw;^WXyxD6hVa^_@Rrpu4~#i# zUWUP%M(w2ux`h<;F~OF%EbE#tkEG4B9d&rOfUt*#nRi>CDl77vqB@;VbsY;1gGB1? zW_W}eQ=Ll#uW?bIE0TE1xIMQBZ-a5H&WkX)qx7yo$7x@D{z2j!W+7S0AIzAuGctxy zhWA8OC`PG%YNTgx3jW%2wWiI`ZTK`>%k7 zBLDyZzDYzuRA}DqmrV+TFc5`Dk@g~j8_~0PAG7i}-bUPrIY~F^rW9?{VhGaeeBUmU zpT#5d@*)BN00000007!Z-YR+LR%2_DGYgRVif(SDDhm}iz$-xA^lDll^A(42Qse=z zJs--!Jt7qmsmfy2^P%I@d4MJm009s{H(B%vvCrt1r`no7&H<0;TsQqQK)Jc~rpo2~ zr}fJ{!#Lf Date: Sat, 25 Jul 2020 18:22:18 -0400 Subject: [PATCH 02/13] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f8d2502..70b3fdc 100644 --- a/README.md +++ b/README.md @@ -1 +1 @@ -# Random-Mod \ No newline at end of file +Hey guys Canadian Gamer here, this is the Random Mod, which is right now in 1.12.2. Right now I am recoding everything in 1.15.2. This will take some time to recode everything so please be patient! From d3f63dc73496c52330c6b700763b030854625bca Mon Sep 17 00:00:00 2001 From: EasyCanadianGamer <39717944+EasyCanadianGamer@users.noreply.github.com> Date: Sat, 25 Jul 2020 18:22:57 -0400 Subject: [PATCH 03/13] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 70b3fdc..112a743 100644 --- a/README.md +++ b/README.md @@ -1 +1,3 @@ -Hey guys Canadian Gamer here, this is the Random Mod, which is right now in 1.12.2. Right now I am recoding everything in 1.15.2. This will take some time to recode everything so please be patient! +# Random-Mod +Hey guys Canadian Gamer here, this is the Random Mod, which is right now in 1.12.2. Right now I am recoding everything in 1.15.2. +This will take some time to recode everything so please be patient! From e5b10dde9d20bfd6f76827569e770c947dedf9dd Mon Sep 17 00:00:00 2001 From: EasyCanadianGamer <39717944+EasyCanadianGamer@users.noreply.github.com> Date: Sun, 31 Jan 2021 18:42:17 -0500 Subject: [PATCH 04/13] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 112a743..f1db7af 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ # Random-Mod Hey guys Canadian Gamer here, this is the Random Mod, which is right now in 1.12.2. Right now I am recoding everything in 1.15.2. This will take some time to recode everything so please be patient! +You can download here on github or at [CurseForge](https://www.curseforge.com/minecraft/mc-mods/random-mod-by-easycanadiangamer)! From fb26d471fe87babc18ae25f743f4d260df4e31f3 Mon Sep 17 00:00:00 2001 From: EasyCanadianGamer <39717944+EasyCanadianGamer@users.noreply.github.com> Date: Tue, 27 Jul 2021 21:18:23 -0400 Subject: [PATCH 05/13] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f1db7af..48d0bd7 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ # Random-Mod -Hey guys Canadian Gamer here, this is the Random Mod, which is right now in 1.12.2. Right now I am recoding everything in 1.15.2. +Hey guys Canadian Gamer here, this is the Random Mod, which is right now in 1.12.2. Right now I am recoding everything in 1.16.4. ( maybe do a fabric version as well.) This will take some time to recode everything so please be patient! You can download here on github or at [CurseForge](https://www.curseforge.com/minecraft/mc-mods/random-mod-by-easycanadiangamer)! From aa867930fb19268a349f31d9df9b1de25f50c197 Mon Sep 17 00:00:00 2001 From: EasyCanadianGamer <39717944+EasyCanadianGamer@users.noreply.github.com> Date: Tue, 27 Jul 2021 21:28:58 -0400 Subject: [PATCH 06/13] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 48d0bd7..08279ff 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,8 @@ # Random-Mod +Random Mod is a mod that has armor, weapons, and tools. Also have a towel hanger, and some food with it.  The armor is stronger than iron but the same strength as diamond. The weapons like the sword is stronger than diamond sword and the tools are the same as the diamond tools. The towel hanger is just a decoration block so it does not do much. The food in this mod has a negative affects if you eat raw but when cooked the buff will have a positive affect. +___________________________________________________________________________________________________________________________________________________________________________________ + +___________________________________________________________________________________________________________________________________________________________________________________ Hey guys Canadian Gamer here, this is the Random Mod, which is right now in 1.12.2. Right now I am recoding everything in 1.16.4. ( maybe do a fabric version as well.) This will take some time to recode everything so please be patient! You can download here on github or at [CurseForge](https://www.curseforge.com/minecraft/mc-mods/random-mod-by-easycanadiangamer)! From 00c355adda28c5571b0b0dfa49fd0ca79f512113 Mon Sep 17 00:00:00 2001 From: EasyCanadianGamer <39717944+EasyCanadianGamer@users.noreply.github.com> Date: Tue, 27 Jul 2021 21:55:15 -0400 Subject: [PATCH 07/13] Add files via upload --- .../com/canadiangamer/randommod/Main.java | 52 +++ .../randommod/blocks/BlockBase.java | 32 ++ .../randommod/blocks/BlockTowelHanger.java | 41 ++ .../randommod/blocks/RandomBlock.java | 19 + .../randommod/blocks/RandomOre.java | 15 + .../randommod/init/ModBlocks.java | 24 + .../randommod/init/ModItems.java | 63 +++ .../randommod/init/ModRecipes.java | 13 + .../randommod/items/ItemBase.java | 27 ++ .../randommod/items/armor/ArmorBase.java | 28 ++ .../randommod/items/food/FoodBase.java | 28 ++ .../randommod/items/food/FoodEffectBase.java | 36 ++ .../randommod/items/tools/ToolAxe.java | 27 ++ .../randommod/items/tools/ToolHoe.java | 27 ++ .../randommod/items/tools/ToolPickaxe.java | 30 ++ .../randommod/items/tools/ToolSpade.java | 28 ++ .../randommod/items/tools/ToolSword.java | 26 ++ .../randommod/proxy/ClientProxy.java | 16 + .../randommod/proxy/CommonProxy.java | 8 + .../randommod/tabs/RandomTab.java | 15 + .../randommod/util/IHasModel.java | 6 + .../randommod/util/Reference.java | 15 + .../util/handlers/RegistryHandler.java | 56 +++ .../randommod/world/ModWorldGen.java | 41 ++ .../creative_inventory/tab_randommod.png | Bin 0 -> 965 bytes .../assets/rm/blockstates/random_block.json | 5 + .../assets/rm/blockstates/random_ore.json | 5 + .../assets/rm/blockstates/towel_hanger.json | 5 + old/main/resources/assets/rm/lang/en_us.lang | 33 ++ .../assets/rm/models/block/random_block.json | 6 + .../assets/rm/models/block/random_ore.json | 6 + .../assets/rm/models/block/towel_hanger.json | 426 ++++++++++++++++++ .../assets/rm/models/item/random_axe.json | 6 + .../assets/rm/models/item/random_block.json | 4 + .../assets/rm/models/item/random_boots.json | 6 + .../rm/models/item/random_chestplate.json | 6 + .../assets/rm/models/item/random_helmet.json | 6 + .../assets/rm/models/item/random_hoe.json | 6 + .../assets/rm/models/item/random_ingot.json | 6 + .../rm/models/item/random_leggings.json | 6 + .../rm/models/item/random_meat_cooked.json | 6 + .../rm/models/item/random_meat_raw.json | 6 + .../assets/rm/models/item/random_ore.json | 4 + .../assets/rm/models/item/random_pickaxe.json | 6 + .../assets/rm/models/item/random_shovel.json | 6 + .../assets/rm/models/item/random_sword.json | 6 + .../assets/rm/models/item/towel_hanger.json | 3 + .../assets/rm/recipes/random_axe.json | 28 ++ .../assets/rm/recipes/random_block.json | 24 + .../assets/rm/recipes/random_boots.json | 24 + .../assets/rm/recipes/random_chestplate.json | 24 + .../assets/rm/recipes/random_helmet.json | 24 + .../assets/rm/recipes/random_hoe.json | 28 ++ .../assets/rm/recipes/random_leggings.json | 24 + .../assets/rm/recipes/random_pickaxe.json | 28 ++ .../assets/rm/recipes/random_shovel.json | 28 ++ .../assets/rm/recipes/random_sword.json | 28 ++ .../rm/textures/blocks/random_block.png | Bin 0 -> 1227 bytes .../assets/rm/textures/blocks/random_ore.png | Bin 0 -> 2226 bytes .../assets/rm/textures/items/random_axe.png | Bin 0 -> 1351 bytes .../assets/rm/textures/items/random_boots.png | Bin 0 -> 1301 bytes .../rm/textures/items/random_chestplate.png | Bin 0 -> 1429 bytes .../rm/textures/items/random_helmet.png | Bin 0 -> 1299 bytes .../assets/rm/textures/items/random_hoe.png | Bin 0 -> 1287 bytes .../assets/rm/textures/items/random_ingot.png | Bin 0 -> 1526 bytes .../rm/textures/items/random_leggings.png | Bin 0 -> 1309 bytes .../rm/textures/items/random_meat_cooked.png | Bin 0 -> 1546 bytes .../rm/textures/items/random_meat_raw.png | Bin 0 -> 1761 bytes .../rm/textures/items/random_pickaxe.png | Bin 0 -> 1395 bytes .../rm/textures/items/random_shovel.png | Bin 0 -> 1365 bytes .../assets/rm/textures/items/random_sword.png | Bin 0 -> 1471 bytes .../models/armor/random_ingot_layer_1.png | Bin 0 -> 4085 bytes .../models/armor/random_ingot_layer_2.png | Bin 0 -> 1976 bytes old/main/resources/mcmod.info | 16 + old/main/resources/pack.mcmeta | 7 + 75 files changed, 1525 insertions(+) create mode 100644 old/main/java/com/canadiangamer/randommod/Main.java create mode 100644 old/main/java/com/canadiangamer/randommod/blocks/BlockBase.java create mode 100644 old/main/java/com/canadiangamer/randommod/blocks/BlockTowelHanger.java create mode 100644 old/main/java/com/canadiangamer/randommod/blocks/RandomBlock.java create mode 100644 old/main/java/com/canadiangamer/randommod/blocks/RandomOre.java create mode 100644 old/main/java/com/canadiangamer/randommod/init/ModBlocks.java create mode 100644 old/main/java/com/canadiangamer/randommod/init/ModItems.java create mode 100644 old/main/java/com/canadiangamer/randommod/init/ModRecipes.java create mode 100644 old/main/java/com/canadiangamer/randommod/items/ItemBase.java create mode 100644 old/main/java/com/canadiangamer/randommod/items/armor/ArmorBase.java create mode 100644 old/main/java/com/canadiangamer/randommod/items/food/FoodBase.java create mode 100644 old/main/java/com/canadiangamer/randommod/items/food/FoodEffectBase.java create mode 100644 old/main/java/com/canadiangamer/randommod/items/tools/ToolAxe.java create mode 100644 old/main/java/com/canadiangamer/randommod/items/tools/ToolHoe.java create mode 100644 old/main/java/com/canadiangamer/randommod/items/tools/ToolPickaxe.java create mode 100644 old/main/java/com/canadiangamer/randommod/items/tools/ToolSpade.java create mode 100644 old/main/java/com/canadiangamer/randommod/items/tools/ToolSword.java create mode 100644 old/main/java/com/canadiangamer/randommod/proxy/ClientProxy.java create mode 100644 old/main/java/com/canadiangamer/randommod/proxy/CommonProxy.java create mode 100644 old/main/java/com/canadiangamer/randommod/tabs/RandomTab.java create mode 100644 old/main/java/com/canadiangamer/randommod/util/IHasModel.java create mode 100644 old/main/java/com/canadiangamer/randommod/util/Reference.java create mode 100644 old/main/java/com/canadiangamer/randommod/util/handlers/RegistryHandler.java create mode 100644 old/main/java/com/canadiangamer/randommod/world/ModWorldGen.java create mode 100644 old/main/resources/assets/minecraft/textures/gui/container/creative_inventory/tab_randommod.png create mode 100644 old/main/resources/assets/rm/blockstates/random_block.json create mode 100644 old/main/resources/assets/rm/blockstates/random_ore.json create mode 100644 old/main/resources/assets/rm/blockstates/towel_hanger.json create mode 100644 old/main/resources/assets/rm/lang/en_us.lang create mode 100644 old/main/resources/assets/rm/models/block/random_block.json create mode 100644 old/main/resources/assets/rm/models/block/random_ore.json create mode 100644 old/main/resources/assets/rm/models/block/towel_hanger.json create mode 100644 old/main/resources/assets/rm/models/item/random_axe.json create mode 100644 old/main/resources/assets/rm/models/item/random_block.json create mode 100644 old/main/resources/assets/rm/models/item/random_boots.json create mode 100644 old/main/resources/assets/rm/models/item/random_chestplate.json create mode 100644 old/main/resources/assets/rm/models/item/random_helmet.json create mode 100644 old/main/resources/assets/rm/models/item/random_hoe.json create mode 100644 old/main/resources/assets/rm/models/item/random_ingot.json create mode 100644 old/main/resources/assets/rm/models/item/random_leggings.json create mode 100644 old/main/resources/assets/rm/models/item/random_meat_cooked.json create mode 100644 old/main/resources/assets/rm/models/item/random_meat_raw.json create mode 100644 old/main/resources/assets/rm/models/item/random_ore.json create mode 100644 old/main/resources/assets/rm/models/item/random_pickaxe.json create mode 100644 old/main/resources/assets/rm/models/item/random_shovel.json create mode 100644 old/main/resources/assets/rm/models/item/random_sword.json create mode 100644 old/main/resources/assets/rm/models/item/towel_hanger.json create mode 100644 old/main/resources/assets/rm/recipes/random_axe.json create mode 100644 old/main/resources/assets/rm/recipes/random_block.json create mode 100644 old/main/resources/assets/rm/recipes/random_boots.json create mode 100644 old/main/resources/assets/rm/recipes/random_chestplate.json create mode 100644 old/main/resources/assets/rm/recipes/random_helmet.json create mode 100644 old/main/resources/assets/rm/recipes/random_hoe.json create mode 100644 old/main/resources/assets/rm/recipes/random_leggings.json create mode 100644 old/main/resources/assets/rm/recipes/random_pickaxe.json create mode 100644 old/main/resources/assets/rm/recipes/random_shovel.json create mode 100644 old/main/resources/assets/rm/recipes/random_sword.json create mode 100644 old/main/resources/assets/rm/textures/blocks/random_block.png create mode 100644 old/main/resources/assets/rm/textures/blocks/random_ore.png create mode 100644 old/main/resources/assets/rm/textures/items/random_axe.png create mode 100644 old/main/resources/assets/rm/textures/items/random_boots.png create mode 100644 old/main/resources/assets/rm/textures/items/random_chestplate.png create mode 100644 old/main/resources/assets/rm/textures/items/random_helmet.png create mode 100644 old/main/resources/assets/rm/textures/items/random_hoe.png create mode 100644 old/main/resources/assets/rm/textures/items/random_ingot.png create mode 100644 old/main/resources/assets/rm/textures/items/random_leggings.png create mode 100644 old/main/resources/assets/rm/textures/items/random_meat_cooked.png create mode 100644 old/main/resources/assets/rm/textures/items/random_meat_raw.png create mode 100644 old/main/resources/assets/rm/textures/items/random_pickaxe.png create mode 100644 old/main/resources/assets/rm/textures/items/random_shovel.png create mode 100644 old/main/resources/assets/rm/textures/items/random_sword.png create mode 100644 old/main/resources/assets/rm/textures/models/armor/random_ingot_layer_1.png create mode 100644 old/main/resources/assets/rm/textures/models/armor/random_ingot_layer_2.png create mode 100644 old/main/resources/mcmod.info create mode 100644 old/main/resources/pack.mcmeta diff --git a/old/main/java/com/canadiangamer/randommod/Main.java b/old/main/java/com/canadiangamer/randommod/Main.java new file mode 100644 index 0000000..de81e53 --- /dev/null +++ b/old/main/java/com/canadiangamer/randommod/Main.java @@ -0,0 +1,52 @@ +package com.canadiangamer.randommod; + +import com.canadiangamer.randommod.init.ModRecipes; +import com.canadiangamer.randommod.proxy.CommonProxy; +import com.canadiangamer.randommod.tabs.RandomTab; +import com.canadiangamer.randommod.util.Reference; +import com.canadiangamer.randommod.world.ModWorldGen; + +import net.minecraft.creativetab.CreativeTabs; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.Mod.EventHandler; +import net.minecraftforge.fml.common.Mod.Instance; +import net.minecraftforge.fml.common.SidedProxy; +import net.minecraftforge.fml.common.event.FMLInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; +import net.minecraftforge.fml.common.registry.GameRegistry; + +@Mod(modid = Reference.MOD_ID, name = Reference.NAME, version = Reference.VERSION) +public class Main { + + @Instance + public static Main instance; + + @SidedProxy(clientSide = Reference.CLIENT_PROXY_CLASS, serverSide = Reference.COMMON_PROXY_CLASS) + public static CommonProxy proxy; + + @EventHandler + public static void PreInit(FMLPreInitializationEvent event) + { + GameRegistry.registerWorldGenerator(new ModWorldGen(), 3); + + } + + @EventHandler + public static void init(FMLInitializationEvent event) + { + ModRecipes.init(); + } + + @EventHandler + public static void Postinit(FMLPostInitializationEvent event) + { + + } + + public static final CreativeTabs randomtab = new RandomTab("randommod"); + + + + +} diff --git a/old/main/java/com/canadiangamer/randommod/blocks/BlockBase.java b/old/main/java/com/canadiangamer/randommod/blocks/BlockBase.java new file mode 100644 index 0000000..bc1955f --- /dev/null +++ b/old/main/java/com/canadiangamer/randommod/blocks/BlockBase.java @@ -0,0 +1,32 @@ +package com.canadiangamer.randommod.blocks; + +import com.canadiangamer.randommod.Main; +import com.canadiangamer.randommod.init.ModBlocks; +import com.canadiangamer.randommod.init.ModItems; +import com.canadiangamer.randommod.util.IHasModel; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; + +public class BlockBase extends Block implements IHasModel +{ + public BlockBase (String name, Material material) + { + super(material); + setUnlocalizedName(name); + setRegistryName(name); + setCreativeTab(Main.randomtab); + + ModBlocks.BLOCKS.add(this); + ModItems.ITEMS.add(new ItemBlock(this).setRegistryName(this.getRegistryName())); + } + +@Override +public void registerModels() +{ +Main.proxy.registerItemRenderer(Item.getItemFromBlock(this), 0, "inventory"); +} +} diff --git a/old/main/java/com/canadiangamer/randommod/blocks/BlockTowelHanger.java b/old/main/java/com/canadiangamer/randommod/blocks/BlockTowelHanger.java new file mode 100644 index 0000000..3059191 --- /dev/null +++ b/old/main/java/com/canadiangamer/randommod/blocks/BlockTowelHanger.java @@ -0,0 +1,41 @@ +package com.canadiangamer.randommod.blocks; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; +import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IBlockAccess; + +public class BlockTowelHanger extends BlockBase { + +public BlockTowelHanger(String name, Material cloth) { + super(name, Material.CLOTH); + + } + +public static final AxisAlignedBB TOWEL_HANGER_ABB = new AxisAlignedBB(0.1875D, 0, 0.1875D, 0.8125D, 0.625D, 0.8125); + + + + + + @Override + public boolean isOpaqueCube(IBlockState state) + { + return false; + } + + @Override + public boolean isFullCube(IBlockState state) + { + return false; + } + +@Override +public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) +{ + return TOWEL_HANGER_ABB; +} + +} diff --git a/old/main/java/com/canadiangamer/randommod/blocks/RandomBlock.java b/old/main/java/com/canadiangamer/randommod/blocks/RandomBlock.java new file mode 100644 index 0000000..a2d5a5e --- /dev/null +++ b/old/main/java/com/canadiangamer/randommod/blocks/RandomBlock.java @@ -0,0 +1,19 @@ +package com.canadiangamer.randommod.blocks; + +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; + +public class RandomBlock extends BlockBase +{ + + public RandomBlock(String name, Material material) + { + super(name, material); + + setSoundType(SoundType.METAL); + setHardness(5.0F); + setResistance(15.0F); + setHarvestLevel("pickaxe", 2); + setLightLevel(1.0f); + } +} diff --git a/old/main/java/com/canadiangamer/randommod/blocks/RandomOre.java b/old/main/java/com/canadiangamer/randommod/blocks/RandomOre.java new file mode 100644 index 0000000..b74e5e3 --- /dev/null +++ b/old/main/java/com/canadiangamer/randommod/blocks/RandomOre.java @@ -0,0 +1,15 @@ +package com.canadiangamer.randommod.blocks; + +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; + +public class RandomOre extends BlockBase { + + public RandomOre(String name, Material material) { + super(name, material); + setSoundType(SoundType.METAL); + setHardness(5.0F); + setResistance(15.0F); + setHarvestLevel("pickaxe", 2); + } +} diff --git a/old/main/java/com/canadiangamer/randommod/init/ModBlocks.java b/old/main/java/com/canadiangamer/randommod/init/ModBlocks.java new file mode 100644 index 0000000..67fdcf5 --- /dev/null +++ b/old/main/java/com/canadiangamer/randommod/init/ModBlocks.java @@ -0,0 +1,24 @@ +package com.canadiangamer.randommod.init; + +import java.util.ArrayList; +import java.util.List; + +import com.canadiangamer.randommod.blocks.BlockBase; +import com.canadiangamer.randommod.blocks.BlockTowelHanger; +import com.canadiangamer.randommod.blocks.RandomBlock; +import com.canadiangamer.randommod.blocks.RandomOre; + + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; + +public class ModBlocks +{ + public static final List BLOCKS = new ArrayList(); + + //Blocks + public static final Block RANDOM_BLOCK = new RandomBlock("random_block", Material.IRON); + public static final Block RANDOM_ORE = new RandomOre("random_ore", Material.ROCK); + public static final Block TOWEL_HANGER = new BlockTowelHanger("towel_hanger", Material.CLOTH); +; +} diff --git a/old/main/java/com/canadiangamer/randommod/init/ModItems.java b/old/main/java/com/canadiangamer/randommod/init/ModItems.java new file mode 100644 index 0000000..7381cfc --- /dev/null +++ b/old/main/java/com/canadiangamer/randommod/init/ModItems.java @@ -0,0 +1,63 @@ +package com.canadiangamer.randommod.init; + +import java.util.ArrayList; +import java.util.List; + +import com.canadiangamer.randommod.items.ItemBase; +import com.canadiangamer.randommod.items.armor.ArmorBase; +import com.canadiangamer.randommod.items.food.FoodBase; +import com.canadiangamer.randommod.items.food.FoodEffectBase; +import com.canadiangamer.randommod.items.tools.ToolAxe; +import com.canadiangamer.randommod.items.tools.ToolHoe; +import com.canadiangamer.randommod.items.tools.ToolPickaxe; +import com.canadiangamer.randommod.items.tools.ToolSpade; +import com.canadiangamer.randommod.items.tools.ToolSword; +import com.canadiangamer.randommod.util.Reference; + +import net.minecraft.init.MobEffects; +import net.minecraft.init.SoundEvents; +import net.minecraft.inventory.EntityEquipmentSlot; +import net.minecraft.item.Item; +import net.minecraft.item.Item.ToolMaterial; +import net.minecraft.item.ItemArmor.ArmorMaterial; +import net.minecraft.item.ItemAxe; +import net.minecraft.item.ItemHoe; +import net.minecraft.item.ItemPickaxe; +import net.minecraft.item.ItemSpade; +import net.minecraft.item.ItemSword; +import net.minecraft.potion.PotionEffect; +import net.minecraftforge.common.util.EnumHelper; + +public class ModItems +{ + + //Material + public static final ToolMaterial MATERIAL_RANDOM_INGOT = EnumHelper.addToolMaterial("material_random_ingot", 3, 43353645, 10.0f, 900.0f, 20); + public static final ArmorMaterial ARMOR_MATERIAL_RANDOM_INGOT = EnumHelper.addArmorMaterial("armour_material_random_ingot", Reference.MOD_ID + ":random_ingot", 50, new int[] {27, 28, 29, 30}, 20, SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, 0.0F); + + + //Items + public static final List ITEMS = new ArrayList(); + + public static final Item RANDOM_INGOT = new ItemBase ("random_ingot"); + + //Tools + public static final ItemSword RANDOM_SWORD = new ToolSword("random_sword", MATERIAL_RANDOM_INGOT); + public static final ItemSpade RANDOM_SHOVEL = new ToolSpade("random_shovel", MATERIAL_RANDOM_INGOT); + public static final ItemPickaxe RANDOM_PICKAXE = new ToolPickaxe("random_pickaxe", MATERIAL_RANDOM_INGOT); + public static final ItemAxe RANDOM_AXE = new ToolAxe("random_axe", MATERIAL_RANDOM_INGOT); + public static final ItemHoe RANDOM_HOE = new ToolHoe("random_hoe", MATERIAL_RANDOM_INGOT); + + //Armor + public static final Item RANDOM_HELMET = new ArmorBase("random_helmet", ARMOR_MATERIAL_RANDOM_INGOT, 1, EntityEquipmentSlot.HEAD); + public static final Item RANDOM_CHESTPLATE = new ArmorBase("random_chestplate", ARMOR_MATERIAL_RANDOM_INGOT, 1, EntityEquipmentSlot.CHEST); + public static final Item RANDOM_LEGGINGS = new ArmorBase("random_leggings", ARMOR_MATERIAL_RANDOM_INGOT, 2, EntityEquipmentSlot.LEGS); + public static final Item RANDOM_BOOTS = new ArmorBase("random_boots", ARMOR_MATERIAL_RANDOM_INGOT, 1, EntityEquipmentSlot.FEET); + + //Food + //public static final Item RANDOM_MEAT_RAW = new FoodBase("random_meat_raw", 8, 4.2f, false); + //public static final Item RANDOM_MEAT_COOKED = new FoodBase("random_meat_cooked", 16, 5.2f, false); + public static final Item RANDOM_MEAT_RAW = new FoodEffectBase("random_meat_raw", 8, 4.2f, false, new PotionEffect(MobEffects.SLOWNESS, (60*20), 2, false, true)); + public static final Item RANDOM_MEAT_COOKED = new FoodEffectBase("random_meat_cooked", 16, 5.2f, false, new PotionEffect(MobEffects.SPEED, 2*(60*20), 4, false, true)); +} + \ No newline at end of file diff --git a/old/main/java/com/canadiangamer/randommod/init/ModRecipes.java b/old/main/java/com/canadiangamer/randommod/init/ModRecipes.java new file mode 100644 index 0000000..7c6d3d2 --- /dev/null +++ b/old/main/java/com/canadiangamer/randommod/init/ModRecipes.java @@ -0,0 +1,13 @@ +package com.canadiangamer.randommod.init; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fml.common.registry.GameRegistry; + +public class ModRecipes { + + public static void init() { + GameRegistry.addSmelting(ModBlocks.RANDOM_BLOCK , new ItemStack(ModItems.RANDOM_INGOT, 9), 3.5f); + GameRegistry.addSmelting(ModBlocks.RANDOM_ORE , new ItemStack(ModItems.RANDOM_INGOT, 1), 6.5f); + GameRegistry.addSmelting(ModItems.RANDOM_MEAT_RAW , new ItemStack(ModItems.RANDOM_MEAT_COOKED, 1), 6.5f); + } +} diff --git a/old/main/java/com/canadiangamer/randommod/items/ItemBase.java b/old/main/java/com/canadiangamer/randommod/items/ItemBase.java new file mode 100644 index 0000000..c0b492e --- /dev/null +++ b/old/main/java/com/canadiangamer/randommod/items/ItemBase.java @@ -0,0 +1,27 @@ +package com.canadiangamer.randommod.items; + +import com.canadiangamer.randommod.Main; +import com.canadiangamer.randommod.init.ModItems; +import com.canadiangamer.randommod.util.IHasModel; + +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; + +public class ItemBase extends Item implements IHasModel { + + public ItemBase(String name) + { + setUnlocalizedName(name); + setRegistryName(name); + setCreativeTab(Main.randomtab); + + ModItems.ITEMS.add(this); + } + + @Override + public void registerModels() + { + Main.proxy.registerItemRenderer(this,0,"inventory"); + } + +} diff --git a/old/main/java/com/canadiangamer/randommod/items/armor/ArmorBase.java b/old/main/java/com/canadiangamer/randommod/items/armor/ArmorBase.java new file mode 100644 index 0000000..4013bc1 --- /dev/null +++ b/old/main/java/com/canadiangamer/randommod/items/armor/ArmorBase.java @@ -0,0 +1,28 @@ +package com.canadiangamer.randommod.items.armor; + +import com.canadiangamer.randommod.Main; +import com.canadiangamer.randommod.init.ModItems; +import com.canadiangamer.randommod.util.IHasModel; + +import net.minecraft.inventory.EntityEquipmentSlot; +import net.minecraft.item.ItemArmor; + +public class ArmorBase extends ItemArmor implements IHasModel{ + + public ArmorBase(String name,ArmorMaterial materialIn, int renderIndexIn, EntityEquipmentSlot equipmentSlotIn) { + super(materialIn, renderIndexIn, equipmentSlotIn); + setUnlocalizedName(name); + setRegistryName(name); + setCreativeTab(Main.randomtab); + + ModItems.ITEMS.add(this); + } + + @Override + public void registerModels() + { + Main.proxy.registerItemRenderer(this,0,"inventory"); + } + + +} diff --git a/old/main/java/com/canadiangamer/randommod/items/food/FoodBase.java b/old/main/java/com/canadiangamer/randommod/items/food/FoodBase.java new file mode 100644 index 0000000..3c3a1b6 --- /dev/null +++ b/old/main/java/com/canadiangamer/randommod/items/food/FoodBase.java @@ -0,0 +1,28 @@ +package com.canadiangamer.randommod.items.food; + +import com.canadiangamer.randommod.Main; +import com.canadiangamer.randommod.init.ModItems; +import com.canadiangamer.randommod.util.IHasModel; + +import net.minecraft.item.ItemFood; + +public class FoodBase extends ItemFood implements IHasModel +{ + + public FoodBase(String name, int amount, float saturation, boolean isAnimalFood) + { + super(amount, saturation, isAnimalFood); + setUnlocalizedName(name); + setRegistryName(name); + setCreativeTab(Main.randomtab); + + ModItems.ITEMS.add(this); + } + + @Override + public void registerModels() + { + Main.proxy.registerItemRenderer(this,0,"inventory"); + + } +} diff --git a/old/main/java/com/canadiangamer/randommod/items/food/FoodEffectBase.java b/old/main/java/com/canadiangamer/randommod/items/food/FoodEffectBase.java new file mode 100644 index 0000000..00b760c --- /dev/null +++ b/old/main/java/com/canadiangamer/randommod/items/food/FoodEffectBase.java @@ -0,0 +1,36 @@ +package com.canadiangamer.randommod.items.food; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.PotionEffect; +import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +public class FoodEffectBase extends FoodBase +{ + + PotionEffect effect; + + public FoodEffectBase(String name, int amount, float saturation, boolean isAnimalFood, PotionEffect effect) + { + super(name, amount, saturation, isAnimalFood); + setAlwaysEdible(); + + this.effect = effect; + } + @Override + protected void onFoodEaten(ItemStack stack, World worldIn, EntityPlayer player) + { + if(!worldIn.isRemote) { + player.addPotionEffect(new PotionEffect(effect.getPotion(), effect.getDuration(), effect.getAmplifier(), effect.getIsAmbient(), effect.doesShowParticles())); + } + } + + @SideOnly(Side.CLIENT) + public boolean hasEffect(ItemStack stack) + { + return true; + } + +} diff --git a/old/main/java/com/canadiangamer/randommod/items/tools/ToolAxe.java b/old/main/java/com/canadiangamer/randommod/items/tools/ToolAxe.java new file mode 100644 index 0000000..760136a --- /dev/null +++ b/old/main/java/com/canadiangamer/randommod/items/tools/ToolAxe.java @@ -0,0 +1,27 @@ +package com.canadiangamer.randommod.items.tools; + +import com.canadiangamer.randommod.Main; +import com.canadiangamer.randommod.init.ModItems; +import com.canadiangamer.randommod.util.IHasModel; + +import net.minecraft.item.ItemAxe; +import net.minecraft.item.Item.ToolMaterial; + +public class ToolAxe extends ItemAxe implements IHasModel{ + + public ToolAxe(String name, ToolMaterial material) + { + super(material, 8.0F, -3.0F ); + setUnlocalizedName(name); + setRegistryName(name); + setCreativeTab(Main.randomtab); + + ModItems.ITEMS.add(this); + } + + @Override + public void registerModels() + { + Main.proxy.registerItemRenderer(this,0,"inventory"); + } +} diff --git a/old/main/java/com/canadiangamer/randommod/items/tools/ToolHoe.java b/old/main/java/com/canadiangamer/randommod/items/tools/ToolHoe.java new file mode 100644 index 0000000..9824d55 --- /dev/null +++ b/old/main/java/com/canadiangamer/randommod/items/tools/ToolHoe.java @@ -0,0 +1,27 @@ +package com.canadiangamer.randommod.items.tools; + +import com.canadiangamer.randommod.Main; +import com.canadiangamer.randommod.init.ModItems; +import com.canadiangamer.randommod.util.IHasModel; + +import net.minecraft.item.ItemHoe; +import net.minecraft.item.Item.ToolMaterial; + +public class ToolHoe extends ItemHoe implements IHasModel{ + + public ToolHoe(String name, ToolMaterial material) + { + super(material); + setUnlocalizedName(name); + setRegistryName(name); + setCreativeTab(Main.randomtab); + + ModItems.ITEMS.add(this); + } + + @Override + public void registerModels() + { + Main.proxy.registerItemRenderer(this,0,"inventory"); + } +} diff --git a/old/main/java/com/canadiangamer/randommod/items/tools/ToolPickaxe.java b/old/main/java/com/canadiangamer/randommod/items/tools/ToolPickaxe.java new file mode 100644 index 0000000..efc9126 --- /dev/null +++ b/old/main/java/com/canadiangamer/randommod/items/tools/ToolPickaxe.java @@ -0,0 +1,30 @@ +package com.canadiangamer.randommod.items.tools; + +import com.canadiangamer.randommod.Main; +import com.canadiangamer.randommod.init.ModItems; +import com.canadiangamer.randommod.util.IHasModel; + +import net.minecraft.item.Item.ToolMaterial; +import net.minecraft.item.ItemPickaxe; + +public class ToolPickaxe extends ItemPickaxe implements IHasModel { + + + + public ToolPickaxe(String name, ToolMaterial material) + { + super(material); + setUnlocalizedName(name); + setRegistryName(name); + setCreativeTab(Main.randomtab); + + ModItems.ITEMS.add(this); + } + + @Override + public void registerModels() + { + Main.proxy.registerItemRenderer(this,0,"inventory"); + } + +} diff --git a/old/main/java/com/canadiangamer/randommod/items/tools/ToolSpade.java b/old/main/java/com/canadiangamer/randommod/items/tools/ToolSpade.java new file mode 100644 index 0000000..c8095d4 --- /dev/null +++ b/old/main/java/com/canadiangamer/randommod/items/tools/ToolSpade.java @@ -0,0 +1,28 @@ +package com.canadiangamer.randommod.items.tools; + +import com.canadiangamer.randommod.Main; +import com.canadiangamer.randommod.init.ModItems; +import com.canadiangamer.randommod.util.IHasModel; + +import net.minecraft.item.ItemSpade; +import net.minecraft.item.Item.ToolMaterial; + +public class ToolSpade extends ItemSpade implements IHasModel{ + + public ToolSpade(String name, ToolMaterial material) + + { + super(material); + setUnlocalizedName(name); + setRegistryName(name); + setCreativeTab(Main.randomtab); + + ModItems.ITEMS.add(this); + } + + @Override + public void registerModels() + { + Main.proxy.registerItemRenderer(this,0,"inventory"); + } +} diff --git a/old/main/java/com/canadiangamer/randommod/items/tools/ToolSword.java b/old/main/java/com/canadiangamer/randommod/items/tools/ToolSword.java new file mode 100644 index 0000000..3533f77 --- /dev/null +++ b/old/main/java/com/canadiangamer/randommod/items/tools/ToolSword.java @@ -0,0 +1,26 @@ +package com.canadiangamer.randommod.items.tools; + +import com.canadiangamer.randommod.Main; +import com.canadiangamer.randommod.init.ModItems; +import com.canadiangamer.randommod.util.IHasModel; + +import net.minecraft.item.ItemSword; + +public class ToolSword extends ItemSword implements IHasModel { + + public ToolSword(String name, ToolMaterial material) + { + super(material); + setUnlocalizedName(name); + setRegistryName(name); + setCreativeTab(Main.randomtab); + + ModItems.ITEMS.add(this); + } + + @Override + public void registerModels() + { + Main.proxy.registerItemRenderer(this,0,"inventory"); + } +} diff --git a/old/main/java/com/canadiangamer/randommod/proxy/ClientProxy.java b/old/main/java/com/canadiangamer/randommod/proxy/ClientProxy.java new file mode 100644 index 0000000..5402774 --- /dev/null +++ b/old/main/java/com/canadiangamer/randommod/proxy/ClientProxy.java @@ -0,0 +1,16 @@ +package com.canadiangamer.randommod.proxy; + +import net.minecraft.client.renderer.block.model.ModelResourceLocation; +import net.minecraft.item.Item; +import net.minecraftforge.client.model.ModelLoader; + +public class ClientProxy extends CommonProxy +{ + public void registerItemRenderer(Item item, int meta, String id) +{ + ModelLoader.setCustomModelResourceLocation(item, meta, new ModelResourceLocation (item.getRegistryName(), id)); +} + + +} + diff --git a/old/main/java/com/canadiangamer/randommod/proxy/CommonProxy.java b/old/main/java/com/canadiangamer/randommod/proxy/CommonProxy.java new file mode 100644 index 0000000..87ec327 --- /dev/null +++ b/old/main/java/com/canadiangamer/randommod/proxy/CommonProxy.java @@ -0,0 +1,8 @@ + package com.canadiangamer.randommod.proxy; + +import net.minecraft.item.Item; + +public class CommonProxy +{ + public void registerItemRenderer(Item item, int meta, String id) {} +} diff --git a/old/main/java/com/canadiangamer/randommod/tabs/RandomTab.java b/old/main/java/com/canadiangamer/randommod/tabs/RandomTab.java new file mode 100644 index 0000000..a2497c2 --- /dev/null +++ b/old/main/java/com/canadiangamer/randommod/tabs/RandomTab.java @@ -0,0 +1,15 @@ +package com.canadiangamer.randommod.tabs; + +import com.canadiangamer.randommod.init.ModBlocks; + +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public class RandomTab extends CreativeTabs +{ +public RandomTab(String label ) {super("randommod"); + this.setBackgroundImageName("randommod.png");} +public ItemStack getTabIconItem() { return new ItemStack(Item.getItemFromBlock(ModBlocks.RANDOM_BLOCK));} + +} diff --git a/old/main/java/com/canadiangamer/randommod/util/IHasModel.java b/old/main/java/com/canadiangamer/randommod/util/IHasModel.java new file mode 100644 index 0000000..4d711b3 --- /dev/null +++ b/old/main/java/com/canadiangamer/randommod/util/IHasModel.java @@ -0,0 +1,6 @@ +package com.canadiangamer.randommod.util; + +public interface IHasModel +{ + public void registerModels(); +} diff --git a/old/main/java/com/canadiangamer/randommod/util/Reference.java b/old/main/java/com/canadiangamer/randommod/util/Reference.java new file mode 100644 index 0000000..3908e08 --- /dev/null +++ b/old/main/java/com/canadiangamer/randommod/util/Reference.java @@ -0,0 +1,15 @@ +package com.canadiangamer.randommod.util; + +public class Reference { + + public static final String MOD_ID = "rm"; + public static final String NAME = "Random Mod"; + public static final String VERSION = "1.0"; + public static final String ACCEPTED_VERSIONS = "[1.12.2]"; + public static final String CLIENT_PROXY_CLASS = "com.canadiangamer.randommod.proxy.ClientProxy"; + public static final String COMMON_PROXY_CLASS = "com.canadiangamer.randommod.proxy.CommonProxy"; + + public static final int ENTITY_TIMMY = 120; + } + + \ No newline at end of file diff --git a/old/main/java/com/canadiangamer/randommod/util/handlers/RegistryHandler.java b/old/main/java/com/canadiangamer/randommod/util/handlers/RegistryHandler.java new file mode 100644 index 0000000..f3979e9 --- /dev/null +++ b/old/main/java/com/canadiangamer/randommod/util/handlers/RegistryHandler.java @@ -0,0 +1,56 @@ +package com.canadiangamer.randommod.util.handlers; + +import com.canadiangamer.randommod.init.ModBlocks; +import com.canadiangamer.randommod.init.ModItems; +import com.canadiangamer.randommod.util.IHasModel; + +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import net.minecraftforge.client.event.ModelRegistryEvent; +import net.minecraftforge.event.RegistryEvent; +import net.minecraftforge.fml.common.Mod.EventBusSubscriber; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; + +@EventBusSubscriber +public class RegistryHandler +{ + @SubscribeEvent + public static void onItemRegister(RegistryEvent.Register event) + { + event.getRegistry().registerAll(ModItems.ITEMS.toArray(new Item[0])); + } + + @SubscribeEvent + public static void onBlockRegister(RegistryEvent.Register event) + { + event.getRegistry().registerAll(ModBlocks.BLOCKS.toArray(new Block[0])); + } + + + + + @SubscribeEvent + public static void onModelRegister(ModelRegistryEvent event) + { + for(Item item : ModItems.ITEMS) + { + if(item instanceof IHasModel ) + { + ((IHasModel)item).registerModels(); + } + } + + for(Block block : ModBlocks.BLOCKS) + { + if(block instanceof IHasModel ) + { + ((IHasModel)block).registerModels(); + } + } + + + + + + } +} diff --git a/old/main/java/com/canadiangamer/randommod/world/ModWorldGen.java b/old/main/java/com/canadiangamer/randommod/world/ModWorldGen.java new file mode 100644 index 0000000..7da45a6 --- /dev/null +++ b/old/main/java/com/canadiangamer/randommod/world/ModWorldGen.java @@ -0,0 +1,41 @@ +package com.canadiangamer.randommod.world; + +import java.util.Random; + +import com.canadiangamer.randommod.init.ModBlocks; + +import net.minecraft.block.state.IBlockState; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraft.world.chunk.IChunkProvider; +import net.minecraft.world.gen.IChunkGenerator; +import net.minecraft.world.gen.feature.WorldGenMinable; +import net.minecraftforge.fml.common.IWorldGenerator; + +public class ModWorldGen implements IWorldGenerator { + + @Override + public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider) + { + if(world.provider.getDimension() == 0) { + generateOverworld(random, chunkX, chunkZ, world, chunkGenerator, chunkProvider); + } + } + + private void generateOverworld (Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkgenerator, IChunkProvider chunkprovider) + { + generateOre(ModBlocks.RANDOM_ORE.getDefaultState(), world, random, chunkX * 16, chunkZ * 16, 16, 64, random.nextInt(7) + 4, 6); + } + + private void generateOre(IBlockState ore, World world, Random random, int x, int z, int minY, int maxY, int size, int chances) + { + int deltaY = maxY - minY; + + for (int i = 0; i < chances; i++) { + BlockPos pos = new BlockPos(x + random.nextInt(16), minY + random.nextInt(deltaY), z + random.nextInt(16)); + + WorldGenMinable generator = new WorldGenMinable(ore, size); + generator.generate(world, random, pos); + } + } +} diff --git a/old/main/resources/assets/minecraft/textures/gui/container/creative_inventory/tab_randommod.png b/old/main/resources/assets/minecraft/textures/gui/container/creative_inventory/tab_randommod.png new file mode 100644 index 0000000000000000000000000000000000000000..2b6fbb9c3fe931652d714e1c0af02261647e4d8e GIT binary patch literal 965 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|GzJFd9#0p?kcwMx?*wMO3J_>` zsIpqLj*|ZW2In^$W~NEBJu9$S((Ca3$3u3ZdS(U|1_1^K zkQ2}t4d?kB?tgzMdHkYWwNrK6$9;b?`x*WmtlQ6j_G87CAjgOqAE+WLv>Dc2y%qd8^g;T!Pc95GtG6ycw)(*N zcSn`Mu`%JA0S{Bb+;3TxcDwc}97~bBme26EZ1>l!373A>#Mv?5lxMtkn>*2G+sR)K z zaB^>EX>4U6ba`-PAZ2)IW&i+q+P#)-mg^=AhW~37T>_F2AIkyToYNh2`F$abC&?rk z$2YAxF<2Io&?9hY`{(aQf8i3bK;B{sIRuBxXP>2Dklf|E^z8h&&juoB?g{ctk zax~>^cXHj`$UU_$&o?h>cF|p5SGj9#O|5O0)fFF*sX%j4UrQMyC|0CW$FzVJ@iUC$ zXc;YGi3^CWpjput;>?1~Huk)7;l|tO7hVvemramv5m`isEFt|_mI1~0#!aGTT?vdt z7f@4(Wsil2-#q*+oZxw7XbQs^W5$n0kA!F1Zm6|hy38)^xk6mhYZ_s6a{Uf10O2-s zY9qg+(N*2JE3gWJHqxB1z~bt~L^b}dEghT{dgeU2%huqyP6J30d>evc1pyaO*c{kJ zk;sfZCh#eUT+~Yi0XCDBsez4Z0GuS<7fd0)1VP(vKGMd-cUc$C)7|e zHBV+1ELyT`C1~)$LI^SRGpa<5K3WVh#uRfbNs~{OLW(J+oJy9gIKnK494V)qb186I zV7g#-fkr7+s#agEh8k@wbaI`U%hHc30X4P`XXQ=|1pUThjdyn6^(UNzPkOlw>L$LSkMjw2)T$j+eyBTp za=%4zDxxEiytT9w(a{gjw;q2rbsN!%lF;RxWhd`!5mGiT(A^A)VUwAN-0O%F!vq^pe;c=QbS*{XmV;uaghf75%~I z`a==;@wEgGaXf z(Y6W^d{HPPazdeu6)he)P4VE7Bd1QVk_V4mC{L=|yUR|uhed8Uc1GlcW9RM{%DBG? zTZM>5UVB~D+kMamHImkz$98@aoI%@8(8|=dpj8L}S4~BGs0|tbf;TWvxuI{tQq_7N pllQOeePfF}4bj@aN1iJ97aya3 zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1b<3(dgAy`~K`Q$PN(cahnChM=~n%F&fTQ}!}!xH1o z_cZjiKVw~f4ya%2<$c{~U2@_QL`U#-@zgxWYhPS~*xl>2<|eIk*}u56{#;#Rm+--Ldv0-fp z4~*72$zz?58uw&vYkvEnWYxZ2FW8OI;u!t*F8ctaf>};&SFRB@7C_0@v4C6gCm8E> zC)^P(RxsAUX2D$zC2~M}kf%nO2KDP*slr6>x>LNJtB$X=$m)`-7b$+;G@NqcX26l- z3f36Q?$|B|MF`1iB>;fS) z7N&CHd)?+GZtM%O30)&>thWQ3t3jx_RNZL#{!8a6hWz{W$W;v0`85nb(z_?BZ z5YTRNW+Qp;CUcWBn;eot99ScnsaYN4)ML@hk|2wI4X51 zx>cJO2Yw8#aa+@$&iK72Zi%(ew}BDG4;TB|Q5QT`n`iyuOS>!%R)YCMSEDD z8(Y%DR4E%nx1*`+JsNF>ePp^%54PQNi}{Kpq-I6Ku6=z(>1fJ%1?b?)9U-v&*x}A0 zZ0=|W)?muIoZo8Lt$o||metbhQGNpln?H0FzYE-=u(5e8Pa(Uo!<=Q1A zeoOFL5Aox9dRG;QH8;M;EBY4U`+bVdgCz4Q|FHG}kpEr_kRlsbddD2OT!*ur7V&5l zwXv*O%?N|U`UAarYL%0%@ta|Xx%}dtdH0IX=KP-G1?3I_73(g5p$;E=y=9^^m>GSi zSfO<8N@PbaC`WhLb!b51-IGxocUKE4b`_bHMv9cpN1=_+Ul1^FtElbSZ%+*{AG!Wpj^{_V z!`lJ0SCuTvH6cZ45h!-VV83MQsmHDT-sfKGQ8-aAPn%B1693Yr-}ac7Zk-Op{8XF1 zRoMfr@qg_Dem~;>{N}$Zz7b}KY>k2d000JJOGiWi`Tzg`0Q<-Dg8%>k32;bRa{vG? zBLDy{BLR4&KXw2B00(qQO+^Rd3lOVHn3hJ3H>o z`c94Rj~Qu9O@+w>p`u$69gCnt5~vvuiS&Gw!UqZU>n`>p4BVeEB}l`#hf~RVtM_VHmPImY0`N6oo>eK%>#Xwrzah z=U<%=0x3=`%c9k4QLoqObUNgZ-Qh*`IIUI-fS#TnEXyJY0)!9wi8!Ll2~6~=j4I6+`1T`s%lcr zaU7<%wm3U8gX1^=I|gx!j^l7<-&Kyjyh*d!q*kjDh9O}XVp$fFB=PO}b3SfuVHgIU z=OM=eAq3fMmc?0_h4390jO#4U$~adZv%S4drBb24zn^E5lK?1<2Bv8uTb2cY@B5@u zDV!^h>1sAvoITA#_>TR6X`0F8CnhG6yjrc2DwRr|_@S$-izte4U3bsA6h%SPwEtEJ zAjkiY9XB^O$>;MdDc6|)kmHhZ1H&*_Sy=&~P$oWI$T&7m5VHgIgs_q3THW?ZkV(QRsrcQkapxJEl>2;a8N){mm zPtJ!-{<%lJUMD>^Ha4wk8c`IX>pGcC2G8@bEQ<%Helql{OzX&1-mH$WSv-m?%b4Gv zGFQp6EDa!=rkOyI&*xcPU1fN97$B)yU;jcnodzJ6%Q5qN3J$^HfdSIvI5>!^syjoB>FVw6rQL1=B$qcj zItsvUUUtJLcXxLubmf5{2(WEC5y$cGImaCQ1yjBto(M|El>h($07*qoM6N<$f_HH* AhX4Qo literal 0 HcmV?d00001 diff --git a/old/main/resources/assets/rm/textures/items/random_axe.png b/old/main/resources/assets/rm/textures/items/random_axe.png new file mode 100644 index 0000000000000000000000000000000000000000..ba5cb726330f37760d10a50cf35c786df8f192a9 GIT binary patch literal 1351 zcmV-N1-SZ&P) zaB^>EX>4U6ba`-PAZ2)IW&i+q+QnCCvNI%BYX(zvtJ`GvrwsP*Xj zzQB?&Gmbr=ofkw@EGv1;+2ko}t?bJQzj?U%-d1vc^JCnCv@2Mc;_W=LE(YCXD zueSx_o*VgcKOEjP|QxUaf$1w<=d0&0;8#-}Z6kR)}9VrStYL6bIuMxqs}Da>+W z;k9mB>s5|exiLoKFjTB79}7J*zEVy{W6aQHHu2;NxMapOU`*xa8>1iykIkuD{H{Vb zabs?TRVe5d%@G^SrW`Jc<7;f`(pfRi8B69k8XVeo0E)1-0~kcNW#d^Ldp1ENFoVYk zeKL@XS}9O~os-5ippB}BI8o->m=k!76(@%osRcqf^%@{e(hRYzb%>u}BVs7y+*oqX zc^6!C$z`wJdgr|le&(ngG}z#R4mLXH}3bkWBUV@xq8Ns1Kal23tBOey7zMKfGy z%+45*bCIIO7FT=;C6-ijMfg-(UG+88SX0eSnl>E&=3Af^TWYy;M<{jMUH3io*i+8~ zu{Lzr;f5b!#F0imRoklGtHuw?eXbgB)uv*0jSE-RU=HEpf@eB$Q!^+gmZ5l<3Lv0m zYGxu^D^t0tnMr~};RLF&o8mN{ia|l!S=``LyQ^}a>PF7~NH_VDax|rThjKKf+sb{^ z?TKnFuNy^|K=Tw%PK^#EHVo)7OU(05dby_GI(Uzxo{rYYmJ}&5udY$BIa{UsI{1fP z=~pm-VhTO`R9e&~A3)WhwfzJlBl@a-Kzw4nSV`>A3XTpWEt*k~BQ|MVhniNeN~p%PXF7|t zag7Fg;aGig`g@l%0t>F))v5R`)AfMbu{MHX18pF*xO3ABBt1d-5=i;UXzPKfH`Dukz9-`RIGZU4YR<_6E`B)_#lSfI|6A*9g5qvzJrtmpS_t zYW}O6_H}B0b3uL?*<+vQQoWY?9bRs0dJ~}k)6u}MHvGq@e*uLM6o?`-lL-I-00v@9 zM??VX00000nH^cAN%MoKgj zaB^>EX>4U6ba`-PAZ2)IW&i+q+U=HGlH@21MgLjFECERf!E!Kb; zU=X7z;t4zMLgI1fIf`HglBD2HxU(>vyeQi9Dro1AwR6|zlX%zGlXkvryF5zaeB2K4 zNuzBieX`4S7=EU98JV9jo4>#Av>T(PG5Wc>5+am}ZZGPxl+}Xc0V!oY7Eug8McY=% zC<#lfAl5+hK&g&0G1MLus8OLoebtpJrWm-hp=Pcu%a+7Ab6rrvEHv08OLJhvQbA2% z=IdN&jhokal@dm71WzUeqe=6*xQ~oKDc3+_%+w|F>8cgx#WSZdjY)3a;RPTxwx+uD zUB%tyjlTmcAgD{`gasCVoFNXSTW-nXEbvnwoIke)S=#|15ynG(~P49AXK6l&}1oq6@nsvEF|PmQPJR3 zHL7XStR+eeQDcl2=NVN@ESOp}vt-#yk`$7rm@K7~Q^}kKN0{cA&E=GHE(L=Ygf4ix zz@wCd4>`i2M?CCEM?OkL`qWUh#%eXyTub974couPX0D}{Tj|u1N<85=&5ij^PTkL+Wp@Ee*=9{_aj~`?)k4!K6ifQ>wY)`B-(0?(xevb z8aI1fD)y36P{Jd;!_>fz1&&00!B z#5-E)V)}~OjY?_v zo2SKdQvMd*JtV_VqV7=cw)VI7sP`>zF5E8o@$r&>Q|gNxxI@j0r~6>6_m8$1*TME; z{@;)3-W>dIp!aLRr&o6W0T~kIT)+9p3jhEB24YJ`L;x8882}mMFMhKC000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2jUAB3Ly&gCs0rT005y$L_t(I%VS^|@_-RtKv!4y zKa73(@?}O`Vlcpju9;D}mf`aEForj8-k{n96_=Eh{EyQB1_lO(i|a$NIu(~Vh5`D4 ztFbD?CC)@?AX3i&U0vP(mo8nxt5{D*ok7%mB1)_Xi2}xI1_djyHBWp$m=xG3#x*-Mtp;AOe84B^p00000 LNkvXXu0mjf^0RM% literal 0 HcmV?d00001 diff --git a/old/main/resources/assets/rm/textures/items/random_chestplate.png b/old/main/resources/assets/rm/textures/items/random_chestplate.png new file mode 100644 index 0000000000000000000000000000000000000000..bfb79fb6379f7589318b731335793ac4f1728fd0 GIT binary patch literal 1429 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 literal 0 HcmV?d00001 diff --git a/old/main/resources/assets/rm/textures/items/random_ingot.png b/old/main/resources/assets/rm/textures/items/random_ingot.png new file mode 100644 index 0000000000000000000000000000000000000000..9de6343caf2b0373b1e926f7e34c984e30aafebf GIT binary patch literal 1526 zcmV zaB^>EX>4U6ba`-PAZ2)IW&i+q+U-_bvg0TW{bv=k1SAkb%fURVW(U3eIoQNWe3N_o z_H^}En~DJedYmKVxc=kc;r_wHl%k8GIax{`Pqb)UFv$LRj-Gtn-)rJ;gD1H=7Z{>| zJ{;53*Zu;z+z)76^6gpfv@Sh)DWX&H{)B0Hj@Q1t6a_xywC2v%xe_13SwF5z?NWZ7 zM+F#7pf9lF9w>Ocd0GkZAmmV{3~vs~QzH8~;vGVMjh#D(7x2!}1v_7sJUm0;d|DgQ z1*0V=xyZw5hOeyMEI%zs_v#;?2kgdZd5nHUS7HKE$*rJnq3k1U+yG_Rk0mt4PcYWK z8Cph&6^u2oxuI1@Mhs*JMQT)NP~ZDX6)r~Z47i!Oa@b`V@Eg~ilsFp=)?lGIaKxd4 zwE!`nzR+&hc6*gFEH}bVCMYAE_|V)d;jgq)(HJvziF`h>f?qsy8g5MH<{P^}2#tlQ z?D+1@J>-plAU1$O*=PfIKduI8TM7UXYzv&B00w+QVpAfo z%t{0tGx#a+9I4J57$6aDBg1?R#1H5Tmq!2ni`DsIgE$R*ZuD(U_4# zMS?^pB1u%Tn3NP!Op;R4G;37RpixDWs%AAUIpmlnr>r?=%f;9NN|;zOb(YPn6c{Z~ zU2wW!M=2X`VT+q=Y11ulwv~$Xsj*5;Rco$ROXC(Au768SUCYf{>C}-*J$C7-YtP+! z8OXH}MjSHI(2<9YaCnvVT#+PSCuC6H^}s3L7@`TsW8cP5R~D{a*!t6@6FHh;>SMt1a|UM+nEXap?8K zu_66f9zsZuhJA#3M7R%Gt5TN`h35Yy#$P7d$MfID&-L!B4ccII*Iyfr+`Q~7{?=31 zHV00$_o_pTz>^_0{O&AyNml!qs`(eC_!o3cIMrt>A z45kQ$Y0VqbtZuYz%X&vGMO}Auv7&>>`R1Chin{k2iWeBEZOeEe8x3XfT!@GJ z-CL&O=KjO%)0HWZoJBMz-rnL6BiQd? zoG4*X^7(aH*@~ov^m+`yZ3Kd4E-lr+oPyh?Lu-uRjakEB1KEAHflo|AMA c*XNP) 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 literal 0 HcmV?d00001 diff --git a/old/main/resources/assets/rm/textures/items/random_meat_raw.png b/old/main/resources/assets/rm/textures/items/random_meat_raw.png new file mode 100644 index 0000000000000000000000000000000000000000..f9ca08834bf41a3baebbd3c39362298115a2671e GIT binary patch literal 1761 zcmV<71|Io|P) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1bvmLw+({O1%t0ulnmaaiB;4SakDOJ%Lyo}O`L zcLGWfA|eD?rvLNzFn{4<^1+CY8d3-rmn2D?QBk|EU6PgcJPmuRJlW0lf?;wf-EM|{ z`e)eveL$3BFVA)p>+z$<5nYbg<>t(@e){QgARDY50}3+sscde6Z0zUJuxf(R7TySC=IKsbJ2cZcAA;bS!{!qY>LMquixinR4UR6kX221<3f3IV ze8oa*-n8bcq?ox8dNRQoO*UU|^U3%-_vL7eDP1C~7gmUir=}6cWNtpu3xv=(nEHk9 zy3K=b>;th54EhDLVu9I~?V@t#<8E2YwQvk@g-{jgWOlvKm48HCCqRG;^1JKK?w0DG~$xaxil zv@OUH+(9iMxx90E`%za57~SuNWY=wN{YkanWwjhft4vI6nvAjwOpJAJhgaZeE zS3};E{SfEKx1KYYj{Rr%;d=M`L^D^vSo2xm0OZX;SA41*!a_Q%WYK4w7tAKq5ZbL3 z^gF(@-yEij9c(`KFvx4zU~VJ4ZnXS6J8}}szJu3}w2PQ4cbuL~>{6T7c5i%4<9cwU zI?8ahnnOnu8MR5-0fsz(PONpz+DV2UlRTK86>1(3zF`p39btQba2dyn-_TZ|k~Vg+ z;?%HP*^{H)+s@<%ZVQm09RKpm_=C9o26^G!w22!oPzm$GK@ZclEBuNA=xy zd~DhmWclc;dA{JOYtM!e(Ld4r(*Q5}zl(SU{B;`LBQy^oc0R0-6nE;~v)*^F4{3AJ z|6k|mEiF5KlUy58+nOl(e$1IS1^zUYQ<@)td3+3!_mO??^(%9KF3tb*b@XSB20jFn z`4<9R4J}%33Wxvz00v@9M??UQ02=_va#^#V00009a7bBm001r{001r{0eGc9b^rhX z2XskIMF-*w78VaII1z@G0003*NklS6otKfN@yR!b(f`dWAL{wvgop4(Zt#mB8f8NqI7gRNhs)D&Yka^`v?3n zNM6#QYC2?mJ^_Og-0g0`xqd*yDM`7?&EtFm0MKwssP(Io?Z)_&G@}Fnpyj#We=^ki zRlZg{kn-)o$-{I_zD0(VPO<@ zv1G{ekXmqC9nr6@o8p~vD|1tta4+v;@3z8q-2~+p72Nn*3GA9#qqE{HM%M&z<>dwT*t$EmPrA!Hoyug4^ghxkZbrTl?k zhaY$ftXyJ2JK_LPTv?X{{J;YM1sn9giz<-Nxr45hLy${g|00000NkvXXu0mjf DZPZZF literal 0 HcmV?d00001 diff --git a/old/main/resources/assets/rm/textures/items/random_pickaxe.png b/old/main/resources/assets/rm/textures/items/random_pickaxe.png new file mode 100644 index 0000000000000000000000000000000000000000..6652b8bdd952b2de82bc53b23d6896e7349267d5 GIT binary patch literal 1395 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 literal 0 HcmV?d00001 diff --git a/old/main/resources/assets/rm/textures/items/random_sword.png b/old/main/resources/assets/rm/textures/items/random_sword.png new file mode 100644 index 0000000000000000000000000000000000000000..d993294d74bc3071e8d620743760c6dbdd2e1a55 GIT binary patch literal 1471 zcmV;w1wi_VP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1bxaw{ne{nsjH2}nEy%i&oyJDBCq;gOExB({@# zn{oqcwIt3FYE1pVe+T`8OE?;GUSmih7+fy7BpHKf_O*L9Zr#tsybV6c>3Sd#S@d>K zLqGZ%a{vBgkaWw|;4agPMFck5j635lmZ#Dhv$gB4Ut>qt@D99dbcdbEM{YktK_(o9aEH;6 zv%izu%Z=Q#_U8G+gV2nc+v^6qF@6}}&fK;HfsJEr85flrcwClBirucb`b+v>R zvBV0-8rUpol{m2g?ZJ*4XCB;FU%4VgCtVc1NCo0k7OhH>x=3-e@esAiHUdXtD_FA- z%M}YRziIia*a6KnhNdu#G2Zyp=qurG+GS{rnYzp-URWV6nK_LxCUf%+EfB)vVComX ztIXg(81xI~hy`X-wu$2TJ-6)Q*+S17M`mvg)^-d4BKYJz z;26PAM&x3h6fnTvOJf?~#@YaKqDZ_$RBkPIh4Ki zj=cB5tB*eU9BgpGhY&Q(8kN_1oZ&RX zbjI5m8aWp!wz%R;C|Y7kC0C?Rb=B8UwZ@uiZqjVS_HUsnwb)Y2ojX#gyY74F+G9^W z59Hdg!wo;e&=E%(`C{#``jIuhW9~6)d{~=|xuvJ?tU;{$W`buq@sl$!CXT_lP6m+B zGC4Dmos-Gjnwio#oaq|4|yZ+e#D!6#~e-S{swb2sXNSl z=IsmCT3%liy9k=QaAIogKw*PIk6B`#-=tsn^pavfuCVJzQ}^jHMzo%59W_Szlep;h zI7)Gzokx=92>R#Pr&=AaA%REXYUY@I2VRNy1c~~So*pQ08*SUi?#ewOw`PFV417`c zxLBl4-b;%sd3MxYQ&6*G)q*T=Cvan)_4G_Zb!@x%s`Zk6n}J9%$U@;Y&b0>#w8y3+ z)i+Khbzt~o(C8I3Ujd6Qv_64#E$$`I$h?Z?6R_w)>kq-A4MJ(#8!+(kErwt=GOcS( z@dIQCo|}A#qI_$~I0(Yl3s=w>>>pu)5jn z#`a=>+OBkBCimTKmWM}yC44XTOL$yIslUxk`VFu*X?fvG&jEfZ(GB@O45`(s1Lp#yn%C?}PnWPw&C4*fjVP0z4&%&K{kAK~7n~j*ID2xu6y4 zL$Du%{2ka|SEegYNge-2P8EP<%Wq-AP>fHLyj|^I%%i8l;M|x%@Bg}?=`FryD1HC{00v@9M??Vo0Q3L=bZP-V00009 za7bBm001r{001r{0eGc9b^rhX2XskIMF-*w76J_t&}s4z00020Nkl#Vcc*spf4G9#Zzp>Y{~->t?Yl>@i7B&gk_u;iLIV`Q6Mb0w Z*9&zsdc{HlMd<(l002ovPDHLkV1h|PyUhRq literal 0 HcmV?d00001 diff --git a/old/main/resources/assets/rm/textures/models/armor/random_ingot_layer_1.png b/old/main/resources/assets/rm/textures/models/armor/random_ingot_layer_1.png new file mode 100644 index 0000000000000000000000000000000000000000..6d90675f9098def7f463710ff979abe4c12eb042 GIT binary patch literal 4085 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 literal 0 HcmV?d00001 diff --git a/old/main/resources/assets/rm/textures/models/armor/random_ingot_layer_2.png b/old/main/resources/assets/rm/textures/models/armor/random_ingot_layer_2.png new file mode 100644 index 0000000000000000000000000000000000000000..1cb598afcbbcdc199fa3c13441f0575baf34e8c3 GIT binary patch literal 1976 zcmV;p2S@mcP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+U-|clH)cE{O2ih1c4w3@;H2oS*YdN7}#pldfC%{~!WE0-dUr<|_;peO$)J8@=6~dd{8MEN1JBuBD7jJoV}%b6?q6`j*? z!;$k}tO6ipS59T;cOT&f>;2=vG7yxV=7Ip*(N7g!=*}(PI5XDCk;1i|N#~^iDS~Yj z2IK+=9GO@s)1fgc5%O4oPlM-?Q|v&1MB=1iz=k;koD$tOo>AIsqr_8;(gGlaGb^CM zb^%x^3HYO_fJ04KQV@|WDn+Wa%sFMrIcxSB)s!`xQfqAuMjKQ&Jl(LOwH`b7)TQUHz4Y4K0DVRpGV;(-MjdU&$rIau=BZ(pS!Y|c zK&6$Ith{uURaY}`&DfHOWm79wt=&+&P<=#=o{;+*HM&r9#L`};chn$O{ZK((PQ)<- zVlfdAS4RMZj*i(;D5dDgIc7(V*c1|h8i|85$q@sBX;BoT8+Lc(zQip^`bW6MA0ZbU zy5E6ZaOf`NUU7Sa+HAX{@CL|tq385qLt(>$Raz{~d(yu?hhJ6jzoP$)B9m@KyB*-q zA|AFT%5|v?l+!h2iQ4GhD!#hRP{RX=P2l6QnS13vd$dkg)%uv$LCC>nWF}jju!)v8 z*)eQRT!Ex3`ps%iNNh}}?t(V4wJc{Wgbm8*d;^pgof*r$^v*uH#WfV;40g~wRyw1w zfGU6qr|rMTFPy_qE#zj{zz8~PtsZpk2zJ2XrHm{lSz%W7sJqRT5jFN5dDLYG*Sfao zc~ztuvxT52b-z7Rj{XLGEB9tq5xro4`Vikshk;*ZEJ?9;miC>wv^0jw&40v z%~wy^?V{db@PUz7Ry!np7tt-C@DkBOJU$2b?-kP-(XnGfOc#`@JOv52H~w5M51p)K%zCj_{rxr#5Jw zTghGHCw(*%x8uWX_@Q0;j*1T3-Kp?3#NURw-EwpSNdx^V`+~FsF#^~N5T9Zf`gYkB z0b&J7@HCOr5ZfM7=6M8EkYv5qo&=@IG6+9;<1xTqw8V4@k7J9s5Stm|2W^aGziN7Y z=&gYVO~L1--{Dnow|<9L;Y!ypdlf#C^;wgkJ9PX(aYkLxj8h(%qT0%>VqQrYT2R6< z`HYO$thO*V1uv$BitL>PGQB^ObEJU?X>3o(PBI9cVzi@uXHyW|!K^k(W<~iN2n7WM ztiwQs;w8Msju~8^@E^f#Wo@P{45!pHv6Zzc9vnTX;y0Q;J%g3u)xu9}dhjW{(f^eu z?X1IJIDK}HJ0<9pNKU|uTK7cuQGLTs%#d@UrTa!hkw;^WXyxD6hVa^_@Rrpu4~#i# zUWUP%M(w2ux`h<;F~OF%EbE#tkEG4B9d&rOfUt*#nRi>CDl77vqB@;VbsY;1gGB1? zW_W}eQ=Ll#uW?bIE0TE1xIMQBZ-a5H&WkX)qx7yo$7x@D{z2j!W+7S0AIzAuGctxy zhWA8OC`PG%YNTgx3jW%2wWiI`ZTK`>%k7 zBLDyZzDYzuRA}DqmrV+TFc5`Dk@g~j8_~0PAG7i}-bUPrIY~F^rW9?{VhGaeeBUmU zpT#5d@*)BN00000007!Z-YR+LR%2_DGYgRVif(SDDhm}iz$-xA^lDll^A(42Qse=z zJs--!Jt7qmsmfy2^P%I@d4MJm009s{H(B%vvCrt1r`no7&H<0;TsQqQK)Jc~rpo2~ zr}fJ{!#Lf Date: Tue, 27 Jul 2021 22:11:49 -0400 Subject: [PATCH 08/13] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 08279ff..ab82302 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # Random-Mod Random Mod is a mod that has armor, weapons, and tools. Also have a towel hanger, and some food with it.  The armor is stronger than iron but the same strength as diamond. The weapons like the sword is stronger than diamond sword and the tools are the same as the diamond tools. The towel hanger is just a decoration block so it does not do much. The food in this mod has a negative affects if you eat raw but when cooked the buff will have a positive affect. ___________________________________________________________________________________________________________________________________________________________________________________ +[![Alt text](https://img.youtube.com/vi/rK8y4ghOhuY/mq2.jpg)](https://www.youtube.com/watch?v=rK8y4ghOhuY) ___________________________________________________________________________________________________________________________________________________________________________________ Hey guys Canadian Gamer here, this is the Random Mod, which is right now in 1.12.2. Right now I am recoding everything in 1.16.4. ( maybe do a fabric version as well.) From 3d6041dd280e3cefd4e6f36dd60cd2fef544adca Mon Sep 17 00:00:00 2001 From: EasyCanadianGamer <39717944+EasyCanadianGamer@users.noreply.github.com> Date: Tue, 27 Jul 2021 22:13:24 -0400 Subject: [PATCH 09/13] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index ab82302..8fe760f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,9 @@ # Random-Mod Random Mod is a mod that has armor, weapons, and tools. Also have a towel hanger, and some food with it.  The armor is stronger than iron but the same strength as diamond. The weapons like the sword is stronger than diamond sword and the tools are the same as the diamond tools. The towel hanger is just a decoration block so it does not do much. The food in this mod has a negative affects if you eat raw but when cooked the buff will have a positive affect. ___________________________________________________________________________________________________________________________________________________________________________________ +Offical Mod review for the Random Mod +- + [![Alt text](https://img.youtube.com/vi/rK8y4ghOhuY/mq2.jpg)](https://www.youtube.com/watch?v=rK8y4ghOhuY) ___________________________________________________________________________________________________________________________________________________________________________________ From a3de5ad70f3307e73b462d108049e8d0f020fc72 Mon Sep 17 00:00:00 2001 From: EasyCanadianGamer <39717944+EasyCanadianGamer@users.noreply.github.com> Date: Wed, 28 Jul 2021 21:23:11 -0400 Subject: [PATCH 10/13] Add files via upload --- .../canadiangamer/randommod/RandomMod.java | 58 +++++++++++++++++++ .../randommod/client/util/ClientUtils.java | 9 +++ .../randommod/core/init/BlockInit.java | 37 ++++++++++++ .../core/init/ContainerTypeInit.java | 5 ++ .../randommod/core/init/EnchantmentInit.java | 5 ++ .../randommod/core/init/EntityTypeInit.java | 5 ++ .../randommod/core/init/ItemInit.java | 26 +++++++++ .../randommod/core/init/PotionInit.java | 5 ++ .../core/init/TileEntityTypeInit.java | 5 ++ .../randommod/world/OreGeneration.java | 33 +++++++++++ main/resources/META-INF/mods.toml | 16 +++++ .../assets/rm/blockstates/random_block.json | 2 +- .../assets/rm/blockstates/random_ore.json | 2 +- main/resources/assets/rm/lang/en_us.json | 5 ++ .../assets/rm/models/block/random_block.json | 8 +-- .../assets/rm/models/block/random_ore.json | 8 +-- .../assets/rm/models/item/random_block.json | 3 +- .../assets/rm/models/item/random_ore.json | 3 +- main/resources/pack.mcmeta | 4 +- 19 files changed, 223 insertions(+), 16 deletions(-) create mode 100644 main/java/com/canadiangamer/randommod/RandomMod.java create mode 100644 main/java/com/canadiangamer/randommod/client/util/ClientUtils.java create mode 100644 main/java/com/canadiangamer/randommod/core/init/BlockInit.java create mode 100644 main/java/com/canadiangamer/randommod/core/init/ContainerTypeInit.java create mode 100644 main/java/com/canadiangamer/randommod/core/init/EnchantmentInit.java create mode 100644 main/java/com/canadiangamer/randommod/core/init/EntityTypeInit.java create mode 100644 main/java/com/canadiangamer/randommod/core/init/ItemInit.java create mode 100644 main/java/com/canadiangamer/randommod/core/init/PotionInit.java create mode 100644 main/java/com/canadiangamer/randommod/core/init/TileEntityTypeInit.java create mode 100644 main/java/com/canadiangamer/randommod/world/OreGeneration.java create mode 100644 main/resources/META-INF/mods.toml create mode 100644 main/resources/assets/rm/lang/en_us.json diff --git a/main/java/com/canadiangamer/randommod/RandomMod.java b/main/java/com/canadiangamer/randommod/RandomMod.java new file mode 100644 index 0000000..8924bad --- /dev/null +++ b/main/java/com/canadiangamer/randommod/RandomMod.java @@ -0,0 +1,58 @@ +package com.canadiangamer.randommod; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import com.canadiangamer.randommod.core.init.BlockInit; +import com.canadiangamer.randommod.core.init.ItemInit; +import com.canadiangamer.randommod.world.OreGeneration; + +import net.minecraft.item.ItemGroup; +import net.minecraft.item.ItemStack; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.eventbus.api.EventPriority; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; +import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; + +// The value here should match an entry in the META-INF/mods.toml file +@Mod(RandomMod.MOD_ID) +public class RandomMod +{ + // Directly reference a log4j logger. + public static final Logger LOGGER = LogManager.getLogger(); + public static final String MOD_ID = "rm"; +public static final ItemGroup RANDOM_GROUP = new RandomGroup("RandomModTab"); + public RandomMod() { + IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus(); + bus.addListener(this::setup); + + ItemInit.ITEMS.register(bus); + BlockInit.BLOCKS.register(bus); + + MinecraftForge.EVENT_BUS.register(this); + MinecraftForge.EVENT_BUS.addListener(EventPriority.HIGH, OreGeneration::generateOres); + } + + private void setup(final FMLCommonSetupEvent event) + { + + } + + + + public static class RandomGroup extends ItemGroup { + + public RandomGroup(String label) { + super(label); + } + + @Override + public ItemStack createIcon() { + return ItemInit.RANDOM_BLOCK.get().getDefaultInstance(); + } + } + + +} diff --git a/main/java/com/canadiangamer/randommod/client/util/ClientUtils.java b/main/java/com/canadiangamer/randommod/client/util/ClientUtils.java new file mode 100644 index 0000000..ba40bc6 --- /dev/null +++ b/main/java/com/canadiangamer/randommod/client/util/ClientUtils.java @@ -0,0 +1,9 @@ +package com.canadiangamer.randommod.client.util; + +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; + +@OnlyIn(Dist.CLIENT) +public class ClientUtils { + +} diff --git a/main/java/com/canadiangamer/randommod/core/init/BlockInit.java b/main/java/com/canadiangamer/randommod/core/init/BlockInit.java new file mode 100644 index 0000000..7159fa0 --- /dev/null +++ b/main/java/com/canadiangamer/randommod/core/init/BlockInit.java @@ -0,0 +1,37 @@ +package com.canadiangamer.randommod.core.init; + +import java.util.function.ToIntFunction; + +import com.canadiangamer.randommod.RandomMod; + +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; +import net.minecraft.block.material.MaterialColor; +import net.minecraftforge.common.ToolType; +import net.minecraftforge.fml.RegistryObject; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; + +public class BlockInit { + + + // Light level (Change the 5 to whatever light level you want). + public static ToIntFunction lightLevel = BlockState -> 10; + + public static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, + RandomMod.MOD_ID); + + public static final RegistryObject RANDOM_BLOCK = BLOCKS + .register("random_block", + () -> new Block(AbstractBlock.Properties.create(Material.IRON, MaterialColor.BLUE) + .hardnessAndResistance(15f, 30f).harvestTool(ToolType.PICKAXE).harvestLevel(5) + .sound(SoundType.METAL).setRequiresTool().setLightLevel(lightLevel))); + + public static final RegistryObject RANDOM_ORE = BLOCKS.register("random_ore", + () -> new Block(AbstractBlock.Properties.from(Blocks.IRON_ORE))); + +} diff --git a/main/java/com/canadiangamer/randommod/core/init/ContainerTypeInit.java b/main/java/com/canadiangamer/randommod/core/init/ContainerTypeInit.java new file mode 100644 index 0000000..a1378fa --- /dev/null +++ b/main/java/com/canadiangamer/randommod/core/init/ContainerTypeInit.java @@ -0,0 +1,5 @@ +package com.canadiangamer.randommod.core.init; + +public class ContainerTypeInit { + +} diff --git a/main/java/com/canadiangamer/randommod/core/init/EnchantmentInit.java b/main/java/com/canadiangamer/randommod/core/init/EnchantmentInit.java new file mode 100644 index 0000000..89b3b3e --- /dev/null +++ b/main/java/com/canadiangamer/randommod/core/init/EnchantmentInit.java @@ -0,0 +1,5 @@ +package com.canadiangamer.randommod.core.init; + +public class EnchantmentInit { + +} diff --git a/main/java/com/canadiangamer/randommod/core/init/EntityTypeInit.java b/main/java/com/canadiangamer/randommod/core/init/EntityTypeInit.java new file mode 100644 index 0000000..8f5feaf --- /dev/null +++ b/main/java/com/canadiangamer/randommod/core/init/EntityTypeInit.java @@ -0,0 +1,5 @@ +package com.canadiangamer.randommod.core.init; + +public class EntityTypeInit { + +} diff --git a/main/java/com/canadiangamer/randommod/core/init/ItemInit.java b/main/java/com/canadiangamer/randommod/core/init/ItemInit.java new file mode 100644 index 0000000..61329e2 --- /dev/null +++ b/main/java/com/canadiangamer/randommod/core/init/ItemInit.java @@ -0,0 +1,26 @@ +package com.canadiangamer.randommod.core.init; + +import com.canadiangamer.randommod.RandomMod; + +import net.minecraft.item.BlockItem; +import net.minecraft.item.Item; +import net.minecraftforge.fml.RegistryObject; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; + +public class ItemInit { + +public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, + RandomMod.MOD_ID); +//Items + public static final RegistryObject RANDOM_INGOT = ITEMS.register("random_ingot", + () -> new Item(new Item.Properties().group(RandomMod.RANDOM_GROUP))); + + // Block Items + public static final RegistryObject RANDOM_BLOCK = ITEMS.register("random_block", + () -> new BlockItem(BlockInit.RANDOM_BLOCK.get(), + new Item.Properties().group(RandomMod.RANDOM_GROUP))); + + public static final RegistryObject RANDOM_ORE = ITEMS.register("random_ore", + () -> new BlockItem(BlockInit.RANDOM_ORE.get(), new Item.Properties().group(RandomMod.RANDOM_GROUP))); +} diff --git a/main/java/com/canadiangamer/randommod/core/init/PotionInit.java b/main/java/com/canadiangamer/randommod/core/init/PotionInit.java new file mode 100644 index 0000000..436ab26 --- /dev/null +++ b/main/java/com/canadiangamer/randommod/core/init/PotionInit.java @@ -0,0 +1,5 @@ +package com.canadiangamer.randommod.core.init; + +public class PotionInit { + +} diff --git a/main/java/com/canadiangamer/randommod/core/init/TileEntityTypeInit.java b/main/java/com/canadiangamer/randommod/core/init/TileEntityTypeInit.java new file mode 100644 index 0000000..4b7e284 --- /dev/null +++ b/main/java/com/canadiangamer/randommod/core/init/TileEntityTypeInit.java @@ -0,0 +1,5 @@ +package com.canadiangamer.randommod.core.init; + +public class TileEntityTypeInit { + +} diff --git a/main/java/com/canadiangamer/randommod/world/OreGeneration.java b/main/java/com/canadiangamer/randommod/world/OreGeneration.java new file mode 100644 index 0000000..1b5ab25 --- /dev/null +++ b/main/java/com/canadiangamer/randommod/world/OreGeneration.java @@ -0,0 +1,33 @@ +package com.canadiangamer.randommod.world; + +import com.canadiangamer.randommod.core.init.BlockInit; + +import net.minecraft.block.BlockState; +import net.minecraft.world.biome.Biome; +import net.minecraft.world.gen.GenerationStage; +import net.minecraft.world.gen.feature.Feature; +import net.minecraft.world.gen.feature.OreFeatureConfig; +import net.minecraft.world.gen.feature.template.RuleTest; +import net.minecraft.world.gen.placement.Placement; +import net.minecraft.world.gen.placement.TopSolidRangeConfig; +import net.minecraftforge.common.world.BiomeGenerationSettingsBuilder; +import net.minecraftforge.event.world.BiomeLoadingEvent; + +public class OreGeneration { + + + public static void generateOres(final BiomeLoadingEvent event) { + if (!(event.getCategory().equals(Biome.Category.NETHER) || event.getCategory().equals(Biome.Category.THEEND))) { + generateOre(event.getGeneration(), OreFeatureConfig.FillerBlockType.BASE_STONE_OVERWORLD, + BlockInit.RANDOM_ORE.get().getDefaultState(), 5, 15, 30, 10); + } + } + + private static void generateOre(BiomeGenerationSettingsBuilder settings, RuleTest fillerType, BlockState state, + int veinSize, int minHeight, int maxHeight, int amount) { + settings.withFeature(GenerationStage.Decoration.UNDERGROUND_ORES, + Feature.ORE.withConfiguration(new OreFeatureConfig(fillerType, state, veinSize)) + .withPlacement(Placement.RANGE.configure(new TopSolidRangeConfig(minHeight, 0, maxHeight))) + .square().func_242731_b(amount)); + } +} diff --git a/main/resources/META-INF/mods.toml b/main/resources/META-INF/mods.toml new file mode 100644 index 0000000..b2d934d --- /dev/null +++ b/main/resources/META-INF/mods.toml @@ -0,0 +1,16 @@ + +modLoader="javafml" #mandatory +loaderVersion="[35,)" +license="All rights reserved" + +[[mods]] +modId="rm" #mandatory +version="2.0" +displayName="Random Mod" +displayURL="https://www.curseforge.com/minecraft/mc-mods/random-mod-by-easycanadiangamer" +logoFile="examplemod.png" +credits="Thank you to my Subscribers!" +authors="Canadian Gamer!" +description=''' +An random mod. +''' diff --git a/main/resources/assets/rm/blockstates/random_block.json b/main/resources/assets/rm/blockstates/random_block.json index 8146911..ecb39fe 100644 --- a/main/resources/assets/rm/blockstates/random_block.json +++ b/main/resources/assets/rm/blockstates/random_block.json @@ -1,5 +1,5 @@ { "variants": { - "normal": { "model": "rm:random_block" } + "": { "model": "rm:block/random_block" } } } \ No newline at end of file diff --git a/main/resources/assets/rm/blockstates/random_ore.json b/main/resources/assets/rm/blockstates/random_ore.json index 100a67c..c6d6c77 100644 --- a/main/resources/assets/rm/blockstates/random_ore.json +++ b/main/resources/assets/rm/blockstates/random_ore.json @@ -1,5 +1,5 @@ { "variants": { - "normal": { "model": "rm:random_ore" } + "": { "model": "rm:block/random_ore" } } } \ No newline at end of file diff --git a/main/resources/assets/rm/lang/en_us.json b/main/resources/assets/rm/lang/en_us.json new file mode 100644 index 0000000..d942387 --- /dev/null +++ b/main/resources/assets/rm/lang/en_us.json @@ -0,0 +1,5 @@ +{ +"item.rm.random_ingot": "Random Ingot", +"block.rm.random_block": "Random Block", +"block.rm.random_ore": "Random Ore" +} \ No newline at end of file diff --git a/main/resources/assets/rm/models/block/random_block.json b/main/resources/assets/rm/models/block/random_block.json index 2166886..d2b6e76 100644 --- a/main/resources/assets/rm/models/block/random_block.json +++ b/main/resources/assets/rm/models/block/random_block.json @@ -1,6 +1,6 @@ { - "parent": "block/cube_all", - "textures": { - "all": "rm:blocks/random_block" - } + "parent": "block/cube_all", + "textures": { + "all": "rm:blocks/random_block" + } } \ No newline at end of file diff --git a/main/resources/assets/rm/models/block/random_ore.json b/main/resources/assets/rm/models/block/random_ore.json index eec086a..8f57e26 100644 --- a/main/resources/assets/rm/models/block/random_ore.json +++ b/main/resources/assets/rm/models/block/random_ore.json @@ -1,6 +1,6 @@ { - "parent": "block/cube_all", - "textures": { - "all": "rm:blocks/random_ore" - } + "parent": "block/cube_all", + "textures": { + "all": "rm:blocks/random_ore" + } } \ No newline at end of file diff --git a/main/resources/assets/rm/models/item/random_block.json b/main/resources/assets/rm/models/item/random_block.json index c5e6b0a..19d7f4b 100644 --- a/main/resources/assets/rm/models/item/random_block.json +++ b/main/resources/assets/rm/models/item/random_block.json @@ -1,4 +1,3 @@ - { - "parent": "rm:block/random_block" + "parent": "rm:block/random_block" } \ No newline at end of file diff --git a/main/resources/assets/rm/models/item/random_ore.json b/main/resources/assets/rm/models/item/random_ore.json index a53f0cf..d0d80c1 100644 --- a/main/resources/assets/rm/models/item/random_ore.json +++ b/main/resources/assets/rm/models/item/random_ore.json @@ -1,4 +1,3 @@ - { - "parent": "rm:block/random_ore" + "parent": "rm:block/random_ore" } \ No newline at end of file diff --git a/main/resources/pack.mcmeta b/main/resources/pack.mcmeta index 4018267..c79a362 100644 --- a/main/resources/pack.mcmeta +++ b/main/resources/pack.mcmeta @@ -1,7 +1,7 @@ { "pack": { "description": "examplemod resources", - "pack_format": 3, - "_comment": "A pack_format of 3 should be used starting with Minecraft 1.11. All resources, including language files, should be lowercase (eg: en_us.lang). A pack_format of 2 will load your mod resources with LegacyV2Adapter, which requires language files to have uppercase letters (eg: en_US.lang)." + "pack_format": 6, + "_comment": "A pack_format of 6 requires json lang files and some texture changes from 1.16.2. Note: we require v6 pack meta for all mods." } } From c84a2a54c0b9408ee802d8742d267d9eee991280 Mon Sep 17 00:00:00 2001 From: CanadianGamer <39717944+EasyCanadianGamer@users.noreply.github.com> Date: Fri, 1 Sep 2023 11:27:30 -0400 Subject: [PATCH 11/13] Update README.md --- README.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 8fe760f..7569eec 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Random-Mod +# randommod-1.20.1 - Forge Random Mod is a mod that has armor, weapons, and tools. Also have a towel hanger, and some food with it.  The armor is stronger than iron but the same strength as diamond. The weapons like the sword is stronger than diamond sword and the tools are the same as the diamond tools. The towel hanger is just a decoration block so it does not do much. The food in this mod has a negative affects if you eat raw but when cooked the buff will have a positive affect. ___________________________________________________________________________________________________________________________________________________________________________________ Offical Mod review for the Random Mod @@ -7,6 +7,5 @@ Offical Mod review for the Random Mod [![Alt text](https://img.youtube.com/vi/rK8y4ghOhuY/mq2.jpg)](https://www.youtube.com/watch?v=rK8y4ghOhuY) ___________________________________________________________________________________________________________________________________________________________________________________ -Hey guys Canadian Gamer here, this is the Random Mod, which is right now in 1.12.2. Right now I am recoding everything in 1.16.4. ( maybe do a fabric version as well.) -This will take some time to recode everything so please be patient! -You can download here on github or at [CurseForge](https://www.curseforge.com/minecraft/mc-mods/random-mod-by-easycanadiangamer)! +You can download at [Modrinth](https://www.modrinth.com/mod/randommod/version/A3Y4VKHf) or at [CurseForge](https://www.curseforge.com/minecraft/mc-mods/random-mod-by-easycanadiangamer)! +Fabric Fabric Version: [Fabric](https://github.com/EasyCanadianGamer/random-mod-fabric-1.20.1) From 5f54abf95a38e1e57d6e1ee0156e0e1dc51de965 Mon Sep 17 00:00:00 2001 From: CanadianGamer <39717944+EasyCanadianGamer@users.noreply.github.com> Date: Fri, 1 Sep 2023 11:35:37 -0400 Subject: [PATCH 12/13] Update README.md --- README.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7569eec..e9312d5 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# randommod-1.20.1 - Forge +# Random Mod - Forge & Fabric Random Mod is a mod that has armor, weapons, and tools. Also have a towel hanger, and some food with it.  The armor is stronger than iron but the same strength as diamond. The weapons like the sword is stronger than diamond sword and the tools are the same as the diamond tools. The towel hanger is just a decoration block so it does not do much. The food in this mod has a negative affects if you eat raw but when cooked the buff will have a positive affect. ___________________________________________________________________________________________________________________________________________________________________________________ Offical Mod review for the Random Mod @@ -8,4 +8,14 @@ Offical Mod review for the Random Mod ___________________________________________________________________________________________________________________________________________________________________________________ You can download at [Modrinth](https://www.modrinth.com/mod/randommod/version/A3Y4VKHf) or at [CurseForge](https://www.curseforge.com/minecraft/mc-mods/random-mod-by-easycanadiangamer)! -Fabric Fabric Version: [Fabric](https://github.com/EasyCanadianGamer/random-mod-fabric-1.20.1) + + + + +Fabric Version: [Fabric](https://github.com/EasyCanadianGamer/random-mod-fabric-1.20.1) + + + + + +Forge Version: [Forge](https://github.com/EasyCanadianGamer/randommod-1.20.1) From 1f4c262c3cbfd6fbd49201588df56fbe6424e3a3 Mon Sep 17 00:00:00 2001 From: CanadianGamer <39717944+EasyCanadianGamer@users.noreply.github.com> Date: Mon, 10 Feb 2025 14:33:08 -0500 Subject: [PATCH 13/13] Update README.md --- README.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e9312d5..8734ed9 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,15 @@ # Random Mod - Forge & Fabric -Random Mod is a mod that has armor, weapons, and tools. Also have a towel hanger, and some food with it.  The armor is stronger than iron but the same strength as diamond. The weapons like the sword is stronger than diamond sword and the tools are the same as the diamond tools. The towel hanger is just a decoration block so it does not do much. The food in this mod has a negative affects if you eat raw but when cooked the buff will have a positive affect. +Random Mod is a mod that has armor, weapons, and tools. Also have a towel hanger, and some food with it. The armor is stronger than iron but the same strength as diamond. The weapons like the sword is stronger than diamond sword and the tools are the same as the diamond tools. The towel hanger is just a decoration block so it does not do much. The food in this mod has a negative affects if you eat raw but when cooked the buff will have a positive affect. + + +______________________________________________________________________________ + +## Items to add: + + - [ ] Crack Cocaine + - [ ] The Random Dimension + - [ ] Air Pods + ___________________________________________________________________________________________________________________________________________________________________________________ Offical Mod review for the Random Mod -