├── src └── main │ ├── resources │ ├── assets │ │ ├── minecraft │ │ │ └── optifine │ │ │ │ └── emissive.properties │ │ └── herobrine │ │ │ ├── textures │ │ │ ├── item │ │ │ │ ├── cursed_dust.png.mcmeta │ │ │ │ ├── cursed_diamond.png.mcmeta │ │ │ │ ├── cursed_diamond_e.png.mcmeta │ │ │ │ ├── cursed_dust_e.png.mcmeta │ │ │ │ ├── purified_diamond.png.mcmeta │ │ │ │ ├── purified_diamond_e.png.mcmeta │ │ │ │ ├── holy_water.png │ │ │ │ ├── bedrock_sword.png │ │ │ │ ├── cursed_dust.png │ │ │ │ ├── cursed_dust_e.png │ │ │ │ ├── unholy_water.png │ │ │ │ ├── cursed_diamond.png │ │ │ │ ├── herobrine_altar.png │ │ │ │ ├── music_disc_dog.png │ │ │ │ ├── cursed_diamond_axe.png │ │ │ │ ├── cursed_diamond_e.png │ │ │ │ ├── cursed_diamond_hoe.png │ │ │ │ ├── herobrine_altar_e.png │ │ │ │ ├── herobrine_statue.png │ │ │ │ ├── purified_diamond.png │ │ │ │ ├── purified_diamond_e.png │ │ │ │ ├── cursed_diamond_boots.png │ │ │ │ ├── cursed_diamond_sword.png │ │ │ │ ├── cursed_diamond_helmet.png │ │ │ │ ├── cursed_diamond_leggings.png │ │ │ │ ├── cursed_diamond_pickaxe.png │ │ │ │ ├── cursed_diamond_shovel.png │ │ │ │ └── cursed_diamond_chestplate.png │ │ │ ├── block │ │ │ │ ├── purified_diamond_block.png.mcmeta │ │ │ │ ├── purified_diamond_block_e.png.mcmeta │ │ │ │ ├── herobrine_altar_purified_particle.png.mcmeta │ │ │ │ ├── herobrine_altar_purified_particle_e.png.mcmeta │ │ │ │ ├── herobrine_altar.png │ │ │ │ ├── herobrine_altar_e.png │ │ │ │ ├── cursed_diamond_block.png │ │ │ │ ├── cursed_diamond_block_e.png │ │ │ │ ├── herobrine_altar_side.png │ │ │ │ ├── herobrine_altar_side_e.png │ │ │ │ ├── herobrine_altar_spire.png │ │ │ │ ├── purified_diamond_block.png │ │ │ │ ├── herobrine_altar_particle.png │ │ │ │ ├── herobrine_altar_spire_e.png │ │ │ │ ├── purified_diamond_block_e.png │ │ │ │ ├── herobrine_altar_particle_e.png │ │ │ │ ├── herobrine_statue │ │ │ │ │ ├── top │ │ │ │ │ │ ├── body.png │ │ │ │ │ │ ├── head.png │ │ │ │ │ │ ├── left_arm.png │ │ │ │ │ │ ├── particle.png │ │ │ │ │ │ └── right_arm.png │ │ │ │ │ └── bottom │ │ │ │ │ │ ├── body.png │ │ │ │ │ │ ├── left_arm.png │ │ │ │ │ │ ├── left_leg.png │ │ │ │ │ │ ├── particle.png │ │ │ │ │ │ ├── right_arm.png │ │ │ │ │ │ └── right_leg.png │ │ │ │ ├── herobrine_altar_active_particle.png │ │ │ │ ├── herobrine_altar_active_particle_e.png │ │ │ │ ├── herobrine_altar_purified_particle.png │ │ │ │ └── herobrine_altar_purified_particle_e.png │ │ │ ├── entity │ │ │ │ ├── herobrine.png │ │ │ │ ├── infected_bat.png │ │ │ │ ├── infected_cow.png │ │ │ │ ├── infected_pig.png │ │ │ │ ├── eyes │ │ │ │ │ ├── herobrine.png │ │ │ │ │ ├── infected_bat.png │ │ │ │ │ ├── infected_cow.png │ │ │ │ │ ├── infected_fox.png │ │ │ │ │ ├── infected_pig.png │ │ │ │ │ ├── infected_wolf.png │ │ │ │ │ ├── infected_axolotl.png │ │ │ │ │ ├── infected_camel.png │ │ │ │ │ ├── infected_chicken.png │ │ │ │ │ ├── infected_donkey.png │ │ │ │ │ ├── infected_horse.png │ │ │ │ │ ├── infected_llama.png │ │ │ │ │ ├── infected_ocelot.png │ │ │ │ │ ├── infected_sheep.png │ │ │ │ │ ├── infected_armadillo.png │ │ │ │ │ ├── infected_mooshroom.png │ │ │ │ │ ├── infected_villager.png │ │ │ │ │ └── infected_rabbit │ │ │ │ │ │ ├── caerbannog.png │ │ │ │ │ │ └── infected_rabbit.png │ │ │ │ ├── infected_camel.png │ │ │ │ ├── infected_chicken.png │ │ │ │ ├── infected_donkey.png │ │ │ │ ├── infected_fox │ │ │ │ │ ├── fox.png │ │ │ │ │ └── snow_fox.png │ │ │ │ ├── infected_ocelot.png │ │ │ │ ├── infected_sheep.png │ │ │ │ ├── infected_armadillo.png │ │ │ │ ├── infected_villager.png │ │ │ │ ├── infected_wolf │ │ │ │ │ ├── wolf.png │ │ │ │ │ ├── wolf_ashen.png │ │ │ │ │ ├── wolf_black.png │ │ │ │ │ ├── wolf_rusty.png │ │ │ │ │ ├── wolf_snowy.png │ │ │ │ │ ├── wolf_spotted.png │ │ │ │ │ ├── wolf_striped.png │ │ │ │ │ ├── wolf_woods.png │ │ │ │ │ └── wolf_chestnut.png │ │ │ │ ├── infected_llama │ │ │ │ │ ├── brown.png │ │ │ │ │ ├── creamy.png │ │ │ │ │ ├── gray.png │ │ │ │ │ └── white.png │ │ │ │ ├── infected_rabbit │ │ │ │ │ ├── black.png │ │ │ │ │ ├── brown.png │ │ │ │ │ ├── gold.png │ │ │ │ │ ├── salt.png │ │ │ │ │ ├── toast.png │ │ │ │ │ ├── white.png │ │ │ │ │ ├── caerbannog.png │ │ │ │ │ └── white_splotched.png │ │ │ │ ├── survivor │ │ │ │ │ └── amaclean04.png │ │ │ │ ├── infected_red_mooshroom.png │ │ │ │ ├── infected_brown_mooshroom.png │ │ │ │ ├── infected_horse │ │ │ │ │ ├── horse_black.png │ │ │ │ │ ├── horse_brown.png │ │ │ │ │ ├── horse_gray.png │ │ │ │ │ ├── horse_white.png │ │ │ │ │ ├── horse_creamy.png │ │ │ │ │ ├── horse_chestnut.png │ │ │ │ │ └── horse_darkbrown.png │ │ │ │ └── infected_axolotl │ │ │ │ │ ├── axolotl_blue.png │ │ │ │ │ ├── axolotl_cyan.png │ │ │ │ │ ├── axolotl_gold.png │ │ │ │ │ ├── axolotl_lucy.png │ │ │ │ │ └── axolotl_wild.png │ │ │ └── models │ │ │ │ └── armor │ │ │ │ ├── cursed_diamond_layer_1.png │ │ │ │ └── cursed_diamond_layer_2.png │ │ │ ├── models │ │ │ ├── item │ │ │ │ ├── survivor_spawn_egg.json │ │ │ │ ├── herobrine_mage_spawn_egg.json │ │ │ │ ├── herobrine_spy_spawn_egg.json │ │ │ │ ├── infected_axolotl_spawn_egg.json │ │ │ │ ├── infected_bat_spawn_egg.json │ │ │ │ ├── infected_camel_spawn_egg.json │ │ │ │ ├── infected_chicken_spawn_egg.json │ │ │ │ ├── infected_cow_spawn_egg.json │ │ │ │ ├── infected_donkey_spawn_egg.json │ │ │ │ ├── infected_fox_spawn_egg.json │ │ │ │ ├── infected_horse_spawn_egg.json │ │ │ │ ├── infected_llama_spawn_egg.json │ │ │ │ ├── infected_ocelot_spawn_egg.json │ │ │ │ ├── infected_pig_spawn_egg.json │ │ │ │ ├── infected_rabbit_spawn_egg.json │ │ │ │ ├── infected_sheep_spawn_egg.json │ │ │ │ ├── infected_wolf_spawn_egg.json │ │ │ │ ├── herobrine_builder_spawn_egg.json │ │ │ │ ├── herobrine_stalker_spawn_egg.json │ │ │ │ ├── herobrine_warrior_spawn_egg.json │ │ │ │ ├── infected_armadillo_spawn_egg.json │ │ │ │ ├── infected_mooshroom_spawn_egg.json │ │ │ │ ├── infected_villager_spawn_egg.json │ │ │ │ ├── cursed_diamond_block.json │ │ │ │ ├── purified_diamond_block.json │ │ │ │ ├── cursed_dust.json │ │ │ │ ├── holy_water.json │ │ │ │ ├── bedrock_sword.json │ │ │ │ ├── unholy_water.json │ │ │ │ ├── cursed_diamond.json │ │ │ │ ├── herobrine_altar.json │ │ │ │ ├── herobrine_statue.json │ │ │ │ ├── music_disc_dog.json │ │ │ │ ├── cursed_diamond_axe.json │ │ │ │ ├── cursed_diamond_hoe.json │ │ │ │ ├── purified_diamond.json │ │ │ │ ├── cursed_diamond_boots.json │ │ │ │ ├── cursed_diamond_sword.json │ │ │ │ ├── cursed_diamond_helmet.json │ │ │ │ ├── cursed_diamond_pickaxe.json │ │ │ │ ├── cursed_diamond_shovel.json │ │ │ │ ├── cursed_diamond_chestplate.json │ │ │ │ └── cursed_diamond_leggings.json │ │ │ └── block │ │ │ │ ├── cursed_diamond_block.json │ │ │ │ └── purified_diamond_block.json │ │ │ ├── logo.png │ │ │ ├── blockstates │ │ │ ├── cursed_diamond_block.json │ │ │ ├── purified_diamond_block.json │ │ │ ├── herobrine_altar.json │ │ │ └── herobrine_statue.json │ │ │ ├── sounds │ │ │ ├── records │ │ │ │ └── dog.ogg │ │ │ └── blocks │ │ │ │ └── herobrine_altar │ │ │ │ ├── herobrine_altar_cursed.ogg │ │ │ │ └── herobrine_altar_purified.ogg │ │ │ └── sounds.json │ ├── data │ │ ├── herobrine │ │ │ ├── tags │ │ │ │ ├── block │ │ │ │ │ ├── needs_cursed_diamond_tool.json │ │ │ │ │ └── incorrect_for_cursed_diamond_tool.json │ │ │ │ ├── worldgen │ │ │ │ │ └── biome │ │ │ │ │ │ └── has_structure │ │ │ │ │ │ ├── sand_pyramid.json │ │ │ │ │ │ ├── ruined_shrine.json │ │ │ │ │ │ ├── herobrine_statue.json │ │ │ │ │ │ ├── survivor_base.json │ │ │ │ │ │ └── trapped_house.json │ │ │ │ ├── item │ │ │ │ │ └── activates_herobrine_altar.json │ │ │ │ └── entity_type │ │ │ │ │ ├── is_herobrine.json │ │ │ │ │ └── is_infected_by_herobrine.json │ │ │ ├── structure │ │ │ │ ├── signs │ │ │ │ │ ├── lore1.nbt │ │ │ │ │ ├── lore2.nbt │ │ │ │ │ ├── lore3.nbt │ │ │ │ │ ├── lore4.nbt │ │ │ │ │ ├── lore5.nbt │ │ │ │ │ ├── lore6.nbt │ │ │ │ │ ├── normal1.nbt │ │ │ │ │ ├── normal2.nbt │ │ │ │ │ └── normal3.nbt │ │ │ │ ├── dirt_structure.nbt │ │ │ │ ├── ruined_shrine.nbt │ │ │ │ ├── sand_pyramid.nbt │ │ │ │ ├── sand_structure.nbt │ │ │ │ ├── survivor_base.nbt │ │ │ │ ├── trapped_house.nbt │ │ │ │ ├── glowstone_pillar.nbt │ │ │ │ ├── herobrine_statue.nbt │ │ │ │ ├── stone_structure.nbt │ │ │ │ ├── end_stone_structure.nbt │ │ │ │ ├── ominous_mineshaft.nbt │ │ │ │ ├── red_sand_structure.nbt │ │ │ │ ├── ruined_shrine_alt.nbt │ │ │ │ ├── ruined_shrine_alt_1.nbt │ │ │ │ ├── ruined_shrine_alt_2.nbt │ │ │ │ ├── ruined_shrine_alt_3.nbt │ │ │ │ ├── netherrack_structure.nbt │ │ │ │ ├── terracotta_structure.nbt │ │ │ │ └── survivor_base_abandoned.nbt │ │ │ ├── jukebox_song │ │ │ │ └── dog.json │ │ │ ├── worldgen │ │ │ │ ├── structure_set │ │ │ │ │ ├── ruined_shrines.json │ │ │ │ │ ├── sand_pyramids.json │ │ │ │ │ ├── survivor_bases.json │ │ │ │ │ ├── trapped_houses.json │ │ │ │ │ └── herobrine_statues.json │ │ │ │ ├── configured_feature │ │ │ │ │ ├── cursed_forest_trees.json │ │ │ │ │ ├── cursed_birch.json │ │ │ │ │ ├── cursed_oak.json │ │ │ │ │ └── cursed_fancy_oak.json │ │ │ │ ├── template_pool │ │ │ │ │ ├── sand_pyramid.json │ │ │ │ │ ├── trapped_house.json │ │ │ │ │ ├── herobrine_statue.json │ │ │ │ │ ├── survivor_base.json │ │ │ │ │ └── ruined_shrine.json │ │ │ │ ├── placed_feature │ │ │ │ │ ├── cursed_oak.json │ │ │ │ │ ├── cursed_birch.json │ │ │ │ │ ├── cursed_fancy_oak.json │ │ │ │ │ └── cursed_forest_trees.json │ │ │ │ └── structure │ │ │ │ │ ├── ruined_shrine.json │ │ │ │ │ ├── sand_pyramid.json │ │ │ │ │ ├── herobrine_statue.json │ │ │ │ │ ├── survivor_base.json │ │ │ │ │ └── trapped_house.json │ │ │ ├── recipe │ │ │ │ ├── cursed_diamond_from_block.json │ │ │ │ ├── purified_diamond_from_block.json │ │ │ │ ├── cursed_diamond_boots.json │ │ │ │ ├── cursed_diamond_helmet.json │ │ │ │ ├── cursed_diamond_block.json │ │ │ │ ├── purified_diamond_block.json │ │ │ │ ├── cursed_diamond_chestplate.json │ │ │ │ ├── purified_diamond.json │ │ │ │ ├── unholy_water.json │ │ │ │ ├── herobrine_statue.json │ │ │ │ ├── cursed_diamond_hoe.json │ │ │ │ ├── cursed_diamond_sword.json │ │ │ │ ├── cursed_diamond_axe.json │ │ │ │ ├── cursed_diamond_leggings.json │ │ │ │ ├── cursed_diamond_shovel.json │ │ │ │ ├── cursed_diamond_pickaxe.json │ │ │ │ ├── cursed_diamond.json │ │ │ │ ├── herobrine_altar.json │ │ │ │ ├── holy_water.json │ │ │ │ └── cursed_dust.json │ │ │ ├── loot_table │ │ │ │ └── blocks │ │ │ │ │ ├── cursed_diamond_block.json │ │ │ │ │ ├── purified_diamond_block.json │ │ │ │ │ ├── herobrine_statue.json │ │ │ │ │ └── herobrine_altar.json │ │ │ ├── advancements │ │ │ │ └── recipes │ │ │ │ │ ├── tools │ │ │ │ │ ├── cursed_diamond_axe.json │ │ │ │ │ ├── cursed_diamond_hoe.json │ │ │ │ │ ├── cursed_diamond_shovel.json │ │ │ │ │ └── cursed_diamond_pickaxe.json │ │ │ │ │ ├── combat │ │ │ │ │ ├── cursed_diamond_boots.json │ │ │ │ │ ├── cursed_diamond_helmet.json │ │ │ │ │ ├── cursed_diamond_sword.json │ │ │ │ │ ├── cursed_diamond_leggings.json │ │ │ │ │ ├── cursed_diamond_chestplate.json │ │ │ │ │ ├── unholy_water.json │ │ │ │ │ └── holy_water.json │ │ │ │ │ ├── building_blocks │ │ │ │ │ ├── cursed_diamond_block.json │ │ │ │ │ └── purified_diamond_block.json │ │ │ │ │ ├── misc │ │ │ │ │ ├── cursed_diamond_from_block.json │ │ │ │ │ ├── purified_diamond_from_block.json │ │ │ │ │ ├── cursed_diamond.json │ │ │ │ │ ├── purified_diamond.json │ │ │ │ │ └── cursed_dust.json │ │ │ │ │ └── decorations │ │ │ │ │ ├── herobrine_statue.json │ │ │ │ │ └── herobrine_altar.json │ │ │ └── default_config │ │ │ │ └── herobrine.json │ │ ├── c │ │ │ └── tags │ │ │ │ └── item │ │ │ │ └── music_discs.json │ │ └── minecraft │ │ │ └── tags │ │ │ ├── item │ │ │ ├── axes.json │ │ │ ├── hoes.json │ │ │ ├── pickaxes.json │ │ │ ├── shovels.json │ │ │ └── swords.json │ │ │ ├── entity_type │ │ │ ├── aquatic.json │ │ │ ├── wither_friends.json │ │ │ ├── fall_damage_immune.json │ │ │ ├── can_breathe_under_water.json │ │ │ └── powder_snow_walkable_mobs.json │ │ │ ├── worldgen │ │ │ └── biome │ │ │ │ ├── is_forest.json │ │ │ │ └── is_overworld.json │ │ │ └── block │ │ │ ├── needs_iron_tool.json │ │ │ └── mineable │ │ │ └── pickaxe.json │ ├── pack.mcmeta │ ├── herobrine.accesswidener │ ├── herobrine.mixins.json │ └── fabric.mod.json │ └── java │ └── com │ └── herobrinemod │ └── herobrine │ ├── items │ ├── material │ │ ├── ToolMaterialList.java │ │ ├── BedrockToolMaterial.java │ │ ├── CursedDiamondToolMaterial.java │ │ └── ArmorMaterialList.java │ └── ItemTagList.java │ ├── worldgen │ └── BiomeKeyList.java │ ├── client │ └── entities │ │ ├── models │ │ ├── InfectedCowEntityModel.java │ │ ├── InfectedChickenEntityModel.java │ │ ├── InfectedLlamaSpitEntityModel.java │ │ ├── HerobrineMageEntityModel.java │ │ ├── InfectedVillagerEntityModel.java │ │ ├── HerobrineEntityModel.java │ │ └── InfectedPigEntityModel.java │ │ └── renderers │ │ ├── HerobrineEyesFeatureRenderer.java │ │ ├── InfectedFoxEyesFeatureRenderer.java │ │ ├── InfectedCamelEyesFeatureRenderer.java │ │ ├── InfectedAxolotlEyesFeatureRenderer.java │ │ ├── InfectedOcelotEyesFeatureRenderer.java │ │ ├── InfectedBatEyesFeatureRenderer.java │ │ ├── InfectedCamelEntityRenderer.java │ │ ├── InfectedOcelotEntityRenderer.java │ │ ├── InfectedPigEyesFeatureRenderer.java │ │ ├── InfectedWolfEyesFeatureRenderer.java │ │ ├── InfectedHorseEyesFeatureRenderer.java │ │ ├── InfectedLlamaEyesFeatureRenderer.java │ │ ├── InfectedSheepEyesFeatureRenderer.java │ │ ├── InfectedDonkeyEyesFeatureRenderer.java │ │ ├── InfectedChickenEyesFeatureRenderer.java │ │ ├── InfectedCowEyesFeatureRenderer.java │ │ ├── InfectedVillagerEyesFeatureRenderer.java │ │ ├── InfectedArmadilloEyesFeatureRenderer.java │ │ ├── InfectedMooshroomEyesFeatureRenderer.java │ │ ├── InfectedPigEntityRenderer.java │ │ ├── InfectedBatEntityRenderer.java │ │ ├── InfectedRabbitEyesFeatureRenderer.java │ │ ├── InfectedCowEntityRenderer.java │ │ ├── InfectedArmadilloEntityRenderer.java │ │ ├── InfectedSheepEntityRenderer.java │ │ ├── InfectedFoxEntityRenderer.java │ │ ├── HerobrineMageEntityRenderer.java │ │ ├── InfectedDonkeyEntityRenderer.java │ │ ├── HerobrineEntityRenderer.java │ │ ├── InfectedChickenEntityRenderer.java │ │ ├── InfectedAxolotlEntityRenderer.java │ │ └── SurvivorEntityRenderer.java │ ├── component │ └── DataComponentTypeList.java │ ├── entities │ ├── SurvivorSkinRegistry.java │ ├── EntityTypeTagList.java │ ├── HerobrineSpawnHelper.java │ └── goals │ │ ├── InfectedCamelSitOrStandGoal.java │ │ ├── InfectedHorseAmbientStandGoal.java │ │ └── InfectedDonkeyAmbientStandGoal.java │ ├── blocks │ ├── BlockTagList.java │ ├── CursedDiamondBlock.java │ └── BlockList.java │ ├── sounds │ └── SoundList.java │ ├── mixin │ ├── CrashReportMixin.java │ ├── PotionEntityMixin.java │ └── ServerWorldMixin.java │ └── savedata │ └── SaveDataHandler.java ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── settings.gradle ├── .github └── ISSUE_TEMPLATE │ ├── feature_request.md │ └── bug_report.md ├── .gitignore └── gradle.properties /src/main/resources/assets/minecraft/optifine/emissive.properties: -------------------------------------------------------------------------------- 1 | suffix.emissive=_e -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/cursed_dust.png.mcmeta: -------------------------------------------------------------------------------- 1 | {"animation":{"frametime": 3}} -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/tags/block/needs_cursed_diamond_tool.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [] 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/cursed_diamond.png.mcmeta: -------------------------------------------------------------------------------- 1 | {"animation":{"frametime": 2}} -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/cursed_diamond_e.png.mcmeta: -------------------------------------------------------------------------------- 1 | {"animation":{"frametime": 2}} -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/cursed_dust_e.png.mcmeta: -------------------------------------------------------------------------------- 1 | {"animation":{"frametime": 3}} -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/purified_diamond.png.mcmeta: -------------------------------------------------------------------------------- 1 | {"animation":{"frametime": 4}} -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/purified_diamond_e.png.mcmeta: -------------------------------------------------------------------------------- 1 | {"animation":{"frametime": 4}} -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/purified_diamond_block.png.mcmeta: -------------------------------------------------------------------------------- 1 | {"animation":{"frametime": 4}} -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/purified_diamond_block_e.png.mcmeta: -------------------------------------------------------------------------------- 1 | {"animation":{"frametime": 4}} -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/survivor_spawn_egg.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/template_spawn_egg" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/herobrine_mage_spawn_egg.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/template_spawn_egg" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/herobrine_spy_spawn_egg.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/template_spawn_egg" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/infected_axolotl_spawn_egg.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/template_spawn_egg" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/infected_bat_spawn_egg.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/template_spawn_egg" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/infected_camel_spawn_egg.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/template_spawn_egg" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/infected_chicken_spawn_egg.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/template_spawn_egg" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/infected_cow_spawn_egg.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/template_spawn_egg" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/infected_donkey_spawn_egg.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/template_spawn_egg" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/infected_fox_spawn_egg.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/template_spawn_egg" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/infected_horse_spawn_egg.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/template_spawn_egg" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/infected_llama_spawn_egg.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/template_spawn_egg" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/infected_ocelot_spawn_egg.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/template_spawn_egg" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/infected_pig_spawn_egg.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/template_spawn_egg" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/infected_rabbit_spawn_egg.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/template_spawn_egg" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/infected_sheep_spawn_egg.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/template_spawn_egg" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/infected_wolf_spawn_egg.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/template_spawn_egg" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/herobrine_altar_purified_particle.png.mcmeta: -------------------------------------------------------------------------------- 1 | {"animation":{"frametime": 4}} -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/herobrine_altar_purified_particle_e.png.mcmeta: -------------------------------------------------------------------------------- 1 | {"animation":{"frametime": 4}} -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/herobrine_builder_spawn_egg.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/template_spawn_egg" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/herobrine_stalker_spawn_egg.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/template_spawn_egg" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/herobrine_warrior_spawn_egg.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/template_spawn_egg" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/infected_armadillo_spawn_egg.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/template_spawn_egg" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/infected_mooshroom_spawn_egg.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/template_spawn_egg" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/infected_villager_spawn_egg.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/template_spawn_egg" 3 | } -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/cursed_diamond_block.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "herobrine:block/cursed_diamond_block" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/purified_diamond_block.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "herobrine:block/purified_diamond_block" 3 | } -------------------------------------------------------------------------------- /src/main/resources/data/c/tags/item/music_discs.json: -------------------------------------------------------------------------------- 1 | { 2 | "replace": false, 3 | "values": [ 4 | "herobrine:music_disc_dog" 5 | ] 6 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/tags/worldgen/biome/has_structure/sand_pyramid.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "#minecraft:is_ocean" 4 | ] 5 | } -------------------------------------------------------------------------------- /src/main/resources/data/minecraft/tags/item/axes.json: -------------------------------------------------------------------------------- 1 | { 2 | "replace": false, 3 | "values": [ 4 | "herobrine:cursed_diamond_axe" 5 | ] 6 | } -------------------------------------------------------------------------------- /src/main/resources/data/minecraft/tags/item/hoes.json: -------------------------------------------------------------------------------- 1 | { 2 | "replace": false, 3 | "values": [ 4 | "herobrine:cursed_diamond_hoe" 5 | ] 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/logo.png -------------------------------------------------------------------------------- /src/main/resources/data/minecraft/tags/entity_type/aquatic.json: -------------------------------------------------------------------------------- 1 | { 2 | "replace": false, 3 | "values": [ 4 | "herobrine:infected_axolotl" 5 | ] 6 | } -------------------------------------------------------------------------------- /src/main/resources/data/minecraft/tags/item/pickaxes.json: -------------------------------------------------------------------------------- 1 | { 2 | "replace": false, 3 | "values": [ 4 | "herobrine:cursed_diamond_pickaxe" 5 | ] 6 | } -------------------------------------------------------------------------------- /src/main/resources/data/minecraft/tags/item/shovels.json: -------------------------------------------------------------------------------- 1 | { 2 | "replace": false, 3 | "values": [ 4 | "herobrine:cursed_diamond_shovel" 5 | ] 6 | } -------------------------------------------------------------------------------- /src/main/resources/data/minecraft/tags/entity_type/wither_friends.json: -------------------------------------------------------------------------------- 1 | { 2 | "replace": false, 3 | "values": [ 4 | "#herobrine:is_herobrine" 5 | ] 6 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/tags/block/incorrect_for_cursed_diamond_tool.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "#minecraft:incorrect_for_diamond_tool" 4 | ] 5 | } -------------------------------------------------------------------------------- /src/main/resources/data/minecraft/tags/worldgen/biome/is_forest.json: -------------------------------------------------------------------------------- 1 | { 2 | "replace": false, 3 | "values": [ 4 | "herobrine:cursed_forest" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/data/minecraft/tags/worldgen/biome/is_overworld.json: -------------------------------------------------------------------------------- 1 | { 2 | "replace": false, 3 | "values": [ 4 | "herobrine:cursed_forest" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/blockstates/cursed_diamond_block.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { "model": "herobrine:block/cursed_diamond_block" } 4 | } 5 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/tags/worldgen/biome/has_structure/ruined_shrine.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "#minecraft:has_structure/woodland_mansion" 4 | ] 5 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/blockstates/purified_diamond_block.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "": { "model": "herobrine:block/purified_diamond_block" } 4 | } 5 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/cursed_dust.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "herobrine:item/cursed_dust" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/holy_water.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "herobrine:item/holy_water" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/bedrock_sword.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/handheld", 3 | "textures": { 4 | "layer0": "herobrine:item/bedrock_sword" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/unholy_water.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "herobrine:item/unholy_water" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/tags/item/activates_herobrine_altar.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "herobrine:cursed_diamond", 4 | "herobrine:purified_diamond" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/cursed_diamond.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "herobrine:item/cursed_diamond" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/herobrine_altar.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "herobrine:item/herobrine_altar" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/herobrine_statue.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "herobrine:item/herobrine_statue" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/music_disc_dog.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "herobrine:item/music_disc_dog" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/sounds/records/dog.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/sounds/records/dog.ogg -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/signs/lore1.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/signs/lore1.nbt -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/signs/lore2.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/signs/lore2.nbt -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/signs/lore3.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/signs/lore3.nbt -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/signs/lore4.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/signs/lore4.nbt -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/signs/lore5.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/signs/lore5.nbt -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/signs/lore6.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/signs/lore6.nbt -------------------------------------------------------------------------------- /src/main/resources/data/minecraft/tags/item/swords.json: -------------------------------------------------------------------------------- 1 | { 2 | "replace": false, 3 | "values": [ 4 | "herobrine:bedrock_sword", 5 | "herobrine:cursed_diamond_sword" 6 | ] 7 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/cursed_diamond_axe.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/handheld", 3 | "textures": { 4 | "layer0": "herobrine:item/cursed_diamond_axe" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/cursed_diamond_hoe.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/handheld", 3 | "textures": { 4 | "layer0": "herobrine:item/cursed_diamond_hoe" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/purified_diamond.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "herobrine:item/purified_diamond" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/dirt_structure.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/dirt_structure.nbt -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/ruined_shrine.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/ruined_shrine.nbt -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/sand_pyramid.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/sand_pyramid.nbt -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/sand_structure.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/sand_structure.nbt -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/signs/normal1.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/signs/normal1.nbt -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/signs/normal2.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/signs/normal2.nbt -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/signs/normal3.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/signs/normal3.nbt -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/survivor_base.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/survivor_base.nbt -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/trapped_house.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/trapped_house.nbt -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/block/cursed_diamond_block.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/cube_all", 3 | "textures": { 4 | "all": "herobrine:block/cursed_diamond_block" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/cursed_diamond_boots.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "herobrine:item/cursed_diamond_boots" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/cursed_diamond_sword.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/handheld", 3 | "textures": { 4 | "layer0": "herobrine:item/cursed_diamond_sword" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/holy_water.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/item/holy_water.png -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/glowstone_pillar.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/glowstone_pillar.nbt -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/herobrine_statue.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/herobrine_statue.nbt -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/stone_structure.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/stone_structure.nbt -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/block/purified_diamond_block.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/cube_all", 3 | "textures": { 4 | "all": "herobrine:block/purified_diamond_block" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/cursed_diamond_helmet.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "herobrine:item/cursed_diamond_helmet" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/cursed_diamond_pickaxe.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/handheld", 3 | "textures": { 4 | "layer0": "herobrine:item/cursed_diamond_pickaxe" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/cursed_diamond_shovel.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/handheld", 3 | "textures": { 4 | "layer0": "herobrine:item/cursed_diamond_shovel" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/herobrine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/herobrine.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/bedrock_sword.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/item/bedrock_sword.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/cursed_dust.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/item/cursed_dust.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/cursed_dust_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/item/cursed_dust_e.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/unholy_water.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/item/unholy_water.png -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/end_stone_structure.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/end_stone_structure.nbt -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/ominous_mineshaft.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/ominous_mineshaft.nbt -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/red_sand_structure.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/red_sand_structure.nbt -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/ruined_shrine_alt.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/ruined_shrine_alt.nbt -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/ruined_shrine_alt_1.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/ruined_shrine_alt_1.nbt -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/ruined_shrine_alt_2.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/ruined_shrine_alt_2.nbt -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/ruined_shrine_alt_3.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/ruined_shrine_alt_3.nbt -------------------------------------------------------------------------------- /src/main/resources/data/minecraft/tags/entity_type/fall_damage_immune.json: -------------------------------------------------------------------------------- 1 | { 2 | "replace": false, 3 | "values": [ 4 | "herobrine:infected_chicken", 5 | "#herobrine:is_herobrine" 6 | ] 7 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/cursed_diamond_chestplate.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "herobrine:item/cursed_diamond_chestplate" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/models/item/cursed_diamond_leggings.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "herobrine:item/cursed_diamond_leggings" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_bat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_bat.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_cow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_cow.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_pig.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_pig.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/cursed_diamond.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/item/cursed_diamond.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/herobrine_altar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/item/herobrine_altar.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/music_disc_dog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/item/music_disc_dog.png -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/netherrack_structure.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/netherrack_structure.nbt -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/terracotta_structure.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/terracotta_structure.nbt -------------------------------------------------------------------------------- /src/main/resources/data/minecraft/tags/entity_type/can_breathe_under_water.json: -------------------------------------------------------------------------------- 1 | { 2 | "replace": false, 3 | "values": [ 4 | "herobrine:infected_axolotl", 5 | "#herobrine:is_herobrine" 6 | ] 7 | } -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | maven { 4 | name = 'Fabric' 5 | url = 'https://maven.fabricmc.net/' 6 | } 7 | mavenCentral() 8 | gradlePluginPortal() 9 | } 10 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/herobrine_altar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/block/herobrine_altar.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/herobrine_altar_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/block/herobrine_altar_e.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/eyes/herobrine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/eyes/herobrine.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_camel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_camel.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_chicken.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_chicken.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_donkey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_donkey.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_fox/fox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_fox/fox.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_ocelot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_ocelot.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_sheep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_sheep.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/cursed_diamond_axe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/item/cursed_diamond_axe.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/cursed_diamond_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/item/cursed_diamond_e.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/cursed_diamond_hoe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/item/cursed_diamond_hoe.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/herobrine_altar_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/item/herobrine_altar_e.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/herobrine_statue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/item/herobrine_statue.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/purified_diamond.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/item/purified_diamond.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/purified_diamond_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/item/purified_diamond_e.png -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/structure/survivor_base_abandoned.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/data/herobrine/structure/survivor_base_abandoned.nbt -------------------------------------------------------------------------------- /src/main/resources/data/minecraft/tags/entity_type/powder_snow_walkable_mobs.json: -------------------------------------------------------------------------------- 1 | { 2 | "replace": false, 3 | "values": [ 4 | "herobrine:infected_rabbit", 5 | "#herobrine:is_herobrine" 6 | ] 7 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/eyes/infected_bat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/eyes/infected_bat.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/eyes/infected_cow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/eyes/infected_cow.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/eyes/infected_fox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/eyes/infected_fox.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/eyes/infected_pig.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/eyes/infected_pig.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/eyes/infected_wolf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/eyes/infected_wolf.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_armadillo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_armadillo.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_villager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_villager.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_wolf/wolf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_wolf/wolf.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/cursed_diamond_boots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/item/cursed_diamond_boots.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/cursed_diamond_sword.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/item/cursed_diamond_sword.png -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/tags/worldgen/biome/has_structure/herobrine_statue.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "#minecraft:is_hill", 4 | "#minecraft:is_mountain", 5 | "minecraft:stony_shore" 6 | ] 7 | } -------------------------------------------------------------------------------- /src/main/resources/pack.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "pack": { 3 | "pack_format": 16, 4 | "supported_formats": [16, 47], 5 | "description": "Resources and Data For The Legend of Herobrine" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/cursed_diamond_block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/block/cursed_diamond_block.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/cursed_diamond_block_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/block/cursed_diamond_block_e.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/herobrine_altar_side.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/block/herobrine_altar_side.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/herobrine_altar_side_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/block/herobrine_altar_side_e.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/herobrine_altar_spire.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/block/herobrine_altar_spire.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/purified_diamond_block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/block/purified_diamond_block.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/eyes/infected_axolotl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/eyes/infected_axolotl.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/eyes/infected_camel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/eyes/infected_camel.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/eyes/infected_chicken.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/eyes/infected_chicken.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/eyes/infected_donkey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/eyes/infected_donkey.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/eyes/infected_horse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/eyes/infected_horse.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/eyes/infected_llama.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/eyes/infected_llama.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/eyes/infected_ocelot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/eyes/infected_ocelot.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/eyes/infected_sheep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/eyes/infected_sheep.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_fox/snow_fox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_fox/snow_fox.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_llama/brown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_llama/brown.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_llama/creamy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_llama/creamy.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_llama/gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_llama/gray.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_llama/white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_llama/white.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_rabbit/black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_rabbit/black.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_rabbit/brown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_rabbit/brown.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_rabbit/gold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_rabbit/gold.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_rabbit/salt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_rabbit/salt.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_rabbit/toast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_rabbit/toast.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_rabbit/white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_rabbit/white.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/survivor/amaclean04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/survivor/amaclean04.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/cursed_diamond_helmet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/item/cursed_diamond_helmet.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/cursed_diamond_leggings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/item/cursed_diamond_leggings.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/cursed_diamond_pickaxe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/item/cursed_diamond_pickaxe.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/cursed_diamond_shovel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/item/cursed_diamond_shovel.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/herobrine_altar_particle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/block/herobrine_altar_particle.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/herobrine_altar_spire_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/block/herobrine_altar_spire_e.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/purified_diamond_block_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/block/purified_diamond_block_e.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/eyes/infected_armadillo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/eyes/infected_armadillo.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/eyes/infected_mooshroom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/eyes/infected_mooshroom.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/eyes/infected_villager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/eyes/infected_villager.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_red_mooshroom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_red_mooshroom.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/item/cursed_diamond_chestplate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/item/cursed_diamond_chestplate.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/herobrine_altar_particle_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/block/herobrine_altar_particle_e.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/herobrine_statue/top/body.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/block/herobrine_statue/top/body.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/herobrine_statue/top/head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/block/herobrine_statue/top/head.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_brown_mooshroom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_brown_mooshroom.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_horse/horse_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_horse/horse_black.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_horse/horse_brown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_horse/horse_brown.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_horse/horse_gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_horse/horse_gray.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_horse/horse_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_horse/horse_white.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_rabbit/caerbannog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_rabbit/caerbannog.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_wolf/wolf_ashen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_wolf/wolf_ashen.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_wolf/wolf_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_wolf/wolf_black.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_wolf/wolf_rusty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_wolf/wolf_rusty.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_wolf/wolf_snowy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_wolf/wolf_snowy.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_wolf/wolf_spotted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_wolf/wolf_spotted.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_wolf/wolf_striped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_wolf/wolf_striped.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_wolf/wolf_woods.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_wolf/wolf_woods.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/herobrine_statue/bottom/body.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/block/herobrine_statue/bottom/body.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/herobrine_statue/top/left_arm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/block/herobrine_statue/top/left_arm.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/herobrine_statue/top/particle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/block/herobrine_statue/top/particle.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_horse/horse_creamy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_horse/horse_creamy.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_wolf/wolf_chestnut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_wolf/wolf_chestnut.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/models/armor/cursed_diamond_layer_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/models/armor/cursed_diamond_layer_1.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/models/armor/cursed_diamond_layer_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/models/armor/cursed_diamond_layer_2.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/herobrine_altar_active_particle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/block/herobrine_altar_active_particle.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/herobrine_statue/bottom/left_arm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/block/herobrine_statue/bottom/left_arm.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/herobrine_statue/bottom/left_leg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/block/herobrine_statue/bottom/left_leg.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/herobrine_statue/bottom/particle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/block/herobrine_statue/bottom/particle.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/herobrine_statue/top/right_arm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/block/herobrine_statue/top/right_arm.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/eyes/infected_rabbit/caerbannog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/eyes/infected_rabbit/caerbannog.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_axolotl/axolotl_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_axolotl/axolotl_blue.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_axolotl/axolotl_cyan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_axolotl/axolotl_cyan.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_axolotl/axolotl_gold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_axolotl/axolotl_gold.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_axolotl/axolotl_lucy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_axolotl/axolotl_lucy.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_axolotl/axolotl_wild.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_axolotl/axolotl_wild.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_horse/horse_chestnut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_horse/horse_chestnut.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_horse/horse_darkbrown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_horse/horse_darkbrown.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/infected_rabbit/white_splotched.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/infected_rabbit/white_splotched.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/herobrine_altar_active_particle_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/block/herobrine_altar_active_particle_e.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/herobrine_altar_purified_particle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/block/herobrine_altar_purified_particle.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/herobrine_statue/bottom/right_arm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/block/herobrine_statue/bottom/right_arm.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/herobrine_statue/bottom/right_leg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/block/herobrine_statue/bottom/right_leg.png -------------------------------------------------------------------------------- /src/main/resources/data/minecraft/tags/block/needs_iron_tool.json: -------------------------------------------------------------------------------- 1 | { 2 | "replace": false, 3 | "values": [ 4 | "herobrine:cursed_diamond_block", 5 | "herobrine:purified_diamond_block", 6 | "herobrine:herobrine_altar" 7 | ] 8 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/sounds/blocks/herobrine_altar/herobrine_altar_cursed.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/sounds/blocks/herobrine_altar/herobrine_altar_cursed.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/block/herobrine_altar_purified_particle_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/block/herobrine_altar_purified_particle_e.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/textures/entity/eyes/infected_rabbit/infected_rabbit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/textures/entity/eyes/infected_rabbit/infected_rabbit.png -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/sounds/blocks/herobrine_altar/herobrine_altar_purified.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alex-MacLean/TheLegendOfHerobrine/HEAD/src/main/resources/assets/herobrine/sounds/blocks/herobrine_altar/herobrine_altar_purified.ogg -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/jukebox_song/dog.json: -------------------------------------------------------------------------------- 1 | { 2 | "comparator_output": 2, 3 | "description": { 4 | "translate": "jukebox_song.herobrine.dog" 5 | }, 6 | "length_in_seconds": 145.0, 7 | "sound_event": "herobrine:music_disc_dog" 8 | } -------------------------------------------------------------------------------- /src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json: -------------------------------------------------------------------------------- 1 | { 2 | "replace": false, 3 | "values": [ 4 | "herobrine:purified_diamond_block", 5 | "herobrine:cursed_diamond_block", 6 | "herobrine:herobrine_altar", 7 | "herobrine:herobrine_statue" 8 | ] 9 | } -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/blockstates/herobrine_altar.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "type=0": { "model": "herobrine:block/herobrine_altar" }, 4 | "type=1": { "model": "herobrine:block/herobrine_altar_active" }, 5 | "type=2": { "model": "herobrine:block/herobrine_altar_purified" } 6 | } 7 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/tags/entity_type/is_herobrine.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "herobrine:herobrine_spy", 4 | "herobrine:herobrine_stalker", 5 | "herobrine:herobrine_builder", 6 | "herobrine:herobrine_mage", 7 | "herobrine:fake_herobrine_mage", 8 | "herobrine:herobrine_warrior" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/worldgen/structure_set/ruined_shrines.json: -------------------------------------------------------------------------------- 1 | { 2 | "placement": { 3 | "type": "minecraft:random_spread", 4 | "salt": 714062189, 5 | "separation": 4, 6 | "spacing": 8 7 | }, 8 | "structures": [ 9 | { 10 | "structure": "herobrine:ruined_shrine", 11 | "weight": 1 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/worldgen/structure_set/sand_pyramids.json: -------------------------------------------------------------------------------- 1 | { 2 | "placement": { 3 | "type": "minecraft:random_spread", 4 | "salt": 833151764, 5 | "separation": 16, 6 | "spacing": 32 7 | }, 8 | "structures": [ 9 | { 10 | "structure": "herobrine:sand_pyramid", 11 | "weight": 1 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/worldgen/structure_set/survivor_bases.json: -------------------------------------------------------------------------------- 1 | { 2 | "placement": { 3 | "type": "minecraft:random_spread", 4 | "salt": 1449455864, 5 | "separation": 32, 6 | "spacing": 64 7 | }, 8 | "structures": [ 9 | { 10 | "structure": "herobrine:survivor_base", 11 | "weight": 1 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/worldgen/structure_set/trapped_houses.json: -------------------------------------------------------------------------------- 1 | { 2 | "placement": { 3 | "type": "minecraft:random_spread", 4 | "salt": 5775049403, 5 | "separation": 20, 6 | "spacing": 64 7 | }, 8 | "structures": [ 9 | { 10 | "structure": "herobrine:trapped_house", 11 | "weight": 1 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/worldgen/structure_set/herobrine_statues.json: -------------------------------------------------------------------------------- 1 | { 2 | "placement": { 3 | "type": "minecraft:random_spread", 4 | "salt": 1594947916, 5 | "separation": 4, 6 | "spacing": 10 7 | }, 8 | "structures": [ 9 | { 10 | "structure": "herobrine:herobrine_statue", 11 | "weight": 1 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this mod 4 | title: '' 5 | labels: enhancement 6 | assignees: Alex-MacLean 7 | 8 | --- 9 | 10 | **Description** 11 | A clear and concise description of what you would like implemented 12 | 13 | **Concept Art** 14 | If possible please add any concept designs or concept art you have created 15 | -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/recipe/cursed_diamond_from_block.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shapeless", 3 | "category": "misc", 4 | "group": "cursed_diamond", 5 | "ingredients": [ 6 | { 7 | "item": "herobrine:cursed_diamond_block" 8 | } 9 | ], 10 | "result": { 11 | "id": "herobrine:cursed_diamond", 12 | "count": 9 13 | }, 14 | "show_notification": true 15 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/recipe/purified_diamond_from_block.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shapeless", 3 | "category": "misc", 4 | "group": "purified_diamond", 5 | "ingredients": [ 6 | { 7 | "item": "herobrine:purified_diamond_block" 8 | } 9 | ], 10 | "result": { 11 | "id": "herobrine:purified_diamond", 12 | "count": 9 13 | }, 14 | "show_notification": true 15 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/recipe/cursed_diamond_boots.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "equipment", 4 | "pattern": [ 5 | "A A", 6 | "A A" 7 | ], 8 | "key": { 9 | "A": { 10 | "item": "herobrine:cursed_diamond" 11 | } 12 | }, 13 | "result": { 14 | "id": "herobrine:cursed_diamond_boots", 15 | "count": 1 16 | }, 17 | "show_notification": true 18 | } -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/items/material/ToolMaterialList.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.items.material; 2 | 3 | import net.minecraft.item.ToolMaterial; 4 | 5 | public class ToolMaterialList { 6 | // Initialize tool materials 7 | public static final ToolMaterial BEDROCK = new BedrockToolMaterial(); 8 | public static final ToolMaterial CURSED_DIAMOND = new CursedDiamondToolMaterial(); 9 | } 10 | -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/recipe/cursed_diamond_helmet.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "equipment", 4 | "pattern": [ 5 | "AAA", 6 | "A A" 7 | ], 8 | "key": { 9 | "A": { 10 | "item": "herobrine:cursed_diamond" 11 | } 12 | }, 13 | "result": { 14 | "id": "herobrine:cursed_diamond_helmet", 15 | "count": 1 16 | }, 17 | "show_notification": true 18 | } -------------------------------------------------------------------------------- /src/main/resources/herobrine.accesswidener: -------------------------------------------------------------------------------- 1 | accessWidener v1 named 2 | 3 | accessible method net/minecraft/entity/passive/HorseEntity setHorseVariant (Lnet/minecraft/entity/passive/HorseColor;Lnet/minecraft/entity/passive/HorseMarking;)V 4 | accessible method net/minecraft/block/TallPlantBlock onBreakInCreative (Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;Lnet/minecraft/entity/player/PlayerEntity;)V -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/worldgen/configured_feature/cursed_forest_trees.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:random_selector", 3 | "config": { 4 | "default": "herobrine:cursed_oak", 5 | "features": [ 6 | { 7 | "chance": 0.2, 8 | "feature": "herobrine:cursed_birch" 9 | }, 10 | { 11 | "chance": 0.1, 12 | "feature": "herobrine:cursed_fancy_oak" 13 | } 14 | ] 15 | } 16 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/recipe/cursed_diamond_block.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "building", 4 | "pattern": [ 5 | "AAA", 6 | "AAA", 7 | "AAA" 8 | ], 9 | "key": { 10 | "A": { 11 | "item": "herobrine:cursed_diamond" 12 | } 13 | }, 14 | "result": { 15 | "id": "herobrine:cursed_diamond_block", 16 | "count": 1 17 | }, 18 | "show_notification": true 19 | } 20 | -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/recipe/purified_diamond_block.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "building", 4 | "pattern": [ 5 | "AAA", 6 | "AAA", 7 | "AAA" 8 | ], 9 | "key": { 10 | "A": { 11 | "item": "herobrine:purified_diamond" 12 | } 13 | }, 14 | "result": { 15 | "id": "herobrine:purified_diamond_block", 16 | "count": 1 17 | }, 18 | "show_notification": true 19 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/recipe/cursed_diamond_chestplate.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "equipment", 4 | "pattern": [ 5 | "A A", 6 | "AAA", 7 | "AAA" 8 | ], 9 | "key": { 10 | "A": { 11 | "item": "herobrine:cursed_diamond" 12 | } 13 | }, 14 | "result": { 15 | "id": "herobrine:cursed_diamond_chestplate", 16 | "count": 1 17 | }, 18 | "show_notification": true 19 | } -------------------------------------------------------------------------------- /src/main/resources/herobrine.mixins.json: -------------------------------------------------------------------------------- 1 | { 2 | "required": true, 3 | "minVersion": "0.8.5", 4 | "package": "com.herobrinemod.herobrine.mixin", 5 | "compatibilityLevel": "JAVA_21", 6 | "mixins": [ 7 | "BlockMixin", 8 | "CrashReportMixin", 9 | "LivingEntityMixin", 10 | "PotionEntityMixin", 11 | "ServerWorldMixin", 12 | "VanillaBiomeParametersMixin" 13 | ], 14 | "injectors": { 15 | "defaultRequire": 1 16 | } 17 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/worldgen/template_pool/sand_pyramid.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "herobrine:sand_pyramid", 3 | "fallback": "minecraft:empty", 4 | "elements": [ 5 | { 6 | "weight": 1, 7 | "element": { 8 | "element_type": "minecraft:single_pool_element", 9 | "location": "herobrine:sand_pyramid", 10 | "projection": "rigid", 11 | "processors": "minecraft:empty" 12 | } 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/recipe/purified_diamond.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shapeless", 3 | "category": "misc", 4 | "group": "purified_diamond", 5 | "ingredients": [ 6 | { 7 | "item": "herobrine:cursed_diamond" 8 | }, 9 | { 10 | "item": "herobrine:holy_water" 11 | } 12 | ], 13 | "result": { 14 | "id": "herobrine:purified_diamond", 15 | "count": 1 16 | }, 17 | "show_notification": true 18 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/worldgen/template_pool/trapped_house.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "herobrine:trapped_house", 3 | "fallback": "minecraft:empty", 4 | "elements": [ 5 | { 6 | "weight": 1, 7 | "element": { 8 | "element_type": "minecraft:single_pool_element", 9 | "location": "herobrine:trapped_house", 10 | "projection": "rigid", 11 | "processors": "minecraft:empty" 12 | } 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/worldgen/template_pool/herobrine_statue.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "herobrine:herobrine_statue", 3 | "fallback": "minecraft:empty", 4 | "elements": [ 5 | { 6 | "weight": 1, 7 | "element": { 8 | "element_type": "minecraft:single_pool_element", 9 | "location": "herobrine:herobrine_statue", 10 | "projection": "rigid", 11 | "processors": "minecraft:empty" 12 | } 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/worldgen/placed_feature/cursed_oak.json: -------------------------------------------------------------------------------- 1 | { 2 | "feature": "herobrine:cursed_oak", 3 | "placement": [ 4 | { 5 | "type": "minecraft:block_predicate_filter", 6 | "predicate": { 7 | "type": "minecraft:would_survive", 8 | "state": { 9 | "Name": "minecraft:oak_sapling", 10 | "Properties": { 11 | "stage": "0" 12 | } 13 | } 14 | } 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/worldgen/placed_feature/cursed_birch.json: -------------------------------------------------------------------------------- 1 | { 2 | "feature": "herobrine:cursed_birch", 3 | "placement": [ 4 | { 5 | "type": "minecraft:block_predicate_filter", 6 | "predicate": { 7 | "type": "minecraft:would_survive", 8 | "state": { 9 | "Name": "minecraft:birch_sapling", 10 | "Properties": { 11 | "stage": "0" 12 | } 13 | } 14 | } 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/worldgen/placed_feature/cursed_fancy_oak.json: -------------------------------------------------------------------------------- 1 | { 2 | "feature": "herobrine:cursed_fancy_oak", 3 | "placement": [ 4 | { 5 | "type": "minecraft:block_predicate_filter", 6 | "predicate": { 7 | "type": "minecraft:would_survive", 8 | "state": { 9 | "Name": "minecraft:oak_sapling", 10 | "Properties": { 11 | "stage": "0" 12 | } 13 | } 14 | } 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # gradle 2 | 3 | .gradle/ 4 | build/ 5 | out/ 6 | classes/ 7 | 8 | # eclipse 9 | 10 | *.launch 11 | 12 | # idea 13 | 14 | .idea/ 15 | *.iml 16 | *.ipr 17 | *.iws 18 | 19 | # vscode 20 | 21 | .settings/ 22 | .vscode/ 23 | bin/ 24 | .classpath 25 | .project 26 | 27 | # macos 28 | 29 | *.DS_Store 30 | 31 | # fabric 32 | 33 | run/ 34 | 35 | # java 36 | 37 | hs_err_*.log 38 | replay_*.log 39 | *.hprof 40 | *.jfr 41 | 42 | # github 43 | 44 | .github/ 45 | .git/ 46 | -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/recipe/unholy_water.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "misc", 4 | "pattern": [ 5 | "AAA", 6 | "ABA", 7 | "AAA" 8 | ], 9 | "key": { 10 | "A": { 11 | "item": "herobrine:cursed_dust" 12 | }, 13 | "B": { 14 | "item": "herobrine:holy_water" 15 | } 16 | }, 17 | "result": { 18 | "id": "herobrine:unholy_water", 19 | "count": 1 20 | }, 21 | "show_notification": true 22 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/recipe/herobrine_statue.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "building", 4 | "pattern": [ 5 | " B ", 6 | "BAB", 7 | " A " 8 | ], 9 | "key": { 10 | "A": { 11 | "item": "minecraft:stone" 12 | }, 13 | "B": { 14 | "item": "minecraft:stone_slab" 15 | } 16 | }, 17 | "result": { 18 | "id": "herobrine:herobrine_statue", 19 | "count": 1 20 | }, 21 | "show_notification": true 22 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/recipe/cursed_diamond_hoe.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "equipment", 4 | "pattern": [ 5 | "AA", 6 | " B", 7 | " B" 8 | ], 9 | "key": { 10 | "A": { 11 | "item": "herobrine:cursed_diamond" 12 | }, 13 | "B": { 14 | "item": "minecraft:stick" 15 | } 16 | }, 17 | "result": { 18 | "id": "herobrine:cursed_diamond_hoe", 19 | "count": 1 20 | }, 21 | "show_notification": true 22 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/recipe/cursed_diamond_sword.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "equipment", 4 | "pattern": [ 5 | "A", 6 | "A", 7 | "B" 8 | ], 9 | "key": { 10 | "A": { 11 | "item": "herobrine:cursed_diamond" 12 | }, 13 | "B": { 14 | "item": "minecraft:stick" 15 | } 16 | }, 17 | "result": { 18 | "id": "herobrine:cursed_diamond_sword", 19 | "count": 1 20 | }, 21 | "show_notification": true 22 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/recipe/cursed_diamond_axe.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "equipment", 4 | "pattern": [ 5 | "AA", 6 | "AB", 7 | " B" 8 | ], 9 | "key": { 10 | "A": { 11 | "item": "herobrine:cursed_diamond" 12 | }, 13 | "B": { 14 | "item": "minecraft:stick" 15 | } 16 | }, 17 | "result": { 18 | "id": "herobrine:cursed_diamond_axe", 19 | "count": 1 20 | }, 21 | "show_notification": true 22 | } 23 | -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/recipe/cursed_diamond_leggings.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "equipment", 4 | "pattern": [ 5 | "AAA", 6 | "A A", 7 | "A A" 8 | ], 9 | "key": { 10 | "A": { 11 | "item": "herobrine:cursed_diamond" 12 | } 13 | }, 14 | "result": { 15 | "id": "herobrine:cursed_diamond_leggings", 16 | "count": 1 17 | }, 18 | "show_notification": true 19 | } 20 | -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/recipe/cursed_diamond_shovel.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "equipment", 4 | "pattern": [ 5 | "A", 6 | "B", 7 | "B" 8 | ], 9 | "key": { 10 | "A": { 11 | "item": "herobrine:cursed_diamond" 12 | }, 13 | "B": { 14 | "item": "minecraft:stick" 15 | } 16 | }, 17 | "result": { 18 | "id": "herobrine:cursed_diamond_shovel", 19 | "count": 1 20 | }, 21 | "show_notification": true 22 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/recipe/cursed_diamond_pickaxe.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "equipment", 4 | "pattern": [ 5 | "AAA", 6 | " B ", 7 | " B " 8 | ], 9 | "key": { 10 | "A": { 11 | "item": "herobrine:cursed_diamond" 12 | }, 13 | "B": { 14 | "item": "minecraft:stick" 15 | } 16 | }, 17 | "result": { 18 | "id": "herobrine:cursed_diamond_pickaxe", 19 | "count": 1 20 | }, 21 | "show_notification": true 22 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/worldgen/structure/ruined_shrine.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:jigsaw", 3 | "biomes": "#herobrine:has_structure/ruined_shrine", 4 | "step": "surface_structures", 5 | "spawn_overrides": {}, 6 | "terrain_adaptation": "none", 7 | "start_pool": "herobrine:ruined_shrine", 8 | "size": 1, 9 | "start_height": { 10 | "absolute": 0 11 | }, 12 | "project_start_to_heightmap": "WORLD_SURFACE_WG", 13 | "max_distance_from_center": 80, 14 | "use_expansion_hack": false 15 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/worldgen/structure/sand_pyramid.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:jigsaw", 3 | "biomes": "#herobrine:has_structure/sand_pyramid", 4 | "step": "surface_structures", 5 | "spawn_overrides": {}, 6 | "terrain_adaptation": "none", 7 | "start_pool": "herobrine:sand_pyramid", 8 | "size": 1, 9 | "start_height": { 10 | "absolute": 1 11 | }, 12 | "project_start_to_heightmap": "WORLD_SURFACE_WG", 13 | "max_distance_from_center": 80, 14 | "use_expansion_hack": false 15 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/recipe/cursed_diamond.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "misc", 4 | "group": "cursed_diamond", 5 | "pattern": [ 6 | "AAA", 7 | "ABA", 8 | "AAA" 9 | ], 10 | "key": { 11 | "A": { 12 | "item": "herobrine:cursed_dust" 13 | }, 14 | "B": { 15 | "item": "minecraft:diamond" 16 | } 17 | }, 18 | "result": { 19 | "id": "herobrine:cursed_diamond", 20 | "count": 1 21 | }, 22 | "show_notification": true 23 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/worldgen/structure/herobrine_statue.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:jigsaw", 3 | "biomes": "#herobrine:has_structure/herobrine_statue", 4 | "step": "surface_structures", 5 | "spawn_overrides": {}, 6 | "terrain_adaptation": "none", 7 | "start_pool": "herobrine:herobrine_statue", 8 | "size": 1, 9 | "start_height": { 10 | "absolute": 1 11 | }, 12 | "project_start_to_heightmap": "WORLD_SURFACE_WG", 13 | "max_distance_from_center": 80, 14 | "use_expansion_hack": false 15 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/worldgen/structure/survivor_base.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:jigsaw", 3 | "biomes": "#herobrine:has_structure/survivor_base", 4 | "step": "surface_structures", 5 | "spawn_overrides": {}, 6 | "terrain_adaptation": "beard_thin", 7 | "start_pool": "herobrine:survivor_base", 8 | "size": 1, 9 | "start_height": { 10 | "absolute": 0 11 | }, 12 | "project_start_to_heightmap": "WORLD_SURFACE_WG", 13 | "max_distance_from_center": 80, 14 | "use_expansion_hack": false 15 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/worldgen/structure/trapped_house.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:jigsaw", 3 | "biomes": "#herobrine:has_structure/trapped_house", 4 | "step": "surface_structures", 5 | "spawn_overrides": {}, 6 | "terrain_adaptation": "beard_thin", 7 | "start_pool": "herobrine:trapped_house", 8 | "size": 1, 9 | "start_height": { 10 | "absolute": 0 11 | }, 12 | "project_start_to_heightmap": "WORLD_SURFACE_WG", 13 | "max_distance_from_center": 80, 14 | "use_expansion_hack": false 15 | } -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/items/ItemTagList.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.items; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import net.minecraft.item.Item; 5 | import net.minecraft.registry.RegistryKeys; 6 | import net.minecraft.registry.tag.TagKey; 7 | import net.minecraft.util.Identifier; 8 | 9 | public class ItemTagList { 10 | public static final TagKey ACTIVATES_HEROBRINE_ALTAR = TagKey.of(RegistryKeys.ITEM, Identifier.of(HerobrineMod.MODID, "activates_herobrine_altar")); 11 | } -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/worldgen/BiomeKeyList.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.worldgen; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import net.minecraft.registry.RegistryKey; 5 | import net.minecraft.registry.RegistryKeys; 6 | import net.minecraft.util.Identifier; 7 | import net.minecraft.world.biome.Biome; 8 | 9 | public class BiomeKeyList { 10 | public static final RegistryKey CURSED_FOREST = RegistryKey.of(RegistryKeys.BIOME, Identifier.of(HerobrineMod.MODID, "cursed_forest")); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/loot_table/blocks/cursed_diamond_block.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "name": "pool1", 6 | "rolls": 1, 7 | "entries": [ 8 | { 9 | "type": "minecraft:item", 10 | "name": "herobrine:cursed_diamond_block" 11 | } 12 | ], 13 | "conditions": [ 14 | { 15 | "condition": "minecraft:survives_explosion" 16 | } 17 | ] 18 | } 19 | ], 20 | "random_sequence": "herobrine:blocks/cursed_diamond_block" 21 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/recipe/herobrine_altar.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shaped", 3 | "category": "building", 4 | "pattern": [ 5 | "A A", 6 | "ABA", 7 | "CCC" 8 | ], 9 | "key": { 10 | "A": { 11 | "item": "minecraft:blaze_rod" 12 | }, 13 | "B": { 14 | "item": "minecraft:diamond" 15 | }, 16 | "C": { 17 | "item": "minecraft:gold_ingot" 18 | } 19 | }, 20 | "result": { 21 | "id": "herobrine:herobrine_altar", 22 | "count": 1 23 | }, 24 | "show_notification": true 25 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/loot_table/blocks/purified_diamond_block.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "name": "pool1", 6 | "rolls": 1, 7 | "entries": [ 8 | { 9 | "type": "minecraft:item", 10 | "name": "herobrine:purified_diamond_block" 11 | } 12 | ], 13 | "conditions": [ 14 | { 15 | "condition": "minecraft:survives_explosion" 16 | } 17 | ] 18 | } 19 | ], 20 | "random_sequence": "herobrine:blocks/purified_diamond_block" 21 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/sounds.json: -------------------------------------------------------------------------------- 1 | { 2 | "music_disc_dog": { 3 | "sounds": [ 4 | { 5 | "name": "herobrine:records/dog", 6 | "stream": true 7 | } 8 | ] 9 | }, 10 | "herobrine_altar_cursed": { 11 | "sounds": [ 12 | { 13 | "name": "herobrine:blocks/herobrine_altar/herobrine_altar_cursed" 14 | } 15 | ] 16 | }, 17 | "herobrine_altar_purified": { 18 | "sounds": [ 19 | { 20 | "name": "herobrine:blocks/herobrine_altar/herobrine_altar_purified" 21 | } 22 | ] 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | #Done to increase the memory available to gradle. 2 | org.gradle.jvmargs=-Xmx4G 3 | #Enable multithreading in gradle 4 | org.gradle.parallel=true 5 | 6 | #Fabric properties 7 | #Check these on https://modmuss50.me/fabric.html 8 | minecraft_version=1.21.1 9 | yarn_mappings=1.21.1+build.3 10 | loader_version=0.16.14 11 | loom_version=1.11-SNAPSHOT 12 | 13 | # Fabric API 14 | fabric_version=0.116.4+1.21.1 15 | 16 | #Mod properties 17 | mod_version=0.8.0 18 | maven_group=com.herobrinemod.herobrine 19 | archives_base_name=TheLegendOfHerobrine-Fabric 20 | mod_id=herobrine 21 | 22 | #Dependencies 23 | modmenu_version=11.0.3 -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/models/InfectedCowEntityModel.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.models; 2 | 3 | import com.herobrinemod.herobrine.entities.InfectedCowEntity; 4 | import net.fabricmc.api.EnvType; 5 | import net.fabricmc.api.Environment; 6 | import net.minecraft.client.model.ModelPart; 7 | import net.minecraft.client.render.entity.model.CowEntityModel; 8 | 9 | @Environment(EnvType.CLIENT) 10 | public class InfectedCowEntityModel extends CowEntityModel { 11 | public InfectedCowEntityModel(ModelPart root) { 12 | super(root); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/component/DataComponentTypeList.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.component; 2 | 3 | import net.minecraft.component.ComponentType; 4 | import net.minecraft.network.codec.PacketCodecs; 5 | import net.minecraft.registry.Registries; 6 | import net.minecraft.registry.Registry; 7 | import net.minecraft.util.dynamic.Codecs; 8 | 9 | public class DataComponentTypeList { 10 | public static final ComponentType KILLS = Registry.register(Registries.DATA_COMPONENT_TYPE, "kills", new ComponentType.Builder().codec(Codecs.NONNEGATIVE_INT).packetCodec(PacketCodecs.VAR_INT).build()); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/models/InfectedChickenEntityModel.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.models; 2 | 3 | import com.herobrinemod.herobrine.entities.InfectedChickenEntity; 4 | import net.fabricmc.api.EnvType; 5 | import net.fabricmc.api.Environment; 6 | import net.minecraft.client.model.ModelPart; 7 | import net.minecraft.client.render.entity.model.ChickenEntityModel; 8 | 9 | @Environment(EnvType.CLIENT) 10 | public class InfectedChickenEntityModel extends ChickenEntityModel { 11 | public InfectedChickenEntityModel(ModelPart root) { 12 | super(root); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/models/InfectedLlamaSpitEntityModel.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.models; 2 | 3 | import com.herobrinemod.herobrine.entities.InfectedLlamaSpitEntity; 4 | import net.fabricmc.api.EnvType; 5 | import net.fabricmc.api.Environment; 6 | import net.minecraft.client.model.ModelPart; 7 | import net.minecraft.client.render.entity.model.LlamaSpitEntityModel; 8 | 9 | @Environment(EnvType.CLIENT) 10 | public class InfectedLlamaSpitEntityModel extends LlamaSpitEntityModel { 11 | public InfectedLlamaSpitEntityModel(ModelPart root) { 12 | super(root); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/tags/worldgen/biome/has_structure/survivor_base.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "#minecraft:is_beach", 4 | "#minecraft:is_river", 5 | "#minecraft:is_taiga", 6 | "#minecraft:is_forest", 7 | "minecraft:mushroom_fields", 8 | "minecraft:ice_spikes", 9 | "#minecraft:is_savanna", 10 | "minecraft:snowy_plains", 11 | "minecraft:plains", 12 | "minecraft:sunflower_plains", 13 | "minecraft:swamp", 14 | "minecraft:mangrove_swamp", 15 | "#minecraft:is_badlands", 16 | "#minecraft:is_hill", 17 | "minecraft:stony_shore", 18 | "#minecraft:is_mountain", 19 | "#minecraft:is_jungle", 20 | "minecraft:desert" 21 | ] 22 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/tags/worldgen/biome/has_structure/trapped_house.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "#minecraft:is_beach", 4 | "#minecraft:is_taiga", 5 | "#minecraft:is_forest", 6 | "minecraft:mushroom_fields", 7 | "minecraft:ice_spikes", 8 | "#minecraft:is_savanna", 9 | "minecraft:snowy_plains", 10 | "minecraft:plains", 11 | "minecraft:sunflower_plains", 12 | "minecraft:swamp", 13 | "minecraft:mangrove_swamp", 14 | "#minecraft:is_badlands", 15 | "#minecraft:is_hill", 16 | "minecraft:stony_shore", 17 | "#minecraft:is_mountain", 18 | "#minecraft:is_jungle", 19 | "minecraft:desert", 20 | "minecraft:ice_spikes" 21 | ] 22 | } -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/entities/SurvivorSkinRegistry.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.entities; 2 | 3 | import net.minecraft.util.Identifier; 4 | 5 | import java.util.ArrayList; 6 | 7 | public class SurvivorSkinRegistry { 8 | // ArrayList that stores all registered Survivor skins 9 | private static final ArrayList skinList = new ArrayList<>(); 10 | 11 | // Adds a skin to skinList with the use of an Identifier 12 | public static void addSkin(Identifier skinLocation) { 13 | skinList.add(skinLocation); 14 | } 15 | 16 | // Safely access skinList 17 | public static ArrayList getSkinList() { 18 | return skinList; 19 | } 20 | } -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/blocks/BlockTagList.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.blocks; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import net.minecraft.block.Block; 5 | import net.minecraft.registry.RegistryKeys; 6 | import net.minecraft.registry.tag.TagKey; 7 | import net.minecraft.util.Identifier; 8 | 9 | public class BlockTagList { 10 | public static final TagKey INCORRECT_FOR_CURSED_DIAMOND_TOOL = TagKey.of(RegistryKeys.BLOCK, Identifier.of(HerobrineMod.MODID, "incorrect_for_cursed_diamond_tool")); 11 | public static final TagKey NEEDS_CURSED_DIAMOND_TOOL = TagKey.of(RegistryKeys.BLOCK, Identifier.of(HerobrineMod.MODID, "needs_cursed_diamond_tool")); 12 | } -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/entities/EntityTypeTagList.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.entities; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import net.minecraft.entity.EntityType; 5 | import net.minecraft.registry.RegistryKeys; 6 | import net.minecraft.registry.tag.TagKey; 7 | import net.minecraft.util.Identifier; 8 | 9 | public class EntityTypeTagList { 10 | public static final TagKey> IS_HEROBRINE = TagKey.of(RegistryKeys.ENTITY_TYPE, Identifier.of(HerobrineMod.MODID, "is_herobrine")); 11 | public static final TagKey> IS_INFECTED_BY_HEROBRINE = TagKey.of(RegistryKeys.ENTITY_TYPE, Identifier.of(HerobrineMod.MODID, "is_infected_by_herobrine")); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/tags/entity_type/is_infected_by_herobrine.json: -------------------------------------------------------------------------------- 1 | { 2 | "values": [ 3 | "herobrine:infected_axolotl", 4 | "herobrine:infected_bat", 5 | "herobrine:infected_camel", 6 | "herobrine:infected_chicken", 7 | "herobrine:infected_cow", 8 | "herobrine:infected_donkey", 9 | "herobrine:infected_horse", 10 | "herobrine:infected_llama", 11 | "herobrine:infected_mooshroom", 12 | "herobrine:infected_pig", 13 | "herobrine:infected_rabbit", 14 | "herobrine:infected_sheep", 15 | "herobrine:infected_villager", 16 | "herobrine:infected_wolf", 17 | "herobrine:infected_armadillo", 18 | "herobrine:infected_ocelot", 19 | "herobrine:infected_fox" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/worldgen/template_pool/survivor_base.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "herobrine:survivor_base", 3 | "fallback": "minecraft:empty", 4 | "elements": [ 5 | { 6 | "weight": 10, 7 | "element": { 8 | "element_type": "minecraft:single_pool_element", 9 | "location": "herobrine:survivor_base", 10 | "projection": "rigid", 11 | "processors": "minecraft:empty" 12 | } 13 | }, 14 | { 15 | "weight": 1, 16 | "element": { 17 | "element_type": "minecraft:single_pool_element", 18 | "location": "herobrine:survivor_base_abandoned", 19 | "projection": "rigid", 20 | "processors": "minecraft:empty" 21 | } 22 | } 23 | ] 24 | } -------------------------------------------------------------------------------- /src/main/resources/assets/herobrine/blockstates/herobrine_statue.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "facing=north,half=lower": { "model": "herobrine:block/herobrine_statue/bottom/north" }, 4 | "facing=east,half=lower": { "model": "herobrine:block/herobrine_statue/bottom/east" }, 5 | "facing=south,half=lower": { "model": "herobrine:block/herobrine_statue/bottom/south" }, 6 | "facing=west,half=lower": { "model": "herobrine:block/herobrine_statue/bottom/west" }, 7 | "facing=north,half=upper": { "model": "herobrine:block/herobrine_statue/top/north" }, 8 | "facing=east,half=upper": { "model": "herobrine:block/herobrine_statue/top/east" }, 9 | "facing=south,half=upper": { "model": "herobrine:block/herobrine_statue/top/south" }, 10 | "facing=west,half=upper": { "model": "herobrine:block/herobrine_statue/top/west" } 11 | } 12 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/loot_table/blocks/herobrine_statue.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "bonus_rolls": 0.0, 6 | "conditions": [ 7 | { 8 | "condition": "minecraft:survives_explosion" 9 | } 10 | ], 11 | "entries": [ 12 | { 13 | "type": "minecraft:item", 14 | "conditions": [ 15 | { 16 | "block": "herobrine:herobrine_statue", 17 | "condition": "minecraft:block_state_property", 18 | "properties": { 19 | "half": "lower" 20 | } 21 | } 22 | ], 23 | "name": "herobrine:herobrine_statue" 24 | } 25 | ], 26 | "rolls": 1.0 27 | } 28 | ], 29 | "random_sequence": "herobrine:blocks/herobrine_statue" 30 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/recipe/holy_water.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shapeless", 3 | "category": "misc", 4 | "ingredients": [ 5 | { 6 | "item": "minecraft:iron_nugget" 7 | }, 8 | { 9 | "item": "minecraft:gold_nugget" 10 | }, 11 | { 12 | "item": "minecraft:iron_nugget" 13 | }, 14 | { 15 | "item": "minecraft:gold_nugget" 16 | }, 17 | { 18 | "item": "minecraft:potion" 19 | }, 20 | { 21 | "item": "minecraft:gold_nugget" 22 | }, 23 | { 24 | "item": "minecraft:iron_nugget" 25 | }, 26 | { 27 | "item": "minecraft:gold_nugget" 28 | }, 29 | { 30 | "item": "minecraft:iron_nugget" 31 | } 32 | ], 33 | "result": { 34 | "id": "herobrine:holy_water", 35 | "count": 1 36 | }, 37 | "show_notification": true 38 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/worldgen/placed_feature/cursed_forest_trees.json: -------------------------------------------------------------------------------- 1 | { 2 | "feature": "herobrine:cursed_forest_trees", 3 | "placement": [ 4 | { 5 | "type": "minecraft:count", 6 | "count": { 7 | "type": "minecraft:weighted_list", 8 | "distribution": [ 9 | { 10 | "data": 10, 11 | "weight": 9 12 | }, 13 | { 14 | "data": 11, 15 | "weight": 1 16 | } 17 | ] 18 | } 19 | }, 20 | { 21 | "type": "minecraft:in_square" 22 | }, 23 | { 24 | "type": "minecraft:surface_water_depth_filter", 25 | "max_water_depth": 0 26 | }, 27 | { 28 | "type": "minecraft:heightmap", 29 | "heightmap": "OCEAN_FLOOR" 30 | }, 31 | { 32 | "type": "minecraft:biome" 33 | } 34 | ] 35 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/recipe/cursed_dust.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:crafting_shapeless", 3 | "category": "misc", 4 | "ingredients": [ 5 | { 6 | "item": "minecraft:gold_ingot" 7 | }, 8 | { 9 | "item": "minecraft:rotten_flesh" 10 | }, 11 | { 12 | "item": "minecraft:gold_ingot" 13 | }, 14 | { 15 | "item": "minecraft:rotten_flesh" 16 | }, 17 | { 18 | "item": "minecraft:blaze_powder" 19 | }, 20 | { 21 | "item": "minecraft:rotten_flesh" 22 | }, 23 | { 24 | "item": "minecraft:gold_ingot" 25 | }, 26 | { 27 | "item": "minecraft:rotten_flesh" 28 | }, 29 | { 30 | "item": "minecraft:gold_ingot" 31 | } 32 | ], 33 | "result": { 34 | "id": "herobrine:cursed_dust", 35 | "count": 4 36 | }, 37 | "show_notification": true 38 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/advancements/recipes/tools/cursed_diamond_axe.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_cursed_diamond": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": [ 9 | "herobrine:cursed_diamond" 10 | ] 11 | } 12 | ] 13 | }, 14 | "trigger": "minecraft:inventory_changed" 15 | }, 16 | "has_the_recipe": { 17 | "conditions": { 18 | "recipe": "herobrine:cursed_diamond_axe" 19 | }, 20 | "trigger": "minecraft:recipe_unlocked" 21 | } 22 | }, 23 | "requirements": [ 24 | [ 25 | "has_cursed_diamond", 26 | "has_the_recipe" 27 | ] 28 | ], 29 | "rewards": { 30 | "recipes": [ 31 | "herobrine:cursed_diamond_axe" 32 | ] 33 | }, 34 | "sends_telemetry_event": false 35 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/advancements/recipes/tools/cursed_diamond_hoe.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_cursed_diamond": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": [ 9 | "herobrine:cursed_diamond" 10 | ] 11 | } 12 | ] 13 | }, 14 | "trigger": "minecraft:inventory_changed" 15 | }, 16 | "has_the_recipe": { 17 | "conditions": { 18 | "recipe": "herobrine:cursed_diamond_hoe" 19 | }, 20 | "trigger": "minecraft:recipe_unlocked" 21 | } 22 | }, 23 | "requirements": [ 24 | [ 25 | "has_cursed_diamond", 26 | "has_the_recipe" 27 | ] 28 | ], 29 | "rewards": { 30 | "recipes": [ 31 | "herobrine:cursed_diamond_hoe" 32 | ] 33 | }, 34 | "sends_telemetry_event": false 35 | } -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/sounds/SoundList.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.sounds; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import net.minecraft.sound.SoundEvent; 5 | import net.minecraft.util.Identifier; 6 | 7 | public class SoundList { 8 | public static final Identifier MUSIC_DISC_DOG = Identifier.of(HerobrineMod.MODID, "music_disc_dog"); 9 | public static final Identifier HEROBRINE_ALTAR_CURSED_IDENTIFIER = Identifier.of(HerobrineMod.MODID, "herobrine_altar_cursed"); 10 | public static final SoundEvent HEROBRINE_ALTAR_CURSED = SoundEvent.of(HEROBRINE_ALTAR_CURSED_IDENTIFIER); 11 | public static final Identifier HEROBRINE_ALTAR_PURIFIED_IDENTIFIER = Identifier.of(HerobrineMod.MODID, "herobrine_altar_purified"); 12 | public static final SoundEvent HEROBRINE_ALTAR_PURIFIED = SoundEvent.of(HEROBRINE_ALTAR_PURIFIED_IDENTIFIER); 13 | } 14 | -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/advancements/recipes/combat/cursed_diamond_boots.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_cursed_diamond": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": [ 9 | "herobrine:cursed_diamond" 10 | ] 11 | } 12 | ] 13 | }, 14 | "trigger": "minecraft:inventory_changed" 15 | }, 16 | "has_the_recipe": { 17 | "conditions": { 18 | "recipe": "herobrine:cursed_diamond_boots" 19 | }, 20 | "trigger": "minecraft:recipe_unlocked" 21 | } 22 | }, 23 | "requirements": [ 24 | [ 25 | "has_cursed_diamond", 26 | "has_the_recipe" 27 | ] 28 | ], 29 | "rewards": { 30 | "recipes": [ 31 | "herobrine:cursed_diamond_boots" 32 | ] 33 | }, 34 | "sends_telemetry_event": false 35 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/advancements/recipes/combat/cursed_diamond_helmet.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_cursed_diamond": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": [ 9 | "herobrine:cursed_diamond" 10 | ] 11 | } 12 | ] 13 | }, 14 | "trigger": "minecraft:inventory_changed" 15 | }, 16 | "has_the_recipe": { 17 | "conditions": { 18 | "recipe": "herobrine:cursed_diamond_helmet" 19 | }, 20 | "trigger": "minecraft:recipe_unlocked" 21 | } 22 | }, 23 | "requirements": [ 24 | [ 25 | "has_cursed_diamond", 26 | "has_the_recipe" 27 | ] 28 | ], 29 | "rewards": { 30 | "recipes": [ 31 | "herobrine:cursed_diamond_helmet" 32 | ] 33 | }, 34 | "sends_telemetry_event": false 35 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/advancements/recipes/combat/cursed_diamond_sword.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_cursed_diamond": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": [ 9 | "herobrine:cursed_diamond" 10 | ] 11 | } 12 | ] 13 | }, 14 | "trigger": "minecraft:inventory_changed" 15 | }, 16 | "has_the_recipe": { 17 | "conditions": { 18 | "recipe": "herobrine:cursed_diamond_sword" 19 | }, 20 | "trigger": "minecraft:recipe_unlocked" 21 | } 22 | }, 23 | "requirements": [ 24 | [ 25 | "has_cursed_diamond", 26 | "has_the_recipe" 27 | ] 28 | ], 29 | "rewards": { 30 | "recipes": [ 31 | "herobrine:cursed_diamond_sword" 32 | ] 33 | }, 34 | "sends_telemetry_event": false 35 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/advancements/recipes/tools/cursed_diamond_shovel.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_cursed_diamond": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": [ 9 | "herobrine:cursed_diamond" 10 | ] 11 | } 12 | ] 13 | }, 14 | "trigger": "minecraft:inventory_changed" 15 | }, 16 | "has_the_recipe": { 17 | "conditions": { 18 | "recipe": "herobrine:cursed_diamond_shovel" 19 | }, 20 | "trigger": "minecraft:recipe_unlocked" 21 | } 22 | }, 23 | "requirements": [ 24 | [ 25 | "has_cursed_diamond", 26 | "has_the_recipe" 27 | ] 28 | ], 29 | "rewards": { 30 | "recipes": [ 31 | "herobrine:cursed_diamond_shovel" 32 | ] 33 | }, 34 | "sends_telemetry_event": false 35 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/advancements/recipes/building_blocks/cursed_diamond_block.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_cursed_diamond": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": [ 9 | "herobrine:cursed_diamond" 10 | ] 11 | } 12 | ] 13 | }, 14 | "trigger": "minecraft:inventory_changed" 15 | }, 16 | "has_the_recipe": { 17 | "conditions": { 18 | "recipe": "herobrine:cursed_diamond_block" 19 | }, 20 | "trigger": "minecraft:recipe_unlocked" 21 | } 22 | }, 23 | "requirements": [ 24 | [ 25 | "has_cursed_diamond", 26 | "has_the_recipe" 27 | ] 28 | ], 29 | "rewards": { 30 | "recipes": [ 31 | "herobrine:cursed_diamond_block" 32 | ] 33 | }, 34 | "sends_telemetry_event": false 35 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/advancements/recipes/combat/cursed_diamond_leggings.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_cursed_diamond": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": [ 9 | "herobrine:cursed_diamond" 10 | ] 11 | } 12 | ] 13 | }, 14 | "trigger": "minecraft:inventory_changed" 15 | }, 16 | "has_the_recipe": { 17 | "conditions": { 18 | "recipe": "herobrine:cursed_diamond_leggings" 19 | }, 20 | "trigger": "minecraft:recipe_unlocked" 21 | } 22 | }, 23 | "requirements": [ 24 | [ 25 | "has_cursed_diamond", 26 | "has_the_recipe" 27 | ] 28 | ], 29 | "rewards": { 30 | "recipes": [ 31 | "herobrine:cursed_diamond_leggings" 32 | ] 33 | }, 34 | "sends_telemetry_event": false 35 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/advancements/recipes/tools/cursed_diamond_pickaxe.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_cursed_diamond": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": [ 9 | "herobrine:cursed_diamond" 10 | ] 11 | } 12 | ] 13 | }, 14 | "trigger": "minecraft:inventory_changed" 15 | }, 16 | "has_the_recipe": { 17 | "conditions": { 18 | "recipe": "herobrine:cursed_diamond_pickaxe" 19 | }, 20 | "trigger": "minecraft:recipe_unlocked" 21 | } 22 | }, 23 | "requirements": [ 24 | [ 25 | "has_cursed_diamond", 26 | "has_the_recipe" 27 | ] 28 | ], 29 | "rewards": { 30 | "recipes": [ 31 | "herobrine:cursed_diamond_pickaxe" 32 | ] 33 | }, 34 | "sends_telemetry_event": false 35 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/advancements/recipes/misc/cursed_diamond_from_block.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_cursed_diamond": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": [ 9 | "herobrine:cursed_diamond" 10 | ] 11 | } 12 | ] 13 | }, 14 | "trigger": "minecraft:inventory_changed" 15 | }, 16 | "has_the_recipe": { 17 | "conditions": { 18 | "recipe": "herobrine:cursed_diamond_from_block" 19 | }, 20 | "trigger": "minecraft:recipe_unlocked" 21 | } 22 | }, 23 | "requirements": [ 24 | [ 25 | "has_cursed_diamond", 26 | "has_the_recipe" 27 | ] 28 | ], 29 | "rewards": { 30 | "recipes": [ 31 | "herobrine:cursed_diamond_from_block" 32 | ] 33 | }, 34 | "sends_telemetry_event": false 35 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/advancements/recipes/combat/cursed_diamond_chestplate.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_cursed_diamond": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": [ 9 | "herobrine:cursed_diamond" 10 | ] 11 | } 12 | ] 13 | }, 14 | "trigger": "minecraft:inventory_changed" 15 | }, 16 | "has_the_recipe": { 17 | "conditions": { 18 | "recipe": "herobrine:cursed_diamond_chestplate" 19 | }, 20 | "trigger": "minecraft:recipe_unlocked" 21 | } 22 | }, 23 | "requirements": [ 24 | [ 25 | "has_cursed_diamond", 26 | "has_the_recipe" 27 | ] 28 | ], 29 | "rewards": { 30 | "recipes": [ 31 | "herobrine:cursed_diamond_chestplate" 32 | ] 33 | }, 34 | "sends_telemetry_event": false 35 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/advancements/recipes/building_blocks/purified_diamond_block.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_purified_diamond": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": [ 9 | "herobrine:purified_diamond" 10 | ] 11 | } 12 | ] 13 | }, 14 | "trigger": "minecraft:inventory_changed" 15 | }, 16 | "has_the_recipe": { 17 | "conditions": { 18 | "recipe": "herobrine:purified_diamond_block" 19 | }, 20 | "trigger": "minecraft:recipe_unlocked" 21 | } 22 | }, 23 | "requirements": [ 24 | [ 25 | "has_purified_diamond", 26 | "has_the_recipe" 27 | ] 28 | ], 29 | "rewards": { 30 | "recipes": [ 31 | "herobrine:purified_diamond_block" 32 | ] 33 | }, 34 | "sends_telemetry_event": false 35 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/advancements/recipes/misc/purified_diamond_from_block.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_purified_diamond": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": [ 9 | "herobrine:purified_diamond" 10 | ] 11 | } 12 | ] 13 | }, 14 | "trigger": "minecraft:inventory_changed" 15 | }, 16 | "has_the_recipe": { 17 | "conditions": { 18 | "recipe": "herobrine:purified_diamond_from_block" 19 | }, 20 | "trigger": "minecraft:recipe_unlocked" 21 | } 22 | }, 23 | "requirements": [ 24 | [ 25 | "has_purified_diamond", 26 | "has_the_recipe" 27 | ] 28 | ], 29 | "rewards": { 30 | "recipes": [ 31 | "herobrine:purified_diamond_from_block" 32 | ] 33 | }, 34 | "sends_telemetry_event": false 35 | } -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/entities/HerobrineSpawnHelper.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.entities; 2 | 3 | import com.herobrinemod.herobrine.savedata.ConfigHandler; 4 | import com.herobrinemod.herobrine.savedata.SaveDataHandler; 5 | 6 | public class HerobrineSpawnHelper { 7 | public static boolean canHerobrineSpawn() { 8 | return SaveDataHandler.getHerobrineSaveData().readBoolean("herobrineSummoned") || ConfigHandler.getHerobrineConfig().readBoolean("HerobrineAlwaysSpawns"); 9 | } 10 | 11 | public static int getStage() { 12 | return ConfigHandler.getHerobrineConfig().readBoolean("HerobrineAlwaysSpawns") ? 3 : SaveDataHandler.getHerobrineSaveData().readInt("stage"); 13 | } 14 | 15 | public static int getStageTime() { 16 | return ConfigHandler.getHerobrineConfig().readBoolean("HerobrineAlwaysSpawns") ? 0 : SaveDataHandler.getHerobrineSaveData().readInt("stageTime"); 17 | } 18 | } -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/mixin/CrashReportMixin.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.mixin; 2 | 3 | import com.herobrinemod.herobrine.savedata.SaveDataHandler; 4 | import net.minecraft.util.crash.CrashReport; 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.CallbackInfoReturnable; 9 | 10 | @Mixin(CrashReport.class) 11 | public class CrashReportMixin { 12 | @Inject(method = "create", at = @At("HEAD")) 13 | private static void saveDataOnCrash(Throwable cause, String title, CallbackInfoReturnable cir) { 14 | if(SaveDataHandler.getHerobrineSaveData() != null) { 15 | if(SaveDataHandler.getHerobrineSaveData().isDirty()) { 16 | SaveDataHandler.getHerobrineSaveData().saveFile(); 17 | } 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/default_config/herobrine.json: -------------------------------------------------------------------------------- 1 | { 2 | "WarriorBreaksBlocks": true, 3 | "HerobrineAlwaysSpawns": false, 4 | "BuilderBuilds": true, 5 | "BedrockSwordDrops": false, 6 | "CursedDiamondSwordMagicCooldownTicks": 50, 7 | "CursedDiamondSwordChargeCost": 5, 8 | "CursedDiamondHoeMagicCooldownTicks": 500, 9 | "CursedDiamondAxeEffectsDurationTicks": 600, 10 | "CursedDiamondAxeMagicCooldownTicks": 1200, 11 | "CursedDiamondMagicItemDamage": 10, 12 | "AltarRequiresShrine": true, 13 | "HerobrineWarriorWeight": 5, 14 | "HerobrineSpyWeight": 8, 15 | "HerobrineBuilderWeight": 7, 16 | "HerobrineMageWeight": 5, 17 | "HerobrineStalkerWeight": 8, 18 | "InfectedMobWeight": 15, 19 | "InfectedCamelWeight": 5, 20 | "HerobrineSpyObservationDistance": 32, 21 | "CursedForestWeirdnessMin": 0.65, 22 | "CursedForestWeirdnessMax": 1.0, 23 | "HerobrineEndSpawnType": 2, 24 | "GlobalHerobrineMessages": true 25 | } -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/HerobrineEyesFeatureRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import net.fabricmc.api.EnvType; 5 | import net.fabricmc.api.Environment; 6 | import net.minecraft.client.render.RenderLayer; 7 | import net.minecraft.client.render.entity.feature.EyesFeatureRenderer; 8 | import net.minecraft.client.render.entity.feature.FeatureRendererContext; 9 | import net.minecraft.util.Identifier; 10 | 11 | @Environment(EnvType.CLIENT) 12 | public class HerobrineEyesFeatureRenderer extends EyesFeatureRenderer { 13 | public HerobrineEyesFeatureRenderer(FeatureRendererContext featureRendererContext) { 14 | super(featureRendererContext); 15 | } 16 | 17 | @Override 18 | public RenderLayer getEyesTexture() { 19 | return RenderLayer.getEyes(Identifier.of(HerobrineMod.MODID, "textures/entity/eyes/herobrine.png")); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/items/material/BedrockToolMaterial.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.items.material; 2 | 3 | import net.minecraft.block.Block; 4 | import net.minecraft.item.ToolMaterial; 5 | import net.minecraft.recipe.Ingredient; 6 | import net.minecraft.registry.tag.TagKey; 7 | 8 | public class BedrockToolMaterial implements ToolMaterial { 9 | @Override 10 | public int getDurability() { 11 | return 1; 12 | } 13 | 14 | @Override 15 | public float getMiningSpeedMultiplier() { 16 | return 0; 17 | } 18 | 19 | @Override 20 | public float getAttackDamage() { 21 | return 9.0f; 22 | } 23 | 24 | @Override 25 | public TagKey getInverseTag() { 26 | return null; 27 | } 28 | 29 | @Override 30 | public int getEnchantability() { 31 | return 0; 32 | } 33 | 34 | @Override 35 | public Ingredient getRepairIngredient() { 36 | return null; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/models/HerobrineMageEntityModel.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.models; 2 | 3 | import com.herobrinemod.herobrine.entities.HerobrineEntity; 4 | import net.fabricmc.api.EnvType; 5 | import net.fabricmc.api.Environment; 6 | import net.minecraft.client.model.ModelPart; 7 | import net.minecraft.client.render.entity.model.CrossbowPosing; 8 | 9 | @Environment(EnvType.CLIENT) 10 | public class HerobrineMageEntityModel extends HerobrineEntityModel { 11 | public HerobrineMageEntityModel(ModelPart modelPart) { 12 | super(modelPart); 13 | } 14 | 15 | @Override 16 | public void setAngles(HerobrineEntity entity, float f, float g, float h, float i, float j) { 17 | super.setAngles(entity, f, g, h, i, j); 18 | CrossbowPosing.meleeAttack(this.leftArm, this.rightArm, false, this.handSwingProgress, h); 19 | CrossbowPosing.meleeAttack(this.leftSleeve, this.rightSleeve, false, this.handSwingProgress, h); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/models/InfectedVillagerEntityModel.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.models; 2 | 3 | import com.herobrinemod.herobrine.entities.InfectedVillagerEntity; 4 | import net.fabricmc.api.EnvType; 5 | import net.fabricmc.api.Environment; 6 | import net.minecraft.client.model.ModelPart; 7 | import net.minecraft.client.model.TexturedModelData; 8 | import net.minecraft.client.render.entity.model.VillagerResemblingModel; 9 | import org.jetbrains.annotations.Contract; 10 | import org.jetbrains.annotations.NotNull; 11 | 12 | @Environment(EnvType.CLIENT) 13 | public class InfectedVillagerEntityModel extends VillagerResemblingModel { 14 | public InfectedVillagerEntityModel(ModelPart root) { 15 | super(root); 16 | } 17 | 18 | @Contract(" -> new") 19 | public static @NotNull TexturedModelData getTexturedModelData() { 20 | return TexturedModelData.of(VillagerResemblingModel.getModelData(), 64, 64); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/models/HerobrineEntityModel.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.models; 2 | 3 | import com.herobrinemod.herobrine.entities.HerobrineEntity; 4 | import net.fabricmc.api.EnvType; 5 | import net.fabricmc.api.Environment; 6 | import net.minecraft.client.model.Dilation; 7 | import net.minecraft.client.model.ModelPart; 8 | import net.minecraft.client.model.TexturedModelData; 9 | import net.minecraft.client.render.entity.model.PlayerEntityModel; 10 | import org.jetbrains.annotations.Contract; 11 | import org.jetbrains.annotations.NotNull; 12 | 13 | @Environment(EnvType.CLIENT) 14 | public class HerobrineEntityModel extends PlayerEntityModel { 15 | public HerobrineEntityModel(ModelPart root) { 16 | super(root, false); 17 | } 18 | 19 | @Contract(" -> new") 20 | public static @NotNull TexturedModelData getTexturedModelData() { 21 | return TexturedModelData.of(PlayerEntityModel.getTexturedModelData(Dilation.NONE, false), 64, 64); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help improve this mod 4 | title: '' 5 | labels: bug 6 | assignees: Alex-MacLean 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce this bug. 15 | 16 | **Expected behavior** 17 | A clear and concise description of what you expected to happen. 18 | 19 | **Screenshots** 20 | If applicable, add screenshots to help explain your problem. 21 | 22 | **Environment** 23 | - OS: [e.g. Windows 11 64 bit] (If you are using GNU/Linux state the distro and kernel branch and version e.g. Arch Linux - 6.4.2-zen1-1-zen. Can easily be found in neofetch) 24 | - Java Version: [e.g. JRE 17.0.1 64 bit] 25 | - Minecraft Version: [e.g. 1.20.1] 26 | - Fabric/Quilt Version: [e.g. 0.14.21] (If you're using a development environment please state that you are) 27 | - Fabric API/QFAPI+QSL Version: [e.g. 0.83.0] 28 | - Mod Version: [e.g. 1.0] 29 | 30 | **Additional context** 31 | Add any other context about the problem here. 32 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedFoxEyesFeatureRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.InfectedFoxEntityModel; 5 | import com.herobrinemod.herobrine.entities.InfectedFoxEntity; 6 | import net.minecraft.client.render.RenderLayer; 7 | import net.minecraft.client.render.entity.feature.EyesFeatureRenderer; 8 | import net.minecraft.client.render.entity.feature.FeatureRendererContext; 9 | import net.minecraft.util.Identifier; 10 | 11 | public class InfectedFoxEyesFeatureRenderer extends EyesFeatureRenderer { 12 | public InfectedFoxEyesFeatureRenderer(FeatureRendererContext featureRendererContext) { 13 | super(featureRendererContext); 14 | } 15 | 16 | @Override 17 | public RenderLayer getEyesTexture() { 18 | return RenderLayer.getEyes(Identifier.of(HerobrineMod.MODID, "textures/entity/eyes/infected_fox.png")); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedCamelEyesFeatureRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.InfectedCamelEntityModel; 5 | import com.herobrinemod.herobrine.entities.InfectedCamelEntity; 6 | import net.minecraft.client.render.RenderLayer; 7 | import net.minecraft.client.render.entity.feature.EyesFeatureRenderer; 8 | import net.minecraft.client.render.entity.feature.FeatureRendererContext; 9 | import net.minecraft.util.Identifier; 10 | 11 | public class InfectedCamelEyesFeatureRenderer extends EyesFeatureRenderer { 12 | public InfectedCamelEyesFeatureRenderer(FeatureRendererContext featureRendererContext) { 13 | super(featureRendererContext); 14 | } 15 | 16 | @Override 17 | public RenderLayer getEyesTexture() { 18 | return RenderLayer.getEyes(Identifier.of(HerobrineMod.MODID, "textures/entity/eyes/infected_camel.png")); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/entities/goals/InfectedCamelSitOrStandGoal.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.entities.goals; 2 | 3 | import com.herobrinemod.herobrine.entities.InfectedCamelEntity; 4 | import net.minecraft.entity.ai.goal.Goal; 5 | 6 | public class InfectedCamelSitOrStandGoal extends Goal { 7 | private final InfectedCamelEntity entity; 8 | private final int lastPoseTickDelta; 9 | 10 | public InfectedCamelSitOrStandGoal(InfectedCamelEntity entity, int lastPoseSecondsDelta) { 11 | this.entity = entity; 12 | this.lastPoseTickDelta = lastPoseSecondsDelta * 20; 13 | } 14 | 15 | @Override 16 | public void start() { 17 | if (entity.isSitting()) { 18 | entity.startStanding(); 19 | } else if (!entity.isPanicking()) { 20 | entity.startSitting(); 21 | } 22 | } 23 | 24 | @Override 25 | public boolean canStart() { 26 | return !entity.isTouchingWater() && entity.getTarget() == null && entity.getLastPoseTickDelta() >= (long) this.lastPoseTickDelta && !entity.isLeashed() && entity.isOnGround() && entity.canChangePose(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedAxolotlEyesFeatureRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.InfectedAxolotlEntityModel; 5 | import com.herobrinemod.herobrine.entities.InfectedAxolotlEntity; 6 | import net.minecraft.client.render.RenderLayer; 7 | import net.minecraft.client.render.entity.feature.EyesFeatureRenderer; 8 | import net.minecraft.client.render.entity.feature.FeatureRendererContext; 9 | import net.minecraft.util.Identifier; 10 | 11 | public class InfectedAxolotlEyesFeatureRenderer extends EyesFeatureRenderer { 12 | public InfectedAxolotlEyesFeatureRenderer(FeatureRendererContext featureRendererContext) { 13 | super(featureRendererContext); 14 | } 15 | 16 | @Override 17 | public RenderLayer getEyesTexture() { 18 | return RenderLayer.getEyes(Identifier.of(HerobrineMod.MODID, "textures/entity/eyes/infected_axolotl.png")); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedOcelotEyesFeatureRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.entities.InfectedOcelotEntity; 5 | import net.minecraft.client.render.RenderLayer; 6 | import net.minecraft.client.render.entity.feature.EyesFeatureRenderer; 7 | import net.minecraft.client.render.entity.feature.FeatureRendererContext; 8 | import net.minecraft.client.render.entity.model.OcelotEntityModel; 9 | import net.minecraft.util.Identifier; 10 | 11 | public class InfectedOcelotEyesFeatureRenderer extends EyesFeatureRenderer> { 12 | public InfectedOcelotEyesFeatureRenderer(FeatureRendererContext> featureRendererContext) { 13 | super(featureRendererContext); 14 | } 15 | 16 | @Override 17 | public RenderLayer getEyesTexture() { 18 | return RenderLayer.getEyes(Identifier.of(HerobrineMod.MODID, "textures/entity/eyes/infected_ocelot.png")); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/advancements/recipes/misc/cursed_diamond.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_diamond": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": [ 9 | "minecraft:diamond" 10 | ] 11 | } 12 | ] 13 | }, 14 | "trigger": "minecraft:inventory_changed" 15 | }, 16 | "has_cursed_dust": { 17 | "conditions": { 18 | "items": [ 19 | { 20 | "items": [ 21 | "herobrine:cursed_dust" 22 | ] 23 | } 24 | ] 25 | }, 26 | "trigger": "minecraft:inventory_changed" 27 | }, 28 | "has_the_recipe": { 29 | "conditions": { 30 | "recipe": "herobrine:cursed_diamond" 31 | }, 32 | "trigger": "minecraft:recipe_unlocked" 33 | } 34 | }, 35 | "requirements": [ 36 | [ 37 | "has_diamond", 38 | "has_cursed_dust", 39 | "has_the_recipe" 40 | ] 41 | ], 42 | "rewards": { 43 | "recipes": [ 44 | "herobrine:cursed_diamond" 45 | ] 46 | }, 47 | "sends_telemetry_event": false 48 | } -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/blocks/CursedDiamondBlock.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.blocks; 2 | 3 | import net.minecraft.block.Block; 4 | import net.minecraft.block.BlockState; 5 | import net.minecraft.particle.ParticleTypes; 6 | import net.minecraft.util.math.BlockPos; 7 | import net.minecraft.util.math.Direction; 8 | import net.minecraft.world.World; 9 | 10 | public class CursedDiamondBlock extends Block { 11 | public CursedDiamondBlock(Settings settings) { 12 | super(settings); 13 | } 14 | 15 | @Override 16 | public void randomDisplayTick(BlockState state, World world, BlockPos pos, net.minecraft.util.math.random.Random random) { 17 | Direction[] directions = Direction.values(); 18 | for (Direction direction : directions) { 19 | BlockPos blockPos = pos.offset(direction); 20 | if (!world.getBlockState(blockPos).isOpaqueFullCube(world, blockPos)) { 21 | world.addParticle(ParticleTypes.PORTAL, pos.getX() + 0.5 + (random.nextDouble() - 0.5) * 1.5, pos.getY() + 0.05, pos.getZ() + 0.5 + (random.nextDouble() - 0.5) * 1.5, 0.0, 0.0, 0.0); 22 | } 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/advancements/recipes/combat/unholy_water.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_holy_water": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": [ 9 | "herobrine:holy_water" 10 | ] 11 | } 12 | ] 13 | }, 14 | "trigger": "minecraft:inventory_changed" 15 | }, 16 | "has_cursed_dust": { 17 | "conditions": { 18 | "items": [ 19 | { 20 | "items": [ 21 | "herobrine:cursed_dust" 22 | ] 23 | } 24 | ] 25 | }, 26 | "trigger": "minecraft:inventory_changed" 27 | }, 28 | "has_the_recipe": { 29 | "conditions": { 30 | "recipe": "herobrine:unholy_water" 31 | }, 32 | "trigger": "minecraft:recipe_unlocked" 33 | } 34 | }, 35 | "requirements": [ 36 | [ 37 | "has_holy_water", 38 | "has_cursed_dust", 39 | "has_the_recipe" 40 | ] 41 | ], 42 | "rewards": { 43 | "recipes": [ 44 | "herobrine:unholy_water" 45 | ] 46 | }, 47 | "sends_telemetry_event": false 48 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/advancements/recipes/decorations/herobrine_statue.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_stone": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": [ 9 | "minecraft:stone" 10 | ] 11 | } 12 | ] 13 | }, 14 | "trigger": "minecraft:inventory_changed" 15 | }, 16 | "has_stone_slab": { 17 | "conditions": { 18 | "items": [ 19 | { 20 | "items": [ 21 | "minecraft:stone_slab" 22 | ] 23 | } 24 | ] 25 | }, 26 | "trigger": "minecraft:inventory_changed" 27 | }, 28 | "has_the_recipe": { 29 | "conditions": { 30 | "recipe": "herobrine:herobrine_statue" 31 | }, 32 | "trigger": "minecraft:recipe_unlocked" 33 | } 34 | }, 35 | "requirements": [ 36 | [ 37 | "has_stone", 38 | "has_stone_slab", 39 | "has_the_recipe" 40 | ] 41 | ], 42 | "rewards": { 43 | "recipes": [ 44 | "herobrine:herobrine_statue" 45 | ] 46 | }, 47 | "sends_telemetry_event": false 48 | } -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/savedata/SaveDataHandler.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.savedata; 2 | 3 | import net.minecraft.server.MinecraftServer; 4 | import org.jetbrains.annotations.NotNull; 5 | 6 | public class SaveDataHandler { // Class to handle save data on a per-world basis. Part of a proper WorldSaveData implementation 7 | private static WorldSaveData herobrineSaveData; // Pointer for the WorldSaveData instance for the currently loaded world 8 | 9 | // Return instance of WorldSaveData 10 | public static WorldSaveData getHerobrineSaveData() { 11 | return herobrineSaveData; 12 | } 13 | 14 | // Properly initialize the instance of WorldSaveData when loading the server 15 | public static void handleServerStart(@NotNull MinecraftServer server) { 16 | herobrineSaveData = new WorldSaveData(server, "herobrine.json"); 17 | } 18 | 19 | // Unload all save data for a world when the server stops 20 | public static void handleServerStop(MinecraftServer ignored) { 21 | if(herobrineSaveData.isDirty()) { 22 | herobrineSaveData.saveFile(); 23 | } 24 | herobrineSaveData = null; 25 | } 26 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/advancements/recipes/misc/purified_diamond.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_cursed_diamond": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": [ 9 | "herobrine:cursed_diamond" 10 | ] 11 | } 12 | ] 13 | }, 14 | "trigger": "minecraft:inventory_changed" 15 | }, 16 | "has_holy_water": { 17 | "conditions": { 18 | "items": [ 19 | { 20 | "items": [ 21 | "herobrine:holy_water" 22 | ] 23 | } 24 | ] 25 | }, 26 | "trigger": "minecraft:inventory_changed" 27 | }, 28 | "has_the_recipe": { 29 | "conditions": { 30 | "recipe": "herobrine:purified_diamond" 31 | }, 32 | "trigger": "minecraft:recipe_unlocked" 33 | } 34 | }, 35 | "requirements": [ 36 | [ 37 | "has_cursed_diamond", 38 | "has_holy_water", 39 | "has_the_recipe" 40 | ] 41 | ], 42 | "rewards": { 43 | "recipes": [ 44 | "herobrine:purified_diamond" 45 | ] 46 | }, 47 | "sends_telemetry_event": false 48 | } -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/items/material/CursedDiamondToolMaterial.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.items.material; 2 | 3 | import com.herobrinemod.herobrine.blocks.BlockTagList; 4 | import com.herobrinemod.herobrine.items.ItemList; 5 | import net.minecraft.block.Block; 6 | import net.minecraft.item.ToolMaterial; 7 | import net.minecraft.recipe.Ingredient; 8 | import net.minecraft.registry.tag.TagKey; 9 | 10 | public class CursedDiamondToolMaterial implements ToolMaterial { 11 | @Override 12 | public int getDurability() { 13 | return 1600; 14 | } 15 | 16 | @Override 17 | public float getMiningSpeedMultiplier() { 18 | return 9.0f; 19 | } 20 | 21 | @Override 22 | public float getAttackDamage() { 23 | return 3.0f; 24 | } 25 | 26 | @Override 27 | public TagKey getInverseTag() { 28 | return BlockTagList.INCORRECT_FOR_CURSED_DIAMOND_TOOL; 29 | } 30 | 31 | @Override 32 | public int getEnchantability() { 33 | return 22; 34 | } 35 | 36 | @Override 37 | public Ingredient getRepairIngredient() { 38 | return Ingredient.ofItems(ItemList.CURSED_DIAMOND); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedBatEyesFeatureRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.InfectedBatEntityModel; 5 | import com.herobrinemod.herobrine.entities.InfectedBatEntity; 6 | import net.fabricmc.api.EnvType; 7 | import net.fabricmc.api.Environment; 8 | import net.minecraft.client.render.RenderLayer; 9 | import net.minecraft.client.render.entity.feature.EyesFeatureRenderer; 10 | import net.minecraft.client.render.entity.feature.FeatureRendererContext; 11 | import net.minecraft.util.Identifier; 12 | 13 | @Environment(EnvType.CLIENT) 14 | public class InfectedBatEyesFeatureRenderer extends EyesFeatureRenderer { 15 | public InfectedBatEyesFeatureRenderer(FeatureRendererContext featureRendererContext) { 16 | super(featureRendererContext); 17 | } 18 | 19 | @Override 20 | public RenderLayer getEyesTexture() { 21 | return RenderLayer.getEyes(Identifier.of(HerobrineMod.MODID, "textures/entity/eyes/infected_bat.png")); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedCamelEntityRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.HerobrineModelLayers; 5 | import com.herobrinemod.herobrine.client.entities.models.InfectedCamelEntityModel; 6 | import com.herobrinemod.herobrine.entities.InfectedCamelEntity; 7 | import net.minecraft.client.render.entity.EntityRendererFactory; 8 | import net.minecraft.client.render.entity.MobEntityRenderer; 9 | import net.minecraft.util.Identifier; 10 | 11 | public class InfectedCamelEntityRenderer extends MobEntityRenderer { 12 | 13 | public InfectedCamelEntityRenderer(EntityRendererFactory.Context context) { 14 | super(context, new InfectedCamelEntityModel(context.getPart(HerobrineModelLayers.INFECTED_CAMEL_MODEL_LAYER)), 0.7f); 15 | this.addFeature(new InfectedCamelEyesFeatureRenderer(this)); 16 | } 17 | 18 | @Override 19 | public Identifier getTexture(InfectedCamelEntity entity) { 20 | return Identifier.of(HerobrineMod.MODID, "textures/entity/infected_camel.png"); 21 | } 22 | } -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedOcelotEntityRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.HerobrineModelLayers; 5 | import com.herobrinemod.herobrine.entities.InfectedOcelotEntity; 6 | import net.minecraft.client.render.entity.EntityRendererFactory; 7 | import net.minecraft.client.render.entity.MobEntityRenderer; 8 | import net.minecraft.client.render.entity.model.OcelotEntityModel; 9 | import net.minecraft.util.Identifier; 10 | 11 | public class InfectedOcelotEntityRenderer extends MobEntityRenderer> { 12 | public InfectedOcelotEntityRenderer(EntityRendererFactory.Context context) { 13 | super(context, new OcelotEntityModel<>(context.getPart(HerobrineModelLayers.INFECTED_OCELOT_MODEL_LAYER)), 0.4f); 14 | this.addFeature(new InfectedOcelotEyesFeatureRenderer(this)); 15 | } 16 | 17 | @Override 18 | public Identifier getTexture(InfectedOcelotEntity entity) { 19 | return Identifier.of(HerobrineMod.MODID, "textures/entity/infected_ocelot.png"); 20 | } 21 | } -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedPigEyesFeatureRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.InfectedPigEntityModel; 5 | import com.herobrinemod.herobrine.entities.InfectedPigEntity; 6 | import net.fabricmc.api.EnvType; 7 | import net.fabricmc.api.Environment; 8 | import net.minecraft.client.render.RenderLayer; 9 | import net.minecraft.client.render.entity.feature.EyesFeatureRenderer; 10 | import net.minecraft.client.render.entity.feature.FeatureRendererContext; 11 | import net.minecraft.util.Identifier; 12 | 13 | @Environment(EnvType.CLIENT) 14 | public class InfectedPigEyesFeatureRenderer extends EyesFeatureRenderer { 15 | public InfectedPigEyesFeatureRenderer(FeatureRendererContext featureRendererContext) { 16 | super(featureRendererContext); 17 | } 18 | 19 | @Override 20 | public RenderLayer getEyesTexture() { 21 | return RenderLayer.getEyes(Identifier.of(HerobrineMod.MODID, "textures/entity/eyes/infected_pig.png")); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedWolfEyesFeatureRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.InfectedWolfEntityModel; 5 | import com.herobrinemod.herobrine.entities.InfectedWolfEntity; 6 | import net.fabricmc.api.EnvType; 7 | import net.fabricmc.api.Environment; 8 | import net.minecraft.client.render.RenderLayer; 9 | import net.minecraft.client.render.entity.feature.EyesFeatureRenderer; 10 | import net.minecraft.client.render.entity.feature.FeatureRendererContext; 11 | import net.minecraft.util.Identifier; 12 | 13 | @Environment(EnvType.CLIENT) 14 | public class InfectedWolfEyesFeatureRenderer extends EyesFeatureRenderer { 15 | public InfectedWolfEyesFeatureRenderer(FeatureRendererContext featureRendererContext) { 16 | super(featureRendererContext); 17 | } 18 | 19 | @Override 20 | public RenderLayer getEyesTexture() { 21 | return RenderLayer.getEyes(Identifier.of(HerobrineMod.MODID, "textures/entity/eyes/infected_wolf.png")); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedHorseEyesFeatureRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.InfectedHorseEntityModel; 5 | import com.herobrinemod.herobrine.entities.InfectedHorseEntity; 6 | import net.fabricmc.api.EnvType; 7 | import net.fabricmc.api.Environment; 8 | import net.minecraft.client.render.RenderLayer; 9 | import net.minecraft.client.render.entity.feature.EyesFeatureRenderer; 10 | import net.minecraft.client.render.entity.feature.FeatureRendererContext; 11 | import net.minecraft.util.Identifier; 12 | 13 | @Environment(EnvType.CLIENT) 14 | public class InfectedHorseEyesFeatureRenderer extends EyesFeatureRenderer { 15 | public InfectedHorseEyesFeatureRenderer(FeatureRendererContext featureRendererContext) { 16 | super(featureRendererContext); 17 | } 18 | 19 | @Override 20 | public RenderLayer getEyesTexture() { 21 | return RenderLayer.getEyes(Identifier.of(HerobrineMod.MODID, "textures/entity/eyes/infected_horse.png")); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedLlamaEyesFeatureRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.InfectedLlamaEntityModel; 5 | import com.herobrinemod.herobrine.entities.InfectedLlamaEntity; 6 | import net.fabricmc.api.EnvType; 7 | import net.fabricmc.api.Environment; 8 | import net.minecraft.client.render.RenderLayer; 9 | import net.minecraft.client.render.entity.feature.EyesFeatureRenderer; 10 | import net.minecraft.client.render.entity.feature.FeatureRendererContext; 11 | import net.minecraft.util.Identifier; 12 | 13 | @Environment(EnvType.CLIENT) 14 | public class InfectedLlamaEyesFeatureRenderer extends EyesFeatureRenderer { 15 | public InfectedLlamaEyesFeatureRenderer(FeatureRendererContext featureRendererContext) { 16 | super(featureRendererContext); 17 | } 18 | 19 | @Override 20 | public RenderLayer getEyesTexture() { 21 | return RenderLayer.getEyes(Identifier.of(HerobrineMod.MODID, "textures/entity/eyes/infected_llama.png")); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedSheepEyesFeatureRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.InfectedSheepEntityModel; 5 | import com.herobrinemod.herobrine.entities.InfectedSheepEntity; 6 | import net.fabricmc.api.EnvType; 7 | import net.fabricmc.api.Environment; 8 | import net.minecraft.client.render.RenderLayer; 9 | import net.minecraft.client.render.entity.feature.EyesFeatureRenderer; 10 | import net.minecraft.client.render.entity.feature.FeatureRendererContext; 11 | import net.minecraft.util.Identifier; 12 | 13 | @Environment(EnvType.CLIENT) 14 | public class InfectedSheepEyesFeatureRenderer extends EyesFeatureRenderer { 15 | public InfectedSheepEyesFeatureRenderer(FeatureRendererContext featureRendererContext) { 16 | super(featureRendererContext); 17 | } 18 | 19 | @Override 20 | public RenderLayer getEyesTexture() { 21 | return RenderLayer.getEyes(Identifier.of(HerobrineMod.MODID, "textures/entity/eyes/infected_sheep.png")); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedDonkeyEyesFeatureRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.InfectedDonkeyEntityModel; 5 | import com.herobrinemod.herobrine.entities.InfectedDonkeyEntity; 6 | import net.fabricmc.api.EnvType; 7 | import net.fabricmc.api.Environment; 8 | import net.minecraft.client.render.RenderLayer; 9 | import net.minecraft.client.render.entity.feature.EyesFeatureRenderer; 10 | import net.minecraft.client.render.entity.feature.FeatureRendererContext; 11 | import net.minecraft.util.Identifier; 12 | 13 | @Environment(EnvType.CLIENT) 14 | public class InfectedDonkeyEyesFeatureRenderer extends EyesFeatureRenderer { 15 | public InfectedDonkeyEyesFeatureRenderer(FeatureRendererContext featureRendererContext) { 16 | super(featureRendererContext); 17 | } 18 | 19 | @Override 20 | public RenderLayer getEyesTexture() { 21 | return RenderLayer.getEyes(Identifier.of(HerobrineMod.MODID, "textures/entity/eyes/infected_donkey.png")); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedChickenEyesFeatureRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.InfectedChickenEntityModel; 5 | import com.herobrinemod.herobrine.entities.InfectedChickenEntity; 6 | import net.fabricmc.api.EnvType; 7 | import net.fabricmc.api.Environment; 8 | import net.minecraft.client.render.RenderLayer; 9 | import net.minecraft.client.render.entity.feature.EyesFeatureRenderer; 10 | import net.minecraft.client.render.entity.feature.FeatureRendererContext; 11 | import net.minecraft.util.Identifier; 12 | 13 | @Environment(EnvType.CLIENT) 14 | public class InfectedChickenEyesFeatureRenderer extends EyesFeatureRenderer { 15 | public InfectedChickenEyesFeatureRenderer(FeatureRendererContext featureRendererContext) { 16 | super(featureRendererContext); 17 | } 18 | 19 | @Override 20 | public RenderLayer getEyesTexture() { 21 | return RenderLayer.getEyes(Identifier.of(HerobrineMod.MODID, "textures/entity/eyes/infected_chicken.png")); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedCowEyesFeatureRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.InfectedCowEntityModel; 5 | import com.herobrinemod.herobrine.entities.InfectedCowEntity; 6 | import net.fabricmc.api.EnvType; 7 | import net.fabricmc.api.Environment; 8 | import net.minecraft.client.render.RenderLayer; 9 | import net.minecraft.client.render.entity.feature.EyesFeatureRenderer; 10 | import net.minecraft.client.render.entity.feature.FeatureRendererContext; 11 | import net.minecraft.util.Identifier; 12 | 13 | @Environment(EnvType.CLIENT) 14 | public class InfectedCowEyesFeatureRenderer extends EyesFeatureRenderer> { 15 | public InfectedCowEyesFeatureRenderer(FeatureRendererContext> featureRendererContext) { 16 | super(featureRendererContext); 17 | } 18 | 19 | @Override 20 | public RenderLayer getEyesTexture() { 21 | return RenderLayer.getEyes(Identifier.of(HerobrineMod.MODID, "textures/entity/eyes/infected_cow.png")); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedVillagerEyesFeatureRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.InfectedVillagerEntityModel; 5 | import com.herobrinemod.herobrine.entities.InfectedVillagerEntity; 6 | import net.fabricmc.api.EnvType; 7 | import net.fabricmc.api.Environment; 8 | import net.minecraft.client.render.RenderLayer; 9 | import net.minecraft.client.render.entity.feature.EyesFeatureRenderer; 10 | import net.minecraft.client.render.entity.feature.FeatureRendererContext; 11 | import net.minecraft.util.Identifier; 12 | 13 | @Environment(EnvType.CLIENT) 14 | public class InfectedVillagerEyesFeatureRenderer extends EyesFeatureRenderer { 15 | public InfectedVillagerEyesFeatureRenderer(FeatureRendererContext featureRendererContext) { 16 | super(featureRendererContext); 17 | } 18 | 19 | @Override 20 | public RenderLayer getEyesTexture() { 21 | return RenderLayer.getEyes(Identifier.of(HerobrineMod.MODID, "textures/entity/eyes/infected_villager.png")); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedArmadilloEyesFeatureRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.InfectedArmadilloEntityModel; 5 | import com.herobrinemod.herobrine.entities.InfectedArmadilloEntity; 6 | import net.fabricmc.api.EnvType; 7 | import net.fabricmc.api.Environment; 8 | import net.minecraft.client.render.RenderLayer; 9 | import net.minecraft.client.render.entity.feature.EyesFeatureRenderer; 10 | import net.minecraft.client.render.entity.feature.FeatureRendererContext; 11 | import net.minecraft.util.Identifier; 12 | 13 | @Environment(EnvType.CLIENT) 14 | public class InfectedArmadilloEyesFeatureRenderer extends EyesFeatureRenderer { 15 | public InfectedArmadilloEyesFeatureRenderer(FeatureRendererContext featureRendererContext) { 16 | super(featureRendererContext); 17 | } 18 | 19 | @Override 20 | public RenderLayer getEyesTexture() { 21 | return RenderLayer.getEyes(Identifier.of(HerobrineMod.MODID, "textures/entity/eyes/infected_armadillo.png")); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/worldgen/configured_feature/cursed_birch.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:tree", 3 | "config": { 4 | "decorators": [], 5 | "dirt_provider": { 6 | "type": "minecraft:simple_state_provider", 7 | "state": { 8 | "Name": "minecraft:dirt" 9 | } 10 | }, 11 | "foliage_placer": { 12 | "type": "minecraft:blob_foliage_placer", 13 | "height": 3, 14 | "offset": 0, 15 | "radius": 2 16 | }, 17 | "foliage_provider": { 18 | "type": "minecraft:simple_state_provider", 19 | "state": { 20 | "Name": "minecraft:air" 21 | } 22 | }, 23 | "force_dirt": false, 24 | "ignore_vines": true, 25 | "minimum_size": { 26 | "type": "minecraft:two_layers_feature_size", 27 | "limit": 1, 28 | "lower_size": 0, 29 | "upper_size": 1 30 | }, 31 | "trunk_placer": { 32 | "type": "minecraft:straight_trunk_placer", 33 | "base_height": 5, 34 | "height_rand_a": 2, 35 | "height_rand_b": 0 36 | }, 37 | "trunk_provider": { 38 | "type": "minecraft:simple_state_provider", 39 | "state": { 40 | "Name": "minecraft:birch_log", 41 | "Properties": { 42 | "axis": "y" 43 | } 44 | } 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/worldgen/configured_feature/cursed_oak.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:tree", 3 | "config": { 4 | "decorators": [], 5 | "dirt_provider": { 6 | "type": "minecraft:simple_state_provider", 7 | "state": { 8 | "Name": "minecraft:dirt" 9 | } 10 | }, 11 | "foliage_placer": { 12 | "type": "minecraft:blob_foliage_placer", 13 | "height": 3, 14 | "offset": 0, 15 | "radius": 2 16 | }, 17 | "foliage_provider": { 18 | "type": "minecraft:simple_state_provider", 19 | "state": { 20 | "Name": "minecraft:air" 21 | } 22 | }, 23 | "force_dirt": false, 24 | "ignore_vines": true, 25 | "minimum_size": { 26 | "type": "minecraft:two_layers_feature_size", 27 | "limit": 1, 28 | "lower_size": 0, 29 | "upper_size": 1 30 | }, 31 | "trunk_placer": { 32 | "type": "minecraft:straight_trunk_placer", 33 | "base_height": 4, 34 | "height_rand_a": 2, 35 | "height_rand_b": 0 36 | }, 37 | "trunk_provider": { 38 | "type": "minecraft:simple_state_provider", 39 | "state": { 40 | "Name": "minecraft:oak_log", 41 | "Properties": { 42 | "axis": "y" 43 | } 44 | } 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedMooshroomEyesFeatureRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.InfectedCowEntityModel; 5 | import com.herobrinemod.herobrine.entities.InfectedMooshroomEntity; 6 | import net.fabricmc.api.EnvType; 7 | import net.fabricmc.api.Environment; 8 | import net.minecraft.client.render.RenderLayer; 9 | import net.minecraft.client.render.entity.feature.EyesFeatureRenderer; 10 | import net.minecraft.client.render.entity.feature.FeatureRendererContext; 11 | import net.minecraft.util.Identifier; 12 | 13 | @Environment(EnvType.CLIENT) 14 | public class InfectedMooshroomEyesFeatureRenderer extends EyesFeatureRenderer> { 15 | public InfectedMooshroomEyesFeatureRenderer(FeatureRendererContext> featureRendererContext) { 16 | super(featureRendererContext); 17 | } 18 | 19 | @Override 20 | public RenderLayer getEyesTexture() { 21 | return RenderLayer.getEyes(Identifier.of(HerobrineMod.MODID, "textures/entity/eyes/infected_mooshroom.png")); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedPigEntityRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.HerobrineModelLayers; 5 | import com.herobrinemod.herobrine.client.entities.models.InfectedPigEntityModel; 6 | import com.herobrinemod.herobrine.entities.InfectedPigEntity; 7 | import net.fabricmc.api.EnvType; 8 | import net.fabricmc.api.Environment; 9 | import net.minecraft.client.render.entity.EntityRendererFactory; 10 | import net.minecraft.client.render.entity.MobEntityRenderer; 11 | import net.minecraft.util.Identifier; 12 | 13 | @Environment(EnvType.CLIENT) 14 | public class InfectedPigEntityRenderer extends MobEntityRenderer { 15 | public InfectedPigEntityRenderer(EntityRendererFactory.Context context) { 16 | super(context, new InfectedPigEntityModel(context.getPart(HerobrineModelLayers.INFECTED_PIG_MODEL_LAYER)), 0.7f); 17 | this.addFeature(new InfectedPigEyesFeatureRenderer(this)); 18 | } 19 | 20 | @Override 21 | public Identifier getTexture(InfectedPigEntity entity) { 22 | return Identifier.of(HerobrineMod.MODID, "textures/entity/infected_pig.png"); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedBatEntityRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.HerobrineModelLayers; 5 | import com.herobrinemod.herobrine.client.entities.models.InfectedBatEntityModel; 6 | import com.herobrinemod.herobrine.entities.InfectedBatEntity; 7 | import net.fabricmc.api.EnvType; 8 | import net.fabricmc.api.Environment; 9 | import net.minecraft.client.render.entity.EntityRendererFactory; 10 | import net.minecraft.client.render.entity.MobEntityRenderer; 11 | import net.minecraft.util.Identifier; 12 | 13 | @Environment(EnvType.CLIENT) 14 | public class InfectedBatEntityRenderer extends MobEntityRenderer { 15 | public InfectedBatEntityRenderer(EntityRendererFactory.Context context) { 16 | super(context, new InfectedBatEntityModel(context.getPart(HerobrineModelLayers.INFECTED_BAT_MODEL_LAYER)), 0.25f); 17 | this.addFeature(new InfectedBatEyesFeatureRenderer(this)); 18 | } 19 | 20 | @Override 21 | public Identifier getTexture(InfectedBatEntity entity) { 22 | return Identifier.of(HerobrineMod.MODID, "textures/entity/infected_bat.png"); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/mixin/PotionEntityMixin.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.mixin; 2 | 3 | import com.herobrinemod.herobrine.entities.InfectedAxolotlEntity; 4 | import net.minecraft.entity.Entity; 5 | import net.minecraft.entity.EntityType; 6 | import net.minecraft.entity.projectile.thrown.PotionEntity; 7 | import net.minecraft.util.math.Box; 8 | import net.minecraft.world.World; 9 | import org.spongepowered.asm.mixin.Mixin; 10 | import org.spongepowered.asm.mixin.injection.At; 11 | import org.spongepowered.asm.mixin.injection.Inject; 12 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 13 | 14 | import java.util.List; 15 | 16 | @Mixin(PotionEntity.class) 17 | public abstract class PotionEntityMixin extends Entity { 18 | private PotionEntityMixin(EntityType type, World world) { 19 | super(type, world); 20 | } 21 | 22 | @Inject(method = "applyWater", at = @At("TAIL")) 23 | private void hydrateInfectedAxolotlFromPotion(CallbackInfo ci) { 24 | Box box = this.getBoundingBox().expand(4.0, 2.0, 4.0); 25 | List list = this.getWorld().getNonSpectatingEntities(InfectedAxolotlEntity.class, box); 26 | for (InfectedAxolotlEntity axolotlEntity : list) { 27 | axolotlEntity.hydrateFromPotion(); 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/worldgen/configured_feature/cursed_fancy_oak.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:tree", 3 | "config": { 4 | "decorators": [], 5 | "dirt_provider": { 6 | "type": "minecraft:simple_state_provider", 7 | "state": { 8 | "Name": "minecraft:dirt" 9 | } 10 | }, 11 | "foliage_placer": { 12 | "type": "minecraft:fancy_foliage_placer", 13 | "height": 4, 14 | "offset": 4, 15 | "radius": 2 16 | }, 17 | "foliage_provider": { 18 | "type": "minecraft:simple_state_provider", 19 | "state": { 20 | "Name": "minecraft:air" 21 | } 22 | }, 23 | "force_dirt": false, 24 | "ignore_vines": true, 25 | "minimum_size": { 26 | "type": "minecraft:two_layers_feature_size", 27 | "limit": 0, 28 | "lower_size": 0, 29 | "min_clipped_height": 4, 30 | "upper_size": 0 31 | }, 32 | "trunk_placer": { 33 | "type": "minecraft:fancy_trunk_placer", 34 | "base_height": 3, 35 | "height_rand_a": 11, 36 | "height_rand_b": 0 37 | }, 38 | "trunk_provider": { 39 | "type": "minecraft:simple_state_provider", 40 | "state": { 41 | "Name": "minecraft:oak_log", 42 | "Properties": { 43 | "axis": "y" 44 | } 45 | } 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedRabbitEyesFeatureRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.InfectedRabbitEntityModel; 5 | import com.herobrinemod.herobrine.entities.InfectedRabbitEntity; 6 | import net.fabricmc.api.EnvType; 7 | import net.fabricmc.api.Environment; 8 | import net.minecraft.client.render.RenderLayer; 9 | import net.minecraft.client.render.entity.feature.EyesFeatureRenderer; 10 | import net.minecraft.client.render.entity.feature.FeatureRendererContext; 11 | import net.minecraft.util.Identifier; 12 | 13 | @Environment(EnvType.CLIENT) 14 | public class InfectedRabbitEyesFeatureRenderer extends EyesFeatureRenderer { 15 | public static Identifier EYES_TEXTURE = Identifier.of(HerobrineMod.MODID, "textures/entity/eyes/infected_rabbit/infected_rabbit.png"); 16 | public InfectedRabbitEyesFeatureRenderer(FeatureRendererContext featureRendererContext) { 17 | super(featureRendererContext); 18 | } 19 | 20 | @Override 21 | public RenderLayer getEyesTexture() { 22 | return RenderLayer.getEyes(EYES_TEXTURE); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedCowEntityRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.HerobrineModelLayers; 5 | import com.herobrinemod.herobrine.client.entities.models.InfectedCowEntityModel; 6 | import com.herobrinemod.herobrine.entities.InfectedCowEntity; 7 | import net.fabricmc.api.EnvType; 8 | import net.fabricmc.api.Environment; 9 | import net.minecraft.client.render.entity.EntityRendererFactory; 10 | import net.minecraft.client.render.entity.MobEntityRenderer; 11 | import net.minecraft.util.Identifier; 12 | 13 | @Environment(EnvType.CLIENT) 14 | public class InfectedCowEntityRenderer extends MobEntityRenderer> { 15 | public InfectedCowEntityRenderer(EntityRendererFactory.Context context) { 16 | super(context, new InfectedCowEntityModel<>(context.getPart(HerobrineModelLayers.INFECTED_COW_MODEL_LAYER)), 0.7f); 17 | this.addFeature(new InfectedCowEyesFeatureRenderer(this)); 18 | } 19 | 20 | @Override 21 | public Identifier getTexture(InfectedCowEntity entity) { 22 | return Identifier.of(HerobrineMod.MODID, "textures/entity/infected_cow.png"); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/models/InfectedPigEntityModel.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.models; 2 | 3 | import com.herobrinemod.herobrine.entities.InfectedPigEntity; 4 | import net.fabricmc.api.EnvType; 5 | import net.fabricmc.api.Environment; 6 | import net.minecraft.client.model.*; 7 | import net.minecraft.client.render.entity.model.EntityModelPartNames; 8 | import net.minecraft.client.render.entity.model.PigEntityModel; 9 | import net.minecraft.client.render.entity.model.QuadrupedEntityModel; 10 | import org.jetbrains.annotations.NotNull; 11 | 12 | @Environment(EnvType.CLIENT) 13 | public class InfectedPigEntityModel extends PigEntityModel { 14 | public InfectedPigEntityModel(ModelPart root) { 15 | super(root); 16 | } 17 | 18 | public static @NotNull TexturedModelData getTexturedModelData() { 19 | ModelData modelData = QuadrupedEntityModel.getModelData(6, Dilation.NONE); 20 | ModelPartData modelPartData = modelData.getRoot(); 21 | modelPartData.addChild(EntityModelPartNames.HEAD, ModelPartBuilder.create().uv(0, 0).cuboid(-4.0f, -4.0f, -8.0f, 8.0f, 8.0f, 8.0f, Dilation.NONE).uv(16, 16).cuboid(-2.0f, 0.0f, -9.0f, 4.0f, 3.0f, 1.0f, Dilation.NONE), ModelTransform.pivot(0.0f, 12.0f, -6.0f)); 22 | return TexturedModelData.of(modelData, 64, 32); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedArmadilloEntityRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.HerobrineModelLayers; 5 | import com.herobrinemod.herobrine.client.entities.models.InfectedArmadilloEntityModel; 6 | import com.herobrinemod.herobrine.entities.InfectedArmadilloEntity; 7 | import net.fabricmc.api.EnvType; 8 | import net.fabricmc.api.Environment; 9 | import net.minecraft.client.render.entity.EntityRendererFactory; 10 | import net.minecraft.client.render.entity.MobEntityRenderer; 11 | import net.minecraft.util.Identifier; 12 | 13 | @Environment(EnvType.CLIENT) 14 | public class InfectedArmadilloEntityRenderer extends MobEntityRenderer { 15 | public InfectedArmadilloEntityRenderer(EntityRendererFactory.Context context) { 16 | super(context, new InfectedArmadilloEntityModel(context.getPart(HerobrineModelLayers.INFECTED_ARMADILLO_MODEL_LAYER)), 0.4f); 17 | this.addFeature(new InfectedArmadilloEyesFeatureRenderer(this)); 18 | } 19 | 20 | @Override 21 | public Identifier getTexture(InfectedArmadilloEntity armadilloEntity) { 22 | return Identifier.of(HerobrineMod.MODID, "textures/entity/infected_armadillo.png"); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedSheepEntityRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.HerobrineModelLayers; 5 | import com.herobrinemod.herobrine.client.entities.models.InfectedSheepEntityModel; 6 | import com.herobrinemod.herobrine.entities.InfectedSheepEntity; 7 | import net.fabricmc.api.EnvType; 8 | import net.fabricmc.api.Environment; 9 | import net.minecraft.client.render.entity.EntityRendererFactory; 10 | import net.minecraft.client.render.entity.MobEntityRenderer; 11 | import net.minecraft.util.Identifier; 12 | 13 | @Environment(EnvType.CLIENT) 14 | public class InfectedSheepEntityRenderer extends MobEntityRenderer { 15 | public InfectedSheepEntityRenderer(EntityRendererFactory.Context context) { 16 | super(context, new InfectedSheepEntityModel(context.getPart(HerobrineModelLayers.INFECTED_SHEEP_MODEL_LAYER)), 0.7f); 17 | this.addFeature(new InfectedSheepEyesFeatureRenderer(this)); 18 | this.addFeature(new InfectedSheepWoolFeatureRenderer(this, context.getModelLoader())); 19 | } 20 | 21 | @Override 22 | public Identifier getTexture(InfectedSheepEntity entity) { 23 | return Identifier.of(HerobrineMod.MODID, "textures/entity/infected_sheep.png"); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedFoxEntityRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.HerobrineModelLayers; 5 | import com.herobrinemod.herobrine.client.entities.models.InfectedFoxEntityModel; 6 | import com.herobrinemod.herobrine.entities.InfectedFoxEntity; 7 | import net.minecraft.client.render.entity.EntityRendererFactory; 8 | import net.minecraft.client.render.entity.MobEntityRenderer; 9 | import net.minecraft.entity.passive.FoxEntity; 10 | import net.minecraft.util.Identifier; 11 | import org.jetbrains.annotations.NotNull; 12 | 13 | public class InfectedFoxEntityRenderer extends MobEntityRenderer { 14 | public InfectedFoxEntityRenderer(EntityRendererFactory.Context context) { 15 | super(context, new InfectedFoxEntityModel(context.getPart(HerobrineModelLayers.INFECTED_FOX_MODEL_LAYER)), 0.4f); 16 | this.addFeature(new InfectedFoxEyesFeatureRenderer(this)); 17 | } 18 | 19 | @Override 20 | public Identifier getTexture(@NotNull InfectedFoxEntity foxEntity) { 21 | return foxEntity.getVariant() == FoxEntity.Type.RED ? Identifier.of(HerobrineMod.MODID, "textures/entity/infected_fox/fox.png") : Identifier.of(HerobrineMod.MODID, "textures/entity/infected_fox/snow_fox.png"); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/advancements/recipes/combat/holy_water.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_potion": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": [ 9 | "minecraft:potion" 10 | ] 11 | } 12 | ] 13 | }, 14 | "trigger": "minecraft:inventory_changed" 15 | }, 16 | "has_gold_nugget": { 17 | "conditions": { 18 | "items": [ 19 | { 20 | "items": [ 21 | "minecraft:gold_nugget" 22 | ] 23 | } 24 | ] 25 | }, 26 | "trigger": "minecraft:inventory_changed" 27 | }, 28 | "has_iron_nugget": { 29 | "conditions": { 30 | "items": [ 31 | { 32 | "items": [ 33 | "minecraft:iron_nugget" 34 | ] 35 | } 36 | ] 37 | }, 38 | "trigger": "minecraft:inventory_changed" 39 | }, 40 | "has_the_recipe": { 41 | "conditions": { 42 | "recipe": "herobrine:holy_water" 43 | }, 44 | "trigger": "minecraft:recipe_unlocked" 45 | } 46 | }, 47 | "requirements": [ 48 | [ 49 | "has_potion", 50 | "has_gold_nugget", 51 | "has_iron_nugget", 52 | "has_the_recipe" 53 | ] 54 | ], 55 | "rewards": { 56 | "recipes": [ 57 | "herobrine:holy_water" 58 | ] 59 | }, 60 | "sends_telemetry_event": false 61 | } -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/items/material/ArmorMaterialList.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.items.material; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.items.ItemList; 5 | import net.minecraft.item.ArmorItem; 6 | import net.minecraft.item.ArmorMaterial; 7 | import net.minecraft.recipe.Ingredient; 8 | import net.minecraft.registry.Registries; 9 | import net.minecraft.registry.Registry; 10 | import net.minecraft.registry.entry.RegistryEntry; 11 | import net.minecraft.sound.SoundEvents; 12 | import net.minecraft.util.Identifier; 13 | import net.minecraft.util.Util; 14 | 15 | import java.util.EnumMap; 16 | import java.util.List; 17 | 18 | public class ArmorMaterialList { 19 | public static final RegistryEntry CURSED_DIAMOND = Registry.registerReference(Registries.ARMOR_MATERIAL, Identifier.of(HerobrineMod.MODID, "cursed_diamond"), new ArmorMaterial(Util.make(new EnumMap(ArmorItem.Type.class), map -> { 20 | map.put(ArmorItem.Type.BOOTS, 3); 21 | map.put(ArmorItem.Type.LEGGINGS, 6); 22 | map.put(ArmorItem.Type.CHESTPLATE, 8); 23 | map.put(ArmorItem.Type.HELMET, 3); 24 | map.put(ArmorItem.Type.BODY, 11); 25 | }), /*Enchantability*/ 22, SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, () -> Ingredient.ofItems(ItemList.CURSED_DIAMOND), List.of(new ArmorMaterial.Layer(Identifier.of(HerobrineMod.MODID, "cursed_diamond"))), /*Armor Toughness*/ 2.0f, /*Knockback Resistance*/ 0.0f)); 26 | } 27 | -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/advancements/recipes/decorations/herobrine_altar.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_gold_ingot": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": [ 9 | "minecraft:gold_ingot" 10 | ] 11 | } 12 | ] 13 | }, 14 | "trigger": "minecraft:inventory_changed" 15 | }, 16 | "has_blaze_rod": { 17 | "conditions": { 18 | "items": [ 19 | { 20 | "items": [ 21 | "minecraft:blaze_rod" 22 | ] 23 | } 24 | ] 25 | }, 26 | "trigger": "minecraft:inventory_changed" 27 | }, 28 | "has_diamond": { 29 | "conditions": { 30 | "items": [ 31 | { 32 | "items": [ 33 | "minecraft:diamond" 34 | ] 35 | } 36 | ] 37 | }, 38 | "trigger": "minecraft:inventory_changed" 39 | }, 40 | "has_the_recipe": { 41 | "conditions": { 42 | "recipe": "herobrine:herobrine_altar" 43 | }, 44 | "trigger": "minecraft:recipe_unlocked" 45 | } 46 | }, 47 | "requirements": [ 48 | [ 49 | "has_gold_ingot", 50 | "has_blaze_rod", 51 | "has_diamond", 52 | "has_the_recipe" 53 | ] 54 | ], 55 | "rewards": { 56 | "recipes": [ 57 | "herobrine:herobrine_altar" 58 | ] 59 | }, 60 | "sends_telemetry_event": false 61 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/advancements/recipes/misc/cursed_dust.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:recipes/root", 3 | "criteria": { 4 | "has_ghast_tear": { 5 | "conditions": { 6 | "items": [ 7 | { 8 | "items": [ 9 | "minecraft:ghast_tear" 10 | ] 11 | } 12 | ] 13 | }, 14 | "trigger": "minecraft:inventory_changed" 15 | }, 16 | "has_blaze_powder": { 17 | "conditions": { 18 | "items": [ 19 | { 20 | "items": [ 21 | "minecraft:blaze_powder" 22 | ] 23 | } 24 | ] 25 | }, 26 | "trigger": "minecraft:inventory_changed" 27 | }, 28 | "has_gold_ingot": { 29 | "conditions": { 30 | "items": [ 31 | { 32 | "items": [ 33 | "minecraft:gold_ingot" 34 | ] 35 | } 36 | ] 37 | }, 38 | "trigger": "minecraft:inventory_changed" 39 | }, 40 | "has_the_recipe": { 41 | "conditions": { 42 | "recipe": "herobrine:cursed_dust" 43 | }, 44 | "trigger": "minecraft:recipe_unlocked" 45 | } 46 | }, 47 | "requirements": [ 48 | [ 49 | "has_ghast_tear", 50 | "has_blaze_powder", 51 | "has_gold_ingot", 52 | "has_the_recipe" 53 | ] 54 | ], 55 | "rewards": { 56 | "recipes": [ 57 | "herobrine:cursed_dust" 58 | ] 59 | }, 60 | "sends_telemetry_event": false 61 | } -------------------------------------------------------------------------------- /src/main/resources/fabric.mod.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": 1, 3 | "id": "herobrine", 4 | "version": "${version}", 5 | "name": "The Legend of Herobrine", 6 | "description": "Adds Herobrine to Minecraft, and other herobrine related things.", 7 | "accessWidener" : "herobrine.accesswidener", 8 | "authors": [ 9 | "Alex MacLean" 10 | ], 11 | "contributors": [ 12 | "\nThe track C418 - Dog is property of Daniel Rosenfeld (C418) please do not redistribute this song. If you like it please buy it on bandcamp https://c418.bandcamp.com" 13 | ], 14 | "contact": { 15 | "email": "macleanalex78@gmail.com", 16 | "homepage": "https://herobrinemod.com", 17 | "sources": "https://github.com/Alex-MacLean/TheLegendOfHerobrine", 18 | "issues": "https://github.com/Alex-MacLean/TheLegendOfHerobrine/issues" 19 | }, 20 | "license": "LGPL-3.0-or-later", 21 | "icon": "assets/herobrine/logo.png", 22 | "environment": "*", 23 | "entrypoints": { 24 | "client": [ 25 | "com.herobrinemod.herobrine.client.HerobrineClient" 26 | ], 27 | "main": [ 28 | "com.herobrinemod.herobrine.HerobrineMod" 29 | ] 30 | }, 31 | "mixins": [ 32 | "herobrine.mixins.json" 33 | ], 34 | "depends": { 35 | "java": ">=21", 36 | "fabricloader": ">=0.15.11", 37 | "fabric": ">=0.100.1", 38 | "fabric-api": ">=0.100.1", 39 | "minecraft": ">=1.21" 40 | }, 41 | "custom": { 42 | "modmenu": { 43 | "update_checker": true 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/blocks/BlockList.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.blocks; 2 | 3 | import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; 4 | import net.minecraft.block.Block; 5 | import net.minecraft.block.MapColor; 6 | import net.minecraft.block.piston.PistonBehavior; 7 | import net.minecraft.sound.BlockSoundGroup; 8 | 9 | public class BlockList { 10 | // Initialize blocks 11 | public static final Block PURIFIED_DIAMOND_BLOCK = new Block(FabricBlockSettings.create().strength(1.5f).mapColor(MapColor.DIAMOND_BLUE).pistonBehavior(PistonBehavior.NORMAL).requiresTool().sounds(BlockSoundGroup.METAL)); 12 | public static final Block CURSED_DIAMOND_BLOCK = new CursedDiamondBlock(FabricBlockSettings.create().mapColor(MapColor.PURPLE).pistonBehavior(PistonBehavior.NORMAL).strength(1.5f).requiresTool().sounds(BlockSoundGroup.METAL)); 13 | public static final Block HEROBRINE_ALTAR_BLOCK = new HerobrineAltarBlock(FabricBlockSettings.create().mapColor(MapColor.RED).pistonBehavior(PistonBehavior.NORMAL).strength(1.5f).requiresTool().sounds(BlockSoundGroup.METAL).nonOpaque().allowsSpawning((state, world, pos, type) -> false).lightLevel(HerobrineAltarBlock::getLightValue)); 14 | public static final Block HEROBRINE_STATUE_BLOCK = new HerobrineStatueBlock(FabricBlockSettings.create().mapColor(MapColor.STONE_GRAY).pistonBehavior(PistonBehavior.NORMAL).strength(1.5f).requiresTool().sounds(BlockSoundGroup.STONE).nonOpaque().allowsSpawning((state, world, pos, type) -> false)); 15 | } -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/worldgen/template_pool/ruined_shrine.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "herobrine:ruined_shrine", 3 | "fallback": "minecraft:empty", 4 | "elements": [ 5 | { 6 | "weight": 1, 7 | "element": { 8 | "element_type": "minecraft:single_pool_element", 9 | "location": "herobrine:ruined_shrine", 10 | "projection": "rigid", 11 | "processors": "minecraft:empty" 12 | } 13 | }, 14 | { 15 | "weight": 1, 16 | "element": { 17 | "element_type": "minecraft:single_pool_element", 18 | "location": "herobrine:ruined_shrine_alt", 19 | "projection": "rigid", 20 | "processors": "minecraft:empty" 21 | } 22 | }, 23 | { 24 | "weight": 1, 25 | "element": { 26 | "element_type": "minecraft:single_pool_element", 27 | "location": "herobrine:ruined_shrine_alt_1", 28 | "projection": "rigid", 29 | "processors": "minecraft:empty" 30 | } 31 | }, 32 | { 33 | "weight": 1, 34 | "element": { 35 | "element_type": "minecraft:single_pool_element", 36 | "location": "herobrine:ruined_shrine_alt_2", 37 | "projection": "rigid", 38 | "processors": "minecraft:empty" 39 | } 40 | }, 41 | { 42 | "weight": 1, 43 | "element": { 44 | "element_type": "minecraft:single_pool_element", 45 | "location": "herobrine:ruined_shrine_alt_3", 46 | "projection": "rigid", 47 | "processors": "minecraft:empty" 48 | } 49 | } 50 | ] 51 | } -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/HerobrineMageEntityRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.HerobrineMageEntityModel; 5 | import com.herobrinemod.herobrine.client.entities.models.HerobrineModelLayers; 6 | import com.herobrinemod.herobrine.entities.HerobrineEntity; 7 | import net.fabricmc.api.EnvType; 8 | import net.fabricmc.api.Environment; 9 | import net.minecraft.client.render.entity.EntityRendererFactory; 10 | import net.minecraft.client.render.entity.MobEntityRenderer; 11 | import net.minecraft.client.util.math.MatrixStack; 12 | import net.minecraft.util.Identifier; 13 | import org.jetbrains.annotations.NotNull; 14 | 15 | @Environment(EnvType.CLIENT) 16 | public class HerobrineMageEntityRenderer extends MobEntityRenderer { 17 | 18 | public HerobrineMageEntityRenderer(EntityRendererFactory.Context context) { 19 | super(context, new HerobrineMageEntityModel(context.getPart(HerobrineModelLayers.HEROBRINE_MODEL_LAYER)), 0.5f); 20 | this.addFeature(new HerobrineEyesFeatureRenderer(this)); 21 | } 22 | 23 | @Override 24 | public Identifier getTexture(HerobrineEntity entity) { 25 | return Identifier.of(HerobrineMod.MODID, "textures/entity/herobrine.png"); 26 | } 27 | 28 | @Override 29 | protected void scale(HerobrineEntity herobrineEntity, @NotNull MatrixStack matrixStack, float f) { 30 | matrixStack.scale(0.9375f, 0.9375f, 0.9375f); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/resources/data/herobrine/loot_table/blocks/herobrine_altar.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "minecraft:block", 3 | "pools": [ 4 | { 5 | "rolls": 1, 6 | "entries": [ 7 | { 8 | "type": "minecraft:item", 9 | "name": "herobrine:herobrine_altar", 10 | "conditions": [ 11 | { 12 | "condition": "minecraft:survives_explosion" 13 | } 14 | ] 15 | } 16 | ] 17 | }, 18 | { 19 | "rolls": 1, 20 | "entries": [ 21 | { 22 | "type": "minecraft:item", 23 | "name": "herobrine:purified_diamond", 24 | "conditions": [ 25 | { 26 | "condition": "minecraft:block_state_property", 27 | "block": "herobrine:herobrine_altar", 28 | "properties": { 29 | "type": "2" 30 | } 31 | }, 32 | { 33 | "condition": "minecraft:survives_explosion" 34 | } 35 | ] 36 | }, 37 | { 38 | "type": "minecraft:item", 39 | "name": "herobrine:cursed_diamond", 40 | "conditions": [ 41 | { 42 | "condition": "minecraft:survives_explosion" 43 | }, 44 | { 45 | "condition": "minecraft:block_state_property", 46 | "block": "herobrine:herobrine_altar", 47 | "properties": { 48 | "type": "1" 49 | } 50 | } 51 | ] 52 | } 53 | ] 54 | } 55 | ], 56 | "random_sequence": "herobrine:blocks/herobrine_altar" 57 | } -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedDonkeyEntityRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.HerobrineModelLayers; 5 | import com.herobrinemod.herobrine.client.entities.models.InfectedDonkeyEntityModel; 6 | import com.herobrinemod.herobrine.entities.InfectedDonkeyEntity; 7 | import net.fabricmc.api.EnvType; 8 | import net.fabricmc.api.Environment; 9 | import net.minecraft.client.render.entity.EntityRendererFactory; 10 | import net.minecraft.client.render.entity.MobEntityRenderer; 11 | import net.minecraft.client.util.math.MatrixStack; 12 | import net.minecraft.util.Identifier; 13 | import org.jetbrains.annotations.NotNull; 14 | 15 | @Environment(EnvType.CLIENT) 16 | public class InfectedDonkeyEntityRenderer extends MobEntityRenderer { 17 | public InfectedDonkeyEntityRenderer(EntityRendererFactory.Context context) { 18 | super(context, new InfectedDonkeyEntityModel(context.getPart(HerobrineModelLayers.INFECTED_DONKEY_MODEL_LAYER)), 0.75f); 19 | this.addFeature(new InfectedDonkeyEyesFeatureRenderer(this)); 20 | } 21 | 22 | @Override 23 | protected void scale(InfectedDonkeyEntity entity, @NotNull MatrixStack matrixStack, float f) { 24 | matrixStack.scale(0.87f, 0.87f, 0.87f); 25 | } 26 | 27 | @Override 28 | public Identifier getTexture(InfectedDonkeyEntity entity) { 29 | return Identifier.of(HerobrineMod.MODID, "textures/entity/infected_donkey.png"); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/HerobrineEntityRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.HerobrineEntityModel; 5 | import com.herobrinemod.herobrine.client.entities.models.HerobrineModelLayers; 6 | import com.herobrinemod.herobrine.entities.HerobrineEntity; 7 | import net.fabricmc.api.EnvType; 8 | import net.fabricmc.api.Environment; 9 | import net.minecraft.client.render.entity.EntityRendererFactory; 10 | import net.minecraft.client.render.entity.MobEntityRenderer; 11 | import net.minecraft.client.render.entity.feature.HeldItemFeatureRenderer; 12 | import net.minecraft.client.util.math.MatrixStack; 13 | import net.minecraft.util.Identifier; 14 | import org.jetbrains.annotations.NotNull; 15 | 16 | @Environment(EnvType.CLIENT) 17 | public class HerobrineEntityRenderer extends MobEntityRenderer { 18 | public HerobrineEntityRenderer(EntityRendererFactory.Context context) { 19 | super(context, new HerobrineEntityModel(context.getPart(HerobrineModelLayers.HEROBRINE_MODEL_LAYER)), 0.5f); 20 | this.addFeature(new HeldItemFeatureRenderer<>(this, context.getHeldItemRenderer())); 21 | this.addFeature(new HerobrineEyesFeatureRenderer(this)); 22 | } 23 | 24 | @Override 25 | public Identifier getTexture(HerobrineEntity entity) { 26 | return Identifier.of(HerobrineMod.MODID, "textures/entity/herobrine.png"); 27 | } 28 | 29 | @Override 30 | protected void scale(HerobrineEntity entity, @NotNull MatrixStack matrixStack, float f) { 31 | matrixStack.scale(0.9375f, 0.9375f, 0.9375f); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedChickenEntityRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.HerobrineMod; 4 | import com.herobrinemod.herobrine.client.entities.models.HerobrineModelLayers; 5 | import com.herobrinemod.herobrine.client.entities.models.InfectedChickenEntityModel; 6 | import com.herobrinemod.herobrine.entities.InfectedChickenEntity; 7 | import net.fabricmc.api.EnvType; 8 | import net.fabricmc.api.Environment; 9 | import net.minecraft.client.render.entity.EntityRendererFactory; 10 | import net.minecraft.client.render.entity.MobEntityRenderer; 11 | import net.minecraft.util.Identifier; 12 | import net.minecraft.util.math.MathHelper; 13 | import org.jetbrains.annotations.NotNull; 14 | 15 | @Environment(EnvType.CLIENT) 16 | public class InfectedChickenEntityRenderer extends MobEntityRenderer { 17 | public InfectedChickenEntityRenderer(EntityRendererFactory.Context context) { 18 | super(context, new InfectedChickenEntityModel(context.getPart(HerobrineModelLayers.INFECTED_CHICKEN_MODEL_LAYER)), 0.3f); 19 | this.addFeature(new InfectedChickenEyesFeatureRenderer(this)); 20 | } 21 | 22 | @Override 23 | protected float getAnimationProgress(@NotNull InfectedChickenEntity entity, float f) { 24 | return (MathHelper.sin(MathHelper.lerp(f, entity.prevFlapProgress, entity.flapProgress)) + 1.0f) * MathHelper.lerp(f, entity.prevMaxWingDeviation, entity.maxWingDeviation); 25 | } 26 | 27 | @Override 28 | public Identifier getTexture(InfectedChickenEntity entity) { 29 | return Identifier.of(HerobrineMod.MODID, "textures/entity/infected_chicken.png"); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/entities/goals/InfectedHorseAmbientStandGoal.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.entities.goals; 2 | 3 | import com.herobrinemod.herobrine.entities.InfectedHorseEntity; 4 | import net.minecraft.entity.ai.goal.Goal; 5 | import net.minecraft.sound.SoundEvent; 6 | import org.jetbrains.annotations.NotNull; 7 | 8 | public class InfectedHorseAmbientStandGoal extends Goal { 9 | private final InfectedHorseEntity entity; 10 | private int cooldown; 11 | public InfectedHorseAmbientStandGoal(InfectedHorseEntity entity) { 12 | this.entity = entity; 13 | this.resetCooldown(entity); 14 | } 15 | 16 | @Override 17 | public void start() { 18 | this.entity.updateAnger(); 19 | this.playAmbientStandSound(); 20 | } 21 | 22 | private void playAmbientStandSound() { 23 | SoundEvent soundEvent = this.entity.getAmbientStandSound(); 24 | if (soundEvent != null) { 25 | this.entity.playSoundIfNotSilent(soundEvent); 26 | } 27 | } 28 | 29 | @Override 30 | public boolean shouldContinue() { 31 | return false; 32 | } 33 | 34 | @Override 35 | public boolean canStart() { 36 | ++this.cooldown; 37 | if (this.cooldown > 0 && this.entity.getRandom().nextInt(1000) < this.cooldown) { 38 | this.resetCooldown(this.entity); 39 | return !this.entity.isImmobile() && this.entity.getRandom().nextInt(10) == 0; 40 | } 41 | return false; 42 | } 43 | 44 | private void resetCooldown(@NotNull InfectedHorseEntity entity) { 45 | this.cooldown = -entity.getMinAmbientStandDelay(); 46 | } 47 | 48 | @Override 49 | public boolean shouldRunEveryTick() { 50 | return true; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/entities/goals/InfectedDonkeyAmbientStandGoal.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.entities.goals; 2 | 3 | import com.herobrinemod.herobrine.entities.InfectedDonkeyEntity; 4 | import net.minecraft.entity.ai.goal.Goal; 5 | import net.minecraft.sound.SoundEvent; 6 | import org.jetbrains.annotations.NotNull; 7 | 8 | public class InfectedDonkeyAmbientStandGoal extends Goal { 9 | private final InfectedDonkeyEntity entity; 10 | private int cooldown; 11 | public InfectedDonkeyAmbientStandGoal(InfectedDonkeyEntity entity) { 12 | this.entity = entity; 13 | this.resetCooldown(entity); 14 | } 15 | 16 | @Override 17 | public void start() { 18 | this.entity.updateAnger(); 19 | this.playAmbientStandSound(); 20 | } 21 | 22 | private void playAmbientStandSound() { 23 | SoundEvent soundEvent = this.entity.getAmbientStandSound(); 24 | if (soundEvent != null) { 25 | this.entity.playSoundIfNotSilent(soundEvent); 26 | } 27 | } 28 | 29 | @Override 30 | public boolean shouldContinue() { 31 | return false; 32 | } 33 | 34 | @Override 35 | public boolean canStart() { 36 | ++this.cooldown; 37 | if (this.cooldown > 0 && this.entity.getRandom().nextInt(1000) < this.cooldown) { 38 | this.resetCooldown(this.entity); 39 | return !this.entity.isImmobile() && this.entity.getRandom().nextInt(10) == 0; 40 | } 41 | return false; 42 | } 43 | 44 | private void resetCooldown(@NotNull InfectedDonkeyEntity entity) { 45 | this.cooldown = -entity.getMinAmbientStandDelay(); 46 | } 47 | 48 | @Override 49 | public boolean shouldRunEveryTick() { 50 | return true; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/mixin/ServerWorldMixin.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.mixin; 2 | 3 | import com.herobrinemod.herobrine.entities.HerobrineSpawnHelper; 4 | import com.herobrinemod.herobrine.savedata.ConfigHandler; 5 | import com.herobrinemod.herobrine.savedata.SaveDataHandler; 6 | import net.minecraft.server.MinecraftServer; 7 | import net.minecraft.server.world.ServerWorld; 8 | import org.jetbrains.annotations.NotNull; 9 | import org.spongepowered.asm.mixin.Mixin; 10 | import org.spongepowered.asm.mixin.Shadow; 11 | import org.spongepowered.asm.mixin.injection.At; 12 | import org.spongepowered.asm.mixin.injection.Inject; 13 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 14 | 15 | import java.util.function.BooleanSupplier; 16 | 17 | @Mixin(ServerWorld.class) 18 | public abstract class ServerWorldMixin { 19 | @Shadow @NotNull public abstract MinecraftServer getServer(); 20 | 21 | @Inject(method = "tick", at = @At(value = "TAIL")) 22 | private void progressHerobrineStage(BooleanSupplier shouldKeepTicking, CallbackInfo ci) { 23 | int stage = SaveDataHandler.getHerobrineSaveData().readInt("stage"); 24 | int stageTime = SaveDataHandler.getHerobrineSaveData().readInt("stageTime"); 25 | if(!ConfigHandler.getHerobrineConfig().readBoolean("HerobrineAlwaysSpawns") && HerobrineSpawnHelper.canHerobrineSpawn() && stage < 3) { 26 | stageTime ++; 27 | SaveDataHandler.getHerobrineSaveData().writeInt("stageTime", stageTime); 28 | if(stageTime > 23999) { 29 | stage ++; 30 | SaveDataHandler.getHerobrineSaveData().writeInt("stageTime", 0); 31 | SaveDataHandler.getHerobrineSaveData().writeInt("stage", stage); 32 | } 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/InfectedAxolotlEntityRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.google.common.collect.Maps; 4 | import com.herobrinemod.herobrine.HerobrineMod; 5 | import com.herobrinemod.herobrine.client.entities.models.HerobrineModelLayers; 6 | import com.herobrinemod.herobrine.client.entities.models.InfectedAxolotlEntityModel; 7 | import com.herobrinemod.herobrine.entities.InfectedAxolotlEntity; 8 | import net.minecraft.client.render.entity.EntityRendererFactory; 9 | import net.minecraft.client.render.entity.MobEntityRenderer; 10 | import net.minecraft.entity.passive.AxolotlEntity; 11 | import net.minecraft.util.Identifier; 12 | import net.minecraft.util.Util; 13 | import org.jetbrains.annotations.NotNull; 14 | 15 | import java.util.Locale; 16 | import java.util.Map; 17 | 18 | public class InfectedAxolotlEntityRenderer extends MobEntityRenderer { 19 | private static final Map TEXTURES = Util.make(Maps.newHashMap(), variants -> { 20 | for (AxolotlEntity.Variant variant : AxolotlEntity.Variant.values()) { 21 | variants.put(variant, Identifier.of(String.format(Locale.ROOT, HerobrineMod.MODID + ":textures/entity/infected_axolotl/axolotl_%s.png", variant.getName()))); 22 | } 23 | }); 24 | 25 | public InfectedAxolotlEntityRenderer(EntityRendererFactory.Context context) { 26 | super(context, new InfectedAxolotlEntityModel(context.getPart(HerobrineModelLayers.INFECTED_AXOLOTL_MODEL_LAYER)), 0.5f); 27 | this.addFeature(new InfectedAxolotlEyesFeatureRenderer(this)); 28 | } 29 | 30 | @Override 31 | public Identifier getTexture(@NotNull InfectedAxolotlEntity axolotlEntity) { 32 | return TEXTURES.get(axolotlEntity.getVariant()); 33 | } 34 | } -------------------------------------------------------------------------------- /src/main/java/com/herobrinemod/herobrine/client/entities/renderers/SurvivorEntityRenderer.java: -------------------------------------------------------------------------------- 1 | package com.herobrinemod.herobrine.client.entities.renderers; 2 | 3 | import com.herobrinemod.herobrine.client.entities.models.HerobrineModelLayers; 4 | import com.herobrinemod.herobrine.client.entities.models.SurvivorEntityModel; 5 | import com.herobrinemod.herobrine.entities.SurvivorEntity; 6 | import net.fabricmc.api.EnvType; 7 | import net.fabricmc.api.Environment; 8 | import net.minecraft.client.render.entity.EntityRendererFactory; 9 | import net.minecraft.client.render.entity.MobEntityRenderer; 10 | import net.minecraft.client.render.entity.feature.ArmorFeatureRenderer; 11 | import net.minecraft.client.render.entity.feature.HeldItemFeatureRenderer; 12 | import net.minecraft.client.util.math.MatrixStack; 13 | import net.minecraft.util.Identifier; 14 | import org.jetbrains.annotations.NotNull; 15 | 16 | @Environment(EnvType.CLIENT) 17 | public class SurvivorEntityRenderer extends MobEntityRenderer { 18 | public SurvivorEntityRenderer(EntityRendererFactory.Context context) { 19 | super(context, new SurvivorEntityModel(context.getPart(HerobrineModelLayers.SURVIVOR_MODEL_LAYER)), 0.5f); 20 | this.addFeature(new HeldItemFeatureRenderer<>(this, context.getHeldItemRenderer())); 21 | this.addFeature(new ArmorFeatureRenderer<>(this, new SurvivorEntityModel(context.getPart(HerobrineModelLayers.SURVIVOR_INNER_ARMOR)), new SurvivorEntityModel(context.getPart(HerobrineModelLayers.SURVIVOR_OUTER_ARMOR)), context.getModelManager())); 22 | } 23 | 24 | @Override 25 | protected void scale(@NotNull SurvivorEntity entity, @NotNull MatrixStack matrixStack, float f) { 26 | matrixStack.scale(0.9375f, 0.9375f, 0.9375f); 27 | } 28 | 29 | @Override 30 | public Identifier getTexture(@NotNull SurvivorEntity entity) { 31 | return entity.getTexture(); 32 | } 33 | } --------------------------------------------------------------------------------