├── .gitattributes ├── common ├── src │ └── main │ │ ├── resources │ │ ├── assets │ │ │ └── mcdar │ │ │ │ ├── optifine │ │ │ │ └── emissive.properties │ │ │ │ ├── icon.png │ │ │ │ ├── models │ │ │ │ └── item │ │ │ │ │ ├── wonderful_wheat.json │ │ │ │ │ ├── light_feather.json │ │ │ │ │ ├── vexing_chant.json │ │ │ │ │ ├── enchanted_grass.json │ │ │ │ │ ├── death_cap_mushroom.json │ │ │ │ │ ├── buzzy_nest.json │ │ │ │ │ ├── iron_hide_amulet.json │ │ │ │ │ └── soul_healer.json │ │ │ │ └── textures │ │ │ │ ├── item │ │ │ │ ├── golem_kit.png │ │ │ │ ├── harvester.png │ │ │ │ ├── ice_wand.png │ │ │ │ ├── spinblade.png │ │ │ │ ├── wind_horn.png │ │ │ │ ├── ghost_cloak.png │ │ │ │ ├── golem_kit_e.png │ │ │ │ ├── harvester_e.png │ │ │ │ ├── ice_wand_e.png │ │ │ │ ├── powershaker.png │ │ │ │ ├── soul_healer.png │ │ │ │ ├── tasty_bone.png │ │ │ │ ├── void_quiver.png │ │ │ │ ├── beenest_stem.png │ │ │ │ ├── blast_fungus.png │ │ │ │ ├── blast_fungus_e.png │ │ │ │ ├── flaming_quiver.png │ │ │ │ ├── ghost_cloak_e.png │ │ │ │ ├── harpoon_quiver.png │ │ │ │ ├── light_feather.png │ │ │ │ ├── lightning_rod.png │ │ │ │ ├── love_medallion.png │ │ │ │ ├── scatter_mines.png │ │ │ │ ├── shadow_shifter.png │ │ │ │ ├── shock_powder.png │ │ │ │ ├── shock_powder_e.png │ │ │ │ ├── soul_healer_e.png │ │ │ │ ├── soul_lantern.png │ │ │ │ ├── soul_lantern_e.png │ │ │ │ ├── torment_quiver.png │ │ │ │ ├── updraft_tome.png │ │ │ │ ├── updraft_tome_e.png │ │ │ │ ├── vexing_chant.png │ │ │ │ ├── void_quiver_e.png │ │ │ │ ├── corrupted_beacon.png │ │ │ │ ├── corrupted_seeds.png │ │ │ │ ├── enchanted_grass.png │ │ │ │ ├── enchanters_tome.png │ │ │ │ ├── flaming_quiver_e.png │ │ │ │ ├── iron_hide_amulet.png │ │ │ │ ├── lightning_rod_e.png │ │ │ │ ├── love_medallion_e.png │ │ │ │ ├── scatter_mines_e.png │ │ │ │ ├── shadow_shifter_e.png │ │ │ │ ├── torment_quiver_e.png │ │ │ │ ├── totem_of_casting.png │ │ │ │ ├── wonderful_wheat.png │ │ │ │ ├── boots_of_swiftness.png │ │ │ │ ├── corrupted_beacon_e.png │ │ │ │ ├── corrupted_pumpkin.png │ │ │ │ ├── corrupted_pumpkin_e.png │ │ │ │ ├── corrupted_seeds_e.png │ │ │ │ ├── death_cap_mushroom.png │ │ │ │ ├── enchanted_grass_e.png │ │ │ │ ├── eye_of_the_guardian.png │ │ │ │ ├── gong_of_weakening.png │ │ │ │ ├── iron_hide_amulet_e.png │ │ │ │ ├── satchel_of_elements.png │ │ │ │ ├── satchel_of_elixirs.png │ │ │ │ ├── satchel_of_snacks.png │ │ │ │ ├── thundering_quiver.png │ │ │ │ ├── thundering_quiver_e.png │ │ │ │ ├── tome_of_duplication.png │ │ │ │ ├── totem_of_casting_e.png │ │ │ │ ├── totem_of_shielding.png │ │ │ │ ├── death_cap_mushroom_e.png │ │ │ │ ├── satchel_of_elements_e.png │ │ │ │ ├── tome_of_duplication_e.png │ │ │ │ ├── totem_of_regeneration.png │ │ │ │ ├── totem_of_shielding_e.png │ │ │ │ ├── totem_of_regeneration_e.png │ │ │ │ ├── totem_of_soul_protection.png │ │ │ │ └── totem_of_soul_protection_e.png │ │ │ │ └── mob_effect │ │ │ │ ├── charmed.png │ │ │ │ ├── stunned.png │ │ │ │ ├── shielding.png │ │ │ │ └── soul_protection.png │ │ ├── data │ │ │ ├── minecraft │ │ │ │ └── tags │ │ │ │ │ └── entity_types │ │ │ │ │ └── beehive_inhabitors.json │ │ │ └── mcdar │ │ │ │ └── recipes │ │ │ │ ├── charmed.json │ │ │ │ ├── stunned.json │ │ │ │ ├── shielding.json │ │ │ │ └── soul_protection.json │ │ ├── resourcepacks │ │ │ └── 2dmcdar │ │ │ │ ├── pack.mcmeta │ │ │ │ ├── pack.png │ │ │ │ └── assets │ │ │ │ └── mcdar │ │ │ │ ├── models │ │ │ │ └── item │ │ │ │ │ ├── enchanted_grass.json │ │ │ │ │ ├── wonderful_wheat.json │ │ │ │ │ ├── love_medallion.json │ │ │ │ │ ├── thundering_quiver.json │ │ │ │ │ ├── harpoon_quiver.json │ │ │ │ │ ├── blast_fungus.json │ │ │ │ │ ├── updraft_tome.json │ │ │ │ │ ├── gong_of_weakening.json │ │ │ │ │ ├── lightning_rod.json │ │ │ │ │ ├── flaming_quiver.json │ │ │ │ │ ├── torment_quiver.json │ │ │ │ │ ├── shock_powder.json │ │ │ │ │ ├── corrupted_seeds.json │ │ │ │ │ ├── ghost_cloak.json │ │ │ │ │ ├── totem_of_regeneration.json │ │ │ │ │ ├── totem_of_soul_protection.json │ │ │ │ │ ├── harvester.json │ │ │ │ │ ├── enchanters_tome.json │ │ │ │ │ ├── boots_of_swiftness.json │ │ │ │ │ ├── light_feather.json │ │ │ │ │ ├── iron_hide_amulet.json │ │ │ │ │ ├── totem_of_shielding.json │ │ │ │ │ ├── soul_healer.json │ │ │ │ │ ├── powershaker.json │ │ │ │ │ ├── satchel_of_elements.json │ │ │ │ │ ├── death_cap_mushroom.json │ │ │ │ │ └── buzzy_nest.json │ │ │ │ └── textures │ │ │ │ └── item │ │ │ │ ├── harvester.png │ │ │ │ ├── wind_horn.png │ │ │ │ ├── beenest_stem.png │ │ │ │ ├── blast_fungus.png │ │ │ │ ├── ghost_cloak.png │ │ │ │ ├── powershaker.png │ │ │ │ ├── shock_powder.png │ │ │ │ ├── soul_healer.png │ │ │ │ ├── tasty_bone.png │ │ │ │ ├── updraft_tome.png │ │ │ │ ├── flaming_quiver.png │ │ │ │ ├── harpoon_quiver.png │ │ │ │ ├── light_feather.png │ │ │ │ ├── lightning_rod.png │ │ │ │ ├── love_medallion.png │ │ │ │ ├── torment_quiver.png │ │ │ │ ├── corrupted_seeds.png │ │ │ │ ├── enchanted_grass.png │ │ │ │ ├── enchanters_tome.png │ │ │ │ ├── gong_of_weakening.png │ │ │ │ ├── iron_hide_amulet.png │ │ │ │ ├── lightning_rod_e.png │ │ │ │ ├── thundering_quiver.png │ │ │ │ ├── wonderful_wheat.png │ │ │ │ ├── boots_of_swiftness.png │ │ │ │ ├── death_cap_mushroom.png │ │ │ │ ├── satchel_of_elements.png │ │ │ │ ├── satchel_of_elixirs.png │ │ │ │ ├── totem_of_shielding.png │ │ │ │ ├── totem_of_regeneration.png │ │ │ │ └── totem_of_soul_protection.png │ │ ├── mcdar.accesswidener │ │ └── mcdar.mixins.json │ │ └── java │ │ └── dev │ │ └── timefall │ │ └── mcdar │ │ ├── api │ │ ├── interfaces │ │ │ └── Summonable.java │ │ ├── AOEHelper.java │ │ ├── ProjectileEffectHelper.java │ │ ├── GroupedObjectsHelper.java │ │ └── AOECloudHelper.java │ │ ├── artifacts │ │ ├── artifact_types │ │ │ ├── ArtifactQuiverItem.java │ │ │ ├── ArtifactAgilityItem.java │ │ │ ├── ArtifactDamagingItem.java │ │ │ ├── ArtifactDefensiveItem.java │ │ │ ├── ArtifactSummoningItem.java │ │ │ └── ArtifactStatusInflictingItem.java │ │ ├── ArtifactItem.java │ │ ├── GolemKitItem.java │ │ ├── BuzzyNestItem.java │ │ ├── TastyBoneItem.java │ │ ├── WonderfulWheatItem.java │ │ ├── UpdraftTomeItem.java │ │ ├── EnchantersTomeItem.java │ │ ├── FlamingQuiverItem.java │ │ ├── HarpoonQuiverItem.java │ │ ├── PowershakerItem.java │ │ ├── ThunderingQuiverItem.java │ │ ├── BootsOfSwiftnessItem.java │ │ ├── IronHideAmuletItem.java │ │ ├── BlastFungusItem.java │ │ ├── LightningRodItem.java │ │ ├── DeathCapMushroomItem.java │ │ ├── SatchelOfElixirsItem.java │ │ └── SatchelOfSnacksItem.java │ │ ├── McdarCommon.java │ │ ├── mixin │ │ ├── MobEntityAccessor.java │ │ ├── PlayerEntityMixin.java │ │ ├── MobEntityMixin.java │ │ ├── BowItemMixin.java │ │ └── LivingEntityMixin.java │ │ ├── statuseffect │ │ ├── StunnedStatusEffect.java │ │ ├── ShieldingStatusEffect.java │ │ ├── SoulProtectionStatusEffect.java │ │ ├── CharmedStatusEffect.java │ │ └── CooldownResetStatusEffect.java │ │ ├── ModConstants.java │ │ ├── goal │ │ ├── LoveMedallionAttackGoal.java │ │ ├── TrackSummonerAttackerGoal.java │ │ └── FollowSummonerGoal.java │ │ ├── registry │ │ ├── EnchantmentRegistry.java │ │ ├── tag │ │ │ └── TagKeys.java │ │ └── StatusEffectRegistry.java │ │ ├── entity │ │ ├── renderers │ │ │ ├── WonderfulWheatLlamaRenderer.java │ │ │ ├── EnchantedGrassSheepRenderer.java │ │ │ └── WonderfulWheatLlamaDecorFeatureRenderer.java │ │ ├── BuzzyNestBeeEntity.java │ │ └── GolemKitGolemEntity.java │ │ └── config │ │ ├── artifact_types │ │ ├── DamageArtifactStats.java │ │ ├── ComplexArtifactStats.java │ │ └── StatusCloudCreatingArtifactStats.java │ │ ├── EnchantmentIDConfigHelper.java │ │ └── item_sections │ │ ├── QuiverArtifactStats.java │ │ ├── SummoningArtifactStats.java │ │ ├── AgilityArtifactStats.java │ │ ├── DamagingArtifactStats.java │ │ └── StatusInflictingArtifactStats.java └── build.gradle ├── README.md ├── neoforge ├── gradle.properties └── src │ └── main │ ├── resources │ ├── data │ │ └── mcdar │ │ │ ├── tags │ │ │ └── item │ │ │ │ ├── void_artifacts.json │ │ │ │ ├── all_artifacts.json │ │ │ │ ├── villager_artifacts.json │ │ │ │ └── illager_artifacts.json │ │ │ └── enchantment │ │ │ ├── beast_boss.json │ │ │ ├── cooldown.json │ │ │ ├── beast_burst.json │ │ │ └── beast_surge.json │ └── META-INF │ │ └── neoforge.mods.toml │ └── java │ └── dev │ └── timefall │ └── mcdar │ ├── client │ ├── McdarNeoForgeClient.java │ └── registry │ │ └── SummonedEntityRenderRegistryNeoForge.java │ ├── McdarNeoForge.java │ ├── registry │ └── DefaultAttributeRegistryNeoForge.java │ └── event │ └── McdarForgeEventHandler.java ├── fabric └── src │ └── main │ ├── generated │ └── data │ │ └── mcdar │ │ ├── tags │ │ ├── item │ │ │ ├── void_artifacts.json │ │ │ ├── all_artifacts.json │ │ │ ├── villager_artifacts.json │ │ │ └── illager_artifacts.json │ │ └── mob_effect │ │ │ └── is_valid_for_beast_effects.json │ │ └── enchantment │ │ ├── cooldown.json │ │ ├── beast_boss.json │ │ ├── beast_burst.json │ │ └── beast_surge.json │ ├── java │ └── dev │ │ └── timefall │ │ └── mcdar │ │ ├── McdarFabric.java │ │ ├── data │ │ ├── McdarDataGenerator.java │ │ └── providers │ │ │ └── McdarStatusTagProvider.java │ │ ├── registry │ │ └── DefaultAttributeRegistryFabric.java │ │ └── client │ │ ├── registry │ │ ├── SummonedEntityAttributeRegistryFabric.java │ │ └── SummonedEntityRenderRegistryFabric.java │ │ └── McdarClientFabric.java │ └── resources │ └── fabric.mod.json ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── settings.gradle ├── gradle.properties └── .github ├── ISSUE_TEMPLATE ├── feature_request.yml └── bug_report.yml └── workflows └── build.yml /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/optifine/emissive.properties: -------------------------------------------------------------------------------- 1 | suffix.emissive=_e -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # MCDungeonsArtifacts 2 | Bringing the Artifacts of Minecraft Dungeons to Minecraft 3 | -------------------------------------------------------------------------------- /neoforge/gradle.properties: -------------------------------------------------------------------------------- 1 | loom.platform=neoforge 2 | yarn_mappings_patch_neoforge_version=1.21+build.4 -------------------------------------------------------------------------------- /fabric/src/main/generated/data/mcdar/tags/item/void_artifacts.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "mcdar:tome_of_duplication" 4 | ] 5 | } -------------------------------------------------------------------------------- /neoforge/src/main/resources/data/mcdar/tags/item/void_artifacts.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "mcdar:tome_of_duplication" 4 | ] 5 | } -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /common/src/main/resources/data/minecraft/tags/entity_types/beehive_inhabitors.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "mcdar:buzzy_nest_bee" 4 | ] 5 | } -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/icon.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/models/item/wonderful_wheat.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "mcdar:item/wonderful_wheat" 5 | } 6 | } -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/pack.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "pack": { 3 | "description": "Implement legacy textures for MCDAR.", 4 | "pack_format": 15 5 | } 6 | } -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/pack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/pack.png -------------------------------------------------------------------------------- /fabric/src/main/generated/data/mcdar/tags/mob_effect/is_valid_for_beast_effects.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "minecraft:instant_health", 4 | "minecraft:regeneration" 5 | ] 6 | } -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/golem_kit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/golem_kit.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/harvester.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/harvester.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/ice_wand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/ice_wand.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/spinblade.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/spinblade.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/wind_horn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/wind_horn.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/models/item/enchanted_grass.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "mcdar:item/enchanted_grass" 5 | } 6 | } -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/models/item/wonderful_wheat.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "mcdar:item/wonderful_wheat" 5 | } 6 | } -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/ghost_cloak.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/ghost_cloak.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/golem_kit_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/golem_kit_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/harvester_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/harvester_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/ice_wand_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/ice_wand_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/powershaker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/powershaker.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/soul_healer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/soul_healer.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/tasty_bone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/tasty_bone.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/void_quiver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/void_quiver.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/beenest_stem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/beenest_stem.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/blast_fungus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/blast_fungus.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/blast_fungus_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/blast_fungus_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/flaming_quiver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/flaming_quiver.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/ghost_cloak_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/ghost_cloak_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/harpoon_quiver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/harpoon_quiver.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/light_feather.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/light_feather.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/lightning_rod.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/lightning_rod.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/love_medallion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/love_medallion.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/scatter_mines.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/scatter_mines.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/shadow_shifter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/shadow_shifter.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/shock_powder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/shock_powder.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/shock_powder_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/shock_powder_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/soul_healer_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/soul_healer_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/soul_lantern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/soul_lantern.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/soul_lantern_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/soul_lantern_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/torment_quiver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/torment_quiver.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/updraft_tome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/updraft_tome.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/updraft_tome_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/updraft_tome_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/vexing_chant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/vexing_chant.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/void_quiver_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/void_quiver_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/mob_effect/charmed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/mob_effect/charmed.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/mob_effect/stunned.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/mob_effect/stunned.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/corrupted_beacon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/corrupted_beacon.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/corrupted_seeds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/corrupted_seeds.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/enchanted_grass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/enchanted_grass.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/enchanters_tome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/enchanters_tome.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/flaming_quiver_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/flaming_quiver_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/iron_hide_amulet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/iron_hide_amulet.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/lightning_rod_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/lightning_rod_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/love_medallion_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/love_medallion_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/scatter_mines_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/scatter_mines_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/shadow_shifter_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/shadow_shifter_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/torment_quiver_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/torment_quiver_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/totem_of_casting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/totem_of_casting.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/wonderful_wheat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/wonderful_wheat.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/mob_effect/shielding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/mob_effect/shielding.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/boots_of_swiftness.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/boots_of_swiftness.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/corrupted_beacon_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/corrupted_beacon_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/corrupted_pumpkin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/corrupted_pumpkin.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/corrupted_pumpkin_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/corrupted_pumpkin_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/corrupted_seeds_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/corrupted_seeds_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/death_cap_mushroom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/death_cap_mushroom.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/enchanted_grass_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/enchanted_grass_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/eye_of_the_guardian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/eye_of_the_guardian.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/gong_of_weakening.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/gong_of_weakening.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/iron_hide_amulet_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/iron_hide_amulet_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/satchel_of_elements.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/satchel_of_elements.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/satchel_of_elixirs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/satchel_of_elixirs.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/satchel_of_snacks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/satchel_of_snacks.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/thundering_quiver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/thundering_quiver.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/thundering_quiver_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/thundering_quiver_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/tome_of_duplication.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/tome_of_duplication.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/totem_of_casting_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/totem_of_casting_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/totem_of_shielding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/totem_of_shielding.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/death_cap_mushroom_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/death_cap_mushroom_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/satchel_of_elements_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/satchel_of_elements_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/tome_of_duplication_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/tome_of_duplication_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/totem_of_regeneration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/totem_of_regeneration.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/totem_of_shielding_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/totem_of_shielding_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/mob_effect/soul_protection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/mob_effect/soul_protection.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/totem_of_regeneration_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/totem_of_regeneration_e.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/totem_of_soul_protection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/totem_of_soul_protection.png -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/textures/item/totem_of_soul_protection_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/assets/mcdar/textures/item/totem_of_soul_protection_e.png -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/api/interfaces/Summonable.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.api.interfaces; 2 | 3 | import net.minecraft.entity.Entity; 4 | 5 | public interface Summonable { 6 | void setSummoner (Entity player); 7 | } 8 | -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/harvester.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/harvester.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/wind_horn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/wind_horn.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/beenest_stem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/beenest_stem.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/blast_fungus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/blast_fungus.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/ghost_cloak.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/ghost_cloak.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/powershaker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/powershaker.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/shock_powder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/shock_powder.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/soul_healer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/soul_healer.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/tasty_bone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/tasty_bone.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/updraft_tome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/updraft_tome.png -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/flaming_quiver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/flaming_quiver.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/harpoon_quiver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/harpoon_quiver.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/light_feather.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/light_feather.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/lightning_rod.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/lightning_rod.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/love_medallion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/love_medallion.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/torment_quiver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/torment_quiver.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/corrupted_seeds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/corrupted_seeds.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/enchanted_grass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/enchanted_grass.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/enchanters_tome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/enchanters_tome.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/gong_of_weakening.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/gong_of_weakening.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/iron_hide_amulet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/iron_hide_amulet.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/lightning_rod_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/lightning_rod_e.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/thundering_quiver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/thundering_quiver.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/wonderful_wheat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/wonderful_wheat.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/boots_of_swiftness.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/boots_of_swiftness.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/death_cap_mushroom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/death_cap_mushroom.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/satchel_of_elements.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/satchel_of_elements.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/satchel_of_elixirs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/satchel_of_elixirs.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/totem_of_shielding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/totem_of_shielding.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/totem_of_regeneration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/totem_of_regeneration.png -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/totem_of_soul_protection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Timefall-Development/MCDungeonsArtifacts/HEAD/common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/textures/item/totem_of_soul_protection.png -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | maven { url "https://maven.fabricmc.net/" } 4 | maven { url "https://maven.architectury.dev/" } 5 | maven { url "https://maven.minecraftforge.net/" } 6 | gradlePluginPortal() 7 | } 8 | } 9 | 10 | include("common") 11 | include("fabric") 12 | include("neoforge") -------------------------------------------------------------------------------- /fabric/src/main/generated/data/mcdar/tags/item/all_artifacts.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | { 4 | "id": "#mcdar:villager_artifacts", 5 | "required": false 6 | }, 7 | { 8 | "id": "#mcdar:illager_artifacts", 9 | "required": false 10 | }, 11 | { 12 | "id": "#mcdar:void_artifacts", 13 | "required": false 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /neoforge/src/main/resources/data/mcdar/tags/item/all_artifacts.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | { 4 | "id": "#mcdar:villager_artifacts", 5 | "required": false 6 | }, 7 | { 8 | "id": "#mcdar:illager_artifacts", 9 | "required": false 10 | }, 11 | { 12 | "id": "#mcdar:void_artifacts", 13 | "required": false 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /common/src/main/resources/data/mcdar/recipes/charmed.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "jeed:effect_provider", 3 | "effect": "mcdar:charmed", 4 | "providers": [ 5 | { 6 | "item": "mcdar:love_medallion" 7 | } 8 | ], 9 | "fabric:load_conditions": [ 10 | { 11 | "condition": "fabric:all_mods_loaded", 12 | "values": [ 13 | "jeed" 14 | ] 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /common/src/main/resources/data/mcdar/recipes/stunned.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "jeed:effect_provider", 3 | "effect": "mcdar:stunned", 4 | "providers": [ 5 | { 6 | "item": "mcdar:shock_powder" 7 | } 8 | ], 9 | "fabric:load_conditions": [ 10 | { 11 | "condition": "fabric:all_mods_loaded", 12 | "values": [ 13 | "jeed" 14 | ] 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /common/src/main/resources/data/mcdar/recipes/shielding.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "jeed:effect_provider", 3 | "effect": "mcdar:shielding", 4 | "providers": [ 5 | { 6 | "item": "mcdar:totem_of_shielding" 7 | } 8 | ], 9 | "fabric:load_conditions": [ 10 | { 11 | "condition": "fabric:all_mods_loaded", 12 | "values": [ 13 | "jeed" 14 | ] 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /common/src/main/resources/data/mcdar/recipes/soul_protection.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "jeed:effect_provider", 3 | "effect": "mcdar:soul_protection", 4 | "providers": [ 5 | { 6 | "item": "mcdar:totem_of_soul_protection" 7 | } 8 | ], 9 | "fabric:load_conditions": [ 10 | { 11 | "condition": "fabric:all_mods_loaded", 12 | "values": [ 13 | "jeed" 14 | ] 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /common/src/main/resources/mcdar.accesswidener: -------------------------------------------------------------------------------- 1 | accessWidener v1 named 2 | accessible class net/minecraft/client/render/RenderLayer$MultiPhase 3 | accessible method net/minecraft/client/render/RenderLayer of (Ljava/lang/String;Lnet/minecraft/client/render/VertexFormat;Lnet/minecraft/client/render/VertexFormat$DrawMode;IZZLnet/minecraft/client/render/RenderLayer$MultiPhaseParameters;)Lnet/minecraft/client/render/RenderLayer$MultiPhase; -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/artifacts/artifact_types/ArtifactQuiverItem.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.artifacts.artifact_types; 2 | 3 | import dev.timefall.mcdar.artifacts.ArtifactItem; 4 | import dev.timefall.mcdar.config.artifact_types.ArtifactStats; 5 | 6 | public class ArtifactQuiverItem extends ArtifactItem { 7 | 8 | public ArtifactQuiverItem(ArtifactStats artifactStats) { 9 | super(artifactStats); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/McdarCommon.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar; 2 | 3 | import dev.timefall.mcdar.registry.*; 4 | 5 | public class McdarCommon { 6 | 7 | public static void initialize() { 8 | ArtifactsRegistry.register(); 9 | ItemGroupRegistry.register(); 10 | EnchantmentRegistry.register(); 11 | StatusEffectRegistry.register(); 12 | SummonedEntityRegistry.register(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/artifacts/artifact_types/ArtifactAgilityItem.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.artifacts.artifact_types; 2 | 3 | import dev.timefall.mcdar.artifacts.ArtifactItem; 4 | import dev.timefall.mcdar.config.artifact_types.ArtifactStats; 5 | 6 | public class ArtifactAgilityItem extends ArtifactItem { 7 | 8 | public ArtifactAgilityItem(ArtifactStats artifactStats) { 9 | super(artifactStats); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/artifacts/artifact_types/ArtifactDamagingItem.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.artifacts.artifact_types; 2 | 3 | import dev.timefall.mcdar.artifacts.ArtifactItem; 4 | import dev.timefall.mcdar.config.artifact_types.ArtifactStats; 5 | 6 | public class ArtifactDamagingItem extends ArtifactItem { 7 | 8 | public ArtifactDamagingItem(ArtifactStats artifactStats) { 9 | super(artifactStats); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/artifacts/artifact_types/ArtifactDefensiveItem.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.artifacts.artifact_types; 2 | 3 | import dev.timefall.mcdar.artifacts.ArtifactItem; 4 | import dev.timefall.mcdar.config.artifact_types.ArtifactStats; 5 | 6 | public class ArtifactDefensiveItem extends ArtifactItem { 7 | 8 | public ArtifactDefensiveItem(ArtifactStats artifactStats) { 9 | super(artifactStats); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/artifacts/artifact_types/ArtifactSummoningItem.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.artifacts.artifact_types; 2 | 3 | import dev.timefall.mcdar.artifacts.ArtifactItem; 4 | import dev.timefall.mcdar.config.artifact_types.ArtifactStats; 5 | 6 | public class ArtifactSummoningItem extends ArtifactItem { 7 | 8 | public ArtifactSummoningItem(ArtifactStats artifactStats) { 9 | super(artifactStats); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/mixin/MobEntityAccessor.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.mixin; 2 | 3 | import net.minecraft.entity.ai.goal.GoalSelector; 4 | import net.minecraft.entity.mob.MobEntity; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.gen.Accessor; 7 | 8 | @Mixin(MobEntity.class) 9 | public interface MobEntityAccessor { 10 | @Accessor("targetSelector") 11 | GoalSelector targetSelector(); 12 | } 13 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/artifacts/artifact_types/ArtifactStatusInflictingItem.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.artifacts.artifact_types; 2 | 3 | import dev.timefall.mcdar.artifacts.ArtifactItem; 4 | import dev.timefall.mcdar.config.artifact_types.ArtifactStats; 5 | 6 | public class ArtifactStatusInflictingItem extends ArtifactItem { 7 | 8 | public ArtifactStatusInflictingItem(ArtifactStats artifactStats) { 9 | super(artifactStats); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx2048M 2 | 3 | #minecraft 4 | minecraft_version=1.21 5 | enabled_platforms=fabric,neoforge 6 | 7 | #mod 8 | archives_base_name=mcdar 9 | mod_version=1.4.0 10 | maven_group=dev.timefall 11 | 12 | #loaders 13 | fabric_api_version=0.102.0+1.21 14 | fabric_loader_version=0.16.2 15 | 16 | neoforge_version=21.0.167 17 | 18 | #yarn version 19 | yarn_mappings=9 20 | 21 | #dependencies 22 | fzzyConfigVersion=0.7.0+1.21 23 | mcdxVersion=0.1.1+mc1.21 -------------------------------------------------------------------------------- /fabric/src/main/generated/data/mcdar/enchantment/cooldown.json: -------------------------------------------------------------------------------- 1 | { 2 | "anvil_cost": 2, 3 | "description": { 4 | "translate": "enchantment.mcdar.cooldown" 5 | }, 6 | "max_cost": { 7 | "base": 16, 8 | "per_level_above_first": 10 9 | }, 10 | "max_level": 3, 11 | "min_cost": { 12 | "base": 1, 13 | "per_level_above_first": 10 14 | }, 15 | "slots": [ 16 | "armor" 17 | ], 18 | "supported_items": "#minecraft:enchantable/armor", 19 | "weight": 1 20 | } -------------------------------------------------------------------------------- /fabric/src/main/generated/data/mcdar/enchantment/beast_boss.json: -------------------------------------------------------------------------------- 1 | { 2 | "anvil_cost": 2, 3 | "description": { 4 | "translate": "enchantment.mcdar.beast_boss" 5 | }, 6 | "max_cost": { 7 | "base": 16, 8 | "per_level_above_first": 10 9 | }, 10 | "max_level": 3, 11 | "min_cost": { 12 | "base": 1, 13 | "per_level_above_first": 10 14 | }, 15 | "slots": [ 16 | "armor" 17 | ], 18 | "supported_items": "#minecraft:enchantable/armor", 19 | "weight": 1 20 | } -------------------------------------------------------------------------------- /fabric/src/main/generated/data/mcdar/enchantment/beast_burst.json: -------------------------------------------------------------------------------- 1 | { 2 | "anvil_cost": 2, 3 | "description": { 4 | "translate": "enchantment.mcdar.beast_burst" 5 | }, 6 | "max_cost": { 7 | "base": 16, 8 | "per_level_above_first": 10 9 | }, 10 | "max_level": 3, 11 | "min_cost": { 12 | "base": 1, 13 | "per_level_above_first": 10 14 | }, 15 | "slots": [ 16 | "armor" 17 | ], 18 | "supported_items": "#minecraft:enchantable/armor", 19 | "weight": 1 20 | } -------------------------------------------------------------------------------- /fabric/src/main/generated/data/mcdar/enchantment/beast_surge.json: -------------------------------------------------------------------------------- 1 | { 2 | "anvil_cost": 2, 3 | "description": { 4 | "translate": "enchantment.mcdar.beast_surge" 5 | }, 6 | "max_cost": { 7 | "base": 16, 8 | "per_level_above_first": 10 9 | }, 10 | "max_level": 3, 11 | "min_cost": { 12 | "base": 1, 13 | "per_level_above_first": 10 14 | }, 15 | "slots": [ 16 | "armor" 17 | ], 18 | "supported_items": "#minecraft:enchantable/armor", 19 | "weight": 1 20 | } -------------------------------------------------------------------------------- /neoforge/src/main/resources/data/mcdar/enchantment/beast_boss.json: -------------------------------------------------------------------------------- 1 | { 2 | "anvil_cost": 2, 3 | "description": { 4 | "translate": "enchantment.mcdar.beast_boss" 5 | }, 6 | "max_cost": { 7 | "base": 16, 8 | "per_level_above_first": 10 9 | }, 10 | "max_level": 3, 11 | "min_cost": { 12 | "base": 1, 13 | "per_level_above_first": 10 14 | }, 15 | "slots": [ 16 | "armor" 17 | ], 18 | "supported_items": "#minecraft:enchantable/armor", 19 | "weight": 1 20 | } -------------------------------------------------------------------------------- /neoforge/src/main/resources/data/mcdar/enchantment/cooldown.json: -------------------------------------------------------------------------------- 1 | { 2 | "anvil_cost": 2, 3 | "description": { 4 | "translate": "enchantment.mcdar.cooldown" 5 | }, 6 | "max_cost": { 7 | "base": 16, 8 | "per_level_above_first": 10 9 | }, 10 | "max_level": 3, 11 | "min_cost": { 12 | "base": 1, 13 | "per_level_above_first": 10 14 | }, 15 | "slots": [ 16 | "armor" 17 | ], 18 | "supported_items": "#minecraft:enchantable/armor", 19 | "weight": 1 20 | } -------------------------------------------------------------------------------- /neoforge/src/main/resources/data/mcdar/enchantment/beast_burst.json: -------------------------------------------------------------------------------- 1 | { 2 | "anvil_cost": 2, 3 | "description": { 4 | "translate": "enchantment.mcdar.beast_burst" 5 | }, 6 | "max_cost": { 7 | "base": 16, 8 | "per_level_above_first": 10 9 | }, 10 | "max_level": 3, 11 | "min_cost": { 12 | "base": 1, 13 | "per_level_above_first": 10 14 | }, 15 | "slots": [ 16 | "armor" 17 | ], 18 | "supported_items": "#minecraft:enchantable/armor", 19 | "weight": 1 20 | } -------------------------------------------------------------------------------- /neoforge/src/main/resources/data/mcdar/enchantment/beast_surge.json: -------------------------------------------------------------------------------- 1 | { 2 | "anvil_cost": 2, 3 | "description": { 4 | "translate": "enchantment.mcdar.beast_surge" 5 | }, 6 | "max_cost": { 7 | "base": 16, 8 | "per_level_above_first": 10 9 | }, 10 | "max_level": 3, 11 | "min_cost": { 12 | "base": 1, 13 | "per_level_above_first": 10 14 | }, 15 | "slots": [ 16 | "armor" 17 | ], 18 | "supported_items": "#minecraft:enchantable/armor", 19 | "weight": 1 20 | } -------------------------------------------------------------------------------- /common/src/main/resources/mcdar.mixins.json: -------------------------------------------------------------------------------- 1 | { 2 | "required": true, 3 | "minVersion": "0.8", 4 | "package": "dev.timefall.mcdar.mixin", 5 | "compatibilityLevel": "JAVA_8", 6 | "mixins": [ 7 | "BowItemMixin", 8 | "CreeperEntityAccessor", 9 | "LivingEntityMixin", 10 | "MobEntityAccessor", 11 | "MobEntityMixin", 12 | "PersistentProjectileEntityMixin", 13 | "PlayerEntityMixin" 14 | ], 15 | "client": [ 16 | ], 17 | "injectors": { 18 | "defaultRequire": 1 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /fabric/src/main/generated/data/mcdar/tags/item/villager_artifacts.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "mcdar:boots_of_swiftness", 4 | "mcdar:ghost_cloak", 5 | "mcdar:light_feather", 6 | "mcdar:updraft_tome", 7 | "mcdar:iron_hide_amulet", 8 | "mcdar:wind_horn", 9 | "mcdar:flaming_quiver", 10 | "mcdar:buzzy_nest", 11 | "mcdar:enchanted_grass", 12 | "mcdar:golem_kit", 13 | "mcdar:tasty_bone", 14 | "mcdar:wonderful_wheat", 15 | "mcdar:satchel_of_elixirs", 16 | "mcdar:satchel_of_snacks" 17 | ] 18 | } -------------------------------------------------------------------------------- /neoforge/src/main/resources/data/mcdar/tags/item/villager_artifacts.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "mcdar:boots_of_swiftness", 4 | "mcdar:ghost_cloak", 5 | "mcdar:light_feather", 6 | "mcdar:updraft_tome", 7 | "mcdar:iron_hide_amulet", 8 | "mcdar:wind_horn", 9 | "mcdar:flaming_quiver", 10 | "mcdar:buzzy_nest", 11 | "mcdar:enchanted_grass", 12 | "mcdar:golem_kit", 13 | "mcdar:tasty_bone", 14 | "mcdar:wonderful_wheat", 15 | "mcdar:satchel_of_elixirs", 16 | "mcdar:satchel_of_snacks" 17 | ] 18 | } -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/statuseffect/StunnedStatusEffect.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.statuseffect; 2 | 3 | import net.minecraft.entity.effect.StatusEffect; 4 | import net.minecraft.entity.effect.StatusEffectCategory; 5 | 6 | public class StunnedStatusEffect extends StatusEffect { 7 | public StunnedStatusEffect(StatusEffectCategory type, int color) { 8 | super(type, color); 9 | } 10 | 11 | @Override 12 | public boolean canApplyUpdateEffect(int duration, int amplifier){ 13 | return true; 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/statuseffect/ShieldingStatusEffect.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.statuseffect; 2 | 3 | import net.minecraft.entity.effect.StatusEffect; 4 | import net.minecraft.entity.effect.StatusEffectCategory; 5 | 6 | public class ShieldingStatusEffect extends StatusEffect { 7 | 8 | public ShieldingStatusEffect(StatusEffectCategory type, int color) { 9 | super(type, color); 10 | } 11 | 12 | @Override 13 | public boolean canApplyUpdateEffect(int duration, int amplifier){ 14 | return true; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/statuseffect/SoulProtectionStatusEffect.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.statuseffect; 2 | 3 | import net.minecraft.entity.effect.StatusEffect; 4 | import net.minecraft.entity.effect.StatusEffectCategory; 5 | 6 | public class SoulProtectionStatusEffect extends StatusEffect { 7 | 8 | public SoulProtectionStatusEffect(StatusEffectCategory type, int color) { 9 | super(type, color); 10 | } 11 | 12 | @Override 13 | public boolean canApplyUpdateEffect(int duration, int amplifier){ 14 | return true; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/models/item/love_medallion.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "mcdar:item/love_medallion" 5 | }, 6 | "gui_light": "front", 7 | "display": { 8 | "ground": { 9 | "translation": [0, 1, 0], 10 | "scale": [0.5, 0.5, 0.5] 11 | }, 12 | "gui": { 13 | "translation": [0, 0.5, 0], 14 | "scale": [0.8, 0.8, 0.8] 15 | }, 16 | "fixed": { 17 | "rotation": [0, -180, 0], 18 | "translation": [0, 0, -0.5], 19 | "scale": [1.7, 1.7, 1.7] 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/models/item/thundering_quiver.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "parent": "item/generated", 4 | "textures": { 5 | "layer0": "mcdar:item/thundering_quiver" 6 | }, 7 | "gui_light": "front", 8 | "display": { 9 | "ground": { 10 | "translation": [0, 1, 0] 11 | }, 12 | "gui": { 13 | "rotation": [0, 0, 18], 14 | "translation": [0, 0.5, 0], 15 | "scale": [1.2, 1.2, 1.2] 16 | }, 17 | "fixed": { 18 | "rotation": [0, -180, 0], 19 | "translation": [0, 0, -0.5], 20 | "scale": [1.7, 1.7, 1.7] 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/artifacts/ArtifactItem.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.artifacts; 2 | 3 | import dev.timefall.mcdar.config.artifact_types.ArtifactStats; 4 | import net.minecraft.item.Item; 5 | 6 | public class ArtifactItem extends Item { 7 | protected ArtifactStats artifactStats; 8 | 9 | public ArtifactStats mcdar$getStats() { 10 | return artifactStats; 11 | } 12 | 13 | public ArtifactItem(ArtifactStats artifactStats) { 14 | super(new Settings().maxCount(1).maxDamage(artifactStats.mcdar$getDurability())); 15 | this.artifactStats = artifactStats; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /neoforge/src/main/java/dev/timefall/mcdar/client/McdarNeoForgeClient.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.client; 2 | 3 | import dev.timefall.mcdar.ModConstants; 4 | import dev.timefall.mcdar.client.registry.SummonedEntityRenderRegistryNeoForge; 5 | import net.neoforged.api.distmarker.Dist; 6 | import net.neoforged.bus.api.IEventBus; 7 | import net.neoforged.fml.common.Mod; 8 | 9 | @Mod(value = ModConstants.MOD_ID, dist = {Dist.CLIENT}) 10 | public class McdarNeoForgeClient { 11 | public McdarNeoForgeClient(IEventBus modEventBus) { 12 | modEventBus.addListener(SummonedEntityRenderRegistryNeoForge::register); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/models/item/harpoon_quiver.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "parent": "item/generated", 4 | "textures": { 5 | "layer0": "mcdar:item/harpoon_quiver" 6 | }, 7 | "gui_light": "front", 8 | "display": { 9 | "ground": { 10 | "rotation": [0, 0, -32], 11 | "translation": [0, 2, 0] 12 | }, 13 | "gui": { 14 | "rotation": [0, 0, -25], 15 | "translation": [0, 0.5, 0], 16 | "scale": [1.2, 1.2, 1.2] 17 | }, 18 | "fixed": { 19 | "rotation": [0, -180, -32], 20 | "translation": [0, 0.25, -0.5], 21 | "scale": [1.7, 1.7, 1.7] 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /fabric/src/main/java/dev/timefall/mcdar/McdarFabric.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar; 2 | 3 | import dev.timefall.mcdar.event.McdarFabricEvents; 4 | import dev.timefall.mcdar.registry.DefaultAttributeRegistryFabric; 5 | import dev.timefall.mcdar.registry.LootRegistryFabric; 6 | import net.fabricmc.api.ModInitializer; 7 | 8 | public class McdarFabric implements ModInitializer { 9 | 10 | @Override 11 | public void onInitialize() { 12 | McdarCommon.initialize(); 13 | DefaultAttributeRegistryFabric.registerAttributes(); 14 | McdarFabricEvents.registerEvents(); 15 | LootRegistryFabric.register(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /fabric/src/main/generated/data/mcdar/tags/item/illager_artifacts.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "mcdar:death_cap_mushroom", 4 | "mcdar:blast_fungus", 5 | "mcdar:harvester", 6 | "mcdar:lightning_rod", 7 | "mcdar:powershaker", 8 | "mcdar:enchanters_tome", 9 | "mcdar:soul_healer", 10 | "mcdar:totem_of_regeneration", 11 | "mcdar:totem_of_shielding", 12 | "mcdar:totem_of_soul_protection", 13 | "mcdar:harpoon_quiver", 14 | "mcdar:thundering_quiver", 15 | "mcdar:torment_quiver", 16 | "mcdar:corrupted_seeds", 17 | "mcdar:gong_of_weakening", 18 | "mcdar:love_medallion", 19 | "mcdar:satchel_of_elements", 20 | "mcdar:shock_powder" 21 | ] 22 | } -------------------------------------------------------------------------------- /neoforge/src/main/resources/data/mcdar/tags/item/illager_artifacts.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "mcdar:death_cap_mushroom", 4 | "mcdar:blast_fungus", 5 | "mcdar:harvester", 6 | "mcdar:lightning_rod", 7 | "mcdar:powershaker", 8 | "mcdar:enchanters_tome", 9 | "mcdar:soul_healer", 10 | "mcdar:totem_of_regeneration", 11 | "mcdar:totem_of_shielding", 12 | "mcdar:totem_of_soul_protection", 13 | "mcdar:harpoon_quiver", 14 | "mcdar:thundering_quiver", 15 | "mcdar:torment_quiver", 16 | "mcdar:corrupted_seeds", 17 | "mcdar:gong_of_weakening", 18 | "mcdar:love_medallion", 19 | "mcdar:satchel_of_elements", 20 | "mcdar:shock_powder" 21 | ] 22 | } -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/api/AOEHelper.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.api; 2 | 3 | import net.minecraft.entity.LivingEntity; 4 | 5 | import java.util.function.Consumer; 6 | import java.util.function.Function; 7 | 8 | public class AOEHelper { 9 | 10 | @Deprecated 11 | public static Consumer causeExplosion(LivingEntity user, float damageAmount) { 12 | return causeExplosion(user, (t) -> damageAmount); 13 | } 14 | 15 | @Deprecated 16 | public static Consumer causeExplosion(LivingEntity user, Function damageAmount) { 17 | return (target) -> target.damage(target.getWorld().getDamageSources().explosion(target, user), damageAmount.apply(target)); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/ModConstants.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar; 2 | 3 | import net.minecraft.item.ItemGroup; 4 | import net.minecraft.registry.RegistryKey; 5 | import net.minecraft.registry.RegistryKeys; 6 | import net.minecraft.util.Identifier; 7 | import org.apache.logging.log4j.LogManager; 8 | import org.apache.logging.log4j.Logger; 9 | 10 | public class ModConstants { 11 | 12 | public static final String MOD_ID = "mcdar"; 13 | public static Identifier id(String path){ 14 | return Identifier.of(MOD_ID, path); 15 | } 16 | public static final RegistryKey ARTIFACTS = RegistryKey.of(RegistryKeys.ITEM_GROUP, ModConstants.id("artifacts")); 17 | 18 | public static final Logger LOGGER = LogManager.getLogger(MOD_ID); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/models/item/blast_fungus.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "parent": "item/generated", 4 | "textures": { 5 | "layer0": "mcdar:item/blast_fungus" 6 | }, 7 | "gui_light": "front", 8 | "display": { 9 | "thirdperson_righthand": { 10 | "translation": [0, 3, 1], 11 | "scale": [0.5, 0.5, 0.5] 12 | }, 13 | "thirdperson_lefthand": { 14 | "translation": [0, 3, 1], 15 | "scale": [0.5, 0.5, 0.5] 16 | }, 17 | "firstperson_righthand": { 18 | "translation": [0, 1.25, 1], 19 | "scale": [0.5, 0.5, 0.5] 20 | }, 21 | "firstperson_lefthand": { 22 | "translation": [0, 1.25, 1], 23 | "scale": [0.5, 0.5, 0.5] 24 | }, 25 | "ground": { 26 | "scale": [0.5, 0.5, 0.5] 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/models/item/updraft_tome.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "parent": "item/generated", 4 | "textures": { 5 | "layer0": "mcdar:item/updraft_tome" 6 | }, 7 | "gui_light": "front", 8 | "display": { 9 | "thirdperson_righthand": { 10 | "translation": [0, 3, 1], 11 | "scale": [0.5, 0.5, 0.5] 12 | }, 13 | "thirdperson_lefthand": { 14 | "translation": [0, 3, 1], 15 | "scale": [0.5, 0.5, 0.5] 16 | }, 17 | "firstperson_righthand": { 18 | "translation": [0, 1.25, 1], 19 | "scale": [0.5, 0.5, 0.5] 20 | }, 21 | "firstperson_lefthand": { 22 | "translation": [0, 1.25, 1], 23 | "scale": [0.5, 0.5, 0.5] 24 | }, 25 | "ground": { 26 | "scale": [0.5, 0.5, 0.5] 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/mixin/PlayerEntityMixin.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.mixin; 2 | 3 | import dev.timefall.mcdar.registry.StatusEffectRegistry; 4 | import net.minecraft.entity.player.PlayerEntity; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.injection.At; 7 | import org.spongepowered.asm.mixin.injection.Inject; 8 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 9 | 10 | @Mixin(PlayerEntity.class) 11 | public class PlayerEntityMixin { 12 | 13 | @Inject(method = "tickMovement", at = @At("HEAD"), cancellable = true) 14 | public void onPlayerMovementWhilstStunnedTarget(CallbackInfo ci) { 15 | if (((PlayerEntity) (Object) this).hasStatusEffect(StatusEffectRegistry.STUNNED.getEntry())){ 16 | ci.cancel(); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/models/item/gong_of_weakening.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "parent": "item/generated", 4 | "textures": { 5 | "layer0": "mcdar:item/gong_of_weakening" 6 | }, 7 | "gui_light": "front", 8 | "display": { 9 | "thirdperson_righthand": { 10 | "rotation": [69, 0, 0], 11 | "translation": [0, -3.75, -4] 12 | }, 13 | "thirdperson_lefthand": { 14 | "rotation": [69, 0, 0], 15 | "translation": [0, -3.75, -4] 16 | }, 17 | "firstperson_righthand": { 18 | "translation": [0, 0, 0.75] 19 | }, 20 | "firstperson_lefthand": { 21 | "translation": [0, 0, 0.75] 22 | }, 23 | "gui": { 24 | "scale": [1.5, 1.5, 1.5] 25 | }, 26 | "fixed": { 27 | "rotation": [0, -180, 0], 28 | "translation": [0, 0, -0.75], 29 | "scale": [1.5, 1.5, 1.5] 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/models/item/lightning_rod.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "parent": "item/generated", 4 | "textures": { 5 | "layer0": "mcdar:item/lightning_rod" 6 | }, 7 | "gui_light": "front", 8 | "display": { 9 | "thirdperson_righthand": { 10 | "rotation": [0, 90, 45], 11 | "translation": [0, 0, 1] 12 | }, 13 | "thirdperson_lefthand": { 14 | "rotation": [-90, 90, 45], 15 | "translation": [0, 0, 1] 16 | }, 17 | "firstperson_righthand": { 18 | "rotation": [15, 83, 41], 19 | "translation": [2, 1, 0] 20 | }, 21 | "firstperson_lefthand": { 22 | "rotation": [-65, 83, 41], 23 | "translation": [2, 1, 0] 24 | }, 25 | "gui": { 26 | "scale": [1.5, 1.5, 1.5] 27 | }, 28 | "fixed": { 29 | "rotation": [0, 0, 90], 30 | "scale": [1.5, 1.5, 1.5] 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/models/item/flaming_quiver.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "parent": "item/generated", 4 | "textures": { 5 | "layer0": "mcdar:item/flaming_quiver" 6 | }, 7 | "gui_light": "front", 8 | "display": { 9 | "thirdperson_righthand": { 10 | "scale": [1.01, 1.01, 1.01] 11 | }, 12 | "thirdperson_lefthand": { 13 | "scale": [1.01, 1.01, 1.01] 14 | }, 15 | "firstperson_righthand": { 16 | "translation": [2, 0, 0] 17 | }, 18 | "firstperson_lefthand": { 19 | "translation": [2, 0, 0] 20 | }, 21 | "ground": { 22 | "translation": [0, 0.75, 0] 23 | }, 24 | "gui": { 25 | "translation": [0, 0.5, 0], 26 | "scale": [1.5, 1.5, 1.5] 27 | }, 28 | "fixed": { 29 | "rotation": [0, -180, 0], 30 | "translation": [0, 0.75, -0.5], 31 | "scale": [2, 2, 2] 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/models/item/torment_quiver.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "parent": "item/generated", 4 | "textures": { 5 | "layer0": "mcdar:item/torment_quiver" 6 | }, 7 | "gui_light": "front", 8 | "display": { 9 | "thirdperson_righthand": { 10 | "scale": [1.01, 1.01, 1.01] 11 | }, 12 | "thirdperson_lefthand": { 13 | "scale": [1.01, 1.01, 1.01] 14 | }, 15 | "firstperson_righthand": { 16 | "translation": [2, 0, 0] 17 | }, 18 | "firstperson_lefthand": { 19 | "translation": [2, 0, 0] 20 | }, 21 | "ground": { 22 | "translation": [0, 0.75, 0] 23 | }, 24 | "gui": { 25 | "translation": [0, 0.5, 0], 26 | "scale": [1.5, 1.5, 1.5] 27 | }, 28 | "fixed": { 29 | "rotation": [0, -180, 0], 30 | "translation": [0, 0.75, -0.5], 31 | "scale": [2, 2, 2] 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/goal/LoveMedallionAttackGoal.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.goal; 2 | 3 | import net.minecraft.entity.LivingEntity; 4 | import net.minecraft.entity.ai.goal.ActiveTargetGoal; 5 | import net.minecraft.entity.mob.MobEntity; 6 | import net.minecraft.entity.player.PlayerEntity; 7 | 8 | public class LoveMedallionAttackGoal extends ActiveTargetGoal { 9 | 10 | public LoveMedallionAttackGoal(MobEntity mob) { 11 | super(mob, LivingEntity.class, 0, true, true, LoveMedallionAttackGoal::isNonBossMobNotPlayer); 12 | } 13 | 14 | private static boolean isNonBossMobNotPlayer(LivingEntity livingEntity) { 15 | return !(livingEntity instanceof PlayerEntity); 16 | } 17 | 18 | @Override 19 | public void start() { 20 | super.start(); 21 | this.mob.setDespawnCounter(0); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/registry/EnchantmentRegistry.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.registry; 2 | 3 | import dev.timefall.mcdar.ModConstants; 4 | import net.minecraft.enchantment.Enchantment; 5 | import net.minecraft.registry.RegistryKey; 6 | import net.minecraft.registry.RegistryKeys; 7 | 8 | public class EnchantmentRegistry { 9 | public static RegistryKey COOLDOWN = of("cooldown"); 10 | public static RegistryKey BEAST_BOSS = of("beast_boss"); 11 | public static RegistryKey BEAST_BURST = of("beast_burst"); 12 | public static RegistryKey BEAST_SURGE = of("beast_surge"); 13 | 14 | private static RegistryKey of(String id) { 15 | return RegistryKey.of(RegistryKeys.ENCHANTMENT, ModConstants.id(id)); 16 | } 17 | 18 | public static void register() { 19 | } 20 | } 21 | 22 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/mixin/MobEntityMixin.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.mixin; 2 | 3 | import dev.timefall.mcdar.registry.StatusEffectRegistry; 4 | import net.minecraft.entity.mob.MobEntity; 5 | import net.minecraft.registry.entry.RegistryEntry; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Inject; 9 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 10 | 11 | @Mixin(MobEntity.class) 12 | public abstract class MobEntityMixin { 13 | @Inject(method = "isAiDisabled", at = @At("HEAD"), cancellable = true) 14 | public void onStunnedMob(CallbackInfoReturnable cir){ 15 | if (((MobEntity) (Object) this).hasStatusEffect(StatusEffectRegistry.STUNNED.getEntry())){ 16 | cir.setReturnValue(true); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/models/item/shock_powder.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "parent": "item/generated", 4 | "textures": { 5 | "layer0": "mcdar:item/shock_powder" 6 | }, 7 | "gui_light": "front", 8 | "display": { 9 | "thirdperson_righthand": { 10 | "rotation": [0, -90, 0], 11 | "translation": [0, 3.75, 0] 12 | }, 13 | "thirdperson_lefthand": { 14 | "rotation": [0, -90, 0], 15 | "translation": [0, 3.75, 0] 16 | }, 17 | "firstperson_righthand": { 18 | "rotation": [0, -90, 0], 19 | "translation": [0, 3, 0] 20 | }, 21 | "firstperson_lefthand": { 22 | "rotation": [0, -90, 0], 23 | "translation": [0, 3, 0] 24 | }, 25 | "ground": { 26 | "translation": [0, 1, 0] 27 | }, 28 | "gui": { 29 | "scale": [1.5, 1.5, 1.5] 30 | }, 31 | "fixed": { 32 | "rotation": [0, -180, 0], 33 | "translation": [0, 0.25, -0.5], 34 | "scale": [2, 2, 2] 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/models/item/corrupted_seeds.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "parent": "item/generated", 4 | "textures": { 5 | "layer0": "mcdar:item/corrupted_seeds" 6 | }, 7 | "gui_light": "front", 8 | "display": { 9 | "thirdperson_righthand": { 10 | "rotation": [0, -90, 0], 11 | "translation": [0, 3.75, 0] 12 | }, 13 | "thirdperson_lefthand": { 14 | "rotation": [0, -90, 0], 15 | "translation": [0, 3.75, 0] 16 | }, 17 | "firstperson_righthand": { 18 | "rotation": [0, -90, 0], 19 | "translation": [0, 3, 0] 20 | }, 21 | "firstperson_lefthand": { 22 | "rotation": [0, -90, 0], 23 | "translation": [0, 3, 0] 24 | }, 25 | "ground": { 26 | "translation": [0, 1, 0] 27 | }, 28 | "gui": { 29 | "scale": [1.5, 1.5, 1.5] 30 | }, 31 | "fixed": { 32 | "rotation": [0, -180, 0], 33 | "translation": [0, 0.25, -0.5], 34 | "scale": [2, 2, 2] 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/models/item/ghost_cloak.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "parent": "item/generated", 4 | "textures": { 5 | "layer0": "mcdar:item/ghost_cloak" 6 | }, 7 | "gui_light": "front", 8 | "display": { 9 | "thirdperson_righthand": { 10 | "rotation": [0, 90, 0], 11 | "translation": [0, 2.5, 1], 12 | "scale": [2, 2, 1.25] 13 | }, 14 | "thirdperson_lefthand": { 15 | "rotation": [0, 90, 0], 16 | "translation": [0, 2.5, 1], 17 | "scale": [2, 2, 1.25] 18 | }, 19 | "firstperson_righthand": { 20 | "rotation": [0, -90, 0], 21 | "scale": [2, 2, 1.25] 22 | }, 23 | "firstperson_lefthand": { 24 | "rotation": [0, 90, 0], 25 | "scale": [2, 2, 1.25] 26 | }, 27 | "ground": { 28 | "scale": [0.5, 0.5, 0.5] 29 | }, 30 | "gui": { 31 | "translation": [0, 0.25, 0], 32 | "scale": [1.5, 1.5, 1.5] 33 | }, 34 | "fixed": { 35 | "scale": [2, 2, 2] 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/models/item/totem_of_regeneration.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "parent": "item/generated", 4 | "textures": { 5 | "layer0": "mcdar:item/totem_of_regeneration" 6 | }, 7 | "gui_light": "front", 8 | "display": { 9 | "thirdperson_righthand": { 10 | "rotation": [0, -90, 0], 11 | "translation": [0, 3.75, 0] 12 | }, 13 | "thirdperson_lefthand": { 14 | "rotation": [0, -90, 0], 15 | "translation": [0, 3.75, 0] 16 | }, 17 | "firstperson_righthand": { 18 | "rotation": [0, -90, 0], 19 | "translation": [0, 3, 0] 20 | }, 21 | "firstperson_lefthand": { 22 | "rotation": [0, -90, 0], 23 | "translation": [0, 3, 0] 24 | }, 25 | "ground": { 26 | "translation": [0, 1, 0] 27 | }, 28 | "gui": { 29 | "scale": [1.5, 1.5, 1.5] 30 | }, 31 | "fixed": { 32 | "rotation": [0, -180, 0], 33 | "translation": [0, 0.25, -0.5], 34 | "scale": [2, 2, 2] 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/models/item/totem_of_soul_protection.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "parent": "item/generated", 4 | "textures": { 5 | "layer0": "mcdar:item/totem_of_soul_protection" 6 | }, 7 | "gui_light": "front", 8 | "display": { 9 | "thirdperson_righthand": { 10 | "rotation": [0, -90, 0], 11 | "translation": [0, 3.75, 0] 12 | }, 13 | "thirdperson_lefthand": { 14 | "rotation": [0, -90, 0], 15 | "translation": [0, 3.75, 0] 16 | }, 17 | "firstperson_righthand": { 18 | "rotation": [0, -90, 0], 19 | "translation": [0, 3, 0] 20 | }, 21 | "firstperson_lefthand": { 22 | "rotation": [0, -90, 0], 23 | "translation": [0, 3, 0] 24 | }, 25 | "ground": { 26 | "translation": [0, 1, 0] 27 | }, 28 | "gui": { 29 | "scale": [1.5, 1.5, 1.5] 30 | }, 31 | "fixed": { 32 | "rotation": [0, -180, 0], 33 | "translation": [0, 0.25, -0.5], 34 | "scale": [2, 2, 2] 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/models/item/light_feather.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "parent": "item/generated", 4 | "textures": { 5 | "layer0": "mcdar:item/light_feather" 6 | }, 7 | "gui_light": "front", 8 | "display": { 9 | "thirdperson_righthand": { 10 | "rotation": [0, -90, 52], 11 | "translation": [0, 3.75, 0.5], 12 | "scale": [0.5, 0.5, 0.5] 13 | }, 14 | "thirdperson_lefthand": { 15 | "rotation": [0, -90, -38], 16 | "translation": [0, 3.75, 0.5], 17 | "scale": [0.5, 0.5, 0.5] 18 | }, 19 | "firstperson_righthand": { 20 | "rotation": [0, -90, 90], 21 | "translation": [0, 3, 0], 22 | "scale": [0.5, 0.5, 0.5] 23 | }, 24 | "firstperson_lefthand": { 25 | "rotation": [0, 90, -90], 26 | "translation": [0, 3, 0], 27 | "scale": [0.5, 0.5, 0.5] 28 | }, 29 | "ground": { 30 | "scale": [0.5, 0.5, 0.5] 31 | }, 32 | "fixed": { 33 | "rotation": [0, -180, 0], 34 | "translation": [0, 0, -0.25] 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/models/item/harvester.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "parent": "item/generated", 4 | "textures": { 5 | "layer0": "mcdar:item/harvester" 6 | }, 7 | "gui_light": "front", 8 | "display": { 9 | "thirdperson_righthand": { 10 | "rotation": [0, -90, 0], 11 | "translation": [0, 3.75, 0], 12 | "scale": [0.5, 0.5, 0.5] 13 | }, 14 | "thirdperson_lefthand": { 15 | "rotation": [0, 90, 0], 16 | "translation": [0, 3.75, 0], 17 | "scale": [0.5, 0.5, 0.5] 18 | }, 19 | "firstperson_righthand": { 20 | "rotation": [0, -90, 0], 21 | "translation": [0, 3, 0], 22 | "scale": [0.5, 0.5, 0.5] 23 | }, 24 | "firstperson_lefthand": { 25 | "rotation": [0, 90, 0], 26 | "translation": [0, 3, 0], 27 | "scale": [0.5, 0.5, 0.5] 28 | }, 29 | "ground": { 30 | "scale": [0.5, 0.5, 0.5] 31 | }, 32 | "fixed": { 33 | "rotation": [0, -180, 0], 34 | "translation": [0, 0, -0.25] 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/models/item/enchanters_tome.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "parent": "item/generated", 4 | "textures": { 5 | "layer0": "mcdar:item/enchanters_tome" 6 | }, 7 | "gui_light": "front", 8 | "display": { 9 | "thirdperson_righthand": { 10 | "translation": [0, 2.5, 1], 11 | "scale": [0.5, 0.5, 0.5] 12 | }, 13 | "thirdperson_lefthand": { 14 | "translation": [0, 2.5, 1], 15 | "scale": [0.5, 0.5, 0.5] 16 | }, 17 | "firstperson_righthand": { 18 | "translation": [0, 2.5, 1], 19 | "scale": [0.5, 0.5, 0.5] 20 | }, 21 | "firstperson_lefthand": { 22 | "translation": [0, 2.5, 1], 23 | "scale": [0.5, 0.5, 0.5] 24 | }, 25 | "ground": { 26 | "scale": [0.5, 0.5, 0.5] 27 | }, 28 | "gui": { 29 | "translation": [-0.5, 0, 0], 30 | "scale": [1.2, 1.2, 1.2] 31 | }, 32 | "fixed": { 33 | "rotation": [0, -180, 0], 34 | "translation": [0.75, 0, -0.5], 35 | "scale": [1.5, 1.5, 1.5] 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/models/item/boots_of_swiftness.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "parent": "item/generated", 4 | "textures": { 5 | "layer0": "mcdar:item/boots_of_swiftness" 6 | }, 7 | "gui_light": "front", 8 | "display": { 9 | "thirdperson_righthand": { 10 | "rotation": [0, -90, 0], 11 | "translation": [0, 3.75, 0], 12 | "scale": [0.5, 0.5, 0.5] 13 | }, 14 | "thirdperson_lefthand": { 15 | "rotation": [0, 90, 0], 16 | "translation": [0, 3.75, 0], 17 | "scale": [0.5, 0.5, 0.5] 18 | }, 19 | "firstperson_righthand": { 20 | "rotation": [0, -90, 0], 21 | "translation": [0, 3, 0], 22 | "scale": [0.5, 0.5, 0.5] 23 | }, 24 | "firstperson_lefthand": { 25 | "rotation": [0, 90, 0], 26 | "translation": [0, 3, 0], 27 | "scale": [0.5, 0.5, 0.5] 28 | }, 29 | "ground": { 30 | "scale": [0.5, 0.5, 0.5] 31 | }, 32 | "fixed": { 33 | "rotation": [0, -180, 0], 34 | "translation": [0, 0, -0.25] 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/models/item/light_feather.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "parent": "item/generated", 4 | "textures": { 5 | "layer0": "mcdar:item/light_feather" 6 | }, 7 | "gui_light": "front", 8 | "display": { 9 | "thirdperson_righthand": { 10 | "rotation": [0, -90, 52], 11 | "translation": [0, 3.75, 0.5], 12 | "scale": [0.5, 0.5, 0.5] 13 | }, 14 | "thirdperson_lefthand": { 15 | "rotation": [0, -90, -38], 16 | "translation": [0, 3.75, 0.5], 17 | "scale": [0.5, 0.5, 0.5] 18 | }, 19 | "firstperson_righthand": { 20 | "rotation": [0, -90, 90], 21 | "translation": [0, 3, 0], 22 | "scale": [0.5, 0.5, 0.5] 23 | }, 24 | "firstperson_lefthand": { 25 | "rotation": [0, 90, -90], 26 | "translation": [0, 3, 0], 27 | "scale": [0.5, 0.5, 0.5] 28 | }, 29 | "ground": { 30 | "scale": [0.5, 0.5, 0.5] 31 | }, 32 | "fixed": { 33 | "rotation": [0, -180, 0], 34 | "translation": [0, 0, -0.25] 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/registry/tag/TagKeys.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.registry.tag; 2 | 3 | import dev.timefall.mcdar.ModConstants; 4 | import net.minecraft.entity.effect.StatusEffect; 5 | import net.minecraft.item.Item; 6 | import net.minecraft.registry.RegistryKeys; 7 | import net.minecraft.registry.tag.TagKey; 8 | 9 | public class TagKeys { 10 | public static final TagKey VILLAGER_ARTIFACT = TagKey.of(RegistryKeys.ITEM, ModConstants.id("villager_artifacts")); 11 | public static final TagKey ILLAGER_ARTIFACT = TagKey.of(RegistryKeys.ITEM, ModConstants.id("illager_artifacts")); 12 | public static final TagKey VOID_ARTIFACT = TagKey.of(RegistryKeys.ITEM, ModConstants.id("void_artifacts")); 13 | public static final TagKey ALL_ARTIFACT = TagKey.of(RegistryKeys.ITEM, ModConstants.id("all_artifacts")); 14 | public static final TagKey IS_VALID_FOR_BEAST_EFFECTS = TagKey.of(RegistryKeys.STATUS_EFFECT, ModConstants.id("is_valid_for_beast_effects")); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/api/ProjectileEffectHelper.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.api; 2 | 3 | import net.minecraft.entity.Entity; 4 | import net.minecraft.entity.projectile.PersistentProjectileEntity; 5 | import net.minecraft.item.ItemStack; 6 | import net.minecraft.item.Items; 7 | 8 | public class ProjectileEffectHelper { 9 | public static void ricochetArrowLikeShield(PersistentProjectileEntity ppe){ 10 | ppe.setVelocity(ppe.getVelocity().multiply(-0.1D)); 11 | ppe.getYaw(180.0F); 12 | ppe.prevYaw += 180.0F; 13 | if (!ppe.getWorld().isClient && ppe.getVelocity().lengthSquared() < 1.0E-7D){ 14 | if (ppe.pickupType == PersistentProjectileEntity.PickupPermission.ALLOWED){ 15 | ppe.dropStack(new ItemStack(Items.ARROW), 0.1F); 16 | } 17 | ppe.remove(Entity.RemovalReason.KILLED); 18 | } 19 | } 20 | public static void flamingQuiverArrow(PersistentProjectileEntity ppe){ 21 | ppe.setOnFireFor(100); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /fabric/src/main/resources/fabric.mod.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": 1, 3 | "id": "mcdar", 4 | "version": "${version}", 5 | "name": "MC Dungeons Artifacts", 6 | "description": "Bringing the artifacts of Minecraft Dungeons to Minecraft", 7 | "authors": [ 8 | "Chronosacaria", 9 | "Kluzzio", 10 | "fzzyhmstrs", 11 | "SeaOfPixels (Art)", 12 | "SattesKrokodil (Art)", 13 | "Patreons (Support)" 14 | ], 15 | "contact": {}, 16 | "license": "Timefall Development License 1.2", 17 | "icon": "assets/mcdar/icon.png", 18 | "environment": "*", 19 | "entrypoints": { 20 | "main": [ 21 | "dev.timefall.mcdar.McdarFabric" 22 | ], 23 | "client": [ 24 | "dev.timefall.mcdar.client.McdarClientFabric" 25 | ], 26 | "fabric-datagen": [ 27 | "dev.timefall.mcdar.data.McdarDataGenerator" 28 | ] 29 | }, 30 | "mixins": [ 31 | "mcdar.mixins.json" 32 | ], 33 | 34 | "depends": { 35 | "fabricloader": ">=0.15.11", 36 | "fabric-api": "*", 37 | "minecraft": "~1.21" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/models/item/iron_hide_amulet.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "parent": "item/generated", 4 | "textures": { 5 | "layer0": "mcdar:item/iron_hide_amulet" 6 | }, 7 | "gui_light": "front", 8 | "display": { 9 | "thirdperson_righthand": { 10 | "rotation": [69, 0, 0], 11 | "translation": [0, -2.5, -2.25], 12 | "scale": [0.5, 0.5, 0.5] 13 | }, 14 | "thirdperson_lefthand": { 15 | "rotation": [69, 0, 0], 16 | "translation": [0, -2.5, -2.25], 17 | "scale": [0.5, 0.5, 0.5] 18 | }, 19 | "firstperson_righthand": { 20 | "translation": [0, 0, 0.75], 21 | "scale": [0.5, 0.5, 0.5] 22 | }, 23 | "firstperson_lefthand": { 24 | "translation": [0, 0, 0.75], 25 | "scale": [0.5, 0.5, 0.5] 26 | }, 27 | "ground": { 28 | "scale": [0.5, 0.5, 0.5] 29 | }, 30 | "gui": { 31 | "translation": [0, 0.5, 0], 32 | "scale": [1.25, 1.25, 1.25] 33 | }, 34 | "fixed": { 35 | "rotation": [0, -180, 0], 36 | "translation": [0, 0, -0.75], 37 | "scale": [1.5, 1.5, 1.5] 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /common/build.gradle: -------------------------------------------------------------------------------- 1 | architectury { 2 | common(rootProject.enabled_platforms.split(",")) 3 | } 4 | 5 | 6 | dependencies { 7 | // We depend on fabric loader here to use the fabric @Environment annotations and get the mixin dependencies 8 | // Do NOT use other classes from fabric loader 9 | modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}" 10 | 11 | //modCompileOnly "dev.emi:emi-xplat-intermediary:${rootProject.emi_version}+${rootProject.minecraft_version}" 12 | modCompileOnly "me.fzzyhmstrs:fzzy_config:${rootProject.fzzyConfigVersion}" 13 | 14 | modCompileOnly "maven.modrinth:mcdx:${rootProject.mcdxVersion}" 15 | } 16 | 17 | publishing { 18 | publications { 19 | mavenCommon(MavenPublication) { 20 | artifactId = rootProject.archives_base_name 21 | from components.java 22 | } 23 | } 24 | 25 | // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. 26 | repositories { 27 | // Add repositories to publish to here. 28 | } 29 | } -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/models/item/totem_of_shielding.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "parent": "item/generated", 4 | "textures": { 5 | "layer0": "mcdar:item/totem_of_shielding" 6 | }, 7 | "gui_light": "front", 8 | "display": { 9 | "thirdperson_righthand": { 10 | "rotation": [0, -90, 0], 11 | "translation": [0, 3.75, 0], 12 | "scale": [0.7, 0.7, 1] 13 | }, 14 | "thirdperson_lefthand": { 15 | "rotation": [0, -90, 0], 16 | "translation": [0, 3.75, 0], 17 | "scale": [0.7, 0.7, 1] 18 | }, 19 | "firstperson_righthand": { 20 | "rotation": [0, -90, 0], 21 | "translation": [0, 3, 0] 22 | }, 23 | "firstperson_lefthand": { 24 | "rotation": [0, -90, 0], 25 | "translation": [0, 3, 0] 26 | }, 27 | "ground": { 28 | "translation": [0, 1, 0], 29 | "scale": [0.7, 0.7, 1] 30 | }, 31 | "gui": { 32 | "translation": [0, 0.5, 0], 33 | "scale": [1.4, 1.4, 1.4] 34 | }, 35 | "fixed": { 36 | "rotation": [0, -180, 0], 37 | "translation": [0, 0.25, -0.5], 38 | "scale": [1.7, 1.7, 1.7] 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /neoforge/src/main/resources/META-INF/neoforge.mods.toml: -------------------------------------------------------------------------------- 1 | modLoader = "javafml" 2 | loaderVersion = "[1,)" 3 | issueTrackerURL = "https://github.com/chronosacaria/MCDungeonsArtifacts/issues" 4 | license = "Timefall Development License 1.2" 5 | 6 | [[mods]] 7 | modId = "mcdar" 8 | version = "${version}" 9 | displayName = "MC Dungeons Artifacts" 10 | authors = "Chronosacaria, Kluzzio, fzzyhmstrs, yuripo (Art), SeaOfPixels (Art), SattesKrokodil (Art), Patreons (Support)" 11 | description = ''' 12 | Bringing the artifacts of Minecraft Dungeons to Minecraft 13 | ''' 14 | logoFile = "assets/mcdar/icon.png" 15 | 16 | [[dependencies.mcdar]] 17 | modId = "neoforge" 18 | type = "REQUIRED" 19 | versionRange = "[21.0.0-beta,)" 20 | ordering = "NONE" 21 | side = "BOTH" 22 | 23 | [[dependencies.mcdar]] 24 | modId = "minecraft" 25 | type = "REQUIRED" 26 | versionRange = "[1.21,)" 27 | ordering = "NONE" 28 | side = "BOTH" 29 | 30 | [[dependencies.mcdar]] 31 | modId = "fzzy_config" 32 | type = "REQUIRED" 33 | versionRange = "[0.6.0,)" 34 | ordering = "NONE" 35 | side = "BOTH" 36 | 37 | [[mixins]] 38 | config="mcdar.mixins.json" -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/models/item/soul_healer.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "parent": "item/generated", 4 | "textures": { 5 | "layer0": "mcdar:item/soul_healer" 6 | }, 7 | "gui_light": "front", 8 | "display": { 9 | "thirdperson_righthand": { 10 | "rotation": [69, -90, 0], 11 | "translation": [0, -2.5, -2.75], 12 | "scale": [0.5, 0.5, 0.5] 13 | }, 14 | "thirdperson_lefthand": { 15 | "rotation": [69, -90, 0], 16 | "translation": [0, -2.5, -2.75], 17 | "scale": [0.5, 0.5, 0.5] 18 | }, 19 | "firstperson_righthand": { 20 | "rotation": [0, -90, 0], 21 | "translation": [0, 1, 0], 22 | "scale": [0.5, 0.5, 0.5] 23 | }, 24 | "firstperson_lefthand": { 25 | "rotation": [0, -90, 0], 26 | "translation": [0, 1, 0], 27 | "scale": [0.5, 0.5, 0.5] 28 | }, 29 | "ground": { 30 | "scale": [0.5, 0.5, 0.5] 31 | }, 32 | "gui": { 33 | "scale": [1.25, 1.25, 1.25] 34 | }, 35 | "fixed": { 36 | "rotation": [0, -180, 0], 37 | "translation": [0, 0, -0.75], 38 | "scale": [1.5, 1.5, 1.5] 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/models/item/powershaker.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "parent": "item/generated", 4 | "textures": { 5 | "layer0": "mcdar:item/powershaker" 6 | }, 7 | "display": { 8 | "thirdperson_righthand": { 9 | "rotation": [0, 90, 45], 10 | "translation": [0, 1, 1.25], 11 | "scale": [1.01, 1.01, 1.01] 12 | }, 13 | "thirdperson_lefthand": { 14 | "rotation": [0, -90, -45], 15 | "translation": [0, 1, 1.25], 16 | "scale": [1.01, 1.01, 1.01] 17 | }, 18 | "firstperson_righthand": { 19 | "rotation": [0, 90, 45], 20 | "translation": [0, 1, 1.25], 21 | "scale": [1.01, 1.01, 1.01] 22 | }, 23 | "firstperson_lefthand": { 24 | "rotation": [0, 90, -45], 25 | "translation": [0, 1, 1.25], 26 | "scale": [1.01, 1.01, 1.01] 27 | }, 28 | "ground": { 29 | "translation": [0, 2.5, 0] 30 | }, 31 | "gui": { 32 | "translation": [0, 0.25, 0], 33 | "scale": [1.1, 1.1, 1.1] 34 | }, 35 | "fixed": { 36 | "rotation": [0, -180, 0], 37 | "translation": [0, 0, -0.5], 38 | "scale": [1.5, 1.5, 1.5] 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/entity/renderers/WonderfulWheatLlamaRenderer.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.entity.renderers; 2 | 3 | import dev.timefall.mcdar.entity.WonderfulWheatLlamaEntity; 4 | import net.minecraft.client.render.entity.EntityRendererFactory; 5 | import net.minecraft.client.render.entity.MobEntityRenderer; 6 | import net.minecraft.client.render.entity.model.EntityModelLayers; 7 | import net.minecraft.client.render.entity.model.LlamaEntityModel; 8 | import net.minecraft.util.Identifier; 9 | 10 | public class WonderfulWheatLlamaRenderer extends MobEntityRenderer> { 11 | public WonderfulWheatLlamaRenderer(EntityRendererFactory.Context context) { 12 | super(context, new LlamaEntityModel<>(context.getPart(EntityModelLayers.LLAMA)), 0.7F); 13 | this.addFeature(new WonderfulWheatLlamaDecorFeatureRenderer(this, context.getModelLoader())); 14 | } 15 | 16 | @Override 17 | public Identifier getTexture(WonderfulWheatLlamaEntity entity){ 18 | return Identifier.of("textures/entity/llama/brown.png"); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/entity/renderers/EnchantedGrassSheepRenderer.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.entity.renderers; 2 | 3 | import net.minecraft.client.render.entity.EntityRendererFactory; 4 | import net.minecraft.client.render.entity.MobEntityRenderer; 5 | import net.minecraft.client.render.entity.model.EntityModelLayers; 6 | import net.minecraft.client.render.entity.model.SheepEntityModel; 7 | import net.minecraft.entity.passive.SheepEntity; 8 | import net.minecraft.util.DyeColor; 9 | import net.minecraft.util.Identifier; 10 | 11 | public class EnchantedGrassSheepRenderer extends MobEntityRenderer> { 12 | public EnchantedGrassSheepRenderer(EntityRendererFactory.Context context, DyeColor color) { 13 | super(context, new SheepEntityModel<>(context.getPart(EntityModelLayers.SHEEP)), 0.7f); 14 | this.addFeature(new EnchantedGrassSheepWoolFeatureRenderer(this, context.getModelLoader(), color)); 15 | } 16 | 17 | @Override 18 | public Identifier getTexture(SheepEntity entity){ 19 | return Identifier.of("textures/entity/sheep/sheep.png"); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.yml: -------------------------------------------------------------------------------- 1 | name: Feature Request 2 | description: Suggest an idea for this project 3 | title: "[Feature Request]: " 4 | labels: 5 | - enhancement 6 | assignees: 7 | - chronosacaria 8 | - Kluzzio 9 | body: 10 | - type: textarea 11 | attributes: 12 | label: Is your feature request related to a problem? Please describe. 13 | description: A clear and concise description of what the problem is. 14 | placeholder: I'm always frustrated when [...] 15 | - type: textarea 16 | attributes: 17 | label: Describe the solution you'd like 18 | description: A clear and concise description of what you want to happen. 19 | placeholder: I would like [...] 20 | validations: 21 | required: true 22 | - type: textarea 23 | attributes: 24 | label: Describe alternatives you've considered 25 | description: A clear and concise description of what you want to happen. 26 | placeholder: I have considered [...] 27 | - type: textarea 28 | attributes: 29 | label: Additional context 30 | description: Add any other context or screenshots about the feature request here. -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/models/item/satchel_of_elements.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "parent": "item/generated", 4 | "textures": { 5 | "layer0": "mcdar:item/satchel_of_elements" 6 | }, 7 | "gui_light": "front", 8 | "display": { 9 | "thirdperson_righthand": { 10 | "rotation": [0, -90, 0], 11 | "translation": [0, 4.25, 0], 12 | "scale": [0.8, 0.8, 1] 13 | }, 14 | "thirdperson_lefthand": { 15 | "rotation": [0, -90, 0], 16 | "translation": [0, 4.25, 0], 17 | "scale": [0.8, 0.8, 1] 18 | }, 19 | "firstperson_righthand": { 20 | "rotation": [0, -90, 0], 21 | "translation": [0, 2, 0], 22 | "scale": [0.8, 0.8, 1] 23 | }, 24 | "firstperson_lefthand": { 25 | "rotation": [0, -90, 0], 26 | "translation": [0, 2, 0], 27 | "scale": [0.8, 0.8, 1] 28 | }, 29 | "ground": { 30 | "translation": [0, 1, 0], 31 | "scale": [0.8, 0.8, 1] 32 | }, 33 | "gui": { 34 | "translation": [0, 0.5, 0], 35 | "scale": [1.2, 1.2, 1.2] 36 | }, 37 | "fixed": { 38 | "rotation": [0, -180, 0], 39 | "translation": [0, 0.25, -0.5], 40 | "scale": [1.6, 1.6, 1.6] 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/config/artifact_types/DamageArtifactStats.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.config.artifact_types; 2 | 3 | import me.fzzyhmstrs.fzzy_config.annotations.IgnoreVisibility; 4 | import me.fzzyhmstrs.fzzy_config.annotations.Translation; 5 | 6 | @IgnoreVisibility 7 | public class DamageArtifactStats extends ArtifactStats { 8 | 9 | @Translation(prefix = "mcdar.mcdar_artifacts_stats_config.artifact_stats.damage") 10 | float range; 11 | 12 | @Translation(prefix = "mcdar.mcdar_artifacts_stats_config.artifact_stats.damage") 13 | float damage; 14 | 15 | public float mcdar$getRange() { 16 | return range; 17 | } 18 | 19 | public float mcdar$getDamage() { 20 | return damage; 21 | } 22 | 23 | public DamageArtifactStats() { 24 | super(); 25 | } 26 | 27 | public DamageArtifactStats(float range, float damage, boolean isEnabled, boolean isSpawnableInLoot, int durability, int maxCooldownEnchantmentTime, int generalSpawnWeight, int dungeonSpawnWeight) { 28 | super (isEnabled, isSpawnableInLoot, durability, maxCooldownEnchantmentTime, generalSpawnWeight, dungeonSpawnWeight); 29 | this.range = range; 30 | this.damage = damage; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/config/EnchantmentIDConfigHelper.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.config; 2 | 3 | public class EnchantmentIDConfigHelper { 4 | boolean isEnabled = true; 5 | boolean isAvailableForEnchantedBookOffer = true; 6 | boolean isAvailableForRandomSelection = true; 7 | int maxLevel = 3; 8 | 9 | public boolean mcdar$getIsEnabled() { 10 | return isEnabled; 11 | } 12 | public boolean mcdar$getIsAvailableForEnchantedBookOffer() { 13 | return isAvailableForEnchantedBookOffer; 14 | } 15 | public boolean mcdar$getIsAvailableForRandomSelection() { 16 | return isAvailableForRandomSelection; 17 | } 18 | public int mcdar$getMaxLevel() { 19 | return maxLevel; 20 | } 21 | 22 | @SuppressWarnings("unused") 23 | public EnchantmentIDConfigHelper(){ 24 | } 25 | 26 | public EnchantmentIDConfigHelper(boolean isEnabled, boolean isAvailableForEnchantedBookOffer, boolean isAvailableForRandomSelection, int maxLevel) { 27 | this.isEnabled = isEnabled; 28 | this.isAvailableForEnchantedBookOffer = isAvailableForEnchantedBookOffer; 29 | this.isAvailableForRandomSelection = isAvailableForRandomSelection; 30 | this.maxLevel = maxLevel; 31 | } 32 | } -------------------------------------------------------------------------------- /fabric/src/main/java/dev/timefall/mcdar/data/McdarDataGenerator.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.data; 2 | 3 | import dev.timefall.mcdar.data.providers.McdarEnchantmentsProvider; 4 | import dev.timefall.mcdar.data.providers.McdarItemTagProvider; 5 | import dev.timefall.mcdar.data.providers.McdarStatusTagProvider; 6 | import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint; 7 | import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; 8 | import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; 9 | import net.minecraft.registry.RegistryBuilder; 10 | 11 | public class McdarDataGenerator implements DataGeneratorEntrypoint { 12 | @Override 13 | public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) { 14 | FabricDataGenerator.Pack pack = fabricDataGenerator.createPack(); 15 | pack.addProvider(McdarEnchantmentsProvider::new); 16 | pack.addProvider((FabricDataOutput dataOutput) -> new McdarItemTagProvider(dataOutput, fabricDataGenerator.getRegistries(), null)); 17 | pack.addProvider(McdarStatusTagProvider::new); 18 | } 19 | 20 | @Override 21 | public void buildRegistry(RegistryBuilder registryBuilder) { 22 | DataGeneratorEntrypoint.super.buildRegistry(registryBuilder); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /fabric/src/main/java/dev/timefall/mcdar/data/providers/McdarStatusTagProvider.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.data.providers; 2 | 3 | import dev.timefall.mcdar.registry.tag.TagKeys; 4 | import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; 5 | import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider; 6 | import net.minecraft.entity.effect.StatusEffect; 7 | import net.minecraft.entity.effect.StatusEffects; 8 | import net.minecraft.registry.RegistryKeys; 9 | import net.minecraft.registry.RegistryWrapper; 10 | 11 | import java.util.concurrent.CompletableFuture; 12 | 13 | //TODO Make sure that the tag is created properly via dategen after MCDX update 14 | public class McdarStatusTagProvider extends FabricTagProvider { 15 | 16 | public McdarStatusTagProvider(FabricDataOutput output, CompletableFuture registriesFuture) { 17 | super(output, RegistryKeys.STATUS_EFFECT, registriesFuture); 18 | } 19 | 20 | @Override 21 | protected void configure(RegistryWrapper.WrapperLookup wrapperLookup) { 22 | getOrCreateTagBuilder(TagKeys.IS_VALID_FOR_BEAST_EFFECTS) 23 | .add(StatusEffects.INSTANT_HEALTH.value()) 24 | .add(StatusEffects.REGENERATION.value()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /neoforge/src/main/java/dev/timefall/mcdar/McdarNeoForge.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar; 2 | 3 | import dev.timefall.mcdar.event.McdarForgeEventHandler; 4 | import dev.timefall.mcdar.registry.DefaultAttributeRegistryNeoForge; 5 | import net.neoforged.bus.api.IEventBus; 6 | import net.neoforged.fml.common.Mod; 7 | import net.neoforged.neoforge.common.NeoForge; 8 | 9 | @Mod(ModConstants.MOD_ID) 10 | public class McdarNeoForge { 11 | public McdarNeoForge(IEventBus modEventBus) { 12 | McdarCommon.initialize(); 13 | 14 | /* 15 | * Game Event Bus Events 16 | */ 17 | NeoForge.EVENT_BUS.addListener(McdarForgeEventHandler::mcdar$playerFinishPotionEvent); 18 | NeoForge.EVENT_BUS.addListener(McdarForgeEventHandler::mcdar$onPowershakerExplodingKill); 19 | NeoForge.EVENT_BUS.addListener(McdarForgeEventHandler::mcdar$stunnedStatusPreventItemUsage); 20 | NeoForge.EVENT_BUS.addListener(McdarForgeEventHandler::mcdar$stunnedStatusPreventAttackEntityBlock); 21 | NeoForge.EVENT_BUS.addListener(McdarForgeEventHandler::mcdar$stunnedStatusPreventAttackBlock); 22 | 23 | /* 24 | * Mod Event Bus Events 25 | */ 26 | modEventBus.addListener(DefaultAttributeRegistryNeoForge::registerAttributes); 27 | 28 | ModConstants.LOGGER.info("Hello NeoForge!"); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/config/artifact_types/ComplexArtifactStats.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.config.artifact_types; 2 | 3 | import me.fzzyhmstrs.fzzy_config.annotations.IgnoreVisibility; 4 | import me.fzzyhmstrs.fzzy_config.util.Walkable; 5 | 6 | //ComplexArtifactStats(...) extends ArtifactStats 7 | 8 | 9 | // public ComplexArtifactStats BLAST_FUNGUS_STATS = ComplexArtifactStats(new DamageArtifactStat(5, 4) 10 | 11 | // Congig.BLAST_FUNGUS_STATS.mcdar$getRange() 12 | 13 | // public DamageArtifactStats BLAST_FUNGUS_STATS = DamageArtifactStats(range = 5, damage = 4, ;ggggggg) 14 | 15 | // Congig.BLAST_FUNGUS_STATS.mcdar$getRange() 16 | 17 | @IgnoreVisibility 18 | public class ComplexArtifactStats extends ArtifactStats { 19 | 20 | //@Translation(prefix = "fgfg") 21 | T innerStat; 22 | 23 | public T mcdar$getInnerStat() { 24 | return innerStat; 25 | } 26 | 27 | @SuppressWarnings("unused") 28 | public ComplexArtifactStats() { 29 | } 30 | 31 | public ComplexArtifactStats(T innerStat, boolean isEnabled, boolean isSpawnableInLoot, int durability, int maxCooldownEnchantmentTime, int generalSpawnWeight, int dungeonSpawnWeight) { 32 | super(isEnabled, isSpawnableInLoot, durability, maxCooldownEnchantmentTime, generalSpawnWeight, dungeonSpawnWeight); 33 | this.innerStat = innerStat; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /neoforge/src/main/java/dev/timefall/mcdar/registry/DefaultAttributeRegistryNeoForge.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.registry; 2 | 3 | import dev.timefall.mcdar.entity.*; 4 | import net.neoforged.neoforge.event.entity.EntityAttributeCreationEvent; 5 | 6 | public class DefaultAttributeRegistryNeoForge { 7 | 8 | public static void registerAttributes(EntityAttributeCreationEvent event) { 9 | event.put(SummonedEntityRegistry.BUZZY_NEST_BEE_ENTITY.get(), BuzzyNestBeeEntity.createBeeAttributes().build()); 10 | event.put(SummonedEntityRegistry.ENCHANTED_GRASS_GREEN_SHEEP_ENTITY.get(), EnchantedGrassGreenSheepEntity.createEnchantedGreenSheepAttributes().build()); 11 | event.put(SummonedEntityRegistry.ENCHANTED_GRASS_BLUE_SHEEP_ENTITY.get(), EnchantedGrassBlueSheepEntity.createEnchantedBlueSheepAttributes().build()); 12 | event.put(SummonedEntityRegistry.ENCHANTED_GRASS_RED_SHEEP_ENTITY.get(), EnchantedGrassRedSheepEntity.createEnchantedRedSheepAttributes().build()); 13 | event.put(SummonedEntityRegistry.GOLEM_KIT_GOLEM_ENTITY.get(), GolemKitGolemEntity.createIronGolemAttributes().build()); 14 | event.put(SummonedEntityRegistry.TASTY_BONE_WOLF_ENTITY.get(), TastyBoneWolfEntity.createTastyBoneWolfAttributes().build()); 15 | event.put(SummonedEntityRegistry.WONDERFUL_WHEAT_LLAMA_ENTITY.get(), WonderfulWheatLlamaEntity.createWonderfulWheatLlamaAttributes().build()); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | # Automatically build the project and run any configured tests for every push 2 | # and submitted pull request. This can help catch issues that only occur on 3 | # certain platforms or Java versions, and provides a first line of defence 4 | # against bad commits. 5 | 6 | name: build 7 | on: [pull_request, push] 8 | 9 | jobs: 10 | build: 11 | strategy: 12 | matrix: 13 | # Use these Java versions 14 | java: [ 15 | 17, # Current Java LTS & minimum supported by Minecraft 16 | ] 17 | # and run on both Linux and Windows 18 | os: [ubuntu-22.04, windows-2022] 19 | runs-on: ${{ matrix.os }} 20 | steps: 21 | - name: checkout repository 22 | uses: actions/checkout@v3 23 | - name: validate gradle wrapper 24 | uses: gradle/wrapper-validation-action@v1 25 | - name: setup jdk ${{ matrix.java }} 26 | uses: actions/setup-java@v3 27 | with: 28 | java-version: ${{ matrix.java }} 29 | distribution: 'microsoft' 30 | - name: make gradle wrapper executable 31 | if: ${{ runner.os != 'Windows' }} 32 | run: chmod +x ./gradlew 33 | - name: build 34 | run: ./gradlew build 35 | - name: capture build artifacts 36 | if: ${{ runner.os == 'Linux' && matrix.java == '17' }} # Only upload artifacts built from latest java on one OS 37 | uses: actions/upload-artifact@v3 38 | with: 39 | name: Artifacts 40 | path: build/libs/ -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/api/GroupedObjectsHelper.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.api; 2 | 3 | import net.minecraft.loot.LootTable; 4 | import net.minecraft.loot.LootTables; 5 | import net.minecraft.registry.RegistryKey; 6 | 7 | import java.util.Set; 8 | 9 | public class GroupedObjectsHelper { 10 | public static final Set> ILLAGER_ARTIFACT_GENERAL_LOOT_TABLES = 11 | Set.of(LootTables.WOODLAND_MANSION_CHEST, LootTables.PILLAGER_OUTPOST_CHEST); 12 | 13 | public static final Set> VILLAGER_ARTIFACT_GENERAL_LOOT_TABLES = 14 | Set.of(LootTables.VILLAGE_ARMORER_CHEST, LootTables.VILLAGE_BUTCHER_CHEST, 15 | LootTables.VILLAGE_CARTOGRAPHER_CHEST, LootTables.VILLAGE_FISHER_CHEST, 16 | LootTables.VILLAGE_FLETCHER_CHEST, LootTables.VILLAGE_DESERT_HOUSE_CHEST, 17 | LootTables.VILLAGE_MASON_CHEST, LootTables.VILLAGE_PLAINS_CHEST, 18 | LootTables.VILLAGE_SAVANNA_HOUSE_CHEST, LootTables.VILLAGE_SHEPARD_CHEST, 19 | LootTables.VILLAGE_SNOWY_HOUSE_CHEST, LootTables.VILLAGE_TAIGA_HOUSE_CHEST, 20 | LootTables.VILLAGE_TANNERY_CHEST, LootTables.VILLAGE_TEMPLE_CHEST, 21 | LootTables.VILLAGE_TOOLSMITH_CHEST); 22 | 23 | public static final Set> ALL_ARTIFACTS_DUNGEON_LOOT_TABLES = 24 | Set.of(LootTables.ABANDONED_MINESHAFT_CHEST, LootTables.SIMPLE_DUNGEON_CHEST, LootTables.SHIPWRECK_TREASURE_CHEST); 25 | } 26 | -------------------------------------------------------------------------------- /fabric/src/main/java/dev/timefall/mcdar/registry/DefaultAttributeRegistryFabric.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.registry; 2 | 3 | import dev.timefall.mcdar.entity.*; 4 | import net.fabricmc.fabric.api.object.builder.v1.entity.FabricDefaultAttributeRegistry; 5 | 6 | public class DefaultAttributeRegistryFabric { 7 | 8 | public static void registerAttributes() { 9 | FabricDefaultAttributeRegistry.register(SummonedEntityRegistry.BUZZY_NEST_BEE_ENTITY.get(), BuzzyNestBeeEntity.createBeeAttributes().build()); 10 | FabricDefaultAttributeRegistry.register(SummonedEntityRegistry.ENCHANTED_GRASS_GREEN_SHEEP_ENTITY.get(), EnchantedGrassGreenSheepEntity.createEnchantedGreenSheepAttributes().build()); 11 | FabricDefaultAttributeRegistry.register(SummonedEntityRegistry.ENCHANTED_GRASS_BLUE_SHEEP_ENTITY.get(), EnchantedGrassBlueSheepEntity.createEnchantedBlueSheepAttributes().build()); 12 | FabricDefaultAttributeRegistry.register(SummonedEntityRegistry.ENCHANTED_GRASS_RED_SHEEP_ENTITY.get(), EnchantedGrassRedSheepEntity.createEnchantedRedSheepAttributes().build()); 13 | FabricDefaultAttributeRegistry.register(SummonedEntityRegistry.GOLEM_KIT_GOLEM_ENTITY.get(), GolemKitGolemEntity.createIronGolemAttributes().build()); 14 | FabricDefaultAttributeRegistry.register(SummonedEntityRegistry.TASTY_BONE_WOLF_ENTITY.get(), TastyBoneWolfEntity.createTastyBoneWolfAttributes().build()); 15 | FabricDefaultAttributeRegistry.register(SummonedEntityRegistry.WONDERFUL_WHEAT_LLAMA_ENTITY.get(), WonderfulWheatLlamaEntity.createWonderfulWheatLlamaAttributes().build()); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /fabric/src/main/java/dev/timefall/mcdar/client/registry/SummonedEntityAttributeRegistryFabric.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.client.registry; 2 | 3 | import dev.timefall.mcdar.entity.*; 4 | import dev.timefall.mcdar.registry.SummonedEntityRegistry; 5 | import net.fabricmc.fabric.api.object.builder.v1.entity.FabricDefaultAttributeRegistry; 6 | 7 | public class SummonedEntityAttributeRegistryFabric { 8 | public static void register() { 9 | FabricDefaultAttributeRegistry.register(SummonedEntityRegistry.BUZZY_NEST_BEE_ENTITY.get(), BuzzyNestBeeEntity.createBeeAttributes()); 10 | FabricDefaultAttributeRegistry.register(SummonedEntityRegistry.ENCHANTED_GRASS_BLUE_SHEEP_ENTITY.get(), EnchantedGrassBlueSheepEntity.createEnchantedBlueSheepAttributes()); 11 | FabricDefaultAttributeRegistry.register(SummonedEntityRegistry.ENCHANTED_GRASS_GREEN_SHEEP_ENTITY.get(), EnchantedGrassGreenSheepEntity.createEnchantedGreenSheepAttributes()); 12 | FabricDefaultAttributeRegistry.register(SummonedEntityRegistry.ENCHANTED_GRASS_RED_SHEEP_ENTITY.get(), EnchantedGrassRedSheepEntity.createEnchantedRedSheepAttributes()); 13 | FabricDefaultAttributeRegistry.register(SummonedEntityRegistry.GOLEM_KIT_GOLEM_ENTITY.get(), GolemKitGolemEntity.createIronGolemAttributes()); 14 | FabricDefaultAttributeRegistry.register(SummonedEntityRegistry.TASTY_BONE_WOLF_ENTITY.get(), TastyBoneWolfEntity.createTastyBoneWolfAttributes()); 15 | FabricDefaultAttributeRegistry.register(SummonedEntityRegistry.WONDERFUL_WHEAT_LLAMA_ENTITY.get(), WonderfulWheatLlamaEntity.createWonderfulWheatLlamaAttributes()); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/config/item_sections/QuiverArtifactStats.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.config.item_sections; 2 | 3 | import dev.timefall.mcdar.config.artifact_types.ArtifactStats; 4 | import dev.timefall.mcdar.config.artifact_types.ExperienceDrainingArtifactStats; 5 | import me.fzzyhmstrs.fzzy_config.config.ConfigSection; 6 | 7 | public class QuiverArtifactStats extends ConfigSection { 8 | 9 | public QuiverArtifactStats() { 10 | super(); 11 | this.FLAMING_QUIVER_STATS = new ArtifactStats( 12 | true, 13 | true, 14 | 64, 15 | 600, 16 | 2, 17 | 1 18 | ); 19 | this.HARPOON_QUIVER_STATS = new ArtifactStats( 20 | true, 21 | true, 22 | 64, 23 | 600, 24 | 2, 25 | 1 26 | ); 27 | this.THUNDERING_QUIVER_STATS = new ArtifactStats( 28 | true, 29 | true, 30 | 64, 31 | 600, 32 | 2, 33 | 1 34 | ); 35 | this.TORMENT_QUIVER_STATS = new ExperienceDrainingArtifactStats( 36 | 20, 37 | true, 38 | true, 39 | 64, 40 | 600, 41 | 2, 42 | 1 43 | ); 44 | } 45 | 46 | public ArtifactStats FLAMING_QUIVER_STATS; 47 | public ArtifactStats HARPOON_QUIVER_STATS; 48 | public ArtifactStats THUNDERING_QUIVER_STATS; 49 | public ExperienceDrainingArtifactStats TORMENT_QUIVER_STATS; 50 | } 51 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/api/AOECloudHelper.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.api; 2 | 3 | import net.minecraft.entity.AreaEffectCloudEntity; 4 | import net.minecraft.entity.LivingEntity; 5 | import net.minecraft.entity.effect.StatusEffectInstance; 6 | import net.minecraft.particle.ParticleTypes; 7 | import net.minecraft.util.math.BlockPos; 8 | 9 | public class AOECloudHelper { 10 | 11 | public static void spawnExplosionCloud(LivingEntity attacker, LivingEntity victim, float radius){ 12 | AreaEffectCloudEntity areaEffectCloudEntity = new AreaEffectCloudEntity(victim.getWorld(), victim.getX(), victim.getY(), victim.getZ()); 13 | areaEffectCloudEntity.setOwner(attacker); 14 | areaEffectCloudEntity.setParticleType(ParticleTypes.EXPLOSION); 15 | areaEffectCloudEntity.setRadius(radius); 16 | areaEffectCloudEntity.setDuration(0); 17 | attacker.getWorld().spawnEntity(areaEffectCloudEntity); 18 | } 19 | 20 | public static void spawnStatusEffectCloud(LivingEntity owner, BlockPos blockPos, float radius, int duration, StatusEffectInstance... statusEffectInstances) { 21 | AreaEffectCloudEntity aoeCloudEntity = new AreaEffectCloudEntity(owner.getWorld(), blockPos.getX(), blockPos.getY() + 1, blockPos.getZ()); 22 | aoeCloudEntity.setOwner(owner); 23 | aoeCloudEntity.setRadius(radius); 24 | aoeCloudEntity.setRadiusOnUse(-0.5f); 25 | aoeCloudEntity.setWaitTime(10); 26 | aoeCloudEntity.setDuration(duration); 27 | for (StatusEffectInstance instance : statusEffectInstances) 28 | aoeCloudEntity.addEffect(instance); 29 | owner.getWorld().spawnEntity(aoeCloudEntity); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/mixin/BowItemMixin.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.mixin; 2 | 3 | import dev.timefall.mcdar.api.ProjectileEffectHelper; 4 | import dev.timefall.mcdar.config.McdarArtifactsStatsConfig; 5 | import dev.timefall.mcdar.registry.ArtifactsRegistry; 6 | import net.minecraft.entity.LivingEntity; 7 | import net.minecraft.entity.player.PlayerEntity; 8 | import net.minecraft.entity.projectile.PersistentProjectileEntity; 9 | import net.minecraft.entity.projectile.ProjectileEntity; 10 | import net.minecraft.item.BowItem; 11 | import org.spongepowered.asm.mixin.Mixin; 12 | import org.spongepowered.asm.mixin.injection.At; 13 | import org.spongepowered.asm.mixin.injection.Inject; 14 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 15 | 16 | @Mixin(BowItem.class) 17 | public abstract class BowItemMixin { 18 | 19 | @Inject(method = "shoot", at = @At(value = "HEAD")) 20 | public void onFlamingQuiverArrowLoosing(LivingEntity shooter, ProjectileEntity projectile, int index, float speed, float divergence, float yaw, LivingEntity target, CallbackInfo ci){ 21 | if (McdarArtifactsStatsConfig.CONFIG.mcdar$getQuiverArtifactStats().FLAMING_QUIVER_STATS.mcdar$getIsEnabled()){ 22 | if (shooter.getOffHandStack().isOf(ArtifactsRegistry.FLAMING_QUIVER.get())) { 23 | if (shooter instanceof PlayerEntity playerEntity) { 24 | float effectTimer = playerEntity.getItemCooldownManager().getCooldownProgress(shooter.getOffHandStack().getItem(), 0); 25 | if (effectTimer > 0) { 26 | ProjectileEffectHelper.flamingQuiverArrow((PersistentProjectileEntity) projectile); 27 | } 28 | } 29 | } 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/artifacts/GolemKitItem.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.artifacts; 2 | 3 | import dev.timefall.mcdar.api.CleanlinessHelper; 4 | import dev.timefall.mcdar.artifacts.artifact_types.ArtifactSummoningItem; 5 | import dev.timefall.mcdar.config.McdarArtifactsStatsConfig; 6 | import dev.timefall.mcdar.effect.EnchantmentEffects; 7 | import dev.timefall.mcdar.registry.SummonedEntityRegistry; 8 | import net.minecraft.item.ItemStack; 9 | import net.minecraft.item.ItemUsageContext; 10 | import net.minecraft.item.tooltip.TooltipType; 11 | import net.minecraft.text.Text; 12 | import net.minecraft.util.ActionResult; 13 | 14 | import java.util.List; 15 | 16 | public class GolemKitItem extends ArtifactSummoningItem { 17 | public GolemKitItem() { 18 | super(McdarArtifactsStatsConfig.CONFIG.mcdar$getSummoningArtifactStats().GOLEM_KIT_STATS); 19 | } 20 | 21 | public ActionResult useOnBlock (ItemUsageContext itemUsageContext){ 22 | int maxCooldownEnchantmentTime = McdarArtifactsStatsConfig.CONFIG.mcdar$getSummoningArtifactStats().GOLEM_KIT_STATS.mcdar$getMaxCooldownEnchantmentTime(); 23 | int modifiedCooldownEnchantmentTime = EnchantmentEffects.cooldownEffect(maxCooldownEnchantmentTime, itemUsageContext.getPlayer(), itemUsageContext.getWorld()); 24 | 25 | return CleanlinessHelper.mcdar$cleanUseSummon( 26 | itemUsageContext, 27 | this, 28 | SummonedEntityRegistry.GOLEM_KIT_GOLEM_ENTITY.get(), 29 | modifiedCooldownEnchantmentTime 30 | ); 31 | } 32 | 33 | @Override 34 | public void appendTooltip(ItemStack stack, TooltipContext tooltipContext, List tooltip, TooltipType type){ 35 | CleanlinessHelper.createLoreTTips(stack, tooltip); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/artifacts/BuzzyNestItem.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.artifacts; 2 | 3 | import dev.timefall.mcdar.api.CleanlinessHelper; 4 | import dev.timefall.mcdar.artifacts.artifact_types.ArtifactSummoningItem; 5 | import dev.timefall.mcdar.config.McdarArtifactsStatsConfig; 6 | import dev.timefall.mcdar.effect.EnchantmentEffects; 7 | import dev.timefall.mcdar.registry.SummonedEntityRegistry; 8 | import net.minecraft.item.ItemStack; 9 | import net.minecraft.item.ItemUsageContext; 10 | import net.minecraft.item.tooltip.TooltipType; 11 | import net.minecraft.text.Text; 12 | import net.minecraft.util.ActionResult; 13 | 14 | import java.util.List; 15 | 16 | public class BuzzyNestItem extends ArtifactSummoningItem { 17 | public BuzzyNestItem() { 18 | super(McdarArtifactsStatsConfig.CONFIG.mcdar$getSummoningArtifactStats().BUZZY_NEST_STATS); 19 | } 20 | 21 | public ActionResult useOnBlock(ItemUsageContext itemUsageContext) { 22 | int maxCooldownEnchantmentTime = McdarArtifactsStatsConfig.CONFIG.mcdar$getSummoningArtifactStats().BUZZY_NEST_STATS.mcdar$getMaxCooldownEnchantmentTime(); 23 | int modifiedCooldownEnchantmentTime = EnchantmentEffects.cooldownEffect(maxCooldownEnchantmentTime, itemUsageContext.getPlayer(), itemUsageContext.getWorld()); 24 | 25 | return CleanlinessHelper.mcdar$cleanUseSummon( 26 | itemUsageContext, 27 | this, 28 | SummonedEntityRegistry.BUZZY_NEST_BEE_ENTITY.get(), 29 | modifiedCooldownEnchantmentTime 30 | ); 31 | } 32 | 33 | @Override 34 | public void appendTooltip(ItemStack stack, TooltipContext tooltipContext, List tooltip, TooltipType type) { 35 | CleanlinessHelper.createLoreTTips(stack, tooltip); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/artifacts/TastyBoneItem.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.artifacts; 2 | 3 | import dev.timefall.mcdar.api.CleanlinessHelper; 4 | import dev.timefall.mcdar.artifacts.artifact_types.ArtifactSummoningItem; 5 | import dev.timefall.mcdar.config.McdarArtifactsStatsConfig; 6 | import dev.timefall.mcdar.effect.EnchantmentEffects; 7 | import dev.timefall.mcdar.registry.SummonedEntityRegistry; 8 | import net.minecraft.item.ItemStack; 9 | import net.minecraft.item.ItemUsageContext; 10 | import net.minecraft.item.tooltip.TooltipType; 11 | import net.minecraft.text.Text; 12 | import net.minecraft.util.ActionResult; 13 | 14 | import java.util.List; 15 | 16 | public class TastyBoneItem extends ArtifactSummoningItem { 17 | public TastyBoneItem() { 18 | super(McdarArtifactsStatsConfig.CONFIG.mcdar$getSummoningArtifactStats().TASTY_BONE_STATS); 19 | } 20 | 21 | public ActionResult useOnBlock (ItemUsageContext itemUsageContext) { 22 | int maxCooldownEnchantmentTime = McdarArtifactsStatsConfig.CONFIG.mcdar$getSummoningArtifactStats().TASTY_BONE_STATS.mcdar$getMaxCooldownEnchantmentTime(); 23 | int modifiedCooldownEnchantmentTime = EnchantmentEffects.cooldownEffect(maxCooldownEnchantmentTime, itemUsageContext.getPlayer(), itemUsageContext.getWorld()); 24 | 25 | return CleanlinessHelper.mcdar$cleanUseSummon( 26 | itemUsageContext, 27 | this, 28 | SummonedEntityRegistry.TASTY_BONE_WOLF_ENTITY.get(), 29 | modifiedCooldownEnchantmentTime 30 | ); 31 | } 32 | 33 | @Override 34 | public void appendTooltip(ItemStack stack, TooltipContext tooltipContext, List tooltip, TooltipType type){ 35 | CleanlinessHelper.createLoreTTips(stack, tooltip); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/artifacts/WonderfulWheatItem.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.artifacts; 2 | 3 | import dev.timefall.mcdar.api.CleanlinessHelper; 4 | import dev.timefall.mcdar.artifacts.artifact_types.ArtifactSummoningItem; 5 | import dev.timefall.mcdar.config.McdarArtifactsStatsConfig; 6 | import dev.timefall.mcdar.effect.EnchantmentEffects; 7 | import dev.timefall.mcdar.registry.SummonedEntityRegistry; 8 | import net.minecraft.item.ItemStack; 9 | import net.minecraft.item.ItemUsageContext; 10 | import net.minecraft.item.tooltip.TooltipType; 11 | import net.minecraft.text.Text; 12 | import net.minecraft.util.ActionResult; 13 | 14 | import java.util.List; 15 | 16 | public class WonderfulWheatItem extends ArtifactSummoningItem { 17 | public WonderfulWheatItem() { 18 | super(McdarArtifactsStatsConfig.CONFIG.mcdar$getSummoningArtifactStats().WONDERFUL_WHEAT_STATS); 19 | } 20 | 21 | public ActionResult useOnBlock (ItemUsageContext itemUsageContext){ 22 | int maxCooldownEnchantmentTime = McdarArtifactsStatsConfig.CONFIG.mcdar$getSummoningArtifactStats().WONDERFUL_WHEAT_STATS.mcdar$getMaxCooldownEnchantmentTime(); 23 | int modifiedCooldownEnchantmentTime = EnchantmentEffects.cooldownEffect(maxCooldownEnchantmentTime, itemUsageContext.getPlayer(), itemUsageContext.getWorld()); 24 | 25 | return CleanlinessHelper.mcdar$cleanUseSummon( 26 | itemUsageContext, 27 | this, 28 | SummonedEntityRegistry.WONDERFUL_WHEAT_LLAMA_ENTITY.get(), 29 | modifiedCooldownEnchantmentTime 30 | ); 31 | } 32 | 33 | @Override 34 | public void appendTooltip(ItemStack stack, TooltipContext tooltipContext, List tooltip, TooltipType type){ 35 | CleanlinessHelper.createLoreTTips(stack, tooltip); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /fabric/src/main/java/dev/timefall/mcdar/client/McdarClientFabric.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.client; 2 | 3 | import dev.timefall.mcdar.ModConstants; 4 | import dev.timefall.mcdar.client.registry.SummonedEntityAttributeRegistryFabric; 5 | import dev.timefall.mcdar.client.registry.SummonedEntityRenderRegistryFabric; 6 | import net.fabricmc.api.ClientModInitializer; 7 | import net.fabricmc.api.EnvType; 8 | import net.fabricmc.api.Environment; 9 | import net.fabricmc.fabric.api.resource.ResourceManagerHelper; 10 | import net.fabricmc.fabric.api.resource.ResourcePackActivationType; 11 | import net.fabricmc.loader.api.FabricLoader; 12 | import net.fabricmc.loader.api.ModContainer; 13 | import net.minecraft.util.Identifier; 14 | 15 | 16 | @Environment(EnvType.CLIENT) 17 | public class McdarClientFabric implements ClientModInitializer { 18 | @SuppressWarnings({"deprecation", "Note: ResourceManagerHelper.registerBuiltinResourcePack isn't actually deprecated, but overloaded."}) 19 | private static void loadOptionalResourcePack(ModContainer modContainer) { 20 | ResourceManagerHelper.registerBuiltinResourcePack( 21 | Identifier.of(ModConstants.MOD_ID, "2dmcdar"), 22 | modContainer, 23 | "Legacy MCDAR", 24 | ResourcePackActivationType.NORMAL); 25 | } 26 | 27 | @Override 28 | public void onInitializeClient() { 29 | 30 | System.out.println("Hi Derp"); 31 | 32 | //SummonedEntityRenderRegistry.register(); 33 | SummonedEntityRenderRegistryFabric.register(); 34 | SummonedEntityAttributeRegistryFabric.register(); 35 | 36 | // Optional Resource Pack 37 | FabricLoader.getInstance().getModContainer(ModConstants.MOD_ID).ifPresent( 38 | McdarClientFabric::loadOptionalResourcePack); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/config/item_sections/SummoningArtifactStats.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.config.item_sections; 2 | 3 | import dev.timefall.mcdar.config.artifact_types.ArtifactStats; 4 | import me.fzzyhmstrs.fzzy_config.config.ConfigSection; 5 | import net.minecraft.util.Identifier; 6 | 7 | import java.util.Set; 8 | 9 | public class SummoningArtifactStats extends ConfigSection { 10 | 11 | public SummoningArtifactStats() { 12 | super(); 13 | this.BUZZY_NEST_STATS = new ArtifactStats( 14 | true, 15 | true, 16 | 8, 17 | 600, 18 | 2, 19 | 1 20 | ); 21 | this.ENCHANTED_GRASS_STATS = new ArtifactStats( 22 | true, 23 | true, 24 | 8, 25 | 600, 26 | 2, 27 | 1 28 | ); 29 | this.GOLEM_KIT_STATS = new ArtifactStats( 30 | true, 31 | true, 32 | 8, 33 | 600, 34 | 2, 35 | 1 36 | ); 37 | this.TASTY_BONE_STATS = new ArtifactStats( 38 | true, 39 | true, 40 | 8, 41 | 600, 42 | 2, 43 | 1 44 | ); 45 | this.WONDERFUL_WHEAT_STATS = new ArtifactStats( 46 | true, 47 | true, 48 | 8, 49 | 600, 50 | 2, 51 | 1 52 | ); 53 | } 54 | 55 | public ArtifactStats BUZZY_NEST_STATS; 56 | public ArtifactStats ENCHANTED_GRASS_STATS; 57 | public ArtifactStats GOLEM_KIT_STATS; 58 | public ArtifactStats TASTY_BONE_STATS; 59 | public ArtifactStats WONDERFUL_WHEAT_STATS; 60 | } 61 | -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/models/item/vexing_chant.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "texture_size": [32, 32], 4 | "textures": { 5 | "1": "mcdar:item/vexing_chant" 6 | }, 7 | "elements": [ 8 | { 9 | "from": [0, 0, 8], 10 | "to": [16, 22, 8], 11 | "rotation": {"angle": 0, "axis": "y", "origin": [-3, 0, 8]}, 12 | "faces": { 13 | "north": {"uv": [4, 5, 12, 16], "texture": "#1"}, 14 | "east": {"uv": [1.45455, 0, 1.45455, 11], "texture": "#1"}, 15 | "south": {"uv": [12, 5, 4, 16], "texture": "#1"}, 16 | "west": {"uv": [1.45455, 0, 1.45455, 11], "texture": "#1"}, 17 | "up": {"uv": [1.45455, 0, 15.95455, 0], "texture": "#1"}, 18 | "down": {"uv": [1.45455, 0, 15.95455, 0], "texture": "#1"} 19 | } 20 | } 21 | ], 22 | "display": { 23 | "thirdperson_righthand": { 24 | "rotation": [0.47, -1.86, -0.57], 25 | "translation": [0, 2.75, 0.25], 26 | "scale": [0.42773, 0.42773, 0.42773] 27 | }, 28 | "thirdperson_lefthand": { 29 | "rotation": [0.47, -1.86, -0.57], 30 | "translation": [0, 2.75, 0.25], 31 | "scale": [0.42773, 0.42773, 0.42773] 32 | }, 33 | "firstperson_righthand": { 34 | "rotation": [-26.3, -56.55, -18.07], 35 | "translation": [1.5, 1.5, -0.25], 36 | "scale": [0.41211, 0.41211, 0.41211] 37 | }, 38 | "firstperson_lefthand": { 39 | "rotation": [-26.3, -56.55, -18.07], 40 | "translation": [1.5, 1.5, -0.25], 41 | "scale": [0.41211, 0.41211, 0.41211] 42 | }, 43 | "ground": { 44 | "rotation": [31.36, -11.72, 44.32], 45 | "translation": [0, 2.75, 0], 46 | "scale": [0.25586, 0.25586, 0.25586] 47 | }, 48 | "gui": { 49 | "rotation": [-25.51, 28.53, 8.83], 50 | "translation": [0, -2, 0], 51 | "scale": [0.73047, 0.73047, 0.73047] 52 | }, 53 | "head": { 54 | "translation": [0, -19, -4] 55 | } 56 | } 57 | } -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/models/item/death_cap_mushroom.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "textures": { 4 | "layer0": "mcdar:item/death_cap_mushroom" 5 | }, 6 | "elements": [ 7 | { 8 | "name": "stem", 9 | "from": [6, 0, 6], 10 | "to": [10, 6, 10], 11 | "faces": { 12 | "north": {"uv": [6, 9, 10, 15], "texture": "#layer0"}, 13 | "east": {"uv": [6, 9, 10, 15], "texture": "#layer0"}, 14 | "south": {"uv": [6, 9, 10, 15], "texture": "#layer0"}, 15 | "west": {"uv": [6, 9, 10, 15], "texture": "#layer0"}, 16 | "up": {"uv": [0, 0, 1, 1], "texture": "#layer0"}, 17 | "down": {"uv": [6, 11, 10, 15], "texture": "#layer0"} 18 | } 19 | }, 20 | { 21 | "name": "cap", 22 | "from": [2, 6, 2], 23 | "to": [14, 14, 14], 24 | "faces": { 25 | "north": {"uv": [2, 1, 14, 9], "texture": "#layer0"}, 26 | "east": {"uv": [2, 1, 14, 9], "texture": "#layer0"}, 27 | "south": {"uv": [2, 1, 14, 9], "texture": "#layer0"}, 28 | "west": {"uv": [2, 1, 14, 9], "texture": "#layer0"}, 29 | "up": {"uv": [2, 1, 11, 9], "texture": "#layer0"}, 30 | "down": {"uv": [4, 7, 5, 8], "texture": "#layer0"} 31 | } 32 | } 33 | ], 34 | "gui_light": "front", 35 | "display": { 36 | "thirdperson_righthand": { 37 | "rotation": [0, 90, 0], 38 | "translation": [0, 2.25, 1], 39 | "scale": [0.3, 0.3, 0.3] 40 | }, 41 | "thirdperson_lefthand": { 42 | "rotation": [0, 90, 0], 43 | "translation": [0, 2.25, 1], 44 | "scale": [0.3, 0.3, 0.3] 45 | }, 46 | "firstperson_righthand": { 47 | "rotation": [0, -90, 0], 48 | "scale": [0.5, 0.5, 0.5] 49 | }, 50 | "firstperson_lefthand": { 51 | "rotation": [0, 90, 0], 52 | "scale": [0.5, 0.5, 0.5] 53 | }, 54 | "ground": { 55 | "scale": [0.5, 0.5, 0.5] 56 | }, 57 | "gui": { 58 | "translation": [0, 0.75, 0] 59 | } 60 | } 61 | } -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.yml: -------------------------------------------------------------------------------- 1 | name: Bug Report 2 | description: Create a report to help us improve 3 | title: "[Bug Report]: " 4 | labels: 5 | - Maybe a bug? Maybe not? 6 | assignees: 7 | - chronosacaria 8 | - Kluzzio 9 | body: 10 | - type: textarea 11 | attributes: 12 | label: Describe the bug; What happened? 13 | description: A clear and concise description of what the problem is. 14 | placeholder: Go to [...], click on [...], scroll down to [...]. See error 15 | validations: 16 | required: true 17 | - type: textarea 18 | attributes: 19 | label: Expected Behavior 20 | description: A clear and concise description of what should happen. 21 | placeholder: Instead of what is happening, it should be [...] 22 | validations: 23 | required: true 24 | - type: input 25 | id: version 26 | attributes: 27 | label: Mod Version 28 | description: Which version are you using? 29 | placeholder: 0.0.0 30 | validations: 31 | required: true 32 | - type: dropdown 33 | attributes: 34 | label: Minecraft Launcher 35 | options: 36 | - Vanilla 37 | - MultiMC 38 | - CurseForge 39 | - GDLauncher 40 | - Other 41 | validations: 42 | required: true 43 | - type: dropdown 44 | attributes: 45 | label: Operating System 46 | options: 47 | - Windows 48 | - MacOS 49 | - Linux 50 | - Other 51 | validations: 52 | required: true 53 | - type: input 54 | id: modpack 55 | attributes: 56 | label: Modpack 57 | description: What Modpack are you using? 58 | placeholder: Medieval MC [FABRIC] 1.19.2 v5.5 59 | - type: textarea 60 | attributes: 61 | label: Additional context 62 | description: Add any other context or screenshots about the feature request here. -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/registry/StatusEffectRegistry.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.registry; 2 | 3 | import dev.timefall.mcdar.ModConstants; 4 | import dev.timefall.mcdar.statuseffect.CharmedStatusEffect; 5 | import dev.timefall.mcdar.statuseffect.ShieldingStatusEffect; 6 | import dev.timefall.mcdar.statuseffect.SoulProtectionStatusEffect; 7 | import dev.timefall.mcdar.statuseffect.StunnedStatusEffect; 8 | import me.fzzyhmstrs.fzzy_config.api.ConfigApiJava; 9 | import me.fzzyhmstrs.fzzy_config.util.platform.Registrar; 10 | import me.fzzyhmstrs.fzzy_config.util.platform.RegistrySupplier; 11 | import net.minecraft.entity.effect.StatusEffect; 12 | import net.minecraft.entity.effect.StatusEffectCategory; 13 | import net.minecraft.registry.Registries; 14 | 15 | public class StatusEffectRegistry { 16 | 17 | private static final Registrar STATUS_EFFECT = ConfigApiJava.platform().createRegistrar(ModConstants.MOD_ID, Registries.STATUS_EFFECT); 18 | 19 | public static RegistrySupplier CHARMED = registerStatus("charmed", new CharmedStatusEffect(StatusEffectCategory.HARMFUL, 0xC7005B)); 20 | public static RegistrySupplier SHIELDING = registerStatus("shielding", new ShieldingStatusEffect(StatusEffectCategory.BENEFICIAL, 0x808080)); 21 | public static RegistrySupplier SOUL_PROTECTION = registerStatus("soul_protection", new SoulProtectionStatusEffect(StatusEffectCategory.BENEFICIAL, 0x2552a5)); 22 | public static RegistrySupplier STUNNED = registerStatus("stunned", new StunnedStatusEffect(StatusEffectCategory.HARMFUL, 0xFFFF00)); 23 | 24 | protected static RegistrySupplier registerStatus(String id, StatusEffect statusEffect) { 25 | return STATUS_EFFECT.register(id, () -> statusEffect); 26 | } 27 | 28 | public static void register() {} 29 | } 30 | -------------------------------------------------------------------------------- /neoforge/src/main/java/dev/timefall/mcdar/client/registry/SummonedEntityRenderRegistryNeoForge.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.client.registry; 2 | 3 | import dev.timefall.mcdar.entity.renderers.*; 4 | import dev.timefall.mcdar.registry.SummonedEntityRegistry; 5 | import net.minecraft.client.render.entity.BeeEntityRenderer; 6 | import net.minecraft.client.render.entity.IronGolemEntityRenderer; 7 | import net.minecraft.client.render.entity.LlamaEntityRenderer; 8 | import net.minecraft.client.render.entity.WolfEntityRenderer; 9 | import net.minecraft.client.render.entity.model.EntityModelLayers; 10 | import net.minecraft.util.DyeColor; 11 | import net.neoforged.neoforge.client.event.EntityRenderersEvent; 12 | 13 | public class SummonedEntityRenderRegistryNeoForge { 14 | 15 | public static void register(EntityRenderersEvent.RegisterRenderers event) { 16 | event.registerEntityRenderer(SummonedEntityRegistry.BUZZY_NEST_BEE_ENTITY.get(), BeeEntityRenderer::new); 17 | event.registerEntityRenderer(SummonedEntityRegistry.ENCHANTED_GRASS_BLUE_SHEEP_ENTITY.get(), context -> new EnchantedGrassSheepRenderer(context, DyeColor.BLUE)); 18 | event.registerEntityRenderer(SummonedEntityRegistry.ENCHANTED_GRASS_GREEN_SHEEP_ENTITY.get(), context -> new EnchantedGrassSheepRenderer(context, DyeColor.GREEN)); 19 | event.registerEntityRenderer(SummonedEntityRegistry.ENCHANTED_GRASS_RED_SHEEP_ENTITY.get(), context -> new EnchantedGrassSheepRenderer(context, DyeColor.RED)); 20 | event.registerEntityRenderer(SummonedEntityRegistry.GOLEM_KIT_GOLEM_ENTITY.get(), IronGolemEntityRenderer::new); 21 | event.registerEntityRenderer(SummonedEntityRegistry.TASTY_BONE_WOLF_ENTITY.get(), WolfEntityRenderer::new); 22 | event.registerEntityRenderer(SummonedEntityRegistry.WONDERFUL_WHEAT_LLAMA_ENTITY.get(), context -> new LlamaEntityRenderer(context, EntityModelLayers.TRADER_LLAMA)); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/artifacts/UpdraftTomeItem.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.artifacts; 2 | 3 | import dev.timefall.mcdar.api.CleanlinessHelper; 4 | import dev.timefall.mcdar.artifacts.artifact_types.ArtifactDamagingItem; 5 | import dev.timefall.mcdar.config.McdarArtifactsStatsConfig; 6 | import dev.timefall.mcdar.effect.ArtifactEffects; 7 | import dev.timefall.mcdar.effect.EnchantmentEffects; 8 | import net.minecraft.entity.EquipmentSlot; 9 | import net.minecraft.entity.player.PlayerEntity; 10 | import net.minecraft.item.ItemStack; 11 | import net.minecraft.item.tooltip.TooltipType; 12 | import net.minecraft.text.Text; 13 | import net.minecraft.util.ActionResult; 14 | import net.minecraft.util.Hand; 15 | import net.minecraft.util.TypedActionResult; 16 | import net.minecraft.world.World; 17 | 18 | import java.util.List; 19 | 20 | 21 | public class UpdraftTomeItem extends ArtifactDamagingItem { 22 | public UpdraftTomeItem() { 23 | super(McdarArtifactsStatsConfig.CONFIG.mcdar$getDamagingArtifactStats().UPDRAFT_TOME_STATS); 24 | } 25 | 26 | public TypedActionResult use (World world, PlayerEntity user, Hand hand){ 27 | ItemStack itemStack = user.getStackInHand(hand); 28 | int maxCooldownEnchantmentTime = McdarArtifactsStatsConfig.CONFIG.mcdar$getDamagingArtifactStats().UPDRAFT_TOME_STATS.mcdar$getMaxCooldownEnchantmentTime(); 29 | int modifiedCooldownEnchantmentTime = EnchantmentEffects.cooldownEffect(maxCooldownEnchantmentTime, user, world); 30 | 31 | ArtifactEffects.mcdar$updraftNearbyEnemies(user); 32 | return CleanlinessHelper.mcdar$useAndDamageArtifact(user, hand, itemStack, modifiedCooldownEnchantmentTime); 33 | 34 | } 35 | 36 | @Override 37 | public void appendTooltip(ItemStack stack, TooltipContext tooltipContext, List tooltip, TooltipType type){ 38 | CleanlinessHelper.createLoreTTips(stack, tooltip); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/config/item_sections/AgilityArtifactStats.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.config.item_sections; 2 | 3 | import dev.timefall.mcdar.config.artifact_types.StatusGrantingArtifactStats; 4 | import me.fzzyhmstrs.fzzy_config.config.ConfigSection; 5 | 6 | public class AgilityArtifactStats extends ConfigSection { 7 | 8 | public AgilityArtifactStats() { 9 | super(); 10 | this.BOOTS_OF_SWIFTNESS_STATS = new StatusGrantingArtifactStats( 11 | 40, 12 | 2, 13 | true, 14 | true, 15 | 64, 16 | 100, 17 | 2, 18 | 1 19 | ); 20 | this.DEATH_CAP_MUSHROOM_STATS = new StatusGrantingArtifactStats( 21 | 180, 22 | 3, 23 | 1, 24 | true, 25 | true, 26 | 64, 27 | 600, 28 | 2, 29 | 1 30 | ); 31 | this.GHOST_CLOAK_STATS = new StatusGrantingArtifactStats( 32 | 60, 33 | 0, 34 | 3, 35 | 0, 36 | true, 37 | true, 38 | 64, 39 | 120, 40 | 2, 41 | 1 42 | ); 43 | this.LIGHT_FEATHER_STATS = new StatusGrantingArtifactStats( 44 | 60, 45 | 0, 46 | 0, 47 | 4, 48 | true, 49 | true, 50 | 64, 51 | 120, 52 | 2, 53 | 1 54 | ); 55 | } 56 | 57 | public StatusGrantingArtifactStats BOOTS_OF_SWIFTNESS_STATS; 58 | public StatusGrantingArtifactStats DEATH_CAP_MUSHROOM_STATS; 59 | public StatusGrantingArtifactStats GHOST_CLOAK_STATS; 60 | public StatusGrantingArtifactStats LIGHT_FEATHER_STATS; 61 | } 62 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/artifacts/EnchantersTomeItem.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.artifacts; 2 | 3 | import dev.timefall.mcdar.api.CleanlinessHelper; 4 | import dev.timefall.mcdar.artifacts.artifact_types.ArtifactDefensiveItem; 5 | import dev.timefall.mcdar.config.McdarArtifactsStatsConfig; 6 | import dev.timefall.mcdar.effect.ArtifactEffects; 7 | import dev.timefall.mcdar.effect.EnchantmentEffects; 8 | import net.minecraft.entity.EquipmentSlot; 9 | import net.minecraft.entity.player.PlayerEntity; 10 | import net.minecraft.item.ItemStack; 11 | import net.minecraft.item.tooltip.TooltipType; 12 | import net.minecraft.text.Text; 13 | import net.minecraft.util.ActionResult; 14 | import net.minecraft.util.Hand; 15 | import net.minecraft.util.TypedActionResult; 16 | import net.minecraft.world.World; 17 | 18 | import java.util.List; 19 | 20 | public class EnchantersTomeItem extends ArtifactDefensiveItem { 21 | public EnchantersTomeItem() { 22 | super(McdarArtifactsStatsConfig.CONFIG.mcdar$getDefensiveArtifactStats().ENCHANTERS_TOME_STATS); 23 | } 24 | 25 | public TypedActionResult use (World world, PlayerEntity user, Hand hand) { 26 | ItemStack itemStack = user.getStackInHand(hand); 27 | 28 | int maxCooldownEnchantmentTime = McdarArtifactsStatsConfig.CONFIG.mcdar$getDefensiveArtifactStats().ENCHANTERS_TOME_STATS.mcdar$getMaxCooldownEnchantmentTime(); 29 | int modifiedCooldownEnchantmentTime = EnchantmentEffects.cooldownEffect(maxCooldownEnchantmentTime, user, world); 30 | 31 | ArtifactEffects.mcdar$enchantersTomeEffects(user); 32 | 33 | return CleanlinessHelper.mcdar$useAndDamageArtifact(user, hand, itemStack, modifiedCooldownEnchantmentTime); 34 | } 35 | 36 | @Override 37 | public void appendTooltip(ItemStack stack, TooltipContext tooltipContext, List tooltip, TooltipType type) { 38 | CleanlinessHelper.createLoreTTips(stack, tooltip); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/artifacts/FlamingQuiverItem.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.artifacts; 2 | 3 | import dev.timefall.mcdar.api.CleanlinessHelper; 4 | import dev.timefall.mcdar.artifacts.artifact_types.ArtifactQuiverItem; 5 | import dev.timefall.mcdar.config.McdarArtifactsStatsConfig; 6 | import dev.timefall.mcdar.effect.EnchantmentEffects; 7 | import net.minecraft.entity.player.PlayerEntity; 8 | import net.minecraft.item.ItemStack; 9 | import net.minecraft.item.tooltip.TooltipType; 10 | import net.minecraft.text.Text; 11 | import net.minecraft.util.Hand; 12 | import net.minecraft.util.TypedActionResult; 13 | import net.minecraft.world.World; 14 | 15 | import java.util.List; 16 | 17 | public class FlamingQuiverItem extends ArtifactQuiverItem { 18 | public FlamingQuiverItem() { 19 | super(McdarArtifactsStatsConfig.CONFIG.mcdar$getQuiverArtifactStats().FLAMING_QUIVER_STATS); 20 | } 21 | 22 | public TypedActionResult use (World world, PlayerEntity user, Hand hand){ 23 | int maxCooldownEnchantmentTime = McdarArtifactsStatsConfig.CONFIG.mcdar$getQuiverArtifactStats().FLAMING_QUIVER_STATS.mcdar$getMaxCooldownEnchantmentTime(); 24 | int modifiedCooldownEnchantmentTime = EnchantmentEffects.cooldownEffectForQuivers(maxCooldownEnchantmentTime, user, world); 25 | 26 | return CleanlinessHelper.mcdar$cleanUseWithOptionalStatus( 27 | user, 28 | hand, 29 | this, 30 | modifiedCooldownEnchantmentTime, 31 | null, 32 | null, 33 | null, 34 | null, 35 | null, 36 | null, 37 | null, 38 | null, 39 | null); 40 | } 41 | 42 | @Override 43 | public void appendTooltip(ItemStack stack, TooltipContext tooltipContext, List tooltip, TooltipType type){ 44 | CleanlinessHelper.createLoreTTips(stack, tooltip); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/artifacts/HarpoonQuiverItem.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.artifacts; 2 | 3 | import dev.timefall.mcdar.api.CleanlinessHelper; 4 | import dev.timefall.mcdar.artifacts.artifact_types.ArtifactQuiverItem; 5 | import dev.timefall.mcdar.config.McdarArtifactsStatsConfig; 6 | import dev.timefall.mcdar.effect.EnchantmentEffects; 7 | import net.minecraft.entity.player.PlayerEntity; 8 | import net.minecraft.item.ItemStack; 9 | import net.minecraft.item.tooltip.TooltipType; 10 | import net.minecraft.text.Text; 11 | import net.minecraft.util.Hand; 12 | import net.minecraft.util.TypedActionResult; 13 | import net.minecraft.world.World; 14 | 15 | import java.util.List; 16 | 17 | public class HarpoonQuiverItem extends ArtifactQuiverItem { 18 | public HarpoonQuiverItem() { 19 | super(McdarArtifactsStatsConfig.CONFIG.mcdar$getQuiverArtifactStats().HARPOON_QUIVER_STATS); 20 | } 21 | 22 | public TypedActionResult use(World world, PlayerEntity user, Hand hand){ 23 | int maxCooldownEnchantmentTime = McdarArtifactsStatsConfig.CONFIG.mcdar$getQuiverArtifactStats().HARPOON_QUIVER_STATS.mcdar$getMaxCooldownEnchantmentTime(); 24 | int modifiedCooldownEnchantmentTime = EnchantmentEffects.cooldownEffect(maxCooldownEnchantmentTime, user, world); 25 | 26 | return CleanlinessHelper.mcdar$cleanUseWithOptionalStatus( 27 | user, 28 | hand, 29 | this, 30 | modifiedCooldownEnchantmentTime, 31 | null, 32 | null, 33 | null, 34 | null, 35 | null, 36 | null, 37 | null, 38 | null, 39 | null 40 | ); 41 | } 42 | 43 | @Override 44 | public void appendTooltip(ItemStack stack, TooltipContext tooltipContext, List tooltip, TooltipType type){ 45 | CleanlinessHelper.createLoreTTips(stack, tooltip); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/artifacts/PowershakerItem.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.artifacts; 2 | 3 | import dev.timefall.mcdar.api.CleanlinessHelper; 4 | import dev.timefall.mcdar.artifacts.artifact_types.ArtifactDamagingItem; 5 | import dev.timefall.mcdar.config.McdarArtifactsStatsConfig; 6 | import dev.timefall.mcdar.effect.EnchantmentEffects; 7 | import net.minecraft.entity.player.PlayerEntity; 8 | import net.minecraft.item.ItemStack; 9 | import net.minecraft.item.tooltip.TooltipType; 10 | import net.minecraft.text.Text; 11 | import net.minecraft.util.Hand; 12 | import net.minecraft.util.TypedActionResult; 13 | import net.minecraft.world.World; 14 | 15 | import java.util.List; 16 | 17 | public class PowershakerItem extends ArtifactDamagingItem { 18 | public PowershakerItem() { 19 | super(McdarArtifactsStatsConfig.CONFIG.mcdar$getDamagingArtifactStats().POWERSHAKER_STATS); 20 | } 21 | 22 | public TypedActionResult use (World world, PlayerEntity user, Hand hand) { 23 | int maxCooldownEnchantmentTime = McdarArtifactsStatsConfig.CONFIG.mcdar$getDamagingArtifactStats().POWERSHAKER_STATS.mcdar$getMaxCooldownEnchantmentTime(); 24 | int modifiedCooldownEnchantmentTime = EnchantmentEffects.cooldownEffect(maxCooldownEnchantmentTime, user, world); 25 | 26 | return CleanlinessHelper.mcdar$cleanUseWithOptionalStatus( 27 | user, 28 | hand, 29 | this, 30 | modifiedCooldownEnchantmentTime, 31 | null, 32 | null, 33 | null, 34 | null, 35 | null, 36 | null, 37 | null, 38 | null, 39 | null 40 | ); 41 | } 42 | 43 | @Override 44 | public void appendTooltip(ItemStack stack, TooltipContext tooltipContext, List tooltip, TooltipType type) { 45 | CleanlinessHelper.createLoreTTips(stack, tooltip); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /fabric/src/main/java/dev/timefall/mcdar/client/registry/SummonedEntityRenderRegistryFabric.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.client.registry; 2 | 3 | import dev.timefall.mcdar.entity.renderers.*; 4 | import dev.timefall.mcdar.registry.SummonedEntityRegistry; 5 | import net.fabricmc.api.EnvType; 6 | import net.fabricmc.api.Environment; 7 | import net.fabricmc.fabric.api.client.rendering.v1.EntityRendererRegistry; 8 | import net.minecraft.client.render.entity.BeeEntityRenderer; 9 | import net.minecraft.client.render.entity.IronGolemEntityRenderer; 10 | import net.minecraft.client.render.entity.LlamaEntityRenderer; 11 | import net.minecraft.client.render.entity.WolfEntityRenderer; 12 | import net.minecraft.client.render.entity.model.EntityModelLayers; 13 | import net.minecraft.util.DyeColor; 14 | 15 | @Environment(EnvType.CLIENT) 16 | public class SummonedEntityRenderRegistryFabric { 17 | public static void register() { 18 | 19 | EntityRendererRegistry.register(SummonedEntityRegistry.BUZZY_NEST_BEE_ENTITY.get(), BeeEntityRenderer::new); 20 | EntityRendererRegistry.register(SummonedEntityRegistry.ENCHANTED_GRASS_BLUE_SHEEP_ENTITY.get(), context -> new EnchantedGrassSheepRenderer(context, DyeColor.BLUE)); 21 | EntityRendererRegistry.register(SummonedEntityRegistry.ENCHANTED_GRASS_GREEN_SHEEP_ENTITY.get(), context -> new EnchantedGrassSheepRenderer(context,DyeColor.GREEN)); 22 | EntityRendererRegistry.register(SummonedEntityRegistry.ENCHANTED_GRASS_RED_SHEEP_ENTITY.get(), context -> new EnchantedGrassSheepRenderer(context, DyeColor.RED)); 23 | EntityRendererRegistry.register(SummonedEntityRegistry.GOLEM_KIT_GOLEM_ENTITY.get(), IronGolemEntityRenderer::new); 24 | EntityRendererRegistry.register(SummonedEntityRegistry.TASTY_BONE_WOLF_ENTITY.get(), WolfEntityRenderer::new); 25 | EntityRendererRegistry.register(SummonedEntityRegistry.WONDERFUL_WHEAT_LLAMA_ENTITY.get(), context -> new LlamaEntityRenderer(context, EntityModelLayers.TRADER_LLAMA)); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/artifacts/ThunderingQuiverItem.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.artifacts; 2 | 3 | import dev.timefall.mcdar.api.CleanlinessHelper; 4 | import dev.timefall.mcdar.artifacts.artifact_types.ArtifactQuiverItem; 5 | import dev.timefall.mcdar.config.McdarArtifactsStatsConfig; 6 | import dev.timefall.mcdar.effect.EnchantmentEffects; 7 | import net.minecraft.entity.player.PlayerEntity; 8 | import net.minecraft.item.ItemStack; 9 | import net.minecraft.item.tooltip.TooltipType; 10 | import net.minecraft.text.Text; 11 | import net.minecraft.util.Hand; 12 | import net.minecraft.util.TypedActionResult; 13 | import net.minecraft.world.World; 14 | 15 | import java.util.List; 16 | 17 | public class ThunderingQuiverItem extends ArtifactQuiverItem { 18 | public ThunderingQuiverItem() { 19 | super(McdarArtifactsStatsConfig.CONFIG.mcdar$getQuiverArtifactStats().THUNDERING_QUIVER_STATS); 20 | } 21 | 22 | public TypedActionResult use (World world, PlayerEntity user, Hand hand){ 23 | int maxCooldownEnchantmentTime = McdarArtifactsStatsConfig.CONFIG.mcdar$getQuiverArtifactStats().THUNDERING_QUIVER_STATS.mcdar$getMaxCooldownEnchantmentTime(); 24 | int modifiedCooldownEnchantmentTime = EnchantmentEffects.cooldownEffectForQuivers(maxCooldownEnchantmentTime, user, world); 25 | 26 | return CleanlinessHelper.mcdar$cleanUseWithOptionalStatus( 27 | user, 28 | hand, 29 | this, 30 | modifiedCooldownEnchantmentTime, 31 | null, 32 | null, 33 | null, 34 | null, 35 | null, 36 | null, 37 | null, 38 | null, 39 | null 40 | ); 41 | } 42 | 43 | @Override 44 | public void appendTooltip(ItemStack stack, TooltipContext tooltipContext, List tooltip, TooltipType type){ 45 | CleanlinessHelper.createLoreTTips(stack, tooltip); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /common/src/main/resources/resourcepacks/2dmcdar/assets/mcdar/models/item/buzzy_nest.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "textures": { 4 | "0": "block/bee_nest_side", 5 | "1": "block/bee_nest_top", 6 | "2": "block/bee_nest_bottom", 7 | "4": "block/bee_nest_front_honey", 8 | "5": "mcdar:item/beenest_stem", 9 | "particle": "block/bee_nest_side" 10 | }, 11 | "elements": [ 12 | { 13 | "from": [0, 8, 0], 14 | "to": [16, 24, 16], 15 | "faces": { 16 | "north": {"uv": [0, 0, 16, 16], "texture": "#4"}, 17 | "east": {"uv": [0, 0, 16, 16], "texture": "#0"}, 18 | "south": {"uv": [0, 0, 16, 16], "texture": "#0"}, 19 | "west": {"uv": [0, 0, 16, 16], "texture": "#0"}, 20 | "up": {"uv": [0, 0, 16, 16], "texture": "#1"}, 21 | "down": {"uv": [0, 0, 16, 16], "texture": "#2"} 22 | } 23 | }, 24 | { 25 | "from": [6.5, 0, 6.5], 26 | "to": [9.5, 8, 9.5], 27 | "faces": { 28 | "north": {"uv": [6, 4, 9, 12], "texture": "#5"}, 29 | "east": {"uv": [6, 4, 9, 12], "rotation": 270, "texture": "#5"}, 30 | "south": {"uv": [6, 4, 9, 12], "rotation": 180, "texture": "#5"}, 31 | "west": {"uv": [6, 4, 9, 12], "rotation": 90, "texture": "#5"}, 32 | "up": {"uv": [6, 12, 9, 15], "texture": "#5"}, 33 | "down": {"uv": [6, 12, 9, 15], "texture": "#5"} 34 | } 35 | } 36 | ], 37 | "gui_light": "front", 38 | "display": { 39 | "thirdperson_righthand": { 40 | "translation": [-0.5, 2.75, 1], 41 | "scale": [0.5, 0.5, 0.5] 42 | }, 43 | "thirdperson_lefthand": { 44 | "translation": [-0.5, 2.75, 1], 45 | "scale": [0.5, 0.5, 0.5] 46 | }, 47 | "firstperson_righthand": { 48 | "scale": [0.5, 0.5, 0.5] 49 | }, 50 | "firstperson_lefthand": { 51 | "scale": [0.5, 0.5, 0.5] 52 | }, 53 | "ground": { 54 | "scale": [0.5, 0.5, 0.5] 55 | }, 56 | "gui": { 57 | "rotation": [0, -180, 0], 58 | "translation": [0.25, -2.25, 0], 59 | "scale": [0.5, 0.5, 0.5] 60 | }, 61 | "fixed": { 62 | "translation": [0, -3.25, 0], 63 | "scale": [0.75, 0.75, 0.75] 64 | } 65 | } 66 | } -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/config/artifact_types/StatusCloudCreatingArtifactStats.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.config.artifact_types; 2 | 3 | import me.fzzyhmstrs.fzzy_config.annotations.IgnoreVisibility; 4 | import me.fzzyhmstrs.fzzy_config.annotations.Translation; 5 | import me.fzzyhmstrs.fzzy_config.util.Walkable; 6 | 7 | @IgnoreVisibility 8 | public class StatusCloudCreatingArtifactStats extends ArtifactStats { 9 | 10 | @Translation(prefix = "mcdar.mcdar_artifacts_stats_config.artifact_stats.damage.status_cloud_creating") 11 | float cloudRadius; 12 | 13 | @Translation(prefix = "mcdar.mcdar_artifacts_stats_config.artifact_stats.damage.status_cloud_creating") 14 | int cloudDuration; 15 | 16 | @Translation(prefix = "mcdar.mcdar_artifacts_stats_config.artifact_stats.damage.status_cloud_creating") 17 | int effectDuration; 18 | 19 | @Translation(prefix = "mcdar.mcdar_artifacts_stats_config.artifact_stats.damage.status_cloud_creating") 20 | int amplifier; 21 | 22 | 23 | public float mcdar$getCloudRadius() { 24 | return cloudRadius; 25 | } 26 | 27 | public int mcdar$getCloudDuration() { 28 | return cloudDuration; 29 | } 30 | 31 | public int mcdar$getEffectDuration() { 32 | return effectDuration; 33 | } 34 | 35 | public int mcdar$getAmplifier() { 36 | return amplifier; 37 | } 38 | 39 | 40 | 41 | public StatusCloudCreatingArtifactStats(float cloudRadius, int cloudDuration, int effectDuration, int amplifier, boolean isEnabled, boolean isSpawnableInLoot, int durability, int maxCooldownEnchantmentTime, int generalSpawnWeight, int dungeonSpawnWeight) { 42 | super(isEnabled, isSpawnableInLoot, durability, maxCooldownEnchantmentTime, generalSpawnWeight, dungeonSpawnWeight); 43 | this.cloudRadius = cloudRadius; 44 | this.cloudDuration = cloudDuration; 45 | this.effectDuration = effectDuration; 46 | this.amplifier = amplifier; 47 | } 48 | 49 | public StatusCloudCreatingArtifactStats() { 50 | super(); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/models/item/enchanted_grass.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "textures": { 4 | "0": "mcdar:item/enchanted_grass", 5 | "particle": "mcdar:item/enchanted_grass" 6 | }, 7 | "elements": [ 8 | { 9 | "from": [0, 0, 8], 10 | "to": [16, 16, 8], 11 | "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 8]}, 12 | "faces": { 13 | "north": {"uv": [0, 0, 16, 16], "texture": "#0"}, 14 | "east": {"uv": [0, 0, 0, 16], "texture": "#0"}, 15 | "south": {"uv": [16, 0, 0, 16], "texture": "#0"}, 16 | "west": {"uv": [0, 0, 0, 16], "texture": "#0"}, 17 | "up": {"uv": [0, 0, 16, 0], "texture": "#0"}, 18 | "down": {"uv": [0, 0, 16, 0], "texture": "#0"} 19 | } 20 | }, 21 | { 22 | "from": [8, 0, 0], 23 | "to": [8, 16, 16], 24 | "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, 25 | "faces": { 26 | "north": {"uv": [0, 0, 16, 16], "texture": "#0"}, 27 | "east": {"uv": [0, 0, 16, 16], "texture": "#0"}, 28 | "south": {"uv": [0, 0, 16, 16], "texture": "#0"}, 29 | "west": {"uv": [16, 0, 0, 16], "texture": "#0"}, 30 | "up": {"uv": [0, 0, 16, 16], "texture": "#0"}, 31 | "down": {"uv": [0, 0, 16, 16], "texture": "#0"} 32 | } 33 | } 34 | ], 35 | "gui_light": "front", 36 | "display": { 37 | "thirdperson_righthand": { 38 | "rotation": [36.25, 45, 0], 39 | "translation": [0, 2.5, 1.5], 40 | "scale": [0.375, 0.375, 0.375] 41 | }, 42 | "thirdperson_lefthand": { 43 | "rotation": [36.25, 45, 0], 44 | "translation": [0, 2.5, 1.5], 45 | "scale": [0.375, 0.375, 0.375] 46 | }, 47 | "firstperson_righthand": { 48 | "rotation": [180, 11.75, -180], 49 | "translation": [1.75, 2.25, 0], 50 | "scale": [0.4, 0.4, 0.4] 51 | }, 52 | "firstperson_lefthand": { 53 | "rotation": [180, 11.75, -180], 54 | "translation": [1.75, 2.25, 0], 55 | "scale": [0.4, 0.4, 0.4] 56 | }, 57 | "ground": { 58 | "translation": [0, 3, 0], 59 | "scale": [0.25, 0.25, 0.25] 60 | }, 61 | "gui": { 62 | "rotation": [24.81, -29.9, 9.3] 63 | }, 64 | "head": { 65 | "rotation": [0, 45, 0], 66 | "translation": [0, 10.5, 0] 67 | } 68 | } 69 | } -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/config/item_sections/DamagingArtifactStats.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.config.item_sections; 2 | 3 | import dev.timefall.mcdar.config.artifact_types.DamageArtifactStats; 4 | import dev.timefall.mcdar.config.artifact_types.ExperienceDrainingArtifactStats; 5 | import me.fzzyhmstrs.fzzy_config.config.ConfigSection; 6 | 7 | public class DamagingArtifactStats extends ConfigSection { 8 | 9 | public DamagingArtifactStats() { 10 | super(); 11 | this.BLAST_FUNGUS_STATS = new DamageArtifactStats( 12 | 5f, 13 | 4f, 14 | true, 15 | true, 16 | 64, 17 | 120, 18 | 2, 19 | 1 20 | ); 21 | this.HARVESTER_STATS = new ExperienceDrainingArtifactStats( 22 | 40, 23 | 3f, 24 | 15f, 25 | true, 26 | true, 27 | 64, 28 | 60, 29 | 2, 30 | 1 31 | ); 32 | this.LIGHTNING_ROD_STATS = new DamageArtifactStats( 33 | 5f, 34 | 5f, 35 | true, 36 | true, 37 | 64, 38 | 40, 39 | 2, 40 | 1 41 | ); 42 | this.POWERSHAKER_STATS = new DamageArtifactStats( 43 | 1f, 44 | 1f, 45 | true, 46 | true, 47 | 64, 48 | 600, 49 | 2, 50 | 1 51 | ); 52 | this.UPDRAFT_TOME_STATS = new DamageArtifactStats( 53 | 1f, 54 | 1f, 55 | true, 56 | true, 57 | 64, 58 | 300, 59 | 2, 60 | 1 61 | ); 62 | } 63 | 64 | public DamageArtifactStats BLAST_FUNGUS_STATS; 65 | public ExperienceDrainingArtifactStats HARVESTER_STATS; 66 | public DamageArtifactStats LIGHTNING_ROD_STATS; 67 | public DamageArtifactStats POWERSHAKER_STATS; 68 | public DamageArtifactStats UPDRAFT_TOME_STATS; 69 | } 70 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/goal/TrackSummonerAttackerGoal.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.goal; 2 | 3 | import net.minecraft.entity.LivingEntity; 4 | import net.minecraft.entity.Tameable; 5 | import net.minecraft.entity.ai.TargetPredicate; 6 | import net.minecraft.entity.ai.goal.TrackTargetGoal; 7 | import net.minecraft.entity.mob.PathAwareEntity; 8 | import net.minecraft.entity.passive.TameableEntity; 9 | import net.minecraft.entity.player.PlayerEntity; 10 | 11 | import java.util.EnumSet; 12 | 13 | public class TrackSummonerAttackerGoal extends TrackTargetGoal { 14 | private final T summonedEntity; 15 | private LivingEntity attacker; 16 | private int lastAttackedTime; 17 | 18 | public TrackSummonerAttackerGoal(T summonedEntity) { 19 | super(summonedEntity, false); 20 | this.summonedEntity = summonedEntity; 21 | this.setControls(EnumSet.of(Control.TARGET)); 22 | } 23 | 24 | @SuppressWarnings("SimplifiableConditionalExpression") // Humans need to read this, IntelliJ... 25 | public boolean canStart() { 26 | if (summonedEntity != null && summonedEntity.getOwner() instanceof PlayerEntity summoner) { 27 | if (summonedEntity instanceof TameableEntity tameableSummonedEntity && tameableSummonedEntity.isSitting()) 28 | return false; 29 | this.attacker = summoner.getAttacker(); 30 | int i = summoner.getLastAttackedTime(); 31 | return i != this.lastAttackedTime 32 | && this.canTrack(this.attacker, TargetPredicate.DEFAULT) 33 | && (summonedEntity instanceof TameableEntity tameableSummonedEntity) 34 | ? tameableSummonedEntity.canAttackWithOwner(this.attacker, summoner) 35 | : true; 36 | } else { 37 | return false; 38 | } 39 | } 40 | 41 | public void start() { 42 | if (summonedEntity != null && summonedEntity.getOwner() instanceof PlayerEntity summoner) { 43 | this.mob.setTarget(this.attacker); 44 | this.lastAttackedTime = summoner.getLastAttackedTime(); 45 | super.start(); 46 | } 47 | } 48 | } -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/models/item/death_cap_mushroom.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "texture_size": [32, 16], 4 | "textures": { 5 | "0": "mcdar:item/death_cap_mushroom", 6 | "particle": "mcdar:item/death_cap_mushroom" 7 | }, 8 | "elements": [ 9 | { 10 | "from": [7, 2, 6], 11 | "to": [10, 8, 9], 12 | "rotation": {"angle": 0, "axis": "y", "origin": [7, 2, 6]}, 13 | "faces": { 14 | "north": {"uv": [3, 10, 4.5, 16], "texture": "#0"}, 15 | "east": {"uv": [1.5, 10, 3, 16], "texture": "#0"}, 16 | "south": {"uv": [3, 10, 4.5, 16], "texture": "#0"}, 17 | "west": {"uv": [0, 10, 1.5, 16], "texture": "#0"}, 18 | "up": {"uv": [6, 10, 7.5, 13], "texture": "#0"}, 19 | "down": {"uv": [6, 10, 7.5, 13], "texture": "#0"} 20 | } 21 | }, 22 | { 23 | "from": [5.5, 6, 4.5], 24 | "to": [11.5, 11, 10.5], 25 | "rotation": {"angle": 0, "axis": "y", "origin": [5.5, 6, 4.5]}, 26 | "faces": { 27 | "north": {"uv": [6, 5, 9, 10], "texture": "#0"}, 28 | "east": {"uv": [3, 5, 6, 10], "texture": "#0"}, 29 | "south": {"uv": [0, 5, 3, 10], "texture": "#0"}, 30 | "west": {"uv": [6, 0, 9, 5], "texture": "#0"}, 31 | "up": {"uv": [0, 0, 3, 5], "texture": "#0"}, 32 | "down": {"uv": [3, 0, 6, 5], "texture": "#0"} 33 | } 34 | } 35 | ], 36 | "gui_light": "front", 37 | "display": { 38 | "thirdperson_righthand": { 39 | "translation": [-0.5, 3, 2], 40 | "scale": [0.85156, 0.85156, 0.85156] 41 | }, 42 | "thirdperson_lefthand": { 43 | "translation": [-0.5, 3, 2], 44 | "scale": [0.85156, 0.85156, 0.85156] 45 | }, 46 | "firstperson_righthand": { 47 | "rotation": [4.75, -11.25, 0], 48 | "translation": [0, 3, 0], 49 | "scale": [0.73438, 0.73438, 0.73438] 50 | }, 51 | "firstperson_lefthand": { 52 | "rotation": [4.75, -11.25, 0], 53 | "translation": [0, 3, 0], 54 | "scale": [0.73438, 0.73438, 0.73438] 55 | }, 56 | "ground": { 57 | "translation": [0, 2, 0], 58 | "scale": [0.5, 0.5, 0.5] 59 | }, 60 | "gui": { 61 | "rotation": [-145.89, 58.44, 170.35], 62 | "translation": [1, 1.25, 0], 63 | "scale": [1.36523, 1.36523, 1.36523] 64 | }, 65 | "head": { 66 | "translation": [0, 6.25, 0] 67 | } 68 | } 69 | } -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/mixin/LivingEntityMixin.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.mixin; 2 | 3 | import dev.timefall.mcdar.effect.EnchantmentEffects; 4 | import dev.timefall.mcdar.registry.StatusEffectRegistry; 5 | import net.minecraft.entity.LivingEntity; 6 | import net.minecraft.entity.Tameable; 7 | import net.minecraft.entity.damage.DamageSource; 8 | import net.minecraft.entity.effect.StatusEffectInstance; 9 | import net.minecraft.entity.effect.StatusEffects; 10 | import net.minecraft.server.world.ServerWorld; 11 | import org.spongepowered.asm.mixin.Mixin; 12 | import org.spongepowered.asm.mixin.injection.At; 13 | import org.spongepowered.asm.mixin.injection.Inject; 14 | import org.spongepowered.asm.mixin.injection.ModifyVariable; 15 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 16 | 17 | @SuppressWarnings("ConstantConditions") 18 | @Mixin(LivingEntity.class) 19 | public class LivingEntityMixin { 20 | 21 | @Inject(method = "tryUseTotem", at = @At("HEAD"), cancellable = true) 22 | public void onSoulProtectionDeath(DamageSource damageSource, CallbackInfoReturnable cir) { 23 | LivingEntity livingEntity = (LivingEntity) (Object) this; 24 | 25 | if (livingEntity.hasStatusEffect(StatusEffectRegistry.SOUL_PROTECTION.getEntry())) { 26 | livingEntity.setHealth(1.0F); 27 | livingEntity.clearStatusEffects(); 28 | livingEntity.addStatusEffect(new StatusEffectInstance(StatusEffects.REGENERATION, 900, 1)); 29 | livingEntity.addStatusEffect(new StatusEffectInstance(StatusEffects.FIRE_RESISTANCE, 900, 1)); 30 | livingEntity.addStatusEffect(new StatusEffectInstance(StatusEffects.ABSORPTION, 100, 1)); 31 | 32 | cir.setReturnValue(true); 33 | } 34 | } 35 | 36 | @ModifyVariable(method = "damage", at = @At(value = "HEAD"), argsOnly = true) 37 | public float mcdar$damageModifiers(float amount, DamageSource source) { 38 | if (source.getSource() instanceof Tameable summonedEntity) { 39 | if (source.getSource().getWorld() instanceof ServerWorld serverWorld) { 40 | amount *= EnchantmentEffects.beastBossDamage(summonedEntity, serverWorld); 41 | } 42 | } 43 | return amount; 44 | } 45 | } -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/models/item/buzzy_nest.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "texture_size": [32, 32], 4 | "textures": { 5 | "0": "mcdar:item/beenest_stem", 6 | "particle": "mcdar:item/beenest_stem" 7 | }, 8 | "elements": [ 9 | { 10 | "from": [0, 11, 0], 11 | "to": [16, 27, 16], 12 | "rotation": {"angle": 0, "axis": "y", "origin": [0, 11, 0]}, 13 | "faces": { 14 | "north": {"uv": [0, 0, 8, 8], "texture": "#0"}, 15 | "east": {"uv": [8, 8, 16, 16], "texture": "#0"}, 16 | "south": {"uv": [8, 8, 16, 16], "texture": "#0"}, 17 | "west": {"uv": [8, 8, 16, 16], "texture": "#0"}, 18 | "up": {"uv": [8, 0, 16, 8], "texture": "#0"}, 19 | "down": {"uv": [16, 0, 8, 8], "texture": "#0"} 20 | } 21 | }, 22 | { 23 | "from": [6.5, 0, 6.25], 24 | "to": [9.5, 11, 9.25], 25 | "rotation": {"angle": 0, "axis": "y", "origin": [6.5, 0, 6.25]}, 26 | "faces": { 27 | "north": {"uv": [3, 10, 4.5, 15.5], "texture": "#0"}, 28 | "east": {"uv": [3, 10, 4.5, 15.5], "texture": "#0"}, 29 | "south": {"uv": [3, 10, 4.5, 15.5], "texture": "#0"}, 30 | "west": {"uv": [3, 10, 4.5, 15.5], "texture": "#0"}, 31 | "up": {"uv": [3, 10, 4.5, 11.5], "texture": "#0"}, 32 | "down": {"uv": [3, 10, 4.5, 11.5], "texture": "#0"} 33 | } 34 | } 35 | ], 36 | "display": { 37 | "thirdperson_righthand": { 38 | "rotation": [0, 45, 0], 39 | "translation": [0, 2.5, 1.5], 40 | "scale": [0.375, 0.375, 0.375] 41 | }, 42 | "thirdperson_lefthand": { 43 | "rotation": [0, 45, 0], 44 | "translation": [0, 2.5, 1.5], 45 | "scale": [0.375, 0.375, 0.375] 46 | }, 47 | "firstperson_righthand": { 48 | "rotation": [-168, 66.25, -180], 49 | "translation": [0, 1.75, 0], 50 | "scale": [0.32188, 0.32188, 0.32188] 51 | }, 52 | "firstperson_lefthand": { 53 | "rotation": [-168, 66.25, -180], 54 | "translation": [0, 1.75, 0], 55 | "scale": [0.32188, 0.32188, 0.32188] 56 | }, 57 | "ground": { 58 | "translation": [0, 3, 0], 59 | "scale": [0.25, 0.25, 0.25] 60 | }, 61 | "gui": { 62 | "rotation": [-170.39, 15.99, 172.52], 63 | "translation": [0.5, -3, 0], 64 | "scale": [0.50391, 0.50391, 0.50391] 65 | }, 66 | "head": { 67 | "translation": [0, -10.75, 0] 68 | }, 69 | "fixed": { 70 | "scale": [0.5, 0.5, 0.5] 71 | } 72 | } 73 | } -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/entity/renderers/WonderfulWheatLlamaDecorFeatureRenderer.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.entity.renderers; 2 | 3 | import dev.timefall.mcdar.entity.WonderfulWheatLlamaEntity; 4 | import net.fabricmc.api.EnvType; 5 | import net.fabricmc.api.Environment; 6 | import net.minecraft.client.render.OverlayTexture; 7 | import net.minecraft.client.render.RenderLayer; 8 | import net.minecraft.client.render.VertexConsumer; 9 | import net.minecraft.client.render.VertexConsumerProvider; 10 | import net.minecraft.client.render.entity.feature.FeatureRenderer; 11 | import net.minecraft.client.render.entity.feature.FeatureRendererContext; 12 | import net.minecraft.client.render.entity.model.EntityModelLayers; 13 | import net.minecraft.client.render.entity.model.EntityModelLoader; 14 | import net.minecraft.client.render.entity.model.LlamaEntityModel; 15 | import net.minecraft.client.util.math.MatrixStack; 16 | import net.minecraft.util.Identifier; 17 | 18 | @Environment(EnvType.CLIENT) 19 | public class WonderfulWheatLlamaDecorFeatureRenderer extends FeatureRenderer> { 20 | private static final Identifier TRADER_LLAMA_DECOR = Identifier.of("textures/entity/llama/decor/trader_llama.png"); 21 | private final LlamaEntityModel model; 22 | 23 | public WonderfulWheatLlamaDecorFeatureRenderer(FeatureRendererContext> context, EntityModelLoader loader) { 24 | super(context); 25 | this.model = new LlamaEntityModel<>(loader.getModelPart(EntityModelLayers.LLAMA_DECOR)); 26 | } 27 | 28 | @Override 29 | public void render(MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, WonderfulWheatLlamaEntity entity, float limbAngle, float limbDistance, float tickDelta, float animationProgress, float headYaw, float headPitch) { 30 | this.getContextModel().copyStateTo(this.model); 31 | this.model.setAngles(entity, limbAngle, limbDistance, animationProgress, headYaw, headPitch); 32 | VertexConsumer vertexConsumer = vertexConsumers.getBuffer(RenderLayer.getEntityCutoutNoCull(TRADER_LLAMA_DECOR)); 33 | this.model.render(matrices, vertexConsumer, light, OverlayTexture.DEFAULT_UV); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/artifacts/BootsOfSwiftnessItem.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.artifacts; 2 | 3 | import dev.timefall.mcdar.api.CleanlinessHelper; 4 | import dev.timefall.mcdar.artifacts.artifact_types.ArtifactAgilityItem; 5 | import dev.timefall.mcdar.config.McdarArtifactsStatsConfig; 6 | import dev.timefall.mcdar.effect.EnchantmentEffects; 7 | import net.minecraft.entity.effect.StatusEffects; 8 | import net.minecraft.entity.player.PlayerEntity; 9 | import net.minecraft.item.ItemStack; 10 | import net.minecraft.item.tooltip.TooltipType; 11 | import net.minecraft.text.Text; 12 | import net.minecraft.util.Hand; 13 | import net.minecraft.util.TypedActionResult; 14 | import net.minecraft.world.World; 15 | 16 | import java.util.List; 17 | 18 | public class BootsOfSwiftnessItem extends ArtifactAgilityItem { 19 | public BootsOfSwiftnessItem() { 20 | super(McdarArtifactsStatsConfig.CONFIG.mcdar$getAgilityArtifactStats().BOOTS_OF_SWIFTNESS_STATS); 21 | } 22 | 23 | public TypedActionResult use(World world, PlayerEntity user, Hand hand){ 24 | int duration = McdarArtifactsStatsConfig.CONFIG.mcdar$getAgilityArtifactStats().BOOTS_OF_SWIFTNESS_STATS.mcdar$getDuration(); 25 | int amplifier = McdarArtifactsStatsConfig.CONFIG.mcdar$getAgilityArtifactStats().BOOTS_OF_SWIFTNESS_STATS.mcdar$getAmplifier(); 26 | int maxCooldownEnchantmentTime = McdarArtifactsStatsConfig.CONFIG.mcdar$getAgilityArtifactStats().BOOTS_OF_SWIFTNESS_STATS.mcdar$getMaxCooldownEnchantmentTime(); 27 | int modifiedCooldownEnchantmentTime = EnchantmentEffects.cooldownEffect(maxCooldownEnchantmentTime, user, world); 28 | 29 | return CleanlinessHelper.mcdar$cleanUseWithOptionalStatus( 30 | user, 31 | hand, 32 | this, 33 | modifiedCooldownEnchantmentTime, 34 | StatusEffects.SPEED, 35 | duration, 36 | amplifier, 37 | null, 38 | null, 39 | null, 40 | null, 41 | null, 42 | null); 43 | } 44 | 45 | @Override 46 | public void appendTooltip(ItemStack stack, TooltipContext tooltipContext, List tooltip, TooltipType type){ 47 | CleanlinessHelper.createLoreTTips(stack, tooltip); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/statuseffect/CharmedStatusEffect.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.statuseffect; 2 | 3 | import dev.timefall.mcdar.goal.LoveMedallionAttackGoal; 4 | import dev.timefall.mcdar.mixin.MobEntityAccessor; 5 | import net.minecraft.entity.LivingEntity; 6 | import net.minecraft.entity.ai.goal.Goal; 7 | import net.minecraft.entity.ai.goal.PrioritizedGoal; 8 | import net.minecraft.entity.attribute.AttributeContainer; 9 | import net.minecraft.entity.attribute.EntityAttributes; 10 | import net.minecraft.entity.effect.StatusEffect; 11 | import net.minecraft.entity.effect.StatusEffectCategory; 12 | import net.minecraft.entity.mob.MobEntity; 13 | 14 | public class CharmedStatusEffect extends StatusEffect { 15 | private LivingEntity entity; 16 | 17 | public CharmedStatusEffect(StatusEffectCategory statusEffectCategory, int color) { 18 | super(statusEffectCategory, color); 19 | } 20 | 21 | @Override 22 | public void onApplied(LivingEntity entity, int amplifier) { 23 | this.entity = entity; 24 | if (entity instanceof MobEntity mobEntity) { 25 | for (PrioritizedGoal prioritizedGoal : ((MobEntityAccessor) mobEntity).targetSelector().getGoals()) { 26 | if (prioritizedGoal.getGoal() instanceof LoveMedallionAttackGoal) { 27 | return; 28 | } 29 | } 30 | ((MobEntityAccessor) mobEntity).targetSelector().add(0, new LoveMedallionAttackGoal(mobEntity)); 31 | } 32 | } 33 | 34 | @Override 35 | public void onRemoved(AttributeContainer attributes) { 36 | if (entity != null && entity instanceof MobEntity mobEntity) { 37 | Goal goal = null; 38 | for (PrioritizedGoal prioritizedGoal : ((MobEntityAccessor) mobEntity).targetSelector().getGoals()) { 39 | if (prioritizedGoal.getGoal() instanceof LoveMedallionAttackGoal) { 40 | goal = prioritizedGoal.getGoal(); 41 | break; 42 | } 43 | } 44 | if (goal != null) { 45 | ((MobEntityAccessor) mobEntity).targetSelector().remove(goal); 46 | entity.damage(entity.getWorld().getDamageSources().magic(), (float) attributes.getValue(EntityAttributes.GENERIC_ATTACK_DAMAGE)); 47 | } 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/artifacts/IronHideAmuletItem.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.artifacts; 2 | 3 | import dev.timefall.mcdar.api.CleanlinessHelper; 4 | import dev.timefall.mcdar.artifacts.artifact_types.ArtifactDefensiveItem; 5 | import dev.timefall.mcdar.config.McdarArtifactsStatsConfig; 6 | import dev.timefall.mcdar.effect.EnchantmentEffects; 7 | import net.minecraft.entity.effect.StatusEffects; 8 | import net.minecraft.entity.player.PlayerEntity; 9 | import net.minecraft.item.ItemStack; 10 | import net.minecraft.item.tooltip.TooltipType; 11 | import net.minecraft.text.Text; 12 | import net.minecraft.util.Hand; 13 | import net.minecraft.util.TypedActionResult; 14 | import net.minecraft.world.World; 15 | 16 | import java.util.List; 17 | 18 | public class IronHideAmuletItem extends ArtifactDefensiveItem { 19 | public IronHideAmuletItem() { 20 | super(McdarArtifactsStatsConfig.CONFIG.mcdar$getDefensiveArtifactStats().IRON_HIDE_AMULET_STATS); 21 | } 22 | 23 | public TypedActionResult use (World world, PlayerEntity user, Hand hand){ 24 | int duration = McdarArtifactsStatsConfig.CONFIG.mcdar$getDefensiveArtifactStats().IRON_HIDE_AMULET_STATS.mcdar$getDuration(); 25 | int amplifier = McdarArtifactsStatsConfig.CONFIG.mcdar$getDefensiveArtifactStats().IRON_HIDE_AMULET_STATS.mcdar$getAmplifier(); 26 | int maxCooldownEnchantmentTime = McdarArtifactsStatsConfig.CONFIG.mcdar$getDefensiveArtifactStats().IRON_HIDE_AMULET_STATS.mcdar$getMaxCooldownEnchantmentTime(); 27 | int modifiedCooldownEnchantmentTime = EnchantmentEffects.cooldownEffect(maxCooldownEnchantmentTime, user, world); 28 | 29 | return CleanlinessHelper.mcdar$cleanUseWithOptionalStatus( 30 | user, 31 | hand, 32 | this, 33 | modifiedCooldownEnchantmentTime, 34 | StatusEffects.RESISTANCE, 35 | duration, 36 | amplifier, 37 | null, 38 | null, 39 | null, 40 | null, 41 | null, 42 | null 43 | ); 44 | } 45 | 46 | @Override 47 | public void appendTooltip(ItemStack stack, TooltipContext tooltipContext, List tooltip, TooltipType type){ 48 | CleanlinessHelper.createLoreTTips(stack, tooltip); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/models/item/iron_hide_amulet.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "texture_size": [32, 32], 4 | "textures": { 5 | "0": "mcdar:item/iron_hide_amulet", 6 | "particle": "mcdar:item/iron_hide_amulet" 7 | }, 8 | "elements": [ 9 | { 10 | "from": [-2, 0, 7], 11 | "to": [17, 19, 9], 12 | "faces": { 13 | "north": {"uv": [1, 1, 10.5, 10.5], "texture": "#0"}, 14 | "east": {"uv": [11.5, 1, 10.5, 10.5], "texture": "#0"}, 15 | "south": {"uv": [1, 1, 10.5, 10.5], "texture": "#0"}, 16 | "west": {"uv": [1, 1, 0, 10.5], "texture": "#0"}, 17 | "up": {"uv": [1, 1, 10.5, 0], "texture": "#0"}, 18 | "down": {"uv": [1, 11.5, 10.5, 10.5], "texture": "#0"} 19 | } 20 | }, 21 | { 22 | "from": [3, 5, 6], 23 | "to": [12, 14, 7], 24 | "faces": { 25 | "north": {"uv": [11.5, 0, 16, 4.5], "texture": "#0"}, 26 | "east": {"uv": [11.5, 0, 12, 4.5], "texture": "#0"}, 27 | "south": {"uv": [11.5, 0, 16, 4.5], "texture": "#0"}, 28 | "west": {"uv": [15.5, 0, 16, 4.5], "texture": "#0"}, 29 | "up": {"uv": [16, 0, 11.5, 0.5], "texture": "#0"}, 30 | "down": {"uv": [16, 4, 11.5, 4.5], "texture": "#0"} 31 | } 32 | } 33 | ], 34 | "display": { 35 | "thirdperson_righthand": { 36 | "rotation": [-150.75, 32.07, -171.34], 37 | "translation": [0.25, 1.75, 1.25], 38 | "scale": [0.26367, 0.26367, 0.26367] 39 | }, 40 | "thirdperson_lefthand": { 41 | "rotation": [-150.75, 32.07, -171.34], 42 | "translation": [0.25, 1.75, 1.25], 43 | "scale": [0.26367, 0.26367, 0.26367] 44 | }, 45 | "firstperson_righthand": { 46 | "rotation": [152.97, 55.88, -161.1], 47 | "translation": [-2, 3, 2.75], 48 | "scale": [0.27695, 0.27695, 0.27695] 49 | }, 50 | "firstperson_lefthand": { 51 | "rotation": [152.97, 55.88, -161.1], 52 | "translation": [-2, 3, 2.75], 53 | "scale": [0.27695, 0.27695, 0.27695] 54 | }, 55 | "ground": { 56 | "translation": [0, 3, 0], 57 | "scale": [0.25, 0.25, 0.25] 58 | }, 59 | "gui": { 60 | "rotation": [171.96, 22.27, -170.96], 61 | "translation": [-0.25, -0.75, 0], 62 | "scale": [0.625, 0.625, 0.625] 63 | }, 64 | "head": { 65 | "translation": [0.25, -1, -6.75], 66 | "scale": [0.69141, 0.69141, 0.69141] 67 | }, 68 | "fixed": { 69 | "translation": [0.25, -0.25, 0], 70 | "scale": [0.5, 0.5, 0.5] 71 | } 72 | } 73 | } -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/artifacts/BlastFungusItem.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.artifacts; 2 | 3 | import dev.timefall.mcdar.api.CleanlinessHelper; 4 | import dev.timefall.mcdar.artifacts.artifact_types.ArtifactDamagingItem; 5 | import dev.timefall.mcdar.config.McdarArtifactsStatsConfig; 6 | import dev.timefall.mcdar.effect.ArtifactEffects; 7 | import dev.timefall.mcdar.effect.EnchantmentEffects; 8 | import net.minecraft.entity.EquipmentSlot; 9 | import net.minecraft.entity.player.PlayerEntity; 10 | import net.minecraft.item.ItemStack; 11 | import net.minecraft.item.tooltip.TooltipType; 12 | import net.minecraft.sound.SoundEvents; 13 | import net.minecraft.text.Text; 14 | import net.minecraft.util.ActionResult; 15 | import net.minecraft.util.Hand; 16 | import net.minecraft.util.TypedActionResult; 17 | import net.minecraft.world.World; 18 | 19 | import java.util.List; 20 | 21 | 22 | public class BlastFungusItem extends ArtifactDamagingItem { 23 | 24 | public BlastFungusItem() { 25 | super(McdarArtifactsStatsConfig.CONFIG.mcdar$getDamagingArtifactStats().BLAST_FUNGUS_STATS); 26 | } 27 | 28 | public TypedActionResult use (World world, PlayerEntity user, Hand hand){ 29 | ItemStack itemStack = user.getStackInHand(hand); 30 | 31 | float range = McdarArtifactsStatsConfig.CONFIG.mcdar$getDamagingArtifactStats().BLAST_FUNGUS_STATS.mcdar$getRange(); 32 | float damage = McdarArtifactsStatsConfig.CONFIG.mcdar$getDamagingArtifactStats().BLAST_FUNGUS_STATS.mcdar$getDamage(); 33 | int maxCooldownEnchantmentTime = McdarArtifactsStatsConfig.CONFIG.mcdar$getDamagingArtifactStats().BLAST_FUNGUS_STATS.mcdar$getMaxCooldownEnchantmentTime(); 34 | int modifiedCooldownEnchantmentTime = EnchantmentEffects.cooldownEffect(maxCooldownEnchantmentTime, user, world); 35 | 36 | 37 | CleanlinessHelper.playCenteredSound(user, SoundEvents.ENTITY_GENERIC_EXPLODE.value(), 1.0F, 1.0F); 38 | ArtifactEffects.mcdar$causeBlastFungusExplosions(user, range, damage); 39 | return CleanlinessHelper.mcdar$useAndDamageArtifact(user, hand, itemStack, modifiedCooldownEnchantmentTime); 40 | 41 | } 42 | 43 | @Override 44 | public void appendTooltip(ItemStack stack, TooltipContext tooltipContext, List tooltip, TooltipType type){ 45 | CleanlinessHelper.createLoreTTips(stack, tooltip); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/statuseffect/CooldownResetStatusEffect.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.statuseffect; 2 | 3 | import dev.timefall.mcdar.goal.LoveMedallionAttackGoal; 4 | import dev.timefall.mcdar.mixin.MobEntityAccessor; 5 | import net.minecraft.entity.LivingEntity; 6 | import net.minecraft.entity.ai.goal.Goal; 7 | import net.minecraft.entity.ai.goal.PrioritizedGoal; 8 | import net.minecraft.entity.attribute.AttributeContainer; 9 | import net.minecraft.entity.attribute.EntityAttributes; 10 | import net.minecraft.entity.effect.StatusEffect; 11 | import net.minecraft.entity.effect.StatusEffectCategory; 12 | import net.minecraft.entity.mob.MobEntity; 13 | 14 | public class CooldownResetStatusEffect extends StatusEffect { 15 | //TODO get mixin to grab this properly from the call sites 16 | private LivingEntity entity; 17 | 18 | public CooldownResetStatusEffect(StatusEffectCategory statusEffectCategory, int color) { 19 | super(statusEffectCategory, color); 20 | } 21 | 22 | @Override 23 | public void onApplied(LivingEntity entity, int amplifier) { 24 | this.entity = entity; 25 | if (entity instanceof MobEntity mobEntity) { 26 | for (PrioritizedGoal prioritizedGoal : ((MobEntityAccessor) mobEntity).targetSelector().getGoals()) { 27 | if (prioritizedGoal.getGoal() instanceof LoveMedallionAttackGoal) { 28 | return; 29 | } 30 | } 31 | ((MobEntityAccessor) mobEntity).targetSelector().add(0, new LoveMedallionAttackGoal(mobEntity)); 32 | } 33 | } 34 | 35 | @Override 36 | public void onRemoved(AttributeContainer attributes) { 37 | if (entity != null && entity instanceof MobEntity mobEntity) { 38 | Goal goal = null; 39 | for (PrioritizedGoal prioritizedGoal : ((MobEntityAccessor) mobEntity).targetSelector().getGoals()) { 40 | if (prioritizedGoal.getGoal() instanceof LoveMedallionAttackGoal) { 41 | goal = prioritizedGoal.getGoal(); 42 | break; 43 | } 44 | } 45 | if (goal != null) { 46 | ((MobEntityAccessor) mobEntity).targetSelector().remove(goal); 47 | entity.damage(entity.getWorld().getDamageSources().magic(), (float) attributes.getValue(EntityAttributes.GENERIC_ATTACK_DAMAGE)); 48 | } 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/artifacts/LightningRodItem.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.artifacts; 2 | 3 | import dev.timefall.mcdar.api.CleanlinessHelper; 4 | import dev.timefall.mcdar.artifacts.artifact_types.ArtifactDamagingItem; 5 | import dev.timefall.mcdar.config.McdarArtifactsStatsConfig; 6 | import dev.timefall.mcdar.effect.EnchantmentEffects; 7 | import dev.timefall.mcdx.api.AOEHelper; 8 | import net.minecraft.entity.EquipmentSlot; 9 | import net.minecraft.entity.player.PlayerEntity; 10 | import net.minecraft.item.ItemStack; 11 | import net.minecraft.item.tooltip.TooltipType; 12 | import net.minecraft.text.Text; 13 | import net.minecraft.util.ActionResult; 14 | import net.minecraft.util.Hand; 15 | import net.minecraft.util.TypedActionResult; 16 | import net.minecraft.world.World; 17 | 18 | import java.util.List; 19 | 20 | public class LightningRodItem extends ArtifactDamagingItem { 21 | public LightningRodItem() { 22 | super(McdarArtifactsStatsConfig.CONFIG.mcdar$getDamagingArtifactStats().LIGHTNING_ROD_STATS); 23 | } 24 | 25 | public TypedActionResult use (World world, PlayerEntity user, Hand hand) { 26 | ItemStack itemStack = user.getStackInHand(hand); 27 | int maxCooldownEnchantmentTime = McdarArtifactsStatsConfig.CONFIG.mcdar$getDamagingArtifactStats().LIGHTNING_ROD_STATS.mcdar$getMaxCooldownEnchantmentTime(); 28 | int modifiedCooldownEnchantmentTime = EnchantmentEffects.cooldownEffect(maxCooldownEnchantmentTime, user, world); 29 | 30 | if (user.totalExperience >= 15 || user.isCreative()) { 31 | AOEHelper.electrocuteNearbyEnemies(user, user, 5,5, Integer.MAX_VALUE); 32 | 33 | if (!user.isCreative()) { 34 | user.addExperience(-15); 35 | EquipmentSlot equipmentSlot = hand == Hand.MAIN_HAND ? EquipmentSlot.MAINHAND : EquipmentSlot.OFFHAND; 36 | itemStack.damage(1, user, equipmentSlot); 37 | } 38 | 39 | EnchantmentEffects.mcdar$cooldownHelper( 40 | user, 41 | this, 42 | modifiedCooldownEnchantmentTime 43 | ); 44 | } 45 | return new TypedActionResult<>(ActionResult.SUCCESS, itemStack); 46 | } 47 | 48 | @Override 49 | public void appendTooltip(ItemStack stack, TooltipContext tooltipContext, List tooltip, TooltipType type){ 50 | CleanlinessHelper.createLoreTTips(stack, tooltip); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /common/src/main/resources/assets/mcdar/models/item/soul_healer.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit": "Made with Blockbench", 3 | "texture_size": [32, 32], 4 | "textures": { 5 | "0": "mcdar:item/soul_healer", 6 | "particle": "mcdar:item/soul_healer" 7 | }, 8 | "elements": [ 9 | { 10 | "from": [-1.5, 0, 6], 11 | "to": [17.5, 19, 8], 12 | "rotation": {"angle": 45, "axis": "z", "origin": [8, 9.5, 7]}, 13 | "faces": { 14 | "north": {"uv": [5.5, 5.5, 15, 15], "texture": "#0"}, 15 | "east": {"uv": [4.5, 5.5, 5.5, 15], "texture": "#0"}, 16 | "south": {"uv": [5.5, 15, 15, 5.5], "rotation": 180, "texture": "#0"}, 17 | "west": {"uv": [15, 5.5, 16, 15], "texture": "#0"}, 18 | "up": {"uv": [5.5, 5.5, 15, 4.5], "texture": "#0"}, 19 | "down": {"uv": [5.5, 16, 15, 15], "texture": "#0"} 20 | } 21 | }, 22 | { 23 | "from": [3.5, 3.5, 5], 24 | "to": [12.5, 15.5, 6], 25 | "rotation": {"angle": 0, "axis": "y", "origin": [0.5, 5.5, 0]}, 26 | "faces": { 27 | "north": {"uv": [0, 0, 4.5, 6], "texture": "#0"}, 28 | "east": {"uv": [0, 0, 0.5, 6], "texture": "#0"}, 29 | "south": {"uv": [4.5, 0, 0, 6], "texture": "#0"}, 30 | "west": {"uv": [4, 0, 4.5, 6], "texture": "#0"}, 31 | "up": {"uv": [4.5, 0.5, 0, 0], "texture": "#0"}, 32 | "down": {"uv": [4.5, 5.5, 0, 6], "texture": "#0"} 33 | } 34 | } 35 | ], 36 | "display": { 37 | "thirdperson_righthand": { 38 | "rotation": [-169.32, 22.5, -163.8], 39 | "translation": [1.25, 2.25, 0], 40 | "scale": [0.33203, 0.33203, 0.33203] 41 | }, 42 | "thirdperson_lefthand": { 43 | "rotation": [-169.32, 22.5, -163.8], 44 | "translation": [1.25, 2.25, 0], 45 | "scale": [0.33203, 0.33203, 0.33203] 46 | }, 47 | "firstperson_righthand": { 48 | "rotation": [149.66, 50.92, -143.6], 49 | "translation": [2, 1.75, -1.75], 50 | "scale": [0.42383, 0.42383, 0.42383] 51 | }, 52 | "firstperson_lefthand": { 53 | "rotation": [149.66, 50.92, -143.6], 54 | "translation": [2, 1.75, -1.75], 55 | "scale": [0.42383, 0.42383, 0.42383] 56 | }, 57 | "ground": { 58 | "rotation": [67.11, -53.99, 89.73], 59 | "translation": [0, 1, 0], 60 | "scale": [0.24023, 0.24023, 0.24023] 61 | }, 62 | "gui": { 63 | "rotation": [151.85, 2.9, 159.67], 64 | "translation": [0.5, -0.75, 0], 65 | "scale": [0.57031, 0.57031, 0.57031] 66 | }, 67 | "head": { 68 | "translation": [0, -1.75, -5.75] 69 | }, 70 | "fixed": { 71 | "translation": [0, -1.5, 0] 72 | } 73 | } 74 | } -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/artifacts/DeathCapMushroomItem.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.artifacts; 2 | 3 | import dev.timefall.mcdar.api.CleanlinessHelper; 4 | import dev.timefall.mcdar.artifacts.artifact_types.ArtifactAgilityItem; 5 | import dev.timefall.mcdar.config.McdarArtifactsStatsConfig; 6 | import dev.timefall.mcdar.effect.EnchantmentEffects; 7 | import net.minecraft.entity.effect.StatusEffects; 8 | import net.minecraft.entity.player.PlayerEntity; 9 | import net.minecraft.item.ItemStack; 10 | import net.minecraft.item.tooltip.TooltipType; 11 | import net.minecraft.text.Text; 12 | import net.minecraft.util.Hand; 13 | import net.minecraft.util.TypedActionResult; 14 | import net.minecraft.world.World; 15 | 16 | import java.util.List; 17 | 18 | public class DeathCapMushroomItem extends ArtifactAgilityItem { 19 | public DeathCapMushroomItem() { 20 | super(McdarArtifactsStatsConfig.CONFIG.mcdar$getAgilityArtifactStats().DEATH_CAP_MUSHROOM_STATS); 21 | } 22 | 23 | public TypedActionResult use (World world, PlayerEntity user, Hand hand) { 24 | int duration = McdarArtifactsStatsConfig.CONFIG.mcdar$getAgilityArtifactStats().DEATH_CAP_MUSHROOM_STATS.mcdar$getDuration(); 25 | int amplifier = McdarArtifactsStatsConfig.CONFIG.mcdar$getAgilityArtifactStats().DEATH_CAP_MUSHROOM_STATS.mcdar$getAmplifier(); 26 | int amplifier2 = McdarArtifactsStatsConfig.CONFIG.mcdar$getAgilityArtifactStats().DEATH_CAP_MUSHROOM_STATS.mcdar$getAmplifier2(); 27 | int maxCooldownEnchantmentTime = McdarArtifactsStatsConfig.CONFIG.mcdar$getAgilityArtifactStats().DEATH_CAP_MUSHROOM_STATS.mcdar$getMaxCooldownEnchantmentTime(); 28 | int modifiedCooldownEnchantmentTime = EnchantmentEffects.cooldownEffect(maxCooldownEnchantmentTime, user, world); 29 | 30 | return CleanlinessHelper.mcdar$cleanUseWithOptionalStatus( 31 | user, 32 | hand, 33 | this, 34 | modifiedCooldownEnchantmentTime, 35 | StatusEffects.HASTE, 36 | duration, 37 | amplifier, 38 | StatusEffects.SPEED, 39 | duration, 40 | amplifier2, 41 | null, 42 | null, 43 | null); 44 | } 45 | 46 | @Override 47 | public void appendTooltip(ItemStack stack, TooltipContext tooltipContext, List tooltip, TooltipType type) { 48 | CleanlinessHelper.createLoreTTips(stack, tooltip); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/entity/BuzzyNestBeeEntity.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.entity; 2 | 3 | import dev.timefall.mcdar.api.interfaces.Summonable; 4 | import net.minecraft.entity.Entity; 5 | import net.minecraft.entity.EntityType; 6 | import net.minecraft.entity.LivingEntity; 7 | import net.minecraft.entity.Tameable; 8 | import net.minecraft.entity.passive.BeeEntity; 9 | import net.minecraft.entity.player.PlayerEntity; 10 | import net.minecraft.nbt.NbtCompound; 11 | import net.minecraft.world.World; 12 | import org.jetbrains.annotations.Nullable; 13 | 14 | import java.util.UUID; 15 | 16 | public class BuzzyNestBeeEntity extends BeeEntity implements Tameable, Summonable { 17 | 18 | @Nullable 19 | UUID ownerEntityUUID = null; 20 | 21 | final int MAX_AGE = 12000; 22 | 23 | public BuzzyNestBeeEntity(EntityType type, World world){ 24 | super(type, world); 25 | } 26 | 27 | public void setSummoner(Entity player) { 28 | ownerEntityUUID = player.getUuid(); 29 | } 30 | 31 | @Override 32 | public void writeCustomDataToNbt(NbtCompound tag) { 33 | super.writeCustomDataToNbt(tag); 34 | if (getOwnerUuid() != null) 35 | tag.putUuid("SummonerUUID",getOwnerUuid()); 36 | } 37 | 38 | @Override 39 | public void readCustomDataFromNbt(NbtCompound tag) { 40 | super.readCustomDataFromNbt(tag); 41 | UUID id = tag.getUuid("SummonerUUID"); 42 | if (id != null) 43 | this.ownerEntityUUID = id; 44 | } 45 | 46 | protected void mobTick(){ 47 | if (getOwner() instanceof PlayerEntity summoner){ 48 | if (summoner.getAttacking() != null) 49 | this.setBeeAttacker(summoner.getAttacking()); 50 | else if (summoner.getAttacker() != null) 51 | this.setBeeAttacker(summoner.getAttacker()); 52 | } 53 | if (MAX_AGE > -1) 54 | if (age >= MAX_AGE) 55 | kill(); 56 | super.mobTick(); 57 | } 58 | 59 | private void setBeeAttacker(LivingEntity attacker){ 60 | if (!attacker.equals(getOwner())) 61 | super.setAttacker(attacker); 62 | } 63 | 64 | public boolean tryAttack(Entity target){ 65 | if (target.equals(getOwner()) || this.hasStung()) 66 | return false; 67 | return super.tryAttack(target); 68 | } 69 | 70 | @Nullable 71 | @Override 72 | public UUID getOwnerUuid() { 73 | return ownerEntityUUID; 74 | } 75 | 76 | } 77 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/artifacts/SatchelOfElixirsItem.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.artifacts; 2 | 3 | import dev.timefall.mcdar.api.CleanlinessHelper; 4 | import dev.timefall.mcdar.artifacts.artifact_types.ArtifactDefensiveItem; 5 | import dev.timefall.mcdar.config.McdarArtifactsStatsConfig; 6 | import dev.timefall.mcdar.effect.EnchantmentEffects; 7 | import net.minecraft.component.type.PotionContentsComponent; 8 | import net.minecraft.entity.EquipmentSlot; 9 | import net.minecraft.entity.player.PlayerEntity; 10 | import net.minecraft.item.Item; 11 | import net.minecraft.item.ItemStack; 12 | import net.minecraft.item.Items; 13 | import net.minecraft.item.tooltip.TooltipType; 14 | import net.minecraft.potion.Potions; 15 | import net.minecraft.text.Text; 16 | import net.minecraft.util.ActionResult; 17 | import net.minecraft.util.Hand; 18 | import net.minecraft.util.TypedActionResult; 19 | import net.minecraft.world.World; 20 | 21 | import java.util.List; 22 | 23 | public class SatchelOfElixirsItem extends ArtifactDefensiveItem { 24 | public SatchelOfElixirsItem() { 25 | super(McdarArtifactsStatsConfig.CONFIG.mcdar$getDefensiveArtifactStats().SATCHEL_OF_ELIXIRS_STATS); 26 | } 27 | 28 | public TypedActionResult use (World world, PlayerEntity user, Hand hand){ 29 | ItemStack itemStack = user.getStackInHand(hand); 30 | int maxCooldownEnchantmentTime = McdarArtifactsStatsConfig.CONFIG.mcdar$getDefensiveArtifactStats().SATCHEL_OF_ELIXIRS_STATS.mcdar$getMaxCooldownEnchantmentTime(); 31 | int modifiedCooldownEnchantmentTime = EnchantmentEffects.cooldownEffect(maxCooldownEnchantmentTime, user, world); 32 | 33 | ItemStack potionToDrop = SATCHEL_OF_ELIXIRS_LIST.get(user.getRandom().nextInt(SATCHEL_OF_ELIXIRS_LIST.size())); 34 | 35 | CleanlinessHelper.mcdar$dropItem(user, potionToDrop); 36 | 37 | return CleanlinessHelper.mcdar$useAndDamageArtifact(user, hand, itemStack, modifiedCooldownEnchantmentTime); 38 | } 39 | 40 | @Override 41 | public void appendTooltip(ItemStack stack, TooltipContext tooltipContext, List tooltip, TooltipType type){ 42 | CleanlinessHelper.createLoreTTips(stack, tooltip); 43 | } 44 | 45 | public static final List SATCHEL_OF_ELIXIRS_LIST = List.of( 46 | PotionContentsComponent.createStack(Items.POTION, Potions.STRENGTH), 47 | PotionContentsComponent.createStack(Items.POTION, Potions.SWIFTNESS), 48 | PotionContentsComponent.createStack(Items.POTION, Potions.INVISIBILITY)); 49 | 50 | //recommend making into a tag 51 | } 52 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/goal/FollowSummonerGoal.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.goal; 2 | 3 | import dev.timefall.mcdar.api.SummoningHelper; 4 | import net.minecraft.entity.LivingEntity; 5 | import net.minecraft.entity.Tameable; 6 | import net.minecraft.entity.ai.goal.Goal; 7 | import net.minecraft.entity.ai.pathing.EntityNavigation; 8 | import net.minecraft.entity.mob.PathAwareEntity; 9 | 10 | public class FollowSummonerGoal extends Goal { 11 | private final T summonedEntity; 12 | private final double speed; 13 | private final EntityNavigation navigation; 14 | private int countdownTicks; 15 | private final float maxDistance; 16 | private final float minDistance; 17 | 18 | public FollowSummonerGoal(T summonedEntity, double speed, 19 | EntityNavigation navigation, float maxDistance, float minDistance) { 20 | this.summonedEntity = summonedEntity; 21 | this.speed = speed; 22 | this.navigation = navigation; 23 | this.maxDistance = maxDistance; 24 | this.minDistance = minDistance; 25 | } 26 | 27 | @Override 28 | public boolean canStart() { 29 | LivingEntity livingEntity = this.summonedEntity.getOwner(); 30 | 31 | return livingEntity != null 32 | && !livingEntity.isSpectator() 33 | && !(this.summonedEntity.squaredDistanceTo(livingEntity) < (double) (this.minDistance * this.minDistance)); 34 | } 35 | 36 | @Override 37 | public boolean shouldContinue() { 38 | if (this.navigation.isIdle()) { 39 | return false; 40 | } else { 41 | return this.summonedEntity.squaredDistanceTo(this.summonedEntity.getOwner()) > (double) (this.maxDistance * this.maxDistance); 42 | } 43 | } 44 | 45 | public void tick() { 46 | this.summonedEntity.getLookControl().lookAt(this.summonedEntity.getOwner(), 10.0F, 47 | (float) this.summonedEntity.getMaxLookPitchChange()); 48 | if (--this.countdownTicks <= 0) { 49 | this.countdownTicks = 10; 50 | if (!this.summonedEntity.hasVehicle()) { 51 | if (this.summonedEntity.squaredDistanceTo(this.summonedEntity.getOwner()) >= 144.0D) { 52 | SummoningHelper.mcdar$tryTeleport(this.summonedEntity, this.summonedEntity.getOwner()); 53 | } else { 54 | this.navigation.startMovingTo(this.summonedEntity.getOwner(), this.speed); 55 | } 56 | } 57 | } 58 | } 59 | 60 | } 61 | -------------------------------------------------------------------------------- /neoforge/src/main/java/dev/timefall/mcdar/event/McdarForgeEventHandler.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.event; 2 | 3 | import dev.timefall.mcdar.config.McdarArtifactsStatsConfig; 4 | import dev.timefall.mcdar.effect.ArtifactEffects; 5 | import dev.timefall.mcdar.effect.EnchantmentEffects; 6 | import dev.timefall.mcdar.registry.StatusEffectRegistry; 7 | import net.minecraft.entity.LivingEntity; 8 | import net.minecraft.entity.player.PlayerEntity; 9 | import net.minecraft.server.world.ServerWorld; 10 | import net.minecraft.world.World; 11 | import net.neoforged.neoforge.event.entity.living.LivingDeathEvent; 12 | import net.neoforged.neoforge.event.entity.living.LivingEntityUseItemEvent; 13 | import net.neoforged.neoforge.event.entity.player.AttackEntityEvent; 14 | import net.neoforged.neoforge.event.entity.player.PlayerInteractEvent; 15 | 16 | public class McdarForgeEventHandler { 17 | public static void mcdar$playerFinishPotionEvent(LivingEntityUseItemEvent.Finish event) { 18 | World world = event.getEntity().getWorld(); 19 | LivingEntity livingEntity = event.getEntity(); 20 | if (world instanceof ServerWorld serverWorld && livingEntity instanceof PlayerEntity playerEntity) { 21 | EnchantmentEffects.activateBeastBurst(playerEntity, serverWorld); 22 | EnchantmentEffects.activateBeastSurge(playerEntity, serverWorld); 23 | } 24 | } 25 | 26 | public static void mcdar$onPowershakerExplodingKill(LivingDeathEvent event) { 27 | if (!(event.getSource().getAttacker() instanceof PlayerEntity playerEntity)) return; 28 | 29 | if (McdarArtifactsStatsConfig.CONFIG.mcdar$getDamagingArtifactStats().POWERSHAKER_STATS.mcdar$getIsEnabled()) 30 | ArtifactEffects.mcdar$activatePowerShaker(playerEntity, event.getEntity()); 31 | } 32 | 33 | public static void mcdar$stunnedStatusPreventItemUsage(LivingEntityUseItemEvent.Start event) { 34 | if (event.getEntity().hasStatusEffect(StatusEffectRegistry.STUNNED.getEntry())) { 35 | event.setCanceled(true); 36 | } 37 | } 38 | 39 | public static void mcdar$stunnedStatusPreventAttackEntityBlock(AttackEntityEvent event) { 40 | if (event.getEntity().hasStatusEffect(StatusEffectRegistry.STUNNED.getEntry())) { 41 | event.setCanceled(true); 42 | } 43 | } 44 | 45 | public static void mcdar$stunnedStatusPreventAttackBlock(PlayerInteractEvent.LeftClickBlock event) { 46 | if (event.getEntity().hasStatusEffect(StatusEffectRegistry.STUNNED.getEntry())) { 47 | event.setCanceled(true); 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/artifacts/SatchelOfSnacksItem.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.artifacts; 2 | 3 | import dev.timefall.mcdar.api.CleanlinessHelper; 4 | import dev.timefall.mcdar.artifacts.artifact_types.ArtifactDefensiveItem; 5 | import dev.timefall.mcdar.config.McdarArtifactsStatsConfig; 6 | import dev.timefall.mcdar.effect.EnchantmentEffects; 7 | import net.minecraft.entity.EquipmentSlot; 8 | import net.minecraft.entity.player.PlayerEntity; 9 | import net.minecraft.item.Item; 10 | import net.minecraft.item.ItemStack; 11 | import net.minecraft.item.Items; 12 | import net.minecraft.item.tooltip.TooltipType; 13 | import net.minecraft.text.Text; 14 | import net.minecraft.util.ActionResult; 15 | import net.minecraft.util.Hand; 16 | import net.minecraft.util.TypedActionResult; 17 | import net.minecraft.world.World; 18 | 19 | import java.util.Arrays; 20 | import java.util.Collections; 21 | import java.util.List; 22 | 23 | public class SatchelOfSnacksItem extends ArtifactDefensiveItem { 24 | public SatchelOfSnacksItem() { 25 | super(McdarArtifactsStatsConfig.CONFIG.mcdar$getDefensiveArtifactStats().SATCHEL_OF_SNACKS_STATS); 26 | } 27 | 28 | public TypedActionResult use (World world, PlayerEntity user, Hand hand){ 29 | ItemStack itemStack = user.getStackInHand(hand); 30 | int maxCooldownEnchantmentTime = McdarArtifactsStatsConfig.CONFIG.mcdar$getDefensiveArtifactStats().SATCHEL_OF_SNACKS_STATS.mcdar$getMaxCooldownEnchantmentTime(); 31 | int modifiedCooldownEnchantmentTime = EnchantmentEffects.cooldownEffect(maxCooldownEnchantmentTime, user, world); 32 | 33 | Item snackToDrop = 34 | SATCHEL_OF_SNACKS_LIST.get(user.getRandom().nextInt(SATCHEL_OF_SNACKS_LIST.size())); 35 | 36 | CleanlinessHelper.mcdar$dropItem(user, snackToDrop); 37 | return CleanlinessHelper.mcdar$useAndDamageArtifact(user, hand, itemStack, modifiedCooldownEnchantmentTime); 38 | } 39 | 40 | @Override 41 | public void appendTooltip(ItemStack stack, TooltipContext tooltipContext, List tooltip, TooltipType type){ 42 | CleanlinessHelper.createLoreTTips(stack, tooltip); 43 | } 44 | 45 | private static final List SATCHEL_OF_SNACKS_LIST = Collections.unmodifiableList(Arrays.asList( 46 | Items.APPLE, Items.BREAD, Items.COOKED_SALMON, Items.COOKED_PORKCHOP, Items.COOKED_MUTTON, 47 | Items.COOKED_COD, Items.COOKED_COD, Items.COOKED_RABBIT, Items.COOKED_CHICKEN, Items.COOKED_BEEF, 48 | Items.MELON_SLICE, Items.CARROT, Items.GOLDEN_CARROT, Items.GOLDEN_APPLE, Items.BAKED_POTATO)); 49 | } -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/config/item_sections/StatusInflictingArtifactStats.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.config.item_sections; 2 | 3 | import dev.timefall.mcdar.config.artifact_types.ExperienceDrainingArtifactStats; 4 | import dev.timefall.mcdar.config.artifact_types.StatusGrantingArtifactStats; 5 | import me.fzzyhmstrs.fzzy_config.config.ConfigSection; 6 | 7 | public class StatusInflictingArtifactStats extends ConfigSection { 8 | 9 | public StatusInflictingArtifactStats() { 10 | super(); 11 | this.CORRUPTED_SEEDS_STATS = new StatusGrantingArtifactStats( 12 | 140, 13 | 4, 14 | 1, 15 | 5.0f, 16 | true, 17 | true, 18 | 64, 19 | 100, 20 | 2, 21 | 1 22 | ); 23 | this.GONG_OF_WEAKENING_STATS = new StatusGrantingArtifactStats( 24 | 140, 25 | 1, 26 | -2, 27 | 5.0f, 28 | true, 29 | true, 30 | 64, 31 | 100, 32 | 2, 33 | 1 34 | ); 35 | this.LOVE_MEDALLION_STATS = new StatusGrantingArtifactStats( 36 | 200, 37 | 0, 38 | 6.0f, 39 | true, 40 | true, 41 | 64, 42 | 120, 43 | 2, 44 | 1 45 | ); 46 | this.SATCHEL_OF_ELEMENTS_STATS = new ExperienceDrainingArtifactStats( 47 | 15, 48 | 5.0f, 49 | 5.0f, 50 | 100, 51 | 0, 52 | 0, 53 | 4, 54 | true, 55 | true, 56 | 64, 57 | 60, 58 | 2, 59 | 1 60 | ); 61 | this.SHOCK_POWDER_STATS = new StatusGrantingArtifactStats( 62 | 100, 63 | 0, 64 | 0, 65 | 4, 66 | 0.5f, 67 | true, 68 | true, 69 | 64, 70 | 300, 71 | 2, 72 | 1 73 | ); 74 | } 75 | 76 | public StatusGrantingArtifactStats CORRUPTED_SEEDS_STATS; 77 | public StatusGrantingArtifactStats GONG_OF_WEAKENING_STATS; 78 | public StatusGrantingArtifactStats LOVE_MEDALLION_STATS; 79 | public ExperienceDrainingArtifactStats SATCHEL_OF_ELEMENTS_STATS; 80 | public StatusGrantingArtifactStats SHOCK_POWDER_STATS; 81 | } 82 | -------------------------------------------------------------------------------- /common/src/main/java/dev/timefall/mcdar/entity/GolemKitGolemEntity.java: -------------------------------------------------------------------------------- 1 | package dev.timefall.mcdar.entity; 2 | 3 | import dev.timefall.mcdar.api.SummoningHelper; 4 | import dev.timefall.mcdar.api.interfaces.Summonable; 5 | import dev.timefall.mcdar.goal.FollowSummonerGoal; 6 | import net.minecraft.entity.Entity; 7 | import net.minecraft.entity.EntityType; 8 | import net.minecraft.entity.LivingEntity; 9 | import net.minecraft.entity.Tameable; 10 | import net.minecraft.entity.ai.goal.MeleeAttackGoal; 11 | import net.minecraft.entity.ai.goal.RevengeGoal; 12 | import net.minecraft.entity.passive.IronGolemEntity; 13 | import net.minecraft.nbt.NbtCompound; 14 | import net.minecraft.world.World; 15 | import org.jetbrains.annotations.Nullable; 16 | 17 | import java.util.UUID; 18 | 19 | public class GolemKitGolemEntity extends IronGolemEntity implements Tameable, Summonable { 20 | @Nullable 21 | UUID ownerEntityUUID = null; 22 | 23 | public GolemKitGolemEntity(EntityType type, World world) { 24 | super(type, world); 25 | } 26 | 27 | @Override 28 | protected void initGoals(){ 29 | this.goalSelector.add(6, new FollowSummonerGoal<>(this, 1.0, 30 | this.getNavigation(), 90.0F, 3.0F)); 31 | this.initCustomGoals(); 32 | } 33 | 34 | protected void initCustomGoals(){ 35 | this.goalSelector.add(1, new MeleeAttackGoal(this, 1.0D, true)); 36 | this.targetSelector.add(2, new RevengeGoal(this)); 37 | } 38 | 39 | @Override 40 | public void setSummoner(Entity player) { 41 | ownerEntityUUID = player.getUuid(); 42 | } 43 | 44 | @Override 45 | public void writeCustomDataToNbt(NbtCompound tag) { 46 | super.writeCustomDataToNbt(tag); 47 | if (getOwnerUuid() != null) 48 | tag.putUuid("SummonerUUID",getOwnerUuid()); 49 | } 50 | 51 | @Override 52 | public void readCustomDataFromNbt(NbtCompound tag) { 53 | super.readCustomDataFromNbt(tag); 54 | UUID id = tag.getUuid("SummonerUUID"); 55 | if (id != null) 56 | this.ownerEntityUUID = id; 57 | } 58 | 59 | @Override 60 | public void setAttacker(LivingEntity attacker){ 61 | if (attacker != null && !attacker.equals(getOwner())) 62 | super.setAttacker(attacker); 63 | } 64 | 65 | @Override 66 | public void tickMovement() { 67 | super.tickMovement(); 68 | SummoningHelper.mcdar$trackAndProtectSummoner(this); 69 | } 70 | 71 | @Nullable 72 | @Override 73 | public UUID getOwnerUuid() { 74 | return ownerEntityUUID; 75 | } 76 | 77 | } 78 | --------------------------------------------------------------------------------