mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2025-05-25 02:34:11 +00:00
Fix syncing of colour between PocketBrain and item
- Actually set colour when constructing the brain. - Sync it back after crafting, much like we do for upgrades (see dcc74e15c7ab88e5ec7bb4c83ca00d49c074b615) for more details. We should take a proper look at this on 1.21.4 and make these methods main-thread only, so we can sync immediately. Fixes #2157
This commit is contained in:
parent
7c1e8e1951
commit
0e1e8a72d3
@ -44,11 +44,12 @@ public final class PocketBrain implements IPocketAccess {
|
||||
private int colour = -1;
|
||||
private int lightColour = -1;
|
||||
|
||||
public PocketBrain(PocketHolder holder, @Nullable UpgradeData<IPocketUpgrade> upgrade, ServerComputer.Properties properties) {
|
||||
public PocketBrain(PocketHolder holder, @Nullable UpgradeData<IPocketUpgrade> upgrade, int colour, ServerComputer.Properties properties) {
|
||||
this.computer = new PocketServerComputer(this, holder, properties);
|
||||
this.holder = holder;
|
||||
this.position = holder.pos();
|
||||
this.upgrade = UpgradeData.copyOf(upgrade);
|
||||
this.colour = colour;
|
||||
invalidatePeripheral();
|
||||
}
|
||||
|
||||
|
@ -272,7 +272,7 @@ public class PocketComputerItem extends Item implements IComputerItem, IColoured
|
||||
}
|
||||
|
||||
var brain = new PocketBrain(
|
||||
holder, getUpgradeWithData(stack),
|
||||
holder, getUpgradeWithData(stack), getColour(stack),
|
||||
ServerComputer.properties(getComputerID(stack), getFamily()).label(getLabel(stack))
|
||||
);
|
||||
var computer = brain.computer();
|
||||
@ -314,10 +314,14 @@ public class PocketComputerItem extends Item implements IComputerItem, IColoured
|
||||
// item. However, if we've just crafted the computer with an upgrade, we should sync the other way, and update
|
||||
// the computer.
|
||||
var server = level.getServer();
|
||||
if (server != null) {
|
||||
var computer = getServerComputer(server, stack);
|
||||
if (computer != null) computer.getBrain().setUpgrade(getUpgradeWithData(stack));
|
||||
}
|
||||
if (server == null) return;
|
||||
|
||||
var computer = getServerComputer(server, stack);
|
||||
if (computer == null) return;
|
||||
|
||||
var brain = computer.getBrain();
|
||||
brain.setUpgrade(getUpgradeWithData(stack));
|
||||
brain.setColour(getColour(stack));
|
||||
}
|
||||
|
||||
// IComputerItem implementation
|
||||
|
Loading…
x
Reference in New Issue
Block a user