mirror of
https://github.com/Sollace/Unicopia.git
synced 2024-11-27 15:17:59 +01:00
Add additional balloon designs (based on submissions by CryGhast #186 )
This commit is contained in:
parent
5cc2bcc0e4
commit
3798d69e7c
5 changed files with 20 additions and 3 deletions
|
@ -1,5 +1,6 @@
|
||||||
package com.minelittlepony.unicopia.entity.mob;
|
package com.minelittlepony.unicopia.entity.mob;
|
||||||
|
|
||||||
|
import net.fabricmc.fabric.api.tag.convention.v1.ConventionalItemTags;
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.block.ShapeContext;
|
import net.minecraft.block.ShapeContext;
|
||||||
import net.minecraft.entity.*;
|
import net.minecraft.entity.*;
|
||||||
|
@ -47,6 +48,7 @@ import com.minelittlepony.unicopia.entity.collision.MultiBox;
|
||||||
import com.minelittlepony.unicopia.entity.duck.EntityDuck;
|
import com.minelittlepony.unicopia.entity.duck.EntityDuck;
|
||||||
import com.minelittlepony.unicopia.item.BasketItem;
|
import com.minelittlepony.unicopia.item.BasketItem;
|
||||||
import com.minelittlepony.unicopia.item.HotAirBalloonItem;
|
import com.minelittlepony.unicopia.item.HotAirBalloonItem;
|
||||||
|
import com.minelittlepony.unicopia.item.UItems;
|
||||||
import com.minelittlepony.unicopia.server.world.WeatherConditions;
|
import com.minelittlepony.unicopia.server.world.WeatherConditions;
|
||||||
import com.terraformersmc.terraform.boat.api.TerraformBoatType;
|
import com.terraformersmc.terraform.boat.api.TerraformBoatType;
|
||||||
|
|
||||||
|
@ -336,7 +338,7 @@ public class AirBalloonEntity extends MobEntity implements EntityCollisions.Comp
|
||||||
if (isAscending()) {
|
if (isAscending()) {
|
||||||
playSound(USounds.ENTITY_HOT_AIR_BALLOON_BOOST, 1, 1);
|
playSound(USounds.ENTITY_HOT_AIR_BALLOON_BOOST, 1, 1);
|
||||||
}
|
}
|
||||||
stack.damage(1, player, p -> p.sendEquipmentBreakStatus(hand == Hand.MAIN_HAND ? EquipmentSlot.MAINHAND : EquipmentSlot.OFFHAND));
|
stack.damage(1, player, p -> p.sendToolBreakStatus(hand));
|
||||||
playSound(USounds.Vanilla.ITEM_FLINTANDSTEEL_USE, 1, 1);
|
playSound(USounds.Vanilla.ITEM_FLINTANDSTEEL_USE, 1, 1);
|
||||||
getWorld().emitGameEvent(this, GameEvent.ENTITY_INTERACT, getBlockPos());
|
getWorld().emitGameEvent(this, GameEvent.ENTITY_INTERACT, getBlockPos());
|
||||||
return ActionResult.SUCCESS;
|
return ActionResult.SUCCESS;
|
||||||
|
@ -372,6 +374,17 @@ public class AirBalloonEntity extends MobEntity implements EntityCollisions.Comp
|
||||||
return ActionResult.SUCCESS;
|
return ActionResult.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (stack.isIn(ConventionalItemTags.SHEARS) && hasBalloon()) {
|
||||||
|
if (!player.getAbilities().creativeMode) {
|
||||||
|
stack.damage(1, player, p -> p.sendToolBreakStatus(hand));
|
||||||
|
}
|
||||||
|
setDesign(BalloonDesign.NONE);
|
||||||
|
dropItem(UItems.GIANT_BALLOON);
|
||||||
|
playSound(USounds.ENTITY_HOT_AIR_BALLOON_EQUIP_CANOPY, 1, 1);
|
||||||
|
getWorld().emitGameEvent(this, GameEvent.ENTITY_INTERACT, getBlockPos());
|
||||||
|
return ActionResult.SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
if ((stack.isOf(Items.LANTERN) || stack.isOf(Items.SOUL_LANTERN)) && !hasBurner()) {
|
if ((stack.isOf(Items.LANTERN) || stack.isOf(Items.SOUL_LANTERN)) && !hasBurner()) {
|
||||||
setStackInHand(Hand.MAIN_HAND, stack.copyWithCount(1));
|
setStackInHand(Hand.MAIN_HAND, stack.copyWithCount(1));
|
||||||
if (!player.getAbilities().creativeMode) {
|
if (!player.getAbilities().creativeMode) {
|
||||||
|
@ -532,9 +545,13 @@ public class AirBalloonEntity extends MobEntity implements EntityCollisions.Comp
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
public enum BalloonDesign implements StringIdentifiable {
|
public enum BalloonDesign implements StringIdentifiable {
|
||||||
NONE,
|
NONE,
|
||||||
LUNA;
|
LUNA,
|
||||||
|
DAWN,
|
||||||
|
EQUALITY,
|
||||||
|
STORM,
|
||||||
|
TALE;
|
||||||
|
|
||||||
public static final StringIdentifiable.Codec<BalloonDesign> CODEC = StringIdentifiable.createCodec(BalloonDesign::values);
|
public static final Codec<BalloonDesign> CODEC = StringIdentifiable.createCodec(BalloonDesign::values);
|
||||||
private static final IntFunction<BalloonDesign> BY_ID = ValueLists.<BalloonDesign>createIdToValueFunction(Enum::ordinal, values(), ValueLists.OutOfBoundsHandling.ZERO);
|
private static final IntFunction<BalloonDesign> BY_ID = ValueLists.<BalloonDesign>createIdToValueFunction(Enum::ordinal, values(), ValueLists.OutOfBoundsHandling.ZERO);
|
||||||
|
|
||||||
private final String name = name().toLowerCase(Locale.ROOT);
|
private final String name = name().toLowerCase(Locale.ROOT);
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 40 KiB |
Binary file not shown.
After Width: | Height: | Size: 28 KiB |
Binary file not shown.
After Width: | Height: | Size: 35 KiB |
Binary file not shown.
After Width: | Height: | Size: 53 KiB |
Loading…
Reference in a new issue