Skip to content
Merged
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
@@ -1,6 +1,7 @@
// 1.19.2 2024-05-28T14:53:16.655934 Pocket Computer Upgrades
// 1.19.2 2025-01-25T19:46:21.23515 Pocket Computer Upgrades
b672635324c0df354e587efc81d0b19a581eae2f data/advancedperipherals/computercraft/pocket_upgrades/chatty_pocket.json
30b8f663613c7ce77048fd69631afcc11a682276 data/advancedperipherals/computercraft/pocket_upgrades/colony_pocket.json
661dc77bd0442bfb2a5ed80cff271071817bb22d data/advancedperipherals/computercraft/pocket_upgrades/distance_pocket.json
d4647159c2f2693a9c5e8d12bf740635751d29a8 data/advancedperipherals/computercraft/pocket_upgrades/environment_pocket.json
8216a0a7d8ebe3ae738c8fc3626df25eb0a2e07a data/advancedperipherals/computercraft/pocket_upgrades/geoscanner_pocket.json
a38aa83593f7ad0ace98e01bb3b5f06f272ef734 data/advancedperipherals/computercraft/pocket_upgrades/player_pocket.json
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
// 1.19.2 2025-01-20T07:50:09.44057 Languages: en_us
ebf2194b8fece940adb61f1ae317f68799bd498f assets/advancedperipherals/lang/en_us.json
// 1.19.2 2025-01-25T19:46:21.234203 Languages: en_us
e858500d72e9279f0fe0e8b2d03f94469c8d1f65 assets/advancedperipherals/lang/en_us.json
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@
"keybind.advancedperipherals.description": "Show Description",
"pocket.advancedperipherals.chatty_pocket": "Chatty",
"pocket.advancedperipherals.colony_pocket": "Colony",
"pocket.advancedperipherals.distance_pocket": "Distance Detector",
"pocket.advancedperipherals.environment_pocket": "Environment",
"pocket.advancedperipherals.geoscanner_pocket": "Geo",
"pocket.advancedperipherals.player_pocket": "Player Detector",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"type": "advancedperipherals:distance_pocket",
"item": "advancedperipherals:distance_detector"
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public DistanceDetectorRenderer(BlockEntityRendererProvider.Context pContext) {

@Override
public void render(@NotNull DistanceDetectorEntity pBlockEntity, float pPartialTick, @NotNull PoseStack pPoseStack, MultiBufferSource pBufferSource, int pPackedLight, int pPackedOverlay) {
if (pBlockEntity.getLaserVisibility()) {
if (pBlockEntity.getShowLaser()) {
float distance = pBlockEntity.getCurrentDistance();
float[] color = EnumColor.RED.getRgb();
if (distance == -1) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,14 +93,14 @@ public static ItemStack getCurioGlasses(Player player) {
}

public static boolean isBlockOnShip(Level level, BlockPos pos) {
if (!vs2Loaded) {
if (level == null || !vs2Loaded) {
return false;
}
return VSGameUtilsKt.isBlockInShipyard(level, pos);
}

public static Ship getVS2Ship(Level level, BlockPos pos) {
if (!vs2Loaded) {
if (level == null || !vs2Loaded) {
return null;
}
return VSGameUtilsKt.getShipObjectManagingPos(level, pos);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import dan200.computercraft.api.peripheral.IPeripheral;
import de.srendi.advancedperipherals.common.blocks.base.BaseBlock;
import de.srendi.advancedperipherals.common.blocks.blockentities.InventoryManagerEntity;
import de.srendi.advancedperipherals.common.util.DataStorageUtil;
import de.srendi.advancedperipherals.common.util.fakeplayer.APFakePlayer;
import de.srendi.advancedperipherals.lib.peripherals.IPeripheralTileEntity;
Expand All @@ -12,16 +11,17 @@
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
import net.minecraft.world.Nameable;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.entity.BlockEntity;

import java.util.Objects;
import org.apache.commons.lang3.NotImplementedException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.util.Objects;

public class BlockEntityPeripheralOwner<T extends BlockEntity & IPeripheralTileEntity> extends BasePeripheralOwner {

public final T tileEntity;
Expand Down Expand Up @@ -70,11 +70,15 @@ public FrontAndTop getOrientation() {
return tileEntity.getBlockState().getValue(BaseBlock.ORIENTATION);
}

@Nullable
@Override
public Entity getHoldingEntity() {
return null;
}

@Nullable
@Override
public Player getOwner() {
if (tileEntity instanceof InventoryManagerEntity inventoryManagerEntity)
return inventoryManagerEntity.getOwnerPlayer();
return null;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,27 @@
package de.srendi.advancedperipherals.common.addons.computercraft.owner;

import dan200.computercraft.api.peripheral.IPeripheral;
import de.srendi.advancedperipherals.common.addons.APAddons;
import de.srendi.advancedperipherals.common.util.fakeplayer.APFakePlayer;
import de.srendi.advancedperipherals.lib.peripherals.IPeripheralOperation;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.core.FrontAndTop;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.OwnableEntity;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import net.minecraft.world.phys.Vec3;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.joml.Vector3d;
import org.valkyrienskies.core.api.ships.Ship;

import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public interface IPeripheralOwner {

Expand All @@ -33,7 +40,37 @@ default Vec3 getCenterPos() {

@NotNull FrontAndTop getOrientation();

@Nullable Player getOwner();
@NotNull
default Vec3 getDirection() {
Vec3 dir = Vec3.atLowerCornerOf(getFacing().getNormal());
if (!APAddons.vs2Loaded) {
return dir;
}
Ship ship = APAddons.getVS2Ship(getLevel(), getPos());
if (ship == null) {
return dir;
}
Vector3d newDir = ship.getShipToWorld().transformDirection(new Vector3d(dir.x, dir.y, dir.z));
return new Vec3(newDir.x, newDir.y, newDir.z);
}

@Nullable Entity getHoldingEntity();

@Nullable
default Player getOwner() {
Entity owner = getHoldingEntity();
Set<Entity> checked = new HashSet<>();
while (owner != null && checked.add(owner)) {
if (owner instanceof Player player) {
return (Player) player;
}
if (!(owner instanceof OwnableEntity ownable)) {
break;
}
owner = ownable.getOwner();
}
return null;
}

@NotNull CompoundTag getDataStorage();

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package de.srendi.advancedperipherals.common.addons.computercraft.owner;

import de.srendi.advancedperipherals.common.blocks.blockentities.InventoryManagerEntity;
import net.minecraft.world.entity.player.Player;
import org.jetbrains.annotations.Nullable;

public class InventoryManagerOwner extends BlockEntityPeripheralOwner<InventoryManagerEntity> {
public InventoryManagerOwner(InventoryManagerEntity tile) {
super(tile);
}

@Nullable
@Override
public Player getOwner() {
return tileEntity.getOwnerPlayer();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import dan200.computercraft.api.peripheral.IPeripheral;
import dan200.computercraft.api.pocket.IPocketAccess;
import dan200.computercraft.api.pocket.IPocketUpgrade;
import de.srendi.advancedperipherals.common.configuration.APConfig;
import de.srendi.advancedperipherals.common.util.DataStorageUtil;
import de.srendi.advancedperipherals.common.util.fakeplayer.APFakePlayer;
Expand All @@ -11,7 +12,6 @@
import net.minecraft.core.FrontAndTop;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import net.minecraft.world.phys.Vec3;
Expand All @@ -21,12 +21,15 @@

public class PocketPeripheralOwner extends BasePeripheralOwner {
private final IPocketAccess pocket;
private final IPocketUpgrade upgrade;

public PocketPeripheralOwner(IPocketAccess pocket) {
public PocketPeripheralOwner(IPocketAccess pocket, IPocketUpgrade upgrade) {
super();
this.pocket = pocket;
if(APConfig.PERIPHERALS_CONFIG.disablePocketFuelConsumption.get())
this.upgrade = upgrade;
if (APConfig.PERIPHERALS_CONFIG.disablePocketFuelConsumption.get()) {
attachAbility(PeripheralOwnerAbility.FUEL, new InfinitePocketFuelAbility(this));
}
}

@Nullable
Expand All @@ -39,56 +42,58 @@ public String getCustomName() {
@Override
public Level getLevel() {
Entity owner = pocket.getEntity();
if (owner == null) return null;
return owner.getCommandSenderWorld();
return owner == null ? null : owner.getCommandSenderWorld();
}

@NotNull
@Override
public BlockPos getPos() {
Entity owner = pocket.getEntity();
if (owner == null) return new BlockPos(0, 0, 0);
return owner.blockPosition();
return owner == null ? BlockPos.ZERO : new BlockPos(owner.getEyePosition());
}

@NotNull
@Override
public Vec3 getCenterPos() {
Entity owner = pocket.getEntity();
if (owner == null) return new Vec3(0, 0, 0);
return owner.position();
return owner == null ? Vec3.ZERO : owner.getEyePosition();
}

@NotNull
@Override
public Direction getFacing() {
Entity owner = pocket.getEntity();
if (owner == null) return Direction.NORTH;
return owner.getDirection();
Vec3 dir = getDirection();
return Direction.getNearest(dir.x, dir.y, dir.z);
}


/**
* Not used for pockets
*/
@NotNull
@Override
public FrontAndTop getOrientation() {
return FrontAndTop.NORTH_UP;
Entity owner = pocket.getEntity();
if (owner == null) {
return FrontAndTop.NORTH_UP;
}
Vec3 up = owner.getUpVector(1.0f);
return FrontAndTop.fromFrontAndTop(getFacing(), Direction.getNearest(up.x, up.y, up.z));
}

@Nullable
@NotNull
@Override
public Player getOwner() {
public Vec3 getDirection() {
Entity owner = pocket.getEntity();
if (owner instanceof Player player) return player;
return null;
return owner == null ? /* North */ new Vec3(0, 0, -1) : owner.getLookAngle();
}

@Nullable
@Override
public Entity getHoldingEntity() {
return pocket.getEntity();
}

@NotNull
@Override
public CompoundTag getDataStorage() {
return DataStorageUtil.getDataStorage(pocket);
return DataStorageUtil.getDataStorage(pocket, upgrade);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import net.minecraft.core.Direction;
import net.minecraft.core.FrontAndTop;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
Expand Down Expand Up @@ -64,6 +65,12 @@ public FrontAndTop getOrientation() {
return FrontAndTop.fromFrontAndTop(getFacing(), Direction.UP);
}

@Nullable
@Override
public Entity getHoldingEntity() {
return null;
}

@Nullable
@Override
public Player getOwner() {
Expand Down
Loading