diff --git a/build.gradle b/build.gradle index 8ef7afd..2672ce8 100644 --- a/build.gradle +++ b/build.gradle @@ -11,6 +11,13 @@ group = mod_group_id repositories { mavenLocal() + maven { + name = 'GeckoLib' + url 'https://dl.cloudsmith.io/public/geckolib3/geckolib/maven/' + content { + includeGroup("software.bernie.geckolib") + } + } } base { @@ -101,6 +108,9 @@ dependencies { // The group id is ignored when searching -- in this case, it is "blank" // implementation "blank:coolmod-${mc_version}:${coolmod_version}" + //GeckoLib + implementation "software.bernie.geckolib:geckolib-neoforge-${minecraft_version}:${gecko_lib_version}" + // Example mod dependency using a file as dependency // implementation files("libs/coolmod-${mc_version}-${coolmod_version}.jar") @@ -128,7 +138,9 @@ tasks.withType(ProcessResources).configureEach { mod_license : mod_license, mod_version : mod_version, mod_authors : mod_authors, - mod_description : mod_description + mod_description : mod_description, + gecko_lib_version : gecko_lib_version, + gecko_lib_version_range: gecko_lib_version_range ] inputs.properties replaceProperties diff --git a/gradle.properties b/gradle.properties index c41f5a0..9447e05 100644 --- a/gradle.properties +++ b/gradle.properties @@ -16,7 +16,7 @@ minecraft_version=1.20.6 # as they do not follow standard versioning conventions. minecraft_version_range=[1.20.6,1.21) # The Neo version must agree with the Minecraft version to get a valid artifact -neo_version=20.6.72-beta +neo_version=20.6.100-beta # The Neo version range can use any version of Neo as bounds neo_version_range=[20.6,) # The loader version range can only use the major version of FML as bounds @@ -32,7 +32,7 @@ mod_name=Cog Works Engineering # The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. mod_license=PolyFormPerimeter-1.0 # The mod version. See https://semver.org/ -mod_version=0.2.0 +mod_version=0.3.0 # The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. # This should match the base package used for the mod sources. # See https://maven.apache.org/guides/mini/guide-naming-conventions.html @@ -41,3 +41,9 @@ mod_group_id=org.darkar.cog_works mod_authors=D4RKAR117 # The description of the mod. This is a simple multiline text string that is used for display purposes in the mod list. mod_description=Elevate your Minecraft experience with Cog Works Engineering, a mod that adds a variety of\n new machines and tools to the game. + +## Dependencies + +# Gecko Lib +gecko_lib_version=4.5.3 +gecko_lib_version_range=[4.5.3,) diff --git a/src/generated/resources/.cache/f9f5b962781cbf5adcc0a5f1bb62946a57aa0390 b/src/generated/resources/.cache/f9f5b962781cbf5adcc0a5f1bb62946a57aa0390 index ab42086..b26806a 100644 --- a/src/generated/resources/.cache/f9f5b962781cbf5adcc0a5f1bb62946a57aa0390 +++ b/src/generated/resources/.cache/f9f5b962781cbf5adcc0a5f1bb62946a57aa0390 @@ -1,2 +1,2 @@ -// 1.20.6 2024-05-21T19:36:40.8796163 Languages: en_us for mod: cog_works -ea8464eff1b916d7708dec4c78a9b5bccdd7fa6b assets/cog_works/lang/en_us.json +// 1.20.6 2024-06-01T23:30:49.1563185 Languages: en_us for mod: cog_works +f0204be40d756208deb6105e589e693518b05c9f assets/cog_works/lang/en_us.json diff --git a/src/generated/resources/assets/cog_works/lang/en_us.json b/src/generated/resources/assets/cog_works/lang/en_us.json index 17695c1..e89e1a3 100644 --- a/src/generated/resources/assets/cog_works/lang/en_us.json +++ b/src/generated/resources/assets/cog_works/lang/en_us.json @@ -38,5 +38,6 @@ "block.cog_works.tungsten_ore": "Tungsten Ore", "block.cog_works.uranium_ore": "Uranium Ore", "block.cog_works.vanadium_ore": "Vanadium Ore", - "block.cog_works.zinc_ore": "Zinc Ore" + "block.cog_works.zinc_ore": "Zinc Ore", + "item.cog_works.prospecting_pick": "Prospecting Pick" } \ No newline at end of file diff --git a/src/main/java/org/darkar/cog_works/Registry.java b/src/main/java/org/darkar/cog_works/Registry.java index b3676d1..2a1a743 100644 --- a/src/main/java/org/darkar/cog_works/Registry.java +++ b/src/main/java/org/darkar/cog_works/Registry.java @@ -12,6 +12,7 @@ import net.neoforged.neoforge.registries.DeferredBlock; import net.neoforged.neoforge.registries.DeferredItem; import net.neoforged.neoforge.registries.DeferredRegister; +import org.darkar.cog_works.item.ProspectingPickItem; import static org.darkar.cog_works.CogWorks.LOGGER; import static org.darkar.cog_works.CogWorks.MOD_ID; @@ -26,363 +27,141 @@ static void initialize(IEventBus bus) { public static class Blocks { private static final DeferredRegister.Blocks DEFERRED_REGISTRY = DeferredRegister.createBlocks(MOD_ID); - - public static class Tags { - - public static final TagKey BAUXITE_ORES = createConventional("ores/bauxite"); - public static final TagKey GRAPHITE_ORES = createConventional("ores/graphite"); - public static final TagKey LITHIUM_ORES = createConventional("ores/lithium"); - public static final TagKey MOLYBDENUM_ORES = createConventional("ores/molybdenum"); - public static final TagKey IRIDIUM_ORES = createConventional("ores/iridium"); - public static final TagKey TUNGSTEN_ORES = createConventional("ores/tungsten"); - public static final TagKey TITANIUM_ORES = createConventional("ores/titanium"); - public static final TagKey COBALT_ORES = createConventional("ores/cobalt"); - public static final TagKey NICKEL_ORES = createConventional("ores/nickel"); - public static final TagKey PLATINUM_ORES = createConventional("ores/platinum"); - public static final TagKey BERYLLIUM_ORES = createConventional("ores/beryllium"); - public static final TagKey CADMIUM_ORES = createConventional("ores/cadmium"); - public static final TagKey CHROMIUM_ORES = createConventional("ores/chromium"); - public static final TagKey MANGANESE_ORES = createConventional("ores/manganese"); - public static final TagKey OSMIUM_ORES = createConventional("ores/osmium"); - public static final TagKey PALLADIUM_ORES = createConventional("ores/palladium"); - public static final TagKey THORIUM_ORES = createConventional("ores/thorium"); - public static final TagKey URANIUM_ORES = createConventional("ores/uranium"); - public static final TagKey VANADIUM_ORES = createConventional("ores/vanadium"); - public static final TagKey ZINC_ORES = createConventional("ores/zinc"); - - private static TagKey createConventional(String name) { - return TagKey.create(Registries.BLOCK, new ResourceLocation("c" ,name)); - } - - private static TagKey createCustom(String name) { - return TagKey.create(Registries.BLOCK, new ResourceLocation(MOD_ID, name)); - } - } - // Tungsten Ore - public static final DeferredBlock TUNGSTEN_ORE = DEFERRED_REGISTRY.registerSimpleBlock("tungsten_ore", - BlockBehaviour.Properties.of(). - strength(3.0F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.STONE) - - ); - - public static final DeferredBlock DEEPSLATE_TUNGSTEN_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_tungsten_ore", - BlockBehaviour.Properties.of(). - strength(4.5F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.DEEPSLATE) + public static final DeferredBlock TUNGSTEN_ORE = DEFERRED_REGISTRY.registerSimpleBlock("tungsten_ore", BlockBehaviour.Properties.of().strength(3.0F, 3.0F).lightLevel((state) -> 7).sound(SoundType.STONE) - ); + ); + public static final DeferredBlock DEEPSLATE_TUNGSTEN_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_tungsten_ore", BlockBehaviour.Properties.of().strength(4.5F, 3.0F).lightLevel((state) -> 7).sound(SoundType.DEEPSLATE) + ); // Titanium Ore - public static final DeferredBlock TITANIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("titanium_ore", - BlockBehaviour.Properties.of(). - strength(3.0F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.STONE) + public static final DeferredBlock TITANIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("titanium_ore", BlockBehaviour.Properties.of().strength(3.0F, 3.0F).lightLevel((state) -> 7).sound(SoundType.STONE) - ); - - public static final DeferredBlock DEEPSLATE_TITANIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_titanium_ore", - BlockBehaviour.Properties.of(). - strength(4.5F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.DEEPSLATE) - - ); + ); + public static final DeferredBlock DEEPSLATE_TITANIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_titanium_ore", BlockBehaviour.Properties.of().strength(4.5F, 3.0F).lightLevel((state) -> 7).sound(SoundType.DEEPSLATE) + ); // Cobalt Ore - public static final DeferredBlock COBALT_ORE = DEFERRED_REGISTRY.registerSimpleBlock("cobalt_ore", - BlockBehaviour.Properties.of(). - strength(3.0F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.STONE) - - ); + public static final DeferredBlock COBALT_ORE = DEFERRED_REGISTRY.registerSimpleBlock("cobalt_ore", BlockBehaviour.Properties.of().strength(3.0F, 3.0F).lightLevel((state) -> 7).sound(SoundType.STONE) - public static final DeferredBlock DEEPSLATE_COBALT_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_cobalt_ore", - BlockBehaviour.Properties.of(). - strength(4.5F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.DEEPSLATE) - - ); + ); + public static final DeferredBlock DEEPSLATE_COBALT_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_cobalt_ore", BlockBehaviour.Properties.of().strength(4.5F, 3.0F).lightLevel((state) -> 7).sound(SoundType.DEEPSLATE) + ); // Nickel Ore - public static final DeferredBlock NICKEL_ORE = DEFERRED_REGISTRY.registerSimpleBlock("nickel_ore", - BlockBehaviour.Properties.of(). - strength(3.0F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.STONE) - - ); - - public static final DeferredBlock DEEPSLATE_NICKEL_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_nickel_ore", - BlockBehaviour.Properties.of(). - strength(4.5F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.DEEPSLATE) + public static final DeferredBlock NICKEL_ORE = DEFERRED_REGISTRY.registerSimpleBlock("nickel_ore", BlockBehaviour.Properties.of().strength(3.0F, 3.0F).lightLevel((state) -> 7).sound(SoundType.STONE) - ); + ); + public static final DeferredBlock DEEPSLATE_NICKEL_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_nickel_ore", BlockBehaviour.Properties.of().strength(4.5F, 3.0F).lightLevel((state) -> 7).sound(SoundType.DEEPSLATE) + ); // Bauxite Ore - public static final DeferredBlock BAUXITE_ORE = DEFERRED_REGISTRY.registerSimpleBlock("bauxite_ore", - BlockBehaviour.Properties.of(). - strength(3.0F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.STONE) + public static final DeferredBlock BAUXITE_ORE = DEFERRED_REGISTRY.registerSimpleBlock("bauxite_ore", BlockBehaviour.Properties.of().strength(3.0F, 3.0F).lightLevel((state) -> 7).sound(SoundType.STONE) - ); - - public static final DeferredBlock DEEPSLATE_BAUXITE_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_bauxite_ore", - BlockBehaviour.Properties.of(). - strength(4.5F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.DEEPSLATE) - - ); + ); + public static final DeferredBlock DEEPSLATE_BAUXITE_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_bauxite_ore", BlockBehaviour.Properties.of().strength(4.5F, 3.0F).lightLevel((state) -> 7).sound(SoundType.DEEPSLATE) + ); // Molybdenum Ore - public static final DeferredBlock MOLYBDENUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("molybdenum_ore", - BlockBehaviour.Properties.of(). - strength(3.0F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.STONE) - - ); + public static final DeferredBlock MOLYBDENUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("molybdenum_ore", BlockBehaviour.Properties.of().strength(3.0F, 3.0F).lightLevel((state) -> 7).sound(SoundType.STONE) - public static final DeferredBlock DEEPSLATE_MOLYBDENUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_molybdenum_ore", - BlockBehaviour.Properties.of(). - strength(4.5F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.DEEPSLATE) - - ); + ); + public static final DeferredBlock DEEPSLATE_MOLYBDENUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_molybdenum_ore", BlockBehaviour.Properties.of().strength(4.5F, 3.0F).lightLevel((state) -> 7).sound(SoundType.DEEPSLATE) + ); // Iridium Ore - public static final DeferredBlock IRIDIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("iridium_ore", - BlockBehaviour.Properties.of(). - strength(3.0F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.STONE) - - ); - - public static final DeferredBlock DEEPSLATE_IRIDIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_iridium_ore", - BlockBehaviour.Properties.of(). - strength(4.5F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.DEEPSLATE) + public static final DeferredBlock IRIDIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("iridium_ore", BlockBehaviour.Properties.of().strength(3.0F, 3.0F).lightLevel((state) -> 7).sound(SoundType.STONE) - ); + ); + public static final DeferredBlock DEEPSLATE_IRIDIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_iridium_ore", BlockBehaviour.Properties.of().strength(4.5F, 3.0F).lightLevel((state) -> 7).sound(SoundType.DEEPSLATE) + ); // Lithium Ore - public static final DeferredBlock LITHIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("lithium_ore", - BlockBehaviour.Properties.of(). - strength(3.0F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.STONE) - - ); - - public static final DeferredBlock DEEPSLATE_LITHIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_lithium_ore", - BlockBehaviour.Properties.of(). - strength(4.5F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.DEEPSLATE) + public static final DeferredBlock LITHIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("lithium_ore", BlockBehaviour.Properties.of().strength(3.0F, 3.0F).lightLevel((state) -> 7).sound(SoundType.STONE) - ); + ); + public static final DeferredBlock DEEPSLATE_LITHIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_lithium_ore", BlockBehaviour.Properties.of().strength(4.5F, 3.0F).lightLevel((state) -> 7).sound(SoundType.DEEPSLATE) + ); //Platinum Ore - public static final DeferredBlock PLATINUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("platinum_ore", - BlockBehaviour.Properties.of(). - strength(3.0F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.STONE) + public static final DeferredBlock PLATINUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("platinum_ore", BlockBehaviour.Properties.of().strength(3.0F, 3.0F).lightLevel((state) -> 7).sound(SoundType.STONE) - ); - - public static final DeferredBlock DEEPSLATE_PLATINUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_platinum_ore", - BlockBehaviour.Properties.of(). - strength(4.5F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.DEEPSLATE) - - ); + ); + public static final DeferredBlock DEEPSLATE_PLATINUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_platinum_ore", BlockBehaviour.Properties.of().strength(4.5F, 3.0F).lightLevel((state) -> 7).sound(SoundType.DEEPSLATE) + ); // Graphite Ore - public static final DeferredBlock GRAPHITE_ORE = DEFERRED_REGISTRY.registerSimpleBlock("graphite_ore", - BlockBehaviour.Properties.of(). - strength(3.0F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.STONE) - - ); - - public static final DeferredBlock DEEPSLATE_GRAPHITE_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_graphite_ore", - BlockBehaviour.Properties.of(). - strength(4.5F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.DEEPSLATE) - ); + public static final DeferredBlock GRAPHITE_ORE = DEFERRED_REGISTRY.registerSimpleBlock("graphite_ore", BlockBehaviour.Properties.of().strength(3.0F, 3.0F).lightLevel((state) -> 7).sound(SoundType.STONE) + ); + public static final DeferredBlock DEEPSLATE_GRAPHITE_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_graphite_ore", BlockBehaviour.Properties.of().strength(4.5F, 3.0F).lightLevel((state) -> 7).sound(SoundType.DEEPSLATE)); // Beryllium Ore - public static final DeferredBlock BERYLLIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("beryllium_ore", - BlockBehaviour.Properties.of(). - strength(3.0F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.STONE) - ); - - public static final DeferredBlock DEEPSLATE_BERYLLIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_beryllium_ore", - BlockBehaviour.Properties.of(). - strength(4.5F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.DEEPSLATE) - ); - + public static final DeferredBlock BERYLLIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("beryllium_ore", BlockBehaviour.Properties.of().strength(3.0F, 3.0F).lightLevel((state) -> 7).sound(SoundType.STONE)); + public static final DeferredBlock DEEPSLATE_BERYLLIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_beryllium_ore", BlockBehaviour.Properties.of().strength(4.5F, 3.0F).lightLevel((state) -> 7).sound(SoundType.DEEPSLATE)); // Cadmium Ore - public static final DeferredBlock CADMIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("cadmium_ore", - BlockBehaviour.Properties.of(). - strength(3.0F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.STONE) - ); - - public static final DeferredBlock DEEPSLATE_CADMIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_cadmium_ore", - BlockBehaviour.Properties.of(). - strength(4.5F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.DEEPSLATE) - ); - + public static final DeferredBlock CADMIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("cadmium_ore", BlockBehaviour.Properties.of().strength(3.0F, 3.0F).lightLevel((state) -> 7).sound(SoundType.STONE)); + public static final DeferredBlock DEEPSLATE_CADMIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_cadmium_ore", BlockBehaviour.Properties.of().strength(4.5F, 3.0F).lightLevel((state) -> 7).sound(SoundType.DEEPSLATE)); // Chromium Ore - public static final DeferredBlock CHROMIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("chromium_ore", - BlockBehaviour.Properties.of(). - strength(3.0F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.STONE) - ); - - public static final DeferredBlock DEEPSLATE_CHROMIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_chromium_ore", - BlockBehaviour.Properties.of(). - strength(4.5F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.DEEPSLATE) - ); - + public static final DeferredBlock CHROMIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("chromium_ore", BlockBehaviour.Properties.of().strength(3.0F, 3.0F).lightLevel((state) -> 7).sound(SoundType.STONE)); + public static final DeferredBlock DEEPSLATE_CHROMIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_chromium_ore", BlockBehaviour.Properties.of().strength(4.5F, 3.0F).lightLevel((state) -> 7).sound(SoundType.DEEPSLATE)); //Manganese Ore - public static final DeferredBlock MANGANESE_ORE = DEFERRED_REGISTRY.registerSimpleBlock("manganese_ore", - BlockBehaviour.Properties.of(). - strength(3.0F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.STONE) - ); - - public static final DeferredBlock DEEPSLATE_MANGANESE_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_manganese_ore", - BlockBehaviour.Properties.of(). - strength(4.5F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.DEEPSLATE) - ); - + public static final DeferredBlock MANGANESE_ORE = DEFERRED_REGISTRY.registerSimpleBlock("manganese_ore", BlockBehaviour.Properties.of().strength(3.0F, 3.0F).lightLevel((state) -> 7).sound(SoundType.STONE)); + public static final DeferredBlock DEEPSLATE_MANGANESE_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_manganese_ore", BlockBehaviour.Properties.of().strength(4.5F, 3.0F).lightLevel((state) -> 7).sound(SoundType.DEEPSLATE)); // Osmium Ore - public static final DeferredBlock OSMIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("osmium_ore", - BlockBehaviour.Properties.of(). - strength(3.0F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.STONE) - ); - - public static final DeferredBlock DEEPSLATE_OSMIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_osmium_ore", - BlockBehaviour.Properties.of(). - strength(4.5F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.DEEPSLATE) - ); - + public static final DeferredBlock OSMIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("osmium_ore", BlockBehaviour.Properties.of().strength(3.0F, 3.0F).lightLevel((state) -> 7).sound(SoundType.STONE)); + public static final DeferredBlock DEEPSLATE_OSMIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_osmium_ore", BlockBehaviour.Properties.of().strength(4.5F, 3.0F).lightLevel((state) -> 7).sound(SoundType.DEEPSLATE)); // Palladium Ore - public static final DeferredBlock PALLADIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("palladium_ore", - BlockBehaviour.Properties.of(). - strength(3.0F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.STONE) - ); - - public static final DeferredBlock DEEPSLATE_PALLADIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_palladium_ore", - BlockBehaviour.Properties.of(). - strength(4.5F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.DEEPSLATE) - ); - + public static final DeferredBlock PALLADIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("palladium_ore", BlockBehaviour.Properties.of().strength(3.0F, 3.0F).lightLevel((state) -> 7).sound(SoundType.STONE)); + public static final DeferredBlock DEEPSLATE_PALLADIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_palladium_ore", BlockBehaviour.Properties.of().strength(4.5F, 3.0F).lightLevel((state) -> 7).sound(SoundType.DEEPSLATE)); //Thorium Ore - public static final DeferredBlock THORIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("thorium_ore", - BlockBehaviour.Properties.of(). - strength(3.0F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.STONE) - ); - - public static final DeferredBlock DEEPSLATE_THORIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_thorium_ore", - BlockBehaviour.Properties.of(). - strength(4.5F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.DEEPSLATE) - ); - + public static final DeferredBlock THORIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("thorium_ore", BlockBehaviour.Properties.of().strength(3.0F, 3.0F).lightLevel((state) -> 7).sound(SoundType.STONE)); + public static final DeferredBlock DEEPSLATE_THORIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_thorium_ore", BlockBehaviour.Properties.of().strength(4.5F, 3.0F).lightLevel((state) -> 7).sound(SoundType.DEEPSLATE)); //Uranium Ore - public static final DeferredBlock URANIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("uranium_ore", - BlockBehaviour.Properties.of(). - strength(3.0F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.STONE) - ); - - public static final DeferredBlock DEEPSLATE_URANIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_uranium_ore", - BlockBehaviour.Properties.of(). - strength(4.5F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.DEEPSLATE) - ); - + public static final DeferredBlock URANIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("uranium_ore", BlockBehaviour.Properties.of().strength(3.0F, 3.0F).lightLevel((state) -> 7).sound(SoundType.STONE)); + public static final DeferredBlock DEEPSLATE_URANIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_uranium_ore", BlockBehaviour.Properties.of().strength(4.5F, 3.0F).lightLevel((state) -> 7).sound(SoundType.DEEPSLATE)); //Vanadium Ore - public static final DeferredBlock VANADIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("vanadium_ore", - BlockBehaviour.Properties.of(). - strength(3.0F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.STONE) - ); - - public static final DeferredBlock DEEPSLATE_VANADIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_vanadium_ore", - BlockBehaviour.Properties.of(). - strength(4.5F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.DEEPSLATE) - ); - + public static final DeferredBlock VANADIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("vanadium_ore", BlockBehaviour.Properties.of().strength(3.0F, 3.0F).lightLevel((state) -> 7).sound(SoundType.STONE)); + public static final DeferredBlock DEEPSLATE_VANADIUM_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_vanadium_ore", BlockBehaviour.Properties.of().strength(4.5F, 3.0F).lightLevel((state) -> 7).sound(SoundType.DEEPSLATE)); //Zinc Ore - public static final DeferredBlock ZINC_ORE = DEFERRED_REGISTRY.registerSimpleBlock("zinc_ore", - BlockBehaviour.Properties.of(). - strength(3.0F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.STONE) - ); - - public static final DeferredBlock DEEPSLATE_ZINC_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_zinc_ore", - BlockBehaviour.Properties.of(). - strength(4.5F, 3.0F) - .lightLevel((state) -> 7) - .sound(SoundType.DEEPSLATE) - ); - + public static final DeferredBlock ZINC_ORE = DEFERRED_REGISTRY.registerSimpleBlock("zinc_ore", BlockBehaviour.Properties.of().strength(3.0F, 3.0F).lightLevel((state) -> 7).sound(SoundType.STONE)); + public static final DeferredBlock DEEPSLATE_ZINC_ORE = DEFERRED_REGISTRY.registerSimpleBlock("deepslate_zinc_ore", BlockBehaviour.Properties.of().strength(4.5F, 3.0F).lightLevel((state) -> 7).sound(SoundType.DEEPSLATE)); private static void init(IEventBus bus) { LOGGER.info("[Cog Works] Registering blocks ..."); DEFERRED_REGISTRY.register(bus); } + + public static class Tags { + + public static final TagKey BAUXITE_ORES = createConventional("ores/bauxite"); + public static final TagKey GRAPHITE_ORES = createConventional("ores/graphite"); + public static final TagKey LITHIUM_ORES = createConventional("ores/lithium"); + public static final TagKey MOLYBDENUM_ORES = createConventional("ores/molybdenum"); + public static final TagKey IRIDIUM_ORES = createConventional("ores/iridium"); + public static final TagKey TUNGSTEN_ORES = createConventional("ores/tungsten"); + public static final TagKey TITANIUM_ORES = createConventional("ores/titanium"); + public static final TagKey COBALT_ORES = createConventional("ores/cobalt"); + public static final TagKey NICKEL_ORES = createConventional("ores/nickel"); + public static final TagKey PLATINUM_ORES = createConventional("ores/platinum"); + public static final TagKey BERYLLIUM_ORES = createConventional("ores/beryllium"); + public static final TagKey CADMIUM_ORES = createConventional("ores/cadmium"); + public static final TagKey CHROMIUM_ORES = createConventional("ores/chromium"); + public static final TagKey MANGANESE_ORES = createConventional("ores/manganese"); + public static final TagKey OSMIUM_ORES = createConventional("ores/osmium"); + public static final TagKey PALLADIUM_ORES = createConventional("ores/palladium"); + public static final TagKey THORIUM_ORES = createConventional("ores/thorium"); + public static final TagKey URANIUM_ORES = createConventional("ores/uranium"); + public static final TagKey VANADIUM_ORES = createConventional("ores/vanadium"); + public static final TagKey ZINC_ORES = createConventional("ores/zinc"); + + private static TagKey createConventional(String name) { + return TagKey.create(Registries.BLOCK, new ResourceLocation("c", name)); + } + + private static TagKey createCustom(String name) { + return TagKey.create(Registries.BLOCK, new ResourceLocation(MOD_ID, name)); + } + } } public static class Items { @@ -429,8 +208,10 @@ public static class Items { public static final DeferredItem ZINC_ORE = registerBlockItem(Blocks.ZINC_ORE); public static final DeferredItem DEEPSLATE_ZINC_ORE = registerBlockItem(Blocks.DEEPSLATE_ZINC_ORE); - public static DeferredItem registerBlockItem(DeferredBlock block, Item.Properties properties) { - return DEFERRED_REGISTRY.registerSimpleBlockItem(block, properties); + public static final DeferredItem PROSPECTING_PICK = DEFERRED_REGISTRY.register("prospecting_pick", ProspectingPickItem::new); + + public static DeferredItem registerBlockItem(DeferredBlock block, Item.Properties properties) { + return DEFERRED_REGISTRY.registerSimpleBlockItem(block, properties); } public static DeferredItem registerBlockItem(DeferredBlock block) { diff --git a/src/main/java/org/darkar/cog_works/generation/data/lang/EN_US_Generator.java b/src/main/java/org/darkar/cog_works/generation/data/lang/EN_US_Generator.java index fa6a3f4..274f5ac 100644 --- a/src/main/java/org/darkar/cog_works/generation/data/lang/EN_US_Generator.java +++ b/src/main/java/org/darkar/cog_works/generation/data/lang/EN_US_Generator.java @@ -53,5 +53,7 @@ protected void addTranslations() { addBlock(Registry.Blocks.DEEPSLATE_VANADIUM_ORE, "Deepslate Vanadium Ore"); addBlock(Registry.Blocks.ZINC_ORE, "Zinc Ore"); addBlock(Registry.Blocks.DEEPSLATE_ZINC_ORE, "Deepslate Zinc Ore"); + + addItem(Registry.Items.PROSPECTING_PICK, "Prospecting Pick"); } } diff --git a/src/main/java/org/darkar/cog_works/item/ProspectingPickItem.java b/src/main/java/org/darkar/cog_works/item/ProspectingPickItem.java new file mode 100644 index 0000000..69b0a00 --- /dev/null +++ b/src/main/java/org/darkar/cog_works/item/ProspectingPickItem.java @@ -0,0 +1,88 @@ +package org.darkar.cog_works.item; + +import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; +import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.neoforged.neoforge.common.extensions.IItemExtension; +import org.darkar.cog_works.item.renderer.ProspectingPickItemRenderer; +import software.bernie.geckolib.animatable.GeoItem; +import software.bernie.geckolib.animatable.SingletonGeoAnimatable; +import software.bernie.geckolib.animatable.client.GeoRenderProvider; +import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.animation.AnimatableManager; +import software.bernie.geckolib.animation.AnimationController; +import software.bernie.geckolib.animation.PlayState; +import software.bernie.geckolib.animation.RawAnimation; +import software.bernie.geckolib.util.GeckoLibUtil; + +import java.util.function.Consumer; + +public class ProspectingPickItem extends Item implements GeoItem, IItemExtension { + + private static final RawAnimation DIG_SAMPLE = RawAnimation.begin().thenPlay("animation.prospecting_pick.dig_sample"); + private static final RawAnimation COLLECT_SAMPLE = RawAnimation.begin().thenPlay("animation.prospecting_pick.collect_sample"); + private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); + private static final Properties itemProperties = new Properties().stacksTo(1) + .durability(128); + + public ProspectingPickItem() { + super(itemProperties); + SingletonGeoAnimatable.registerSyncedAnimatable(this); + } + + @Override + public void createGeoRenderer(Consumer consumer) { + consumer.accept(new GeoRenderProvider() { + private ProspectingPickItemRenderer renderer; + + @Override + public BlockEntityWithoutLevelRenderer getGeoItemRenderer() { + if (renderer == null) { + renderer = new ProspectingPickItemRenderer(); + } + + return this.renderer; + } + }); + } + + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return this.cache; + } + + @Override + public void registerControllers(AnimatableManager.ControllerRegistrar controllers) { + controllers.add(new AnimationController<>(this, "dig_sample_controller", 20, state -> PlayState.STOP).triggerableAnim("dig_sample", DIG_SAMPLE)); + + controllers.add(new AnimationController<>(this, "collect_sample_controller", 20, state -> PlayState.STOP).triggerableAnim("collect_sample", COLLECT_SAMPLE)); + } + + @Override + public InteractionResultHolder use(Level level, Player player, InteractionHand hand) { + if (level instanceof ServerLevel serverLevel) + triggerAnim(player, GeoItem.getOrAssignId(player.getItemInHand(hand), serverLevel), + "collect_sample_controller", "collect_sample"); + return super.use(level, player, hand); + } + + @Override + public boolean canAttackBlock(BlockState blockState, Level level, BlockPos blockPos, Player player) { + var name = blockState.getBlock().getName().getString(); + if(level instanceof ServerLevel serverLevel) { + player.sendSystemMessage(Component.literal("Can attack block: " + name)); + triggerAnim(player, GeoItem.getOrAssignId(player.getItemInHand(InteractionHand.MAIN_HAND), serverLevel), + "dig_sample_controller", "dig_sample"); + } + + return false; + } +} diff --git a/src/main/java/org/darkar/cog_works/item/renderer/ProspectingPickItemRenderer.java b/src/main/java/org/darkar/cog_works/item/renderer/ProspectingPickItemRenderer.java new file mode 100644 index 0000000..f38648d --- /dev/null +++ b/src/main/java/org/darkar/cog_works/item/renderer/ProspectingPickItemRenderer.java @@ -0,0 +1,16 @@ +package org.darkar.cog_works.item.renderer; + +import net.minecraft.resources.ResourceLocation; +import org.darkar.cog_works.item.ProspectingPickItem; +import software.bernie.geckolib.model.DefaultedItemGeoModel; +import software.bernie.geckolib.renderer.GeoItemRenderer; + +import static org.darkar.cog_works.CogWorks.MOD_ID; + +public class ProspectingPickItemRenderer extends GeoItemRenderer { + + + public ProspectingPickItemRenderer() { + super(new DefaultedItemGeoModel<>(new ResourceLocation(MOD_ID, "prospecting_pick"))); + } +} diff --git a/src/main/resources/META-INF/neoforge.mods.toml b/src/main/resources/META-INF/neoforge.mods.toml index 64aafe8..2cf4699 100644 --- a/src/main/resources/META-INF/neoforge.mods.toml +++ b/src/main/resources/META-INF/neoforge.mods.toml @@ -93,6 +93,14 @@ description='''${mod_description}''' ordering="NONE" side="BOTH" +# GeckoLib +[[dependencies.${mod_id}]] + modId="geckolib" + type="required" + versionRange="${gecko_lib_version_range}" + ordering="NONE" + side="BOTH" + # Features are specific properties of the game environment, that you may want to declare you require. This example declares # that your mod requires GL version 3.2 or higher. Other features will be added. They are side aware so declaring this won't # stop your mod loading on the server for example. diff --git a/src/main/resources/assets/cog_works/animations/item/prospecting_pick.animation.json b/src/main/resources/assets/cog_works/animations/item/prospecting_pick.animation.json new file mode 100644 index 0000000..35d39c8 --- /dev/null +++ b/src/main/resources/assets/cog_works/animations/item/prospecting_pick.animation.json @@ -0,0 +1,81 @@ +{ + "format_version": "1.8.0", + "animations": { + "animation.prospecting_pick.dig_sample": { + "animation_length": 1.75, + "bones": { + "handle": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.5": { + "vector": [-65, 0, 0], + "easing": "easeInCubic" + }, + "0.75": { + "vector": [-35, 0, 0], + "easing": "easeInOutQuart" + }, + "1.0": { + "vector": [-65, 0, 0], + "easing": "easeInOutQuart" + }, + "1.25": { + "vector": [-35, 0, 0], + "easing": "easeOutQuart" + }, + "1.75": { + "vector": [0, 0, 0], + "easing": "easeOutCirc" + } + } + } + } + }, + "animation.prospecting_pick.collect_sample": { + "animation_length": 2.5, + "bones": { + "handle": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.5": { + "vector": [0, 180, 0], + "easing": "easeInCubic" + }, + "0.875": { + "vector": [65, 180, 0], + "easing": "easeInOutQuart" + }, + "1.125": { + "vector": [30, 180, 0], + "easing": "easeInOutQuart" + }, + "1.375": { + "vector": [65, 180, 0], + "easing": "easeInOutQuart" + }, + "1.625": { + "vector": [30, 180, 0], + "easing": "easeInOutQuart" + }, + "1.875": { + "vector": [30, 180, 0], + "easing": "easeInOutQuart" + }, + "2.2083": { + "vector": [0, 180, 0], + "easing": "easeOutCubic" + }, + "2.5": { + "vector": [0, 0, 0], + "easing": "easeOutQuad" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/cog_works/geo/item/prospecting_pick.geo.json b/src/main/resources/assets/cog_works/geo/item/prospecting_pick.geo.json new file mode 100644 index 0000000..c6d0df7 --- /dev/null +++ b/src/main/resources/assets/cog_works/geo/item/prospecting_pick.geo.json @@ -0,0 +1,247 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.prospecting_pick", + "texture_width": 32, + "texture_height": 32, + "visible_bounds_width": 2, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 0.75, 0] + }, + "bones": [ + { + "name": "handle", + "pivot": [0, 7.625, -0.05], + "rotation": [0, 180, 0], + "cubes": [ + { + "origin": [-0.5, 0, -0.55], + "size": [1, 15.775, 1], + "uv": { + "north": {"uv": [0, 0], "uv_size": [1, 15.75]}, + "east": {"uv": [2, 0], "uv_size": [1, 15.75]}, + "south": {"uv": [4, 0], "uv_size": [1, 15.75]}, + "west": {"uv": [6, 0], "uv_size": [1, 15.75]}, + "up": {"uv": [14, 21], "uv_size": [1, 1]}, + "down": {"uv": [16, 22], "uv_size": [1, -1]} + } + }, + { + "origin": [-0.85, 14.975, -0.9], + "size": [1.7, 0.425, 1.7], + "uv": { + "north": {"uv": [3, 23], "uv_size": [1.75, 0.375]}, + "east": {"uv": [23, 4], "uv_size": [1.75, 0.375]}, + "south": {"uv": [6, 23], "uv_size": [1.75, 0.375]}, + "west": {"uv": [23, 8], "uv_size": [1.75, 0.375]}, + "up": {"uv": [17, 12], "uv_size": [1.75, 1.75]}, + "down": {"uv": [17, 16.75], "uv_size": [1.75, -1.75]} + } + }, + { + "origin": [-0.85, 14.4, -0.9], + "size": [1.7, 0.425, 1.7], + "uv": { + "north": {"uv": [9, 23], "uv_size": [1.75, 0.375]}, + "east": {"uv": [23, 10], "uv_size": [1.75, 0.375]}, + "south": {"uv": [12, 23], "uv_size": [1.75, 0.375]}, + "west": {"uv": [23, 12], "uv_size": [1.75, 0.375]}, + "up": {"uv": [18, 0], "uv_size": [1.75, 1.75]}, + "down": {"uv": [18, 4.75], "uv_size": [1.75, -1.75]} + } + }, + { + "origin": [-0.675, 3.775, -0.725], + "size": [1.35, 7.075, 1.35], + "uv": { + "north": {"uv": [11, 12], "uv_size": [1.375, 7.125]}, + "east": {"uv": [14, 12], "uv_size": [1.375, 7.125]}, + "south": {"uv": [15, 0], "uv_size": [1.375, 7.125]}, + "west": {"uv": [0, 17], "uv_size": [1.375, 7.125]}, + "up": {"uv": [20, 9], "uv_size": [1.375, 1.375]}, + "down": {"uv": [20, 13.375], "uv_size": [1.375, -1.375]} + } + }, + { + "origin": [-0.85, 10.85, -0.9], + "size": [1.7, 0.125, 1.7], + "uv": { + "north": {"uv": [21, 27], "uv_size": [1.75, 0.125]}, + "east": {"uv": [27, 21], "uv_size": [1.75, 0.125]}, + "south": {"uv": [27, 23], "uv_size": [1.75, 0.125]}, + "west": {"uv": [27, 25], "uv_size": [1.75, 0.125]}, + "up": {"uv": [18, 6], "uv_size": [1.75, 1.75]}, + "down": {"uv": [8, 19.75], "uv_size": [1.75, -1.75]} + } + }, + { + "origin": [-0.85, 3.65, -0.9], + "size": [1.7, 0.125, 1.7], + "uv": { + "north": {"uv": [27, 27], "uv_size": [1.75, 0.125]}, + "east": {"uv": [0, 28], "uv_size": [1.75, 0.125]}, + "south": {"uv": [28, 0], "uv_size": [1.75, 0.125]}, + "west": {"uv": [28, 2], "uv_size": [1.75, 0.125]}, + "up": {"uv": [17, 18], "uv_size": [1.75, 1.75]}, + "down": {"uv": [3, 21.75], "uv_size": [1.75, -1.75]} + } + } + ] + }, + { + "name": "head", + "parent": "handle", + "pivot": [0, 14.82561, -0.79121], + "cubes": [ + { + "origin": [-1, 14.775, -4.55], + "size": [2, 0.25, 7.5], + "uv": { + "north": {"uv": [24, 21], "uv_size": [2, 0.25]}, + "east": {"uv": [20, 15], "uv_size": [7.5, 0.25]}, + "south": {"uv": [24, 23], "uv_size": [2, 0.25]}, + "west": {"uv": [20, 17], "uv_size": [7.5, 0.25]}, + "up": {"uv": [8, 0], "uv_size": [2, 7.5]}, + "down": {"uv": [8, 16.5], "uv_size": [2, -7.5]} + } + }, + { + "origin": [-1.7, 14.475, -5.925], + "size": [3.4, 0.25, 1.5], + "pivot": [0, 14.6, -5.175], + "rotation": [25, 0, 0], + "uv": { + "north": {"uv": [23, 0], "uv_size": [3.375, 0.25]}, + "east": {"uv": [0, 26], "uv_size": [1.5, 0.25]}, + "south": {"uv": [23, 2], "uv_size": [3.375, 0.25]}, + "west": {"uv": [26, 4], "uv_size": [1.5, 0.25]}, + "up": {"uv": [15, 9], "uv_size": [3.375, 1.5]}, + "down": {"uv": [3, 18.5], "uv_size": [3.375, -1.5]} + } + }, + { + "origin": [1, 14.78025, -4.5481], + "size": [0.7, 0.25, 1.2], + "uv": { + "north": {"uv": [5, 29], "uv_size": [0.75, 0.25]}, + "east": {"uv": [3, 27], "uv_size": [1.25, 0.25]}, + "south": {"uv": [7, 29], "uv_size": [0.75, 0.25]}, + "west": {"uv": [6, 27], "uv_size": [1.25, 0.25]}, + "up": {"uv": [18, 21], "uv_size": [0.75, 1.25]}, + "down": {"uv": [22, 20.25], "uv_size": [0.75, -1.25]} + } + }, + { + "origin": [0.68439, 14.78025, -3.62023], + "size": [0.7, 0.25, 1.45], + "pivot": [1.03439, 14.90525, -2.89523], + "rotation": [0, -30, 0], + "uv": { + "north": {"uv": [29, 8], "uv_size": [0.75, 0.25]}, + "east": {"uv": [26, 8], "uv_size": [1.5, 0.25]}, + "south": {"uv": [29, 10], "uv_size": [0.75, 0.25]}, + "west": {"uv": [26, 10], "uv_size": [1.5, 0.25]}, + "up": {"uv": [6, 20], "uv_size": [0.75, 1.5]}, + "down": {"uv": [20, 20.5], "uv_size": [0.75, -1.5]} + } + }, + { + "origin": [-1.38439, 14.78025, -3.62023], + "size": [0.7, 0.25, 1.45], + "pivot": [-1.03439, 14.90525, -2.89523], + "rotation": [0, 30, 0], + "uv": { + "north": {"uv": [29, 12], "uv_size": [0.75, 0.25]}, + "east": {"uv": [26, 12], "uv_size": [1.5, 0.25]}, + "south": {"uv": [29, 14], "uv_size": [0.75, 0.25]}, + "west": {"uv": [15, 26], "uv_size": [1.5, 0.25]}, + "up": {"uv": [21, 0], "uv_size": [0.75, 1.5]}, + "down": {"uv": [21, 4.5], "uv_size": [0.75, -1.5]} + } + }, + { + "origin": [-1.7, 14.78025, -4.5481], + "size": [0.7, 0.25, 1.2], + "uv": { + "north": {"uv": [29, 16], "uv_size": [0.75, 0.25]}, + "east": {"uv": [27, 6], "uv_size": [1.25, 0.25]}, + "south": {"uv": [17, 29], "uv_size": [0.75, 0.25]}, + "west": {"uv": [18, 27], "uv_size": [1.25, 0.25]}, + "up": {"uv": [20, 22], "uv_size": [0.75, 1.25]}, + "down": {"uv": [22, 23.25], "uv_size": [0.75, -1.25]} + } + }, + { + "origin": [-1.225, 14.23574, 2.84609], + "size": [2.45, 0.25, 4.2], + "pivot": [0, 14.36074, 4.94609], + "rotation": [-15, 0, 0], + "uv": { + "north": {"uv": [15, 24], "uv_size": [2.5, 0.25]}, + "east": {"uv": [21, 6], "uv_size": [4.25, 0.25]}, + "south": {"uv": [24, 19], "uv_size": [2.5, 0.25]}, + "west": {"uv": [8, 21], "uv_size": [4.25, 0.25]}, + "up": {"uv": [11, 0], "uv_size": [2.5, 4.25]}, + "down": {"uv": [11, 10.25], "uv_size": [2.5, -4.25]} + } + }, + { + "origin": [-1.225, 14.775, 1.275], + "size": [0.225, 0.25, 1.675], + "uv": { + "north": {"uv": [19, 29], "uv_size": [0.25, 0.25]}, + "east": {"uv": [3, 25], "uv_size": [1.625, 0.25]}, + "south": {"uv": [21, 29], "uv_size": [0.25, 0.25]}, + "west": {"uv": [6, 25], "uv_size": [1.625, 0.25]}, + "up": {"uv": [9, 25], "uv_size": [0.25, 1.625]}, + "down": {"uv": [11, 26.625], "uv_size": [0.25, -1.625]} + } + }, + { + "origin": [1, 14.775, 1.275], + "size": [0.225, 0.25, 1.675], + "uv": { + "north": {"uv": [26, 29], "uv_size": [0.25, 0.25]}, + "east": {"uv": [19, 25], "uv_size": [1.625, 0.25]}, + "south": {"uv": [28, 29], "uv_size": [0.25, 0.25]}, + "west": {"uv": [22, 25], "uv_size": [1.625, 0.25]}, + "up": {"uv": [13, 25], "uv_size": [0.25, 1.625]}, + "down": {"uv": [25, 26.625], "uv_size": [0.25, -1.625]} + } + }, + { + "origin": [0.89384, 14.775, 0.4686], + "size": [0.225, 0.25, 0.85], + "pivot": [1.00634, 14.9, 0.8936], + "rotation": [0, 15, 0], + "uv": { + "north": {"uv": [0, 30], "uv_size": [0.25, 0.25]}, + "east": {"uv": [9, 28], "uv_size": [0.875, 0.25]}, + "south": {"uv": [30, 6], "uv_size": [0.25, 0.25]}, + "west": {"uv": [11, 28], "uv_size": [0.875, 0.25]}, + "up": {"uv": [13, 28], "uv_size": [0.25, 0.875]}, + "down": {"uv": [15, 28.875], "uv_size": [0.25, -0.875]} + } + }, + { + "origin": [-1.11884, 14.775, 0.4686], + "size": [0.225, 0.25, 0.85], + "pivot": [-1.00634, 14.9, 0.8936], + "rotation": [0, -15, 0], + "uv": { + "north": {"uv": [9, 30], "uv_size": [0.25, 0.25]}, + "east": {"uv": [28, 19], "uv_size": [0.875, 0.25]}, + "south": {"uv": [11, 30], "uv_size": [0.25, 0.25]}, + "west": {"uv": [24, 28], "uv_size": [0.875, 0.25]}, + "up": {"uv": [3, 29], "uv_size": [0.25, 0.875]}, + "down": {"uv": [29, 4.875], "uv_size": [0.25, -0.875]} + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/cog_works/models/item/prospecting_pick.json b/src/main/resources/assets/cog_works/models/item/prospecting_pick.json new file mode 100644 index 0000000..c2532c1 --- /dev/null +++ b/src/main/resources/assets/cog_works/models/item/prospecting_pick.json @@ -0,0 +1,79 @@ +{ + "credit": "Made with Blockbench", + "parent": "builtin/entity", + "texture_size": [ + 32, + 32 + ], + "display": { + "thirdperson_righthand": { + "translation": [ + -0.75, + -9, + 0 + ] + }, + "thirdperson_lefthand": { + "translation": [ + -0.75, + -9, + 0 + ] + }, + "firstperson_righthand": { + "translation": [ + -2, + -6.5, + -1.25 + ] + }, + "firstperson_lefthand": { + "translation": [ + -2, + -6.5, + -1.25 + ] + }, + "gui": { + "rotation": [ + 90, + -62.5, + 90 + ], + "translation": [ + 4.5, + -7, + 0 + ], + "scale": [ + 0.9, + 0.9, + 0.9 + ] + }, + "head": { + "rotation": [ + -90, + 30, + -90 + ], + "translation": [ + -10, + 17, + 0 + ] + }, + "fixed": { + "rotation": [ + 0, + 90, + 0 + ], + "translation": [ + 0, + -8, + -0.5 + ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/cog_works/textures/item/prospecting_pick.png b/src/main/resources/assets/cog_works/textures/item/prospecting_pick.png new file mode 100644 index 0000000..ff175a2 Binary files /dev/null and b/src/main/resources/assets/cog_works/textures/item/prospecting_pick.png differ