diff --git a/IDEAS.md b/IDEAS.md index 5a931de..0c3d511 100644 --- a/IDEAS.md +++ b/IDEAS.md @@ -45,23 +45,24 @@ - G-Mans Suitcase (potential GMAN doors?) - Blocks - Vending Machines - - Crates (various Sizes) + - ~~Crates~~ + - various Sizes - Metal Fence - - Trash bins + - ~~Trash bins~~ - Microwave - Barrels (all variants) - Grate bridge floor - - ERROR Model + - ~~ERROR Model~~ - Initial security room floors (when barnie lets you in at the beginning) - Black Mesa Tiles (From right after above section) - Black Mesa Sliding security door - White board - - Filing cabinet + - ~~Filing cabinet~~ - Authorized personnel only sign - Hanging Fluorescent light - Black Mesa wall computers/controls - Break room trash can - - Lockerroom lockers + - Locker-room lockers - The retinal scanner (redstone output if correct person uses it) - Metal Ladders - diff --git a/src/main/java/xyz/limepot/block_life/armor/HEVArmorMaterial.java b/src/main/java/xyz/limepot/block_life/armor/HEVArmorMaterial.java new file mode 100644 index 0000000..680d32b --- /dev/null +++ b/src/main/java/xyz/limepot/block_life/armor/HEVArmorMaterial.java @@ -0,0 +1,91 @@ +package xyz.limepot.block_life.armor; + +import net.minecraft.item.ArmorItem; +import net.minecraft.item.ArmorMaterial; +import net.minecraft.sound.SoundEvent; + +public class HEVArmorMaterial implements ArmorMaterial { + public static final HEVArmorMaterial INSTANCE = new HEVArmorMaterial(); + + // Base durability values for all the slots. + // Boots, Leggings, Chestplate, Helmet + private static final int[] BASE_DURABILITY = new int[] {13, 15, 16, 11}; + + // Protection values for all the slots. + // For reference, diamond uses 3 for boots, 6 for leggings, 8 for chestplate + // and 3 for helmet. + private static final int PROTECTION_BOOTS = 5; + private static final int PROTECTION_LEGGINGS = 8; + private static final int PROTECTION_CHESTPLATE = 10; + private static final int PROTECTION_HELMET = 5; + + // Storing the protection and durability values in an array allows + // you to quickly get them by slot ID. + private static final int[] PROTECTION_VALUES = new int[] { + PROTECTION_BOOTS, + PROTECTION_LEGGINGS, + PROTECTION_CHESTPLATE, + PROTECTION_HELMET + }; + + // Durability + // Returns the durability for a specific armor type - in hit points. + // The hit points specify the amount of hits the armor item can take before breaking. + + @Override + public int getDurability(ArmorItem.ArmorSlot slot) { + return 0; + } + + // Protection + // Returns the protection value for a specific armor type. + // Usually this is always the same, regardless of your armor material. + @Override + public int getProtection(ArmorItem.ArmorSlot slot) { + return 0; + } + + // Enchanability + // How easy is it to get better and higher level enchantments with this item? + @Override + public int getEnchantability() { + return 5; + } + + // Equip Sound + // What sound should be played when the armor is equipped? + @Override + public SoundEvent getEquipSound() { + return null; + } + + // Repair Ingredient + // What item or items can be used in an anvil to repair the armor items? + @Override + public net.minecraft.recipe.Ingredient getRepairIngredient() { + return null; + } + + // Name + // The name of the armor material - must be lowercase. + @Override + public String getName() { + return "hev"; + } + + // Toughness + // How much protection should be given for high-damage attacks? + // For reference, everything except diamond (2.0F) and netherite (4.0F) have a toughness of zero. + @Override + public float getToughness() { + return 2.0F; + } + + // Knockback Resistance + // How much knockback resistance should the armor give the entity? + @Override + public float getKnockbackResistance() { + // I do not want Guidite Armor to give knockback resistance. + return 0; + } +} diff --git a/src/main/kotlin/xyz/limepot/block_life/BlockLife.kt b/src/main/kotlin/xyz/limepot/block_life/BlockLife.kt index b24a0c5..f8e0b9a 100644 --- a/src/main/kotlin/xyz/limepot/block_life/BlockLife.kt +++ b/src/main/kotlin/xyz/limepot/block_life/BlockLife.kt @@ -7,6 +7,7 @@ import org.slf4j.LoggerFactory import xyz.limepot.block_life.block.ModBlocks import xyz.limepot.block_life.item.ModItems + object BlockLife : ModInitializer { const val MOD_ID = "block_life" val LOGGER: Logger = LoggerFactory.getLogger("Block-Life") diff --git a/src/main/kotlin/xyz/limepot/block_life/block/ModBlocks.kt b/src/main/kotlin/xyz/limepot/block_life/block/ModBlocks.kt index c9988a5..a3b7b6c 100644 --- a/src/main/kotlin/xyz/limepot/block_life/block/ModBlocks.kt +++ b/src/main/kotlin/xyz/limepot/block_life/block/ModBlocks.kt @@ -12,12 +12,33 @@ import org.quiltmc.qsl.item.setting.api.QuiltItemSettings import xyz.limepot.block_life.BlockLife class ModBlocks { - + //Meme Blocks val MISSING_MODEL: Block = registerBlock( "missing_model", Block( QuiltBlockSettings.copyOf(Blocks.BARRIER) .luminance(20) .breakInstantly() + .nonOpaque() + .collidable(false) + ) + ) + + // Chest-Likes + val WOODEN_CRATE: Block = registerBlock( + "wooden_crate", Block( + QuiltBlockSettings.copyOf(Blocks.CHEST) + ) + ) + + val TRASH_BIN: Block = registerBlock( + "trash_bin", Block( + QuiltBlockSettings.copyOf(Blocks.CHAIN) + ) + ) + + val FILING_CABINET: Block = registerBlock( + "filing_cabinet", Block( + QuiltBlockSettings.copyOf(Blocks.IRON_BLOCK) ) ) diff --git a/src/main/kotlin/xyz/limepot/block_life/item/ModItems.kt b/src/main/kotlin/xyz/limepot/block_life/item/ModItems.kt index 3c30f98..6781960 100644 --- a/src/main/kotlin/xyz/limepot/block_life/item/ModItems.kt +++ b/src/main/kotlin/xyz/limepot/block_life/item/ModItems.kt @@ -19,7 +19,15 @@ class ModItems { /*TODO: Setup our own custom mineable list, */ QuiltItemSettings()) ) - +/* + val HEV_HELMET: Item = + registerItem( + "hev_helmet", + ArmorItem(HEVArmorMaterial.INSTANCE, + , + QuiltItemSettings()) + ) +*/ //registry template private fun registerItem(name: String, item: Item): Item { BlockLife.LOGGER.debug("Registering " + name) diff --git a/src/main/resources/assets/block_life/blockstates/trash_bin.json b/src/main/resources/assets/block_life/blockstates/trash_bin.json new file mode 100644 index 0000000..438f88b --- /dev/null +++ b/src/main/resources/assets/block_life/blockstates/trash_bin.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "block_life:block/trash_bin" + } + } +} diff --git a/src/main/resources/assets/block_life/blockstates/wooden_crate.json b/src/main/resources/assets/block_life/blockstates/wooden_crate.json new file mode 100644 index 0000000..a6170f1 --- /dev/null +++ b/src/main/resources/assets/block_life/blockstates/wooden_crate.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "block_life:block/wooden_crate" + } + } +} diff --git a/src/main/resources/assets/block_life/lang/en_us.json b/src/main/resources/assets/block_life/lang/en_us.json index bfa852e..8a8c663 100644 --- a/src/main/resources/assets/block_life/lang/en_us.json +++ b/src/main/resources/assets/block_life/lang/en_us.json @@ -1,3 +1,6 @@ { - "item.block_life.crowbar": "Crowbar" + "item.block_life.crowbar": "Crowbar", + "block.block_life.missing_model": "MISSING_MODEL", + "block.block_life.wooden_crate": "Wooden Crate", + "block.block_life.trash_bin": "Trash Bin" } diff --git a/src/main/resources/assets/block_life/models/block/trash_bin.json b/src/main/resources/assets/block_life/models/block/trash_bin.json new file mode 100644 index 0000000..18c1cd8 --- /dev/null +++ b/src/main/resources/assets/block_life/models/block/trash_bin.json @@ -0,0 +1,130 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "block_life:block/trash_bin", + "particle": "block_life:block/trash_bin" + }, + "elements": [ + { + "from": [4, 0, 4], + "to": [12, 7, 12], + "faces": { + "north": {"uv": [2, 2, 4, 3.75], "texture": "#0"}, + "east": {"uv": [0, 2, 2, 3.75], "texture": "#0"}, + "south": {"uv": [6, 2, 8, 3.75], "texture": "#0"}, + "west": {"uv": [4, 2, 6, 3.75], "texture": "#0"}, + "up": {"uv": [4, 2, 2, 0], "texture": "#0"}, + "down": {"uv": [6, 0, 4, 2], "texture": "#0"} + } + }, + { + "from": [5, 7, 5], + "to": [11, 10, 11], + "faces": { + "north": {"uv": [1.5, 5.25, 3, 6], "texture": "#0"}, + "east": {"uv": [0, 5.25, 1.5, 6], "texture": "#0"}, + "south": {"uv": [4.5, 5.25, 6, 6], "texture": "#0"}, + "west": {"uv": [3, 5.25, 4.5, 6], "texture": "#0"}, + "up": {"uv": [3, 5.25, 1.5, 3.75], "texture": "#0"}, + "down": {"uv": [4.5, 3.75, 3, 5.25], "texture": "#0"} + } + }, + { + "from": [3, 12, 3], + "to": [4, 13, 13], + "faces": { + "north": {"uv": [2.5, 8.5, 2.75, 8.75], "texture": "#0"}, + "east": {"uv": [0, 8.5, 2.5, 8.75], "texture": "#0"}, + "south": {"uv": [5.25, 8.5, 5.5, 8.75], "texture": "#0"}, + "west": {"uv": [2.75, 8.5, 5.25, 8.75], "texture": "#0"}, + "up": {"uv": [2.75, 8.5, 2.5, 6], "texture": "#0"}, + "down": {"uv": [3, 6, 2.75, 8.5], "texture": "#0"} + } + }, + { + "from": [4, 7, 4], + "to": [5, 12, 12], + "faces": { + "north": {"uv": [7.5, 8.5, 7.75, 9.75], "texture": "#0"}, + "east": {"uv": [5.5, 8.5, 7.5, 9.75], "texture": "#0"}, + "south": {"uv": [9.75, 8.5, 10, 9.75], "texture": "#0"}, + "west": {"uv": [7.75, 8.5, 9.75, 9.75], "texture": "#0"}, + "up": {"uv": [7.75, 8.5, 7.5, 6.5], "texture": "#0"}, + "down": {"uv": [8, 6.5, 7.75, 8.5], "texture": "#0"} + } + }, + { + "from": [11, 7, 4], + "to": [12, 12, 12], + "faces": { + "north": {"uv": [8.5, 3.75, 8.75, 5], "texture": "#0"}, + "east": {"uv": [6.5, 3.75, 8.5, 5], "texture": "#0"}, + "south": {"uv": [10.75, 3.75, 11, 5], "texture": "#0"}, + "west": {"uv": [8.75, 3.75, 10.75, 5], "texture": "#0"}, + "up": {"uv": [8.75, 3.75, 8.5, 1.75], "texture": "#0"}, + "down": {"uv": [9, 1.75, 8.75, 3.75], "texture": "#0"} + } + }, + { + "from": [5, 7, 11], + "to": [11, 12, 12], + "faces": { + "north": {"uv": [3.25, 6.75, 4.75, 8], "texture": "#0"}, + "east": {"uv": [3, 6.75, 3.25, 8], "texture": "#0"}, + "south": {"uv": [5, 6.75, 6.5, 8], "texture": "#0"}, + "west": {"uv": [4.75, 6.75, 5, 8], "texture": "#0"}, + "up": {"uv": [4.75, 6.75, 3.25, 6.5], "texture": "#0"}, + "down": {"uv": [6.25, 6.5, 4.75, 6.75], "texture": "#0"} + } + }, + { + "from": [5, 7, 4], + "to": [11, 12, 5], + "faces": { + "north": {"uv": [6.25, 0.25, 7.75, 1.5], "texture": "#0"}, + "east": {"uv": [6, 0.25, 6.25, 1.5], "texture": "#0"}, + "south": {"uv": [8, 0.25, 9.5, 1.5], "texture": "#0"}, + "west": {"uv": [7.75, 0.25, 8, 1.5], "texture": "#0"}, + "up": {"uv": [7.75, 0.25, 6.25, 0], "texture": "#0"}, + "down": {"uv": [9.25, 0, 7.75, 0.25], "texture": "#0"} + } + }, + { + "from": [12, 12, 3], + "to": [13, 13, 13], + "faces": { + "north": {"uv": [6, 6.25, 6.25, 6.5], "texture": "#0"}, + "east": {"uv": [3.5, 6.25, 6, 6.5], "texture": "#0"}, + "south": {"uv": [8.75, 6.25, 9, 6.5], "texture": "#0"}, + "west": {"uv": [6.25, 6.25, 8.75, 6.5], "texture": "#0"}, + "up": {"uv": [6.25, 6.25, 6, 3.75], "texture": "#0"}, + "down": {"uv": [6.5, 3.75, 6.25, 6.25], "texture": "#0"} + } + }, + { + "from": [4, 12, 12], + "to": [12, 13, 13], + "faces": { + "north": {"uv": [6.75, 5.75, 8.75, 6], "texture": "#0"}, + "east": {"uv": [6.5, 5.75, 6.75, 6], "texture": "#0"}, + "south": {"uv": [9, 5.75, 11, 6], "texture": "#0"}, + "west": {"uv": [8.75, 5.75, 9, 6], "texture": "#0"}, + "up": {"uv": [8.75, 5.75, 6.75, 5.5], "texture": "#0"}, + "down": {"uv": [10.75, 5.5, 8.75, 5.75], "texture": "#0"} + } + }, + { + "from": [4, 12, 3], + "to": [12, 13, 4], + "faces": { + "north": {"uv": [6.75, 5.25, 8.75, 5.5], "texture": "#0"}, + "east": {"uv": [6.5, 5.25, 6.75, 5.5], "texture": "#0"}, + "south": {"uv": [9, 5.25, 11, 5.5], "texture": "#0"}, + "west": {"uv": [8.75, 5.25, 9, 5.5], "texture": "#0"}, + "up": {"uv": [8.75, 5.25, 6.75, 5], "texture": "#0"}, + "down": {"uv": [10.75, 5, 8.75, 5.25], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/block_life/models/block/wooden_crate.json b/src/main/resources/assets/block_life/models/block/wooden_crate.json new file mode 100644 index 0000000..a4de876 --- /dev/null +++ b/src/main/resources/assets/block_life/models/block/wooden_crate.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "block_life:block/wooden_crate" + } +} diff --git a/src/main/resources/assets/block_life/models/item/trash_bin.json b/src/main/resources/assets/block_life/models/item/trash_bin.json new file mode 100644 index 0000000..18c1cd8 --- /dev/null +++ b/src/main/resources/assets/block_life/models/item/trash_bin.json @@ -0,0 +1,130 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "block_life:block/trash_bin", + "particle": "block_life:block/trash_bin" + }, + "elements": [ + { + "from": [4, 0, 4], + "to": [12, 7, 12], + "faces": { + "north": {"uv": [2, 2, 4, 3.75], "texture": "#0"}, + "east": {"uv": [0, 2, 2, 3.75], "texture": "#0"}, + "south": {"uv": [6, 2, 8, 3.75], "texture": "#0"}, + "west": {"uv": [4, 2, 6, 3.75], "texture": "#0"}, + "up": {"uv": [4, 2, 2, 0], "texture": "#0"}, + "down": {"uv": [6, 0, 4, 2], "texture": "#0"} + } + }, + { + "from": [5, 7, 5], + "to": [11, 10, 11], + "faces": { + "north": {"uv": [1.5, 5.25, 3, 6], "texture": "#0"}, + "east": {"uv": [0, 5.25, 1.5, 6], "texture": "#0"}, + "south": {"uv": [4.5, 5.25, 6, 6], "texture": "#0"}, + "west": {"uv": [3, 5.25, 4.5, 6], "texture": "#0"}, + "up": {"uv": [3, 5.25, 1.5, 3.75], "texture": "#0"}, + "down": {"uv": [4.5, 3.75, 3, 5.25], "texture": "#0"} + } + }, + { + "from": [3, 12, 3], + "to": [4, 13, 13], + "faces": { + "north": {"uv": [2.5, 8.5, 2.75, 8.75], "texture": "#0"}, + "east": {"uv": [0, 8.5, 2.5, 8.75], "texture": "#0"}, + "south": {"uv": [5.25, 8.5, 5.5, 8.75], "texture": "#0"}, + "west": {"uv": [2.75, 8.5, 5.25, 8.75], "texture": "#0"}, + "up": {"uv": [2.75, 8.5, 2.5, 6], "texture": "#0"}, + "down": {"uv": [3, 6, 2.75, 8.5], "texture": "#0"} + } + }, + { + "from": [4, 7, 4], + "to": [5, 12, 12], + "faces": { + "north": {"uv": [7.5, 8.5, 7.75, 9.75], "texture": "#0"}, + "east": {"uv": [5.5, 8.5, 7.5, 9.75], "texture": "#0"}, + "south": {"uv": [9.75, 8.5, 10, 9.75], "texture": "#0"}, + "west": {"uv": [7.75, 8.5, 9.75, 9.75], "texture": "#0"}, + "up": {"uv": [7.75, 8.5, 7.5, 6.5], "texture": "#0"}, + "down": {"uv": [8, 6.5, 7.75, 8.5], "texture": "#0"} + } + }, + { + "from": [11, 7, 4], + "to": [12, 12, 12], + "faces": { + "north": {"uv": [8.5, 3.75, 8.75, 5], "texture": "#0"}, + "east": {"uv": [6.5, 3.75, 8.5, 5], "texture": "#0"}, + "south": {"uv": [10.75, 3.75, 11, 5], "texture": "#0"}, + "west": {"uv": [8.75, 3.75, 10.75, 5], "texture": "#0"}, + "up": {"uv": [8.75, 3.75, 8.5, 1.75], "texture": "#0"}, + "down": {"uv": [9, 1.75, 8.75, 3.75], "texture": "#0"} + } + }, + { + "from": [5, 7, 11], + "to": [11, 12, 12], + "faces": { + "north": {"uv": [3.25, 6.75, 4.75, 8], "texture": "#0"}, + "east": {"uv": [3, 6.75, 3.25, 8], "texture": "#0"}, + "south": {"uv": [5, 6.75, 6.5, 8], "texture": "#0"}, + "west": {"uv": [4.75, 6.75, 5, 8], "texture": "#0"}, + "up": {"uv": [4.75, 6.75, 3.25, 6.5], "texture": "#0"}, + "down": {"uv": [6.25, 6.5, 4.75, 6.75], "texture": "#0"} + } + }, + { + "from": [5, 7, 4], + "to": [11, 12, 5], + "faces": { + "north": {"uv": [6.25, 0.25, 7.75, 1.5], "texture": "#0"}, + "east": {"uv": [6, 0.25, 6.25, 1.5], "texture": "#0"}, + "south": {"uv": [8, 0.25, 9.5, 1.5], "texture": "#0"}, + "west": {"uv": [7.75, 0.25, 8, 1.5], "texture": "#0"}, + "up": {"uv": [7.75, 0.25, 6.25, 0], "texture": "#0"}, + "down": {"uv": [9.25, 0, 7.75, 0.25], "texture": "#0"} + } + }, + { + "from": [12, 12, 3], + "to": [13, 13, 13], + "faces": { + "north": {"uv": [6, 6.25, 6.25, 6.5], "texture": "#0"}, + "east": {"uv": [3.5, 6.25, 6, 6.5], "texture": "#0"}, + "south": {"uv": [8.75, 6.25, 9, 6.5], "texture": "#0"}, + "west": {"uv": [6.25, 6.25, 8.75, 6.5], "texture": "#0"}, + "up": {"uv": [6.25, 6.25, 6, 3.75], "texture": "#0"}, + "down": {"uv": [6.5, 3.75, 6.25, 6.25], "texture": "#0"} + } + }, + { + "from": [4, 12, 12], + "to": [12, 13, 13], + "faces": { + "north": {"uv": [6.75, 5.75, 8.75, 6], "texture": "#0"}, + "east": {"uv": [6.5, 5.75, 6.75, 6], "texture": "#0"}, + "south": {"uv": [9, 5.75, 11, 6], "texture": "#0"}, + "west": {"uv": [8.75, 5.75, 9, 6], "texture": "#0"}, + "up": {"uv": [8.75, 5.75, 6.75, 5.5], "texture": "#0"}, + "down": {"uv": [10.75, 5.5, 8.75, 5.75], "texture": "#0"} + } + }, + { + "from": [4, 12, 3], + "to": [12, 13, 4], + "faces": { + "north": {"uv": [6.75, 5.25, 8.75, 5.5], "texture": "#0"}, + "east": {"uv": [6.5, 5.25, 6.75, 5.5], "texture": "#0"}, + "south": {"uv": [9, 5.25, 11, 5.5], "texture": "#0"}, + "west": {"uv": [8.75, 5.25, 9, 5.5], "texture": "#0"}, + "up": {"uv": [8.75, 5.25, 6.75, 5], "texture": "#0"}, + "down": {"uv": [10.75, 5, 8.75, 5.25], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/block_life/models/item/wooden_crate.json b/src/main/resources/assets/block_life/models/item/wooden_crate.json new file mode 100644 index 0000000..92bbe83 --- /dev/null +++ b/src/main/resources/assets/block_life/models/item/wooden_crate.json @@ -0,0 +1,22 @@ +{ + "parent": "block_life:block/wooden_crate", + "display": { + "thirdperson": { + "rotation": [ + 10, + -45, + 170 + ], + "translation": [ + 0, + 1.5, + -2.75 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + } + } +} diff --git a/src/main/resources/assets/block_life/textures/block/trash_bin.png b/src/main/resources/assets/block_life/textures/block/trash_bin.png new file mode 100644 index 0000000..4b6d55f Binary files /dev/null and b/src/main/resources/assets/block_life/textures/block/trash_bin.png differ diff --git a/src/main/resources/assets/block_life/textures/block/wooden_crate.png b/src/main/resources/assets/block_life/textures/block/wooden_crate.png new file mode 100644 index 0000000..e6b81da Binary files /dev/null and b/src/main/resources/assets/block_life/textures/block/wooden_crate.png differ