Skip to content

Commit f1e2c5a

Browse files
committed
fix registeriation
1 parent 9c23810 commit f1e2c5a

26 files changed

+166
-60
lines changed
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
// 1.19.22024-05-28T14:53:16.655934Pocket Computer Upgrades
1+
// 1.19.22025-01-25T19:46:21.23515Pocket Computer Upgrades
22
b672635324c0df354e587efc81d0b19a581eae2f data/advancedperipherals/computercraft/pocket_upgrades/chatty_pocket.json
33
30b8f663613c7ce77048fd69631afcc11a682276 data/advancedperipherals/computercraft/pocket_upgrades/colony_pocket.json
4+
661dc77bd0442bfb2a5ed80cff271071817bb22d data/advancedperipherals/computercraft/pocket_upgrades/distance_pocket.json
45
d4647159c2f2693a9c5e8d12bf740635751d29a8 data/advancedperipherals/computercraft/pocket_upgrades/environment_pocket.json
56
8216a0a7d8ebe3ae738c8fc3626df25eb0a2e07a data/advancedperipherals/computercraft/pocket_upgrades/geoscanner_pocket.json
67
a38aa83593f7ad0ace98e01bb3b5f06f272ef734 data/advancedperipherals/computercraft/pocket_upgrades/player_pocket.json
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
// 1.19.2 2025-01-20T07:50:09.44057Languages: en_us
2-
ebf2194b8fece940adb61f1ae317f68799bd498f assets/advancedperipherals/lang/en_us.json
1+
// 1.19.2 2025-01-25T19:46:21.234203Languages: en_us
2+
e858500d72e9279f0fe0e8b2d03f94469c8d1f65 assets/advancedperipherals/lang/en_us.json

src/generated/resources/assets/advancedperipherals/lang/en_us.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@
8080
"keybind.advancedperipherals.description": "Show Description",
8181
"pocket.advancedperipherals.chatty_pocket": "Chatty",
8282
"pocket.advancedperipherals.colony_pocket": "Colony",
83+
"pocket.advancedperipherals.distance_pocket": "Distance Detector",
8384
"pocket.advancedperipherals.environment_pocket": "Environment",
8485
"pocket.advancedperipherals.geoscanner_pocket": "Geo",
8586
"pocket.advancedperipherals.player_pocket": "Player Detector",
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"type": "advancedperipherals:distance_pocket",
3+
"item": "advancedperipherals:distance_detector"
4+
}

src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/owner/PocketPeripheralOwner.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import dan200.computercraft.api.peripheral.IPeripheral;
44
import dan200.computercraft.api.pocket.IPocketAccess;
5+
import dan200.computercraft.api.pocket.IPocketUpgrade;
56
import de.srendi.advancedperipherals.common.configuration.APConfig;
67
import de.srendi.advancedperipherals.common.util.DataStorageUtil;
78
import de.srendi.advancedperipherals.common.util.fakeplayer.APFakePlayer;
@@ -20,12 +21,15 @@
2021

2122
public class PocketPeripheralOwner extends BasePeripheralOwner {
2223
private final IPocketAccess pocket;
24+
private final IPocketUpgrade upgrade;
2325

24-
public PocketPeripheralOwner(IPocketAccess pocket) {
26+
public PocketPeripheralOwner(IPocketAccess pocket, IPocketUpgrade upgrade) {
2527
super();
2628
this.pocket = pocket;
27-
if(APConfig.PERIPHERALS_CONFIG.disablePocketFuelConsumption.get())
29+
this.upgrade = upgrade;
30+
if (APConfig.PERIPHERALS_CONFIG.disablePocketFuelConsumption.get()) {
2831
attachAbility(PeripheralOwnerAbility.FUEL, new InfinitePocketFuelAbility(this));
32+
}
2933
}
3034

3135
@Nullable
@@ -84,7 +88,7 @@ public Entity getHoldingEntity() {
8488
@NotNull
8589
@Override
8690
public CompoundTag getDataStorage() {
87-
return DataStorageUtil.getDataStorage(pocket);
91+
return DataStorageUtil.getDataStorage(pocket, upgrade);
8892
}
8993

9094
@Override

src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/peripheral/ChatBoxPeripheral.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import dan200.computercraft.api.lua.MethodResult;
88
import dan200.computercraft.api.peripheral.IComputerAccess;
99
import dan200.computercraft.api.pocket.IPocketAccess;
10+
import dan200.computercraft.api.pocket.IPocketUpgrade;
1011
import dan200.computercraft.api.turtle.ITurtleAccess;
1112
import dan200.computercraft.api.turtle.TurtleSide;
1213
import de.srendi.advancedperipherals.AdvancedPeripherals;
@@ -66,8 +67,8 @@ public ChatBoxPeripheral(ITurtleAccess turtle, TurtleSide side) {
6667
this(new TurtlePeripheralOwner(turtle, side));
6768
}
6869

69-
public ChatBoxPeripheral(IPocketAccess pocket) {
70-
this(new PocketPeripheralOwner(pocket));
70+
public ChatBoxPeripheral(IPocketAccess pocket, IPocketUpgrade upgrade) {
71+
this(new PocketPeripheralOwner(pocket, upgrade));
7172
}
7273

7374
@Override

src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/peripheral/ColonyPeripheral.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import dan200.computercraft.api.lua.LuaException;
1919
import dan200.computercraft.api.lua.LuaFunction;
2020
import dan200.computercraft.api.pocket.IPocketAccess;
21+
import dan200.computercraft.api.pocket.IPocketUpgrade;
2122
import de.srendi.advancedperipherals.AdvancedPeripherals;
2223
import de.srendi.advancedperipherals.common.addons.computercraft.owner.BlockEntityPeripheralOwner;
2324
import de.srendi.advancedperipherals.common.addons.computercraft.owner.IPeripheralOwner;
@@ -50,8 +51,8 @@ public ColonyPeripheral(PeripheralBlockEntity<?> tileEntity) {
5051
super(PERIPHERAL_TYPE, new BlockEntityPeripheralOwner<>(tileEntity));
5152
}
5253

53-
public ColonyPeripheral(IPocketAccess access) {
54-
super(PERIPHERAL_TYPE, new PocketPeripheralOwner(access));
54+
public ColonyPeripheral(IPocketAccess access, IPocketUpgrade upgrade) {
55+
super(PERIPHERAL_TYPE, new PocketPeripheralOwner(access, upgrade));
5556
}
5657

5758
@Override

src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/peripheral/DistanceDetectorPeripheral.java

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,16 @@
33
import dan200.computercraft.api.lua.IArguments;
44
import dan200.computercraft.api.lua.LuaException;
55
import dan200.computercraft.api.lua.LuaFunction;
6+
import dan200.computercraft.api.pocket.IPocketAccess;
7+
import dan200.computercraft.api.pocket.IPocketUpgrade;
68
import de.srendi.advancedperipherals.common.addons.computercraft.owner.BlockEntityPeripheralOwner;
79
import de.srendi.advancedperipherals.common.addons.computercraft.owner.IPeripheralOwner;
10+
import de.srendi.advancedperipherals.common.addons.computercraft.owner.PocketPeripheralOwner;
811
import de.srendi.advancedperipherals.common.blocks.blockentities.DistanceDetectorEntity;
912
import de.srendi.advancedperipherals.common.configuration.APConfig;
1013
import de.srendi.advancedperipherals.common.util.HitResultUtil;
1114
import de.srendi.advancedperipherals.lib.peripherals.BasePeripheral;
15+
import net.minecraft.nbt.CompoundTag;
1216
import net.minecraft.world.level.ClipContext;
1317
import net.minecraft.world.level.Level;
1418
import net.minecraft.world.phys.HitResult;
@@ -41,6 +45,23 @@ public DistanceDetectorPeripheral(DistanceDetectorEntity tileEntity) {
4145
this.detectionType = new AtomicReference<>(this.tileEntity.getDetectionType());
4246
}
4347

48+
// TODO: thread safely save data
49+
protected DistanceDetectorPeripheral(IPeripheralOwner owner) {
50+
super(PERIPHERAL_TYPE, owner);
51+
this.tileEntity = null;
52+
CompoundTag data = this.owner.getDataStorage();
53+
this.maxRange = new AtomicInteger(Float.floatToRawIntBits(data.contains("maxRange") ? data.getFloat("maxRange") : this.getConfiguredMaxRange()));
54+
this.currentDistance = data.contains("currentDistance") ? data.getFloat("currentDistance") : -1;
55+
this.showLaser = new AtomicBoolean(data.contains("showLaser") ? data.getBoolean("showLaser") : true);
56+
this.calculatePeriodically = data.contains("calculatePeriodically") ? data.getBoolean("calculatePeriodically") : false;
57+
this.ignoreTransparent = data.contains("ignoreTransparent") ? data.getBoolean("ignoreTransparent") : true;
58+
this.detectionType = new AtomicReference<>(data.contains("detectionType") ? DetectionType.values()[data.getByte("detectionType")] : DetectionType.BOTH);
59+
}
60+
61+
public DistanceDetectorPeripheral(IPocketAccess pocket, IPocketUpgrade upgrade) {
62+
this(new PocketPeripheralOwner(pocket, upgrade));
63+
}
64+
4465
@Override
4566
public boolean isEnabled() {
4667
return APConfig.PERIPHERALS_CONFIG.enableDistanceDetector.get();
@@ -147,7 +168,7 @@ public final boolean getLaserVisibility() {
147168
return this.getShowLaser();
148169
}
149170

150-
@LuaFunction
171+
@LuaFunction(value = {"setIgnoreTransparency"})
151172
public final void setIgnoreTransparencyLua(boolean enable) {
152173
this.setIgnoreTransparent(enable);
153174
}
@@ -210,17 +231,17 @@ public final boolean shouldCalculatePeriodically() {
210231
return this.getCalculatePeriodically();
211232
}
212233

213-
@LuaFunction
234+
@LuaFunction(value = {"setCalculatePeriodically"})
214235
public final void setCalculatePeriodicallyLua(boolean shouldCalculatePeriodically) {
215236
this.setCalculatePeriodically(shouldCalculatePeriodically);
216237
}
217238

218-
@LuaFunction
239+
@LuaFunction(value = {"setMaxRange"})
219240
public final void setMaxRangeLua(double maxDistance) {
220241
this.setMaxRange((float) maxDistance);
221242
}
222243

223-
@LuaFunction
244+
@LuaFunction(value = {"getMaxRange"})
224245
public final double getMaxRangeLua() {
225246
return this.getMaxRange();
226247
}

src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/peripheral/EnvironmentDetectorPeripheral.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import dan200.computercraft.api.lua.LuaFunction;
66
import dan200.computercraft.api.lua.MethodResult;
77
import dan200.computercraft.api.pocket.IPocketAccess;
8+
import dan200.computercraft.api.pocket.IPocketUpgrade;
89
import dan200.computercraft.api.turtle.ITurtleAccess;
910
import dan200.computercraft.api.turtle.TurtleSide;
1011
import de.srendi.advancedperipherals.common.addons.computercraft.operations.SphereOperationContext;
@@ -68,8 +69,8 @@ public EnvironmentDetectorPeripheral(ITurtleAccess turtle, TurtleSide side) {
6869
this(new TurtlePeripheralOwner(turtle, side).attachFuel(1));
6970
}
7071

71-
public EnvironmentDetectorPeripheral(IPocketAccess pocket) {
72-
this(new PocketPeripheralOwner(pocket));
72+
public EnvironmentDetectorPeripheral(IPocketAccess pocket, IPocketUpgrade upgrade) {
73+
this(new PocketPeripheralOwner(pocket, upgrade));
7374
}
7475

7576
private static int estimateCost(int radius) {

src/main/java/de/srendi/advancedperipherals/common/addons/computercraft/peripheral/GeoScannerPeripheral.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import dan200.computercraft.api.lua.LuaFunction;
66
import dan200.computercraft.api.lua.MethodResult;
77
import dan200.computercraft.api.pocket.IPocketAccess;
8+
import dan200.computercraft.api.pocket.IPocketUpgrade;
89
import dan200.computercraft.api.turtle.ITurtleAccess;
910
import dan200.computercraft.api.turtle.TurtleSide;
1011
import de.srendi.advancedperipherals.common.addons.computercraft.operations.SphereOperationContext;
@@ -57,8 +58,8 @@ public GeoScannerPeripheral(ITurtleAccess turtle, TurtleSide side) {
5758
this(new TurtlePeripheralOwner(turtle, side).attachFuel(1));
5859
}
5960

60-
public GeoScannerPeripheral(IPocketAccess pocket) {
61-
this(new PocketPeripheralOwner(pocket));
61+
public GeoScannerPeripheral(IPocketAccess pocket, IPocketUpgrade upgrade) {
62+
this(new PocketPeripheralOwner(pocket, upgrade));
6263
}
6364

6465
private static List<Map<String, Object>> scan(List<Map<String, Object>> result, Level level, Vec3 center, int radius) {

0 commit comments

Comments
 (0)