Skip to content

Commit

Permalink
Release for Minecraft 1.20.2.
Browse files Browse the repository at this point in the history
- Update to Minecraft 1.20.2
* Update MixinExtras version for compat fixes
- Follow vanilla boat dispenser behavior changes
  • Loading branch information
gniftygnome committed Sep 21, 2023
1 parent df2bd53 commit fd7eb7d
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 14 deletions.
10 changes: 5 additions & 5 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ org.gradle.jvmargs=-Xmx2G
fabric.loom.multiProjectOptimisation=true

maven_group=com.terraformersmc.terraform-api
version=8.0.0-beta.1
version=8.0.0

minecraft_version=1.20.2-pre4
yarn_mappings=1.20.2-pre4+build.1
minecraft_version=1.20.2
yarn_mappings=1.20.2+build.1
loader_version=0.14.22
fabric_version=0.88.4+1.20.2
fabric_version=0.89.0+1.20.2

mixinextras_version=0.2.0-rc.2
mixinextras_version=0.2.0-rc.4
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,23 @@
import net.minecraft.block.DispenserBlock;
import net.minecraft.block.dispenser.DispenserBehavior;
import net.minecraft.block.dispenser.ItemDispenserBehavior;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.vehicle.BoatEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.registry.RegistryKey;
import net.minecraft.registry.tag.FluidTags;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.util.math.BlockPointer;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.World;

/**
* A {@linkplain DispenserBehavior dispenser behavior} that spawns a {@linkplain TerraformBoatEntity boat entity} with a given {@linkplain TerraformBoatType Terraform boat type}.
*/
public class TerraformBoatDispenserBehavior extends ItemDispenserBehavior {
private static final DispenserBehavior FALLBACK_BEHAVIOR = new ItemDispenserBehavior();
private static final float OFFSET_MULTIPLIER = 1.125F;
private static final double OFFSET_MULTIPLIER = 1.125F;

private final RegistryKey<TerraformBoatType> boatKey;
private final boolean chest;
Expand All @@ -39,18 +40,19 @@ public TerraformBoatDispenserBehavior(RegistryKey<TerraformBoatType> boatKey, bo

@Override
public ItemStack dispenseSilently(BlockPointer pointer, ItemStack stack) {
Direction facing = pointer.getBlockState().get(DispenserBlock.FACING);
Vec3d centerPos = pointer.method_53906();
Direction facing = pointer.state().get(DispenserBlock.FACING);
ServerWorld world = pointer.world();
Vec3d centerPos = pointer.centerPos();

double x = centerPos.getX() + facing.getOffsetX() * OFFSET_MULTIPLIER;
double horizontalOffsetMultiplier = (OFFSET_MULTIPLIER + EntityType.BOAT.getWidth()) / 2.0d;
double x = centerPos.getX() + facing.getOffsetX() * horizontalOffsetMultiplier;
double y = centerPos.getY() + facing.getOffsetY() * OFFSET_MULTIPLIER;
double z = centerPos.getZ() + facing.getOffsetZ() * OFFSET_MULTIPLIER;
double z = centerPos.getZ() + facing.getOffsetZ() * horizontalOffsetMultiplier;

World world = pointer.getWorld();
BlockPos pos = pointer.getPos().offset(facing);
BlockPos pos = pointer.pos().offset(facing);

if (world.getFluidState(pos).isIn(FluidTags.WATER)) {
y += 1;
y += 1.0d;
} else if (!world.getBlockState(pos).isAir() || !world.getFluidState(pos.down()).isIn(FluidTags.WATER)) {
return FALLBACK_BEHAVIOR.dispense(pointer, stack);
}
Expand All @@ -75,4 +77,9 @@ public ItemStack dispenseSilently(BlockPointer pointer, ItemStack stack) {
stack.decrement(1);
return stack;
}

@Override
protected void playSound(BlockPointer pointer) {
pointer.world().syncWorldEvent(1000, pointer.pos(), 0);
}
}

0 comments on commit fd7eb7d

Please sign in to comment.