Skip to content

Commit

Permalink
style fix
Browse files Browse the repository at this point in the history
  • Loading branch information
zyxkad committed May 2, 2024
1 parent 179bb80 commit ae6c9df
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 55 deletions.
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
package de.srendi.advancedperipherals.common.blocks;

import dan200.computercraft.core.computer.ComputerSide;
import dan200.computercraft.shared.util.RedstoneUtil;
import de.srendi.advancedperipherals.common.blocks.base.BaseBlockEntityBlock;
import de.srendi.advancedperipherals.common.blocks.blockentities.RedstoneIntegratorEntity;
import de.srendi.advancedperipherals.common.setup.APBlockEntityTypes;
import de.srendi.advancedperipherals.common.setup.APBlocks;
import de.srendi.advancedperipherals.common.util.CoordUtil;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.world.level.BlockGetter;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import dan200.computercraft.core.computer.ComputerSide;
import dan200.computercraft.shared.Capabilities;
import de.srendi.advancedperipherals.AdvancedPeripherals;
import de.srendi.advancedperipherals.common.blocks.base.BaseBlock;
import de.srendi.advancedperipherals.common.util.CoordUtil;
import de.srendi.advancedperipherals.lib.peripherals.BasePeripheral;
import de.srendi.advancedperipherals.lib.peripherals.IPeripheralTileEntity;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package de.srendi.advancedperipherals.common.blocks.blockentities;

import dan200.computercraft.core.computer.ComputerSide;
import dan200.computercraft.shared.util.RedstoneUtil;
import de.srendi.advancedperipherals.common.addons.computercraft.peripheral.RedstoneIntegratorPeripheral;
import de.srendi.advancedperipherals.common.blocks.base.PeripheralBlockEntity;
Expand All @@ -11,11 +10,8 @@
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.RedStoneWireBlock;
import net.minecraft.world.level.block.state.BlockState;

import java.util.Objects;
import java.util.concurrent.atomic.AtomicInteger;
import org.jetbrains.annotations.NotNull;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,56 +21,56 @@

@Mod.EventBusSubscriber(modid = AdvancedPeripherals.MOD_ID)
public final class SwarmEventDispatcher {
private static final ConcurrentMap<String, ConcurrentMap<Integer, ConcurrentMap<String, Set<Object>>>> events = new ConcurrentHashMap<>();
private static final AtomicBoolean updated = new AtomicBoolean();
private static final ConcurrentMap<String, ConcurrentMap<Integer, ConcurrentMap<String, Set<Object>>>> events = new ConcurrentHashMap<>();
private static final AtomicBoolean updated = new AtomicBoolean();

private SwarmEventDispatcher(){}
private SwarmEventDispatcher() {}

public static void dispatch(@NotNull String event, @NotNull BasePeripheral peripheral, Object data) {
boolean set = false;
ConcurrentMap<Integer, ConcurrentMap<String, Set<Object>>> computers = events.computeIfAbsent(event, (k) -> new ConcurrentHashMap<>());
Iterable<IComputerAccess> computerIter = peripheral.getConnectedComputers();
for (IComputerAccess computer : computerIter) {
computers.computeIfAbsent(computer.getID(), (k) -> new ConcurrentHashMap<>()).compute(computer.getAttachmentName(), (name, datas) -> {
if (datas == null) {
datas = new HashSet<>();
}
datas.add(data);
return datas;
});
set = true;
}
if (set) {
updated.set(true);
}
}
public static void dispatch(@NotNull String event, @NotNull BasePeripheral peripheral, Object data) {
boolean set = false;
ConcurrentMap<Integer, ConcurrentMap<String, Set<Object>>> computers = events.computeIfAbsent(event, (k) -> new ConcurrentHashMap<>());
Iterable<IComputerAccess> computerIter = peripheral.getConnectedComputers();
for (IComputerAccess computer : computerIter) {
computers.computeIfAbsent(computer.getID(), (k) -> new ConcurrentHashMap<>()).compute(computer.getAttachmentName(), (name, datas) -> {
if (datas == null) {
datas = new HashSet<>();
}
datas.add(data);
return datas;
});
set = true;
}
if (set) {
updated.set(true);
}
}

private static Map<Integer, ServerComputer> getComputers(MinecraftServer server) {
Map<Integer, ServerComputer> computers = new HashMap<>();
ServerContext.get(server).registry().getComputers().forEach(computer -> computers.put(computer.getID(), computer));
return computers;
}
private static Map<Integer, ServerComputer> getComputers(MinecraftServer server) {
Map<Integer, ServerComputer> computers = new HashMap<>();
ServerContext.get(server).registry().getComputers().forEach(computer -> computers.put(computer.getID(), computer));
return computers;
}

@SubscribeEvent
public static void serverTick(TickEvent.ServerTickEvent tickEvent) {
if (tickEvent.phase != TickEvent.Phase.END) {
return;
}
if (!updated.compareAndSet(true, false)) {
return;
}
Map<Integer, ServerComputer> computerMap = getComputers(tickEvent.getServer());
events.forEach((event, computers) -> {
for (int id : computers.keySet()) {
ConcurrentMap<String, Set<Object>> peripherals = computers.remove(id);
if (peripherals == null || peripherals.isEmpty()) {
continue;
}
ServerComputer computer = computerMap.get(id);
if (computer != null) {
computer.queueEvent(event, new Object[]{peripherals});
}
}
});
}
@SubscribeEvent
public static void serverTick(TickEvent.ServerTickEvent tickEvent) {
if (tickEvent.phase != TickEvent.Phase.END) {
return;
}
if (!updated.compareAndSet(true, false)) {
return;
}
Map<Integer, ServerComputer> computerMap = getComputers(tickEvent.getServer());
events.forEach((event, computers) -> {
for (int id : computers.keySet()) {
ConcurrentMap<String, Set<Object>> peripherals = computers.remove(id);
if (peripherals == null || peripherals.isEmpty()) {
continue;
}
ServerComputer computer = computerMap.get(id);
if (computer != null) {
computer.queueEvent(event, new Object[]{peripherals});
}
}
});
}
}

0 comments on commit ae6c9df

Please sign in to comment.