Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,10 @@
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Explosion;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.ServerExplosion;
import net.minecraft.world.level.storage.ValueInput;
import net.minecraft.world.level.storage.ValueOutput;
import net.minecraft.world.phys.AABB;
import net.minecraft.world.phys.Vec3;
import org.jspecify.annotations.Nullable;

Expand Down Expand Up @@ -65,6 +67,17 @@ public CollectibleEntity(Level level, double x, double y, double z, ItemStack st
this.setFixed(true);
}

@Nullable
public static Vec3 placePos(Level level, BlockPos blockPos) {
var dimensions = MubbleEntityTypes.COLLECTIBLE.getDimensions();
Vec3 pos = Vec3.atBottomCenterOf(blockPos).add(0, Math.clamp((1 - dimensions.height()) / 2, 0.0f, 0.5f), 0);
AABB box = dimensions.makeBoundingBox(pos.x(), pos.y(), pos.z());
if (level.noCollision(null, box) && level.getEntities(null, box).isEmpty()) {
return pos;
}
return null;
}

public ItemStack getItem() {
return this.getEntityData().get(DATA_ITEM);
}
Expand Down Expand Up @@ -298,6 +311,10 @@ public boolean ignoreExplosion(final Explosion explosion) {
if (!this.isFixed()) {
return false;
}
if(!(explosion instanceof ServerExplosion)) {
//TODO: make this more dynamic...
return true;
}
return explosion.shouldAffectBlocklikeEntities() ? super.ignoreExplosion(explosion) : true;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ public void reboundUp() {
/**
* Triggers after the ball has hit and can no longer rebound.
*/
protected void finalHit() {
protected final void finalHit() {
this.finalHit(this.getDeathSound());
}

Expand Down
2 changes: 2 additions & 0 deletions mubble-super_mario/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ fabricApi {
}

loom {
accessWidenerPath = file("src/main/resources/super_mario.accesswidener")

runs {
datagen {
name "Data Generation"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ public static void registerEntities() {
EntityRenderers.register(SuperMarioEntityTypes.RED_KOOPA_SHELL, KoopaShellRenderer::new);
EntityRenderers.register(SuperMarioEntityTypes.FIREBALL, BallRenderer::new);
EntityRenderers.register(SuperMarioEntityTypes.ICEBALL, BallRenderer::new);
EntityRenderers.register(SuperMarioEntityTypes.GOLD_FIREBALL, BallRenderer::new);
}

public static void registerBlockEntities() {
Expand Down
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ public record Entry(ResourceKey<Item> item, ResourceKey<PowerUp> powerUp) { }
new Entry(SuperMarioItemKeys.MINI_MUSHROOM, SuperMarioPowerUpKeys.MINI),
new Entry(SuperMarioItemKeys.MEGA_MUSHROOM, SuperMarioPowerUpKeys.MEGA),
new Entry(SuperMarioItemKeys.FIRE_FLOWER, SuperMarioPowerUpKeys.FIRE),
new Entry(SuperMarioItemKeys.ICE_FLOWER, SuperMarioPowerUpKeys.ICE)
new Entry(SuperMarioItemKeys.ICE_FLOWER, SuperMarioPowerUpKeys.ICE),
new Entry(SuperMarioItemKeys.GOLD_FLOWER, SuperMarioPowerUpKeys.GOLD)
);

public static ResourceKey<Item> getItem(ResourceKey<PowerUp> powerUp) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ protected void addTags(HolderLookup.Provider wrapperLookup) {
valueLookupBuilder(SNAKE_BLOCKS).add(SNAKE_BLOCK, FAST_SNAKE_BLOCK, SLOW_SNAKE_BLOCK);
valueLookupBuilder(BEEP_BLOCKS).add(RED_BEEP_BLOCK, BLUE_BEEP_BLOCK);

valueLookupBuilder(GOLD_EXPLOSION_SENSITIVE).add(BRICK_BLOCK, CRYSTAL_BLOCK);

valueLookupBuilder(EGG_BLOCKS).add(
BLUE_EGG_BLOCK,
CYAN_EGG_BLOCK,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,6 @@ public static void bootstrap(BootstrapContext<DamageType> context) {
context.register(SuperMarioDamageTypeKeys.KOOPA_SHELL, new DamageType(SuperMario.MOD_ID + ".koopa_shell", 0.1f));
context.register(SuperMarioDamageTypeKeys.FIREBALL, new DamageType(SuperMario.MOD_ID + ".fireball", 0.1f, DamageEffects.BURNING));
context.register(SuperMarioDamageTypeKeys.ICEBALL, new DamageType(SuperMario.MOD_ID + ".iceball", 0.1f, DamageEffects.FREEZING));
context.register(SuperMarioDamageTypeKeys.GOLD_FIREBALL, new DamageType(SuperMario.MOD_ID + ".gold_fireball", 0.1f));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ public void generateTranslations(HolderLookup.Provider wrapperLookup, Translatio
builder.add("subtitles." + SuperMario.MOD_ID + ".block.note_block.jump", "Note Block used");
builder.add(SuperMarioSounds.COIN_COLLECT.value(), "Coin collected");
builder.add("subtitles." + SuperMario.MOD_ID + ".item.cape_feather.use", "Cape Feather used");
builder.add(SuperMarioSounds.GOLDEN_EXPLOSION.value(), "Golden explosion");
builder.add("subtitles." + SuperMario.MOD_ID + ".entity.goomba.find_target", "Goomba finds a target");
builder.add("subtitles." + SuperMario.MOD_ID + ".entity.goomba.death", "Goomba dies");
builder.add("subtitles." + SuperMario.MOD_ID + ".entity.goomba.stomp", "Goomba stomped");
Expand All @@ -52,6 +53,7 @@ public void generateTranslations(HolderLookup.Provider wrapperLookup, Translatio
builder.add("subtitles." + SuperMario.MOD_ID + ".entity.fireball.throw", "Fireball thrown");
builder.add("subtitles." + SuperMario.MOD_ID + ".entity.iceball.hit", "Iceball hits");
builder.add("subtitles." + SuperMario.MOD_ID + ".entity.iceball.throw", "Iceball thrown");
builder.add(SuperMarioSounds.GOLD_FIREBALL_THROW.value(), "Gold Fireball thrown");
builder.add("subtitles." + SuperMario.MOD_ID + ".power_up.obtain", "Power-up obtained");
builder.add("subtitles." + SuperMario.MOD_ID + ".power_up.loose", "Power-up lost");

Expand All @@ -64,5 +66,7 @@ public void generateTranslations(HolderLookup.Provider wrapperLookup, Translatio
builder.add("death.attack." + SuperMario.MOD_ID + ".fireball.player", "%1$s was fireballed while fighting %2$s");
builder.add("death.attack." + SuperMario.MOD_ID + ".iceball", "%1$s was iceballed by %2$s");
builder.add("death.attack." + SuperMario.MOD_ID + ".iceball.player", "%1$s was iceballed while fighting %2$s");
builder.add("death.attack." + SuperMario.MOD_ID + ".gold_fireball", "%1$s was gold-blasted by %2$s");
builder.add("death.attack." + SuperMario.MOD_ID + ".gold_fireball.player", "%1$s was gold-blasted while fighting %2$s");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ public void generateItemModels(ItemModelGenerators gen) {
gen.generateFlatItem(SuperMarioItems.MEGA_MUSHROOM, ModelTemplates.FLAT_ITEM);
gen.generateFlatItem(SuperMarioItems.FIRE_FLOWER, ModelTemplates.FLAT_ITEM);
gen.generateFlatItem(SuperMarioItems.ICE_FLOWER, ModelTemplates.FLAT_ITEM);
gen.generateFlatItem(SuperMarioItems.GOLD_FLOWER, ModelTemplates.FLAT_ITEM);

gen.generateFlatItem(SuperMarioItems.CAPE_FEATHER, ModelTemplates.FLAT_ITEM);
gen.generateFlatItem(SuperMarioItems.SUPER_CAPE_FEATHER, ModelTemplates.FLAT_ITEM);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,16 @@ public static void bootstrap(BootstrapContext<PowerUp> context) {
Optional.empty()
)))
.build());
context.register(GOLD, create(GOLD)
.obtainSound(SuperMarioSounds.POWER_UP_OBTAIN_GOLD)
.action(Holder.direct(new ShootProjectilePowerUpAction(
SuperMarioEntityTypes.GOLD_FIREBALL,
SuperMarioSounds.GOLD_FIREBALL_THROW,
0.4f,
Optional.of(3),
Optional.empty()
)))
.build());
}

public static PowerUpBuilder create(ResourceKey<PowerUp> key) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ protected void configure(HolderLookup.Provider wrapperLookup, SoundExporter soun
soundExporter.add(SuperMarioSounds.CAPE_FEATHER_USE, variantSoundBuilder(SuperMarioSounds.CAPE_FEATHER_USE, 1));

// Entities
soundExporter.add(SuperMarioSounds.GOLDEN_EXPLOSION, variantSoundBuilder(SuperMarioSounds.GOLDEN_EXPLOSION, 1));

soundExporter.add(SuperMarioSounds.GOOMBA_WALK_STEP, variantSoundBuilder(SuperMarioSounds.GOOMBA_WALK_STEP, 1).subtitle("subtitles.block.generic.footsteps"));
soundExporter.add(SuperMarioSounds.GOOMBA_RUN_STEP, variantSoundBuilder(SuperMarioSounds.GOOMBA_RUN_STEP, 1).subtitle("subtitles.block.generic.footsteps"));
soundExporter.add(SuperMarioSounds.GOOMBA_FIND_TARGET, variantSoundBuilder(SuperMarioSounds.GOOMBA_FIND_TARGET, 1));
Expand All @@ -60,10 +62,15 @@ protected void configure(HolderLookup.Provider wrapperLookup, SoundExporter soun
soundExporter.add(SuperMarioSounds.ICEBALL_HIT_ENTITY, variantSoundBuilder(SuperMarioSounds.ICEBALL_HIT_ENTITY, 1).subtitle("subtitles." + SuperMario.MOD_ID + ".entity.iceball.hit"));
soundExporter.add(SuperMarioSounds.ICEBALL_THROW, variantSoundBuilder(SuperMarioSounds.ICEBALL_THROW, 1));

soundExporter.add(SuperMarioSounds.GOLD_FIREBALL_THROW, variantSoundBuilder(SuperMarioSounds.FIREBALL_THROW, 1).subtitle("subtitles." + SuperMario.MOD_ID + ".entity.gold_fireball.throw"));

// Power-Up
var obtainSub = "subtitles." + SuperMario.MOD_ID + ".power_up.obtain";

soundExporter.add(SuperMarioSounds.POWER_UP_OBTAIN, variantSoundBuilder(SuperMarioSounds.POWER_UP_OBTAIN, 1));
soundExporter.add(SuperMarioSounds.POWER_UP_OBTAIN_MINI, variantSoundBuilder(SuperMarioSounds.POWER_UP_OBTAIN_MINI, 1).subtitle("subtitles." + SuperMario.MOD_ID + ".power_up.obtain"));
soundExporter.add(SuperMarioSounds.POWER_UP_OBTAIN_SUPER_STAR, variantSoundBuilder(SuperMarioSounds.POWER_UP_OBTAIN_SUPER_STAR, 1).subtitle("subtitles." + SuperMario.MOD_ID + ".power_up.obtain"));
soundExporter.add(SuperMarioSounds.POWER_UP_OBTAIN_MINI, variantSoundBuilder(SuperMarioSounds.POWER_UP_OBTAIN_MINI, 1).subtitle(obtainSub));
soundExporter.add(SuperMarioSounds.POWER_UP_OBTAIN_SUPER_STAR, variantSoundBuilder(SuperMarioSounds.POWER_UP_OBTAIN_SUPER_STAR, 1).subtitle(obtainSub));
soundExporter.add(SuperMarioSounds.POWER_UP_OBTAIN_GOLD, variantSoundBuilder(SuperMarioSounds.POWER_UP_OBTAIN_GOLD, 1).subtitle(obtainSub));
soundExporter.add(SuperMarioSounds.POWER_UP_LOOSE, variantSoundBuilder(SuperMarioSounds.POWER_UP_LOOSE, 1));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ public class SuperMarioDamageTypeKeys {
public static final ResourceKey<DamageType> KOOPA_SHELL = createKey("koopa_shell");
public static final ResourceKey<DamageType> FIREBALL = createKey("fireball");
public static final ResourceKey<DamageType> ICEBALL = createKey("iceball");
public static final ResourceKey<DamageType> GOLD_FIREBALL = createKey("gold_fireball");

private static ResourceKey<DamageType> createKey(String path) {
return ResourceKey.create(Registries.DAMAGE_TYPE, SuperMario.id(path));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ public class SuperMarioEntityTypeKeys {
public static final ResourceKey<EntityType<?>> RED_KOOPA_SHELL = createKey("red_koopa_shell");
public static final ResourceKey<EntityType<?>> FIREBALL = createKey("fireball");
public static final ResourceKey<EntityType<?>> ICEBALL = createKey("iceball");
public static final ResourceKey<EntityType<?>> GOLD_FIREBALL = createKey("gold_fireball");

private static ResourceKey<EntityType<?>> createKey(String path) {
return ResourceKey.create(Registries.ENTITY_TYPE, SuperMario.id(path));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ public class SuperMarioItemKeys {
public static final ResourceKey<Item> MEGA_MUSHROOM = createKey("mega_mushroom");
public static final ResourceKey<Item> FIRE_FLOWER = createKey("fire_flower");
public static final ResourceKey<Item> ICE_FLOWER = createKey("ice_flower");
public static final ResourceKey<Item> GOLD_FLOWER = createKey("gold_flower");

public static final ResourceKey<Item> CAPE_FEATHER = createKey("cape_feather");
public static final ResourceKey<Item> SUPER_CAPE_FEATHER = createKey("super_cape_feather");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ public class SuperMarioPowerUpKeys {
public static final ResourceKey<PowerUp> MEGA = createKey("mega");
public static final ResourceKey<PowerUp> FIRE = createKey("fire");
public static final ResourceKey<PowerUp> ICE = createKey("ice");
public static final ResourceKey<PowerUp> GOLD = createKey("gold");

private static ResourceKey<PowerUp> createKey(String path) {
return ResourceKey.create(MubbleRegistries.POWER_UP, SuperMario.id(path));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ public class SuperMarioSounds {
public static final Holder.Reference<SoundEvent> COIN_BOUNCE = registerForHolder("item.coin.bounce");
public static final SoundEvent CAPE_FEATHER_USE = register("item.cape_feather.use");

public static final Holder.Reference<SoundEvent> GOLDEN_EXPLOSION = registerForHolder("entity.generic.golden_explosion");

public static final SoundEvent GOOMBA_WALK_STEP = register("entity.goomba.walk_step");
public static final SoundEvent GOOMBA_RUN_STEP = register("entity.goomba.run_step");
public static final SoundEvent GOOMBA_FIND_TARGET = register("entity.goomba.find_target");
Expand All @@ -42,9 +44,12 @@ public class SuperMarioSounds {
public static final SoundEvent ICEBALL_HIT_ENTITY = register("entity.iceball.hit.entity");
public static final Holder.Reference<SoundEvent> ICEBALL_THROW = registerForHolder("entity.iceball.throw");

public static final Holder.Reference<SoundEvent> GOLD_FIREBALL_THROW = registerForHolder("entity.gold_fireball.throw");

public static final Holder.Reference<SoundEvent> POWER_UP_OBTAIN = registerForHolder("power_up.obtain");
public static final Holder.Reference<SoundEvent> POWER_UP_OBTAIN_MINI = registerForHolder("power_up.obtain.mini");
public static final Holder.Reference<SoundEvent> POWER_UP_OBTAIN_SUPER_STAR = registerForHolder("power_up.obtain.super_star");
public static final Holder.Reference<SoundEvent> POWER_UP_OBTAIN_GOLD = registerForHolder("power_up.obtain.gold");
public static final Holder.Reference<SoundEvent> POWER_UP_LOOSE = registerForHolder("power_up.loose");


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ public class SuperMarioBlockTags {
public static final TagKey<Block> SNAKE_BLOCKS = bind("snake_blocks");
public static final TagKey<Block> BEEP_BLOCKS = bind("beep_blocks");

public static final TagKey<Block> GOLD_EXPLOSION_SENSITIVE = bind("gold_explosion_sensitive");

// YOSHI'S ISLAND
public static final TagKey<Block> EGG_BLOCKS = bind("egg_blocks");

public static TagKey<Block> bind(String path) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@

import fr.hugman.mubble.super_mario.references.SuperMarioEntityTypeKeys;
import fr.hugman.mubble.super_mario.world.entity.monster.goomba.Goomba;
import fr.hugman.mubble.super_mario.world.entity.projectile.Fireball;
import fr.hugman.mubble.super_mario.world.entity.projectile.GreenKoopaShell;
import fr.hugman.mubble.super_mario.world.entity.projectile.Iceball;
import fr.hugman.mubble.super_mario.world.entity.projectile.RedKoopaShell;
import fr.hugman.mubble.super_mario.world.entity.projectile.*;
import net.fabricmc.fabric.api.object.builder.v1.entity.FabricDefaultAttributeRegistry;
import net.minecraft.core.Registry;
import net.minecraft.core.registries.BuiltInRegistries;
Expand All @@ -20,6 +17,7 @@ public final class SuperMarioEntityTypes {
public static final EntityType<RedKoopaShell> RED_KOOPA_SHELL = of(SuperMarioEntityTypeKeys.RED_KOOPA_SHELL, EntityType.Builder.<RedKoopaShell>of(RedKoopaShell::new, MobCategory.MISC).sized(10 / 16f, 7 / 16f));
public static final EntityType<Fireball> FIREBALL = of(SuperMarioEntityTypeKeys.FIREBALL, EntityType.Builder.<Fireball>of(Fireball::new, MobCategory.MISC).sized(0.4F, 0.4F).clientTrackingRange(4).updateInterval(10));
public static final EntityType<Iceball> ICEBALL = of(SuperMarioEntityTypeKeys.ICEBALL, EntityType.Builder.<Iceball>of(Iceball::new, MobCategory.MISC).sized(0.4F, 0.4F).clientTrackingRange(4).updateInterval(10));
public static final EntityType<GoldFireball> GOLD_FIREBALL = of(SuperMarioEntityTypeKeys.GOLD_FIREBALL, EntityType.Builder.<GoldFireball>of(GoldFireball::new, MobCategory.MISC).sized(0.4F, 0.4F).clientTrackingRange(4).updateInterval(10));

private static <T extends Entity> EntityType<T> of(ResourceKey<EntityType<?>> id, EntityType.Builder<T> type) {
return Registry.register(BuiltInRegistries.ENTITY_TYPE, id, type.build(id));
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package fr.hugman.mubble.super_mario.world.entity.projectile;

import fr.hugman.mubble.Mubble;
import fr.hugman.mubble.super_mario.SuperMario;
import fr.hugman.mubble.super_mario.references.SuperMarioDamageTypeKeys;
import fr.hugman.mubble.super_mario.sounds.SuperMarioSounds;
import fr.hugman.mubble.super_mario.world.entity.SuperMarioEntityTypes;
import fr.hugman.mubble.super_mario.world.level.GoldenServerExplosion;
import fr.hugman.mubble.world.entity.projectile.Ball;
import net.minecraft.core.ClientAsset;
import net.minecraft.core.Direction;
import net.minecraft.core.particles.ParticleOptions;
import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.level.Level;
import net.minecraft.world.phys.BlockHitResult;

public class GoldFireball extends Ball {
private static final ClientAsset.ResourceTexture TEXTURE = new ClientAsset.ResourceTexture(SuperMario.id("entity/gold_fireball"));

public GoldFireball(EntityType<? extends GoldFireball> type, Level level) {
super(type, level);
}

public GoldFireball(Level level, LivingEntity owner) {
super(SuperMarioEntityTypes.GOLD_FIREBALL, level, owner);
}

public GoldFireball(double x, double y, double z, Level level) {
super(SuperMarioEntityTypes.GOLD_FIREBALL, x, y, z, level);
}

@Override
protected SoundEvent getDeathSound() {
return SuperMarioSounds.FIREBALL_HIT_BLOCK; //TODO change
}

@Override
protected ParticleOptions getDeathParticle() {
return ParticleTypes.FLAME; //TODO change
}

@Override
protected void onHitBlock(BlockHitResult result) {
super.onHitBlock(result);
Direction face = result.getDirection();
if (face == Direction.UP) {
this.reboundUp();
} else {
this.finalHit();
}
}

@Override
protected void finalHit(SoundEvent deathSound) {
super.finalHit(deathSound);
if(this.level() instanceof ServerLevel serverLevel) {
GoldenServerExplosion.create(serverLevel, this, this.damageSources().source(SuperMarioDamageTypeKeys.GOLD_FIREBALL, this, this.getOwner()), null, this.getX(), this.getY(0.0625F), this.getZ(), 3.0F, Level.ExplosionInteraction.MOB);
}
}

@Override
public ClientAsset.ResourceTexture getTexture() {
return TEXTURE;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,8 @@ public InteractionResult useOn(final UseOnContext context) {
BlockPlaceContext placeContext = new BlockPlaceContext(context);
BlockPos blockPos = placeContext.getClickedPos();
ItemStack itemStack = context.getItemInHand();
var dimensions = MubbleEntityTypes.COLLECTIBLE.getDimensions();
Vec3 pos = Vec3.atBottomCenterOf(blockPos).add(0, Math.clamp((1 - dimensions.height()) / 2, 0.0f, 0.5f), 0);
AABB box = dimensions.makeBoundingBox(pos.x(), pos.y(), pos.z());
if (level.noCollision(null, box) && level.getEntities(null, box).isEmpty()) {
Vec3 pos = CollectibleEntity.placePos(level, blockPos);
if (pos != null) {
if (level instanceof ServerLevel serverLevel) {
CollectibleEntity entity = new CollectibleEntity(serverLevel, pos.x(), pos.y(), pos.z(), itemStack.copyWithCount(1));
entity.setCollectSound(new SoundConfig(SuperMarioSounds.COIN_COLLECT, 0.2f, 1.0f));
Expand Down
Loading