Skip to content

Commit

Permalink
Implemented Fabric penguin spawning
Browse files Browse the repository at this point in the history
  • Loading branch information
GirafiStudios committed Dec 12, 2023
1 parent 71dca47 commit fa1be9d
Show file tree
Hide file tree
Showing 6 changed files with 18 additions and 54 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.MobCategory;
import net.minecraft.world.entity.animal.Animal;
import net.minecraft.world.item.Item;

import java.util.ArrayList;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,6 @@
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.world.entity.EntityType;

import java.util.HashMap;
import java.util.function.Supplier;

public class WaddlesSounds {
public static final RegistrationProvider<SoundEvent> SOUNDS = RegistrationProvider.get(BuiltInRegistries.SOUND_EVENT, Constants.MOD_ID);
Expand Down
23 changes: 18 additions & 5 deletions fabric/src/main/java/com/girafi/waddles/Waddles.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,11 @@

import com.girafi.waddles.entity.AdeliePenguinEntity;
import com.girafi.waddles.utils.ConfigurationHandler;
import com.girafi.waddles.utils.WaddlesTags;
import fuzs.forgeconfigapiport.api.config.v3.ForgeConfigRegistry;
import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.biome.v1.BiomeModifications;
import net.fabricmc.fabric.api.biome.v1.BiomeSelectionContext;
import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents;
import net.fabricmc.fabric.api.object.builder.v1.entity.FabricDefaultAttributeRegistry;
import net.minecraft.core.Direction;
Expand All @@ -12,13 +15,19 @@
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.MobCategory;
import net.minecraft.world.entity.MobSpawnType;
import net.minecraft.world.item.*;
import net.minecraft.world.entity.SpawnPlacements;
import net.minecraft.world.item.CreativeModeTabs;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.SpawnEggItem;
import net.minecraft.world.level.block.DispenserBlock;
import net.minecraft.world.level.gameevent.GameEvent;
import net.minecraft.world.level.levelgen.Heightmap;
import net.neoforged.fml.config.ModConfig;

import java.util.function.Supplier;
import java.util.function.Predicate;

import static com.girafi.waddles.init.PenguinRegistry.*;

Expand All @@ -37,24 +46,28 @@ public class Waddles implements ModInitializer {
stack.shrink(1);
source.level().gameEvent(GameEvent.ENTITY_PLACE, source.pos(), GameEvent.Context.of(source.state()));
return stack;
}; //TODO Spawn Placement
};

@Override
public void onInitialize() {
CommonClass.init();
ForgeConfigRegistry.INSTANCE.register(Constants.MOD_ID, ModConfig.Type.COMMON, ConfigurationHandler.spec);

register();
BiomeModifications.addSpawn(penguinSpawnSelector(), MobCategory.CREATURE, ADELIE_PENGUIN.get(), 100, 1, 5);
}

public void register() {
PENGUINS.forEach((penguin, name) -> {
Item spawnEgg = Registry.register(BuiltInRegistries.ITEM, new ResourceLocation(Constants.MOD_ID,name + "_spawn_egg"), new SpawnEggItem(penguin.get(), PENGUIN_EGG_PRIMARY.get(penguin), PENGUIN_EGG_SECONDARY.get(penguin), new Item.Properties()));
Item spawnEgg = Registry.register(BuiltInRegistries.ITEM, new ResourceLocation(Constants.MOD_ID, name + "_spawn_egg"), new SpawnEggItem(penguin.get(), PENGUIN_EGG_PRIMARY.get(penguin), PENGUIN_EGG_SECONDARY.get(penguin), new Item.Properties()));
FabricDefaultAttributeRegistry.register(penguin.get(), AdeliePenguinEntity.createAttributes());
DispenserBlock.registerBehavior(spawnEgg, DEFAULT_DISPENSE_BEHAVIOR);
ItemGroupEvents.modifyEntriesEvent(CreativeModeTabs.SPAWN_EGGS).register(content -> content.accept(spawnEgg));
SpawnPlacements.register(penguin.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, AdeliePenguinEntity::canPenguinSpawn);
});
}

//PenguinSpawn.BIOME_MODIFIER_SERIALIZERS_DEFERRED.register("penguin_spawn", PenguinSpawn.PenguinBiomeModifier::makeCodec); //TODO Figure out how to do mob spawns in Fabric
public static Predicate<BiomeSelectionContext> penguinSpawnSelector() {
return (context) -> context.hasTag(WaddlesTags.SPAWN_INCLUDE_LIST) && !context.hasTag(WaddlesTags.SPAWN_EXCLUDE_LIST);
}
}

This file was deleted.

3 changes: 0 additions & 3 deletions fabric/src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,6 @@
"com.girafi.waddles.client.ClientHandler"
]
},
"mixins": [
"${mod_id}.fabric.mixins.json"
],
"depends": {
"fabricloader": ">=0.14",
"fabric-api": "*",
Expand Down
18 changes: 0 additions & 18 deletions fabric/src/main/resources/waddles.fabric.mixins.json

This file was deleted.

0 comments on commit fa1be9d

Please sign in to comment.