mirror of
https://github.com/Sollace/Unicopia.git
synced 2025-02-01 11:36:43 +01:00
Update items and music discs
This commit is contained in:
parent
db413622a1
commit
668dd13db7
11 changed files with 111 additions and 57 deletions
|
@ -148,16 +148,21 @@ public interface USounds {
|
|||
SoundEvent GUI_SPELL_CRAFT_SUCCESS = register("gui.spellcraft.success");
|
||||
RegistryEntry.Reference<SoundEvent> GUI_SPELL_EQUIP = UI_BUTTON_CLICK;
|
||||
|
||||
SoundEvent RECORD_CRUSADE = register("music_disc.crusade");
|
||||
SoundEvent RECORD_PET = register("music_disc.pet");
|
||||
SoundEvent RECORD_POPULAR = register("music_disc.popular");
|
||||
SoundEvent RECORD_FUNK = register("music_disc.funk");
|
||||
RegistryEntry.Reference<SoundEvent> RECORD_CRUSADE = registerReference("music_disc.crusade");
|
||||
RegistryEntry.Reference<SoundEvent> RECORD_PET = registerReference("music_disc.pet");
|
||||
RegistryEntry.Reference<SoundEvent> RECORD_POPULAR = registerReference("music_disc.popular");
|
||||
RegistryEntry.Reference<SoundEvent> RECORD_FUNK = registerReference("music_disc.funk");
|
||||
|
||||
static SoundEvent register(String name) {
|
||||
Identifier id = Unicopia.id(name);
|
||||
return Registry.register(Registries.SOUND_EVENT, id, SoundEvent.of(id));
|
||||
}
|
||||
|
||||
static RegistryEntry.Reference<SoundEvent> registerReference(String name) {
|
||||
Identifier id = Unicopia.id(name);
|
||||
return Registry.registerReference(Registries.SOUND_EVENT, id, SoundEvent.of(id));
|
||||
}
|
||||
|
||||
static SoundEvent register(String name, float range) {
|
||||
Identifier id = Unicopia.id(name);
|
||||
return Registry.register(Registries.SOUND_EVENT, id, SoundEvent.of(id, range));
|
||||
|
|
|
@ -7,6 +7,7 @@ import com.minelittlepony.unicopia.block.EdibleBlock;
|
|||
import com.minelittlepony.unicopia.datagen.providers.DietsProvider;
|
||||
import com.minelittlepony.unicopia.datagen.providers.SeasonsGrowthRatesProvider;
|
||||
import com.minelittlepony.unicopia.datagen.providers.UAdvancementsProvider;
|
||||
import com.minelittlepony.unicopia.datagen.providers.UJukeboxSongProvider;
|
||||
import com.minelittlepony.unicopia.datagen.providers.UModelProvider;
|
||||
import com.minelittlepony.unicopia.datagen.providers.UPaintingVariantProvider;
|
||||
import com.minelittlepony.unicopia.datagen.providers.loot.UBlockAdditionsLootTableProvider;
|
||||
|
@ -66,6 +67,7 @@ public class Datagen implements DataGeneratorEntrypoint {
|
|||
final var paintingVariantProvider = pack.addProvider(UPaintingVariantProvider::new);
|
||||
pack.addProvider((output, registries) -> new UPaintingVariantTagProvider(output, registries, paintingVariantProvider));
|
||||
|
||||
pack.addProvider(UJukeboxSongProvider::new);
|
||||
pack.addProvider(UModelProvider::new);
|
||||
pack.addProvider(URecipeProvider::new);
|
||||
pack.addProvider(UBlockLootTableProvider::new);
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
package com.minelittlepony.unicopia.datagen.providers;
|
||||
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
import com.minelittlepony.unicopia.USounds;
|
||||
import com.minelittlepony.unicopia.item.UJukeboxSongs;
|
||||
|
||||
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
|
||||
import net.fabricmc.fabric.api.datagen.v1.provider.FabricDynamicRegistryProvider;
|
||||
import net.minecraft.block.jukebox.JukeboxSong;
|
||||
import net.minecraft.registry.RegistryKey;
|
||||
import net.minecraft.registry.RegistryWrapper.WrapperLookup;
|
||||
import net.minecraft.registry.entry.RegistryEntry;
|
||||
import net.minecraft.sound.SoundEvent;
|
||||
import net.minecraft.text.Text;
|
||||
import net.minecraft.util.Util;
|
||||
|
||||
public class UJukeboxSongProvider extends FabricDynamicRegistryProvider {
|
||||
public UJukeboxSongProvider(FabricDataOutput output, CompletableFuture<WrapperLookup> registriesFuture) {
|
||||
super(output, registriesFuture);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Jukebox Songs";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configure(WrapperLookup registries, Entries entries) {
|
||||
register(entries, UJukeboxSongs.CRUSADE, USounds.RECORD_CRUSADE, 181, 1);
|
||||
register(entries, UJukeboxSongs.PET, USounds.RECORD_PET, 221, 2);
|
||||
register(entries, UJukeboxSongs.POPULAR, USounds.RECORD_POPULAR, 112, 3);
|
||||
register(entries, UJukeboxSongs.FUNK, USounds.RECORD_FUNK, 91, 4);
|
||||
}
|
||||
|
||||
private void register(
|
||||
Entries entries,
|
||||
RegistryKey<JukeboxSong> key,
|
||||
RegistryEntry.Reference<SoundEvent> soundEvent, int lengthInSeconds, int comparatorOutput) {
|
||||
entries.add(key, new JukeboxSong(soundEvent, Text.translatable(Util.createTranslationKey("jukebox_song", key.getValue())), lengthInSeconds, comparatorOutput));
|
||||
}
|
||||
|
||||
}
|
|
@ -7,6 +7,7 @@ import org.jetbrains.annotations.Nullable;
|
|||
import com.minelittlepony.unicopia.ability.magic.Caster;
|
||||
import com.minelittlepony.unicopia.entity.player.Pony;
|
||||
|
||||
import net.minecraft.component.DataComponentTypes;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.LivingEntity;
|
||||
import net.minecraft.entity.damage.DamageSource;
|
||||
|
@ -60,11 +61,11 @@ public class MagicalDamageSource extends DamageSource {
|
|||
if (attacker == target) {
|
||||
basic += ".self";
|
||||
|
||||
if (!item.isEmpty() && item.hasCustomName()) {
|
||||
if (!item.isEmpty() && item.contains(DataComponentTypes.CUSTOM_NAME)) {
|
||||
basic += ".item";
|
||||
params.add(item.toHoverableText());
|
||||
}
|
||||
} else if (!item.isEmpty() && item.hasCustomName()) {
|
||||
} else if (!item.isEmpty() && item.contains(DataComponentTypes.CUSTOM_NAME)) {
|
||||
basic += ".item";
|
||||
params.add(attacker.getDisplayName());
|
||||
params.add(item.toHoverableText());
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
package com.minelittlepony.unicopia.item;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import com.google.common.collect.Multimap;
|
||||
|
||||
import net.minecraft.entity.EquipmentSlot;
|
||||
import net.minecraft.entity.attribute.EntityAttribute;
|
||||
import net.minecraft.entity.attribute.EntityAttributeModifier;
|
||||
import net.minecraft.item.Item;
|
||||
|
||||
public class BluntWeaponItem extends Item {
|
||||
private final Multimap<EntityAttribute, EntityAttributeModifier> modifiers;
|
||||
|
||||
public static final UUID KNOCKBACK_MODIFIER_ID = UUID.fromString("7b16994b-1edb-4381-be62-94317f39ec8f");
|
||||
public static final UUID LUCK_MODIFIER_ID = UUID.fromString("7b16994b-1edb-8431-be62-7f39ec94318f");
|
||||
|
||||
public BluntWeaponItem(Settings settings, Multimap<EntityAttribute, EntityAttributeModifier> modifiers) {
|
||||
super(settings);
|
||||
this.modifiers = modifiers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Multimap<EntityAttribute, EntityAttributeModifier> getAttributeModifiers(EquipmentSlot slot) {
|
||||
if (slot == EquipmentSlot.OFFHAND) {
|
||||
return modifiers;
|
||||
}
|
||||
return super.getAttributeModifiers(slot);
|
||||
}
|
||||
}
|
|
@ -17,6 +17,7 @@ import net.minecraft.entity.FlyingItemEntity;
|
|||
import net.minecraft.entity.LivingEntity;
|
||||
import net.minecraft.entity.attribute.EntityAttributeInstance;
|
||||
import net.minecraft.entity.attribute.EntityAttributes;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.particle.ParticleTypes;
|
||||
import net.minecraft.server.world.ServerWorld;
|
||||
|
@ -27,7 +28,7 @@ import net.minecraft.util.math.MathHelper;
|
|||
import net.minecraft.world.WorldEvents;
|
||||
|
||||
public class FilledJarItem extends ProjectileItem implements ProjectileDelegate.HitListener, ChameleonItem {
|
||||
public FilledJarItem(Settings settings) {
|
||||
public FilledJarItem(Item.Settings settings) {
|
||||
super(settings, 0);
|
||||
}
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ import net.minecraft.item.Item;
|
|||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class OatmealItem extends StewItem {
|
||||
public class OatmealItem extends Item {
|
||||
|
||||
public OatmealItem(Item.Settings settings) {
|
||||
super(settings);
|
||||
|
|
|
@ -4,6 +4,7 @@ import net.minecraft.component.type.FoodComponent;
|
|||
import net.minecraft.component.type.FoodComponents;
|
||||
import net.minecraft.entity.effect.StatusEffectInstance;
|
||||
import net.minecraft.entity.effect.StatusEffects;
|
||||
import net.minecraft.item.Items;
|
||||
|
||||
public interface UFoodComponents {
|
||||
FoodComponent OATS = builder(1, 0.7F).build();
|
||||
|
@ -12,6 +13,7 @@ public interface UFoodComponents {
|
|||
.statusEffect(new StatusEffectInstance(StatusEffects.HEALTH_BOOST, 1200, 1), 1)
|
||||
.statusEffect(new StatusEffectInstance(StatusEffects.STRENGTH, 1200, 1), 0.3F)
|
||||
.statusEffect(new StatusEffectInstance(StatusEffects.SPEED, 1200, 1), 0.2F)
|
||||
.usingConvertsTo(Items.BOWL)
|
||||
.build();
|
||||
FoodComponent DAFODIL_DAISY_SANDWICH = builder(3, 1.4F).build();
|
||||
FoodComponent BURGER = builder(7, 1.4F).build();
|
||||
|
@ -24,7 +26,7 @@ public interface UFoodComponents {
|
|||
FoodComponent JUICE = builder(2, 1.8F).alwaysEdible().build();
|
||||
FoodComponent BURNED_JUICE = builder(3, 1).build();
|
||||
|
||||
FoodComponent NUT_BOWL = FoodComponents.BAKED_POTATO; //builder(4, 0.6F).build();
|
||||
FoodComponent NUT_BOWL = builder(5, 0.6F).usingConvertsTo(Items.BOWL).build();//FoodComponents.BAKED_POTATO;
|
||||
|
||||
FoodComponent OATMEAL_COOKIE = FoodComponents.COOKIE; //builder(2, 0.1F).build();
|
||||
FoodComponent CHOCOLATE_OATMEAL_COOKIE = builder(3, 0.4F).build();
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
package com.minelittlepony.unicopia.item;
|
||||
|
||||
import com.minelittlepony.unicopia.Unicopia;
|
||||
|
||||
import net.minecraft.util.Identifier;
|
||||
|
||||
public interface UItemModifierIds {
|
||||
Identifier KNOCKBACK_MODIFIER_ID = Unicopia.id("knockback_modifier");
|
||||
Identifier LUCK_MODIFIER_ID = Unicopia.id("luck_modifier");
|
||||
}
|
|
@ -1,6 +1,5 @@
|
|||
package com.minelittlepony.unicopia.item;
|
||||
|
||||
import com.google.common.collect.ImmutableMultimap;
|
||||
import com.minelittlepony.unicopia.*;
|
||||
import com.minelittlepony.unicopia.block.FancyBedBlock.SheetPattern;
|
||||
import com.minelittlepony.unicopia.block.UBlocks;
|
||||
|
@ -19,6 +18,9 @@ import com.terraformersmc.terraform.boat.api.TerraformBoatTypeRegistry;
|
|||
import com.terraformersmc.terraform.boat.api.item.TerraformBoatItemHelper;
|
||||
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.block.jukebox.JukeboxSong;
|
||||
import net.minecraft.component.type.AttributeModifierSlot;
|
||||
import net.minecraft.component.type.AttributeModifiersComponent;
|
||||
import net.minecraft.component.type.FoodComponents;
|
||||
import net.minecraft.entity.attribute.EntityAttributeModifier;
|
||||
import net.minecraft.entity.attribute.EntityAttributes;
|
||||
|
@ -27,7 +29,6 @@ import net.minecraft.item.*;
|
|||
import net.minecraft.item.Item.Settings;
|
||||
import net.fabricmc.fabric.api.registry.CompostingChanceRegistry;
|
||||
import net.fabricmc.fabric.api.registry.FuelRegistry;
|
||||
import net.minecraft.sound.SoundEvent;
|
||||
import net.minecraft.util.Rarity;
|
||||
import net.minecraft.util.UseAction;
|
||||
import net.minecraft.registry.Registry;
|
||||
|
@ -45,10 +46,10 @@ public interface UItems {
|
|||
Item ROTTEN_APPLE = register("rotten_apple", new RottenAppleItem(new Item.Settings().food(FoodComponents.APPLE)), ItemGroups.FOOD_AND_DRINK);
|
||||
Item COOKED_ZAP_APPLE = register("cooked_zap_apple", new Item(new Item.Settings().food(FoodComponents.APPLE)), ItemGroups.FOOD_AND_DRINK);
|
||||
|
||||
Item MUSIC_DISC_CRUSADE = register("music_disc_crusade", USounds.RECORD_CRUSADE, 181);
|
||||
Item MUSIC_DISC_PET = register("music_disc_pet", USounds.RECORD_PET, 221);
|
||||
Item MUSIC_DISC_POPULAR = register("music_disc_popular", USounds.RECORD_POPULAR, 112);
|
||||
Item MUSIC_DISC_FUNK = register("music_disc_funk", USounds.RECORD_FUNK, 91);
|
||||
Item MUSIC_DISC_CRUSADE = register("music_disc_crusade", UJukeboxSongs.CRUSADE);
|
||||
Item MUSIC_DISC_PET = register("music_disc_pet", UJukeboxSongs.PET);
|
||||
Item MUSIC_DISC_POPULAR = register("music_disc_popular", UJukeboxSongs.POPULAR);
|
||||
Item MUSIC_DISC_FUNK = register("music_disc_funk", UJukeboxSongs.FUNK);
|
||||
|
||||
FriendshipBraceletItem FRIENDSHIP_BRACELET = register("friendship_bracelet", new FriendshipBraceletItem(new Item.Settings().rarity(Rarity.UNCOMMON)), ItemGroups.TOOLS);
|
||||
|
||||
|
@ -81,7 +82,7 @@ public interface UItems {
|
|||
Item OATMEAL_COOKIE = register("oatmeal_cookie", new Item(new Item.Settings().food(UFoodComponents.OATMEAL_COOKIE)), ItemGroups.FOOD_AND_DRINK);
|
||||
Item CHOCOLATE_OATMEAL_COOKIE = register("chocolate_oatmeal_cookie", new Item(new Item.Settings().food(UFoodComponents.CHOCOLATE_OATMEAL_COOKIE)), ItemGroups.FOOD_AND_DRINK);
|
||||
Item PINECONE_COOKIE = register("pinecone_cookie", new Item(new Item.Settings().food(FoodComponents.COOKIE)), ItemGroups.FOOD_AND_DRINK);
|
||||
Item BOWL_OF_NUTS = register("bowl_of_nuts", new StewItem(new Item.Settings().food(UFoodComponents.NUT_BOWL).recipeRemainder(Items.BOWL)), ItemGroups.FOOD_AND_DRINK);
|
||||
Item BOWL_OF_NUTS = register("bowl_of_nuts", new Item(new Item.Settings().food(UFoodComponents.NUT_BOWL).recipeRemainder(Items.BOWL)), ItemGroups.FOOD_AND_DRINK);
|
||||
Item SCONE = register("scone", new MuffinItem(new Item.Settings().maxCount(32).food(UFoodComponents.SCONE), 0), ItemGroups.FOOD_AND_DRINK);
|
||||
|
||||
Item DAFFODIL_DAISY_SANDWICH = register("daffodil_daisy_sandwich", new Item(new Item.Settings().food(UFoodComponents.DAFODIL_DAISY_SANDWICH)), ItemGroups.FOOD_AND_DRINK);
|
||||
|
@ -106,13 +107,13 @@ public interface UItems {
|
|||
|
||||
Item PEBBLES = register("pebbles", new AliasedBlockItem(UBlocks.ROCKS, new Item.Settings()), ItemGroups.NATURAL);
|
||||
Item ROCK = register("rock", new HeavyProjectileItem(new Item.Settings(), 3), ItemGroups.NATURAL);
|
||||
Item WEIRD_ROCK = register("weird_rock", new BluntWeaponItem(new Item.Settings(), ImmutableMultimap.of(
|
||||
EntityAttributes.GENERIC_LUCK, new EntityAttributeModifier(BluntWeaponItem.LUCK_MODIFIER_ID, "Weapon modifier", 9, EntityAttributeModifier.Operation.ADD_VALUE)
|
||||
)), ItemGroups.NATURAL);
|
||||
Item TOM = register("tom", new BluntWeaponItem(new Item.Settings(), ImmutableMultimap.of(
|
||||
EntityAttributes.GENERIC_KNOCKBACK_RESISTANCE, new EntityAttributeModifier(BluntWeaponItem.KNOCKBACK_MODIFIER_ID, "Weapon modifier", 0.9, EntityAttributeModifier.Operation.ADD_VALUE)
|
||||
)), ItemGroups.NATURAL);
|
||||
Item ROCK_STEW = register("rock_stew", new StewItem(new Item.Settings().food(FoodComponents.MUSHROOM_STEW).maxCount(1).recipeRemainder(Items.BOWL)), ItemGroups.FOOD_AND_DRINK);
|
||||
Item WEIRD_ROCK = register("weird_rock", new Item(new Item.Settings().attributeModifiers(AttributeModifiersComponent.builder()
|
||||
.add(EntityAttributes.GENERIC_LUCK, new EntityAttributeModifier(UItemModifierIds.LUCK_MODIFIER_ID, 9, EntityAttributeModifier.Operation.ADD_VALUE), AttributeModifierSlot.MAINHAND)
|
||||
.build())), ItemGroups.NATURAL);
|
||||
Item TOM = register("tom", new Item(new Item.Settings().attributeModifiers(AttributeModifiersComponent.builder()
|
||||
.add(EntityAttributes.GENERIC_KNOCKBACK_RESISTANCE, new EntityAttributeModifier(UItemModifierIds.KNOCKBACK_MODIFIER_ID, 0.9, EntityAttributeModifier.Operation.ADD_VALUE), AttributeModifierSlot.MAINHAND)
|
||||
.build())), ItemGroups.NATURAL);
|
||||
Item ROCK_STEW = register("rock_stew", new Item(new Item.Settings().food(FoodComponents.MUSHROOM_STEW).maxCount(1).recipeRemainder(Items.BOWL)), ItemGroups.FOOD_AND_DRINK);
|
||||
Item ROCK_CANDY = register("rock_candy", new Item(new Item.Settings().food(UFoodComponents.CANDY).maxCount(16)), ItemGroups.FOOD_AND_DRINK);
|
||||
Item SALT_CUBE = register("salt_cube", new Item(new Item.Settings().food(UFoodComponents.SALT_CUBE)), ItemGroups.FOOD_AND_DRINK);
|
||||
|
||||
|
@ -267,11 +268,12 @@ public interface UItems {
|
|||
return ItemGroupRegistry.register(Unicopia.id(name), item);
|
||||
}
|
||||
|
||||
static MusicDiscItem register(String name, SoundEvent sound, int seconds) {
|
||||
return register(name, new MusicDiscItem(1, sound, new Settings()
|
||||
static Item register(String name, RegistryKey<JukeboxSong> song) {
|
||||
return register(name, new Item(new Settings()
|
||||
.jukeboxPlayable(song)
|
||||
.maxCount(1)
|
||||
.rarity(Rarity.RARE), seconds
|
||||
) {}, ItemGroups.TOOLS);
|
||||
.rarity(Rarity.RARE)
|
||||
), ItemGroups.TOOLS);
|
||||
}
|
||||
|
||||
static Item register(Race race) {
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
package com.minelittlepony.unicopia.item;
|
||||
|
||||
import com.minelittlepony.unicopia.Unicopia;
|
||||
|
||||
import net.minecraft.block.jukebox.JukeboxSong;
|
||||
import net.minecraft.registry.RegistryKey;
|
||||
import net.minecraft.registry.RegistryKeys;
|
||||
|
||||
public interface UJukeboxSongs {
|
||||
RegistryKey<JukeboxSong> CRUSADE = of("crusade");
|
||||
RegistryKey<JukeboxSong> PET = of("pet");
|
||||
RegistryKey<JukeboxSong> POPULAR = of("popular");
|
||||
RegistryKey<JukeboxSong> FUNK = of("funk");
|
||||
|
||||
private static RegistryKey<JukeboxSong> of(String name) {
|
||||
return RegistryKey.of(RegistryKeys.JUKEBOX_SONG, Unicopia.id(name));
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue