fix: and another part of syncing with Tweaked codebase and resources
@@ -43,6 +43,9 @@ public class NoTermComputerScreen<T extends ContainerComputerBase> extends Scree
|
||||
@Override
|
||||
protected void init()
|
||||
{
|
||||
this.passEvents = true;
|
||||
client.mouse.lockCursor();
|
||||
client.currentScreen = this;
|
||||
super.init();
|
||||
client.keyboard.setRepeatEvents( true );
|
||||
|
||||
@@ -66,6 +69,13 @@ public class NoTermComputerScreen<T extends ContainerComputerBase> extends Scree
|
||||
terminal.update();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean mouseScrolled( double pMouseX, double pMouseY, double pDelta )
|
||||
{
|
||||
client.player.getInventory().scrollInHotbar( pDelta );
|
||||
return super.mouseScrolled( pMouseX, pMouseY, pDelta );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClose()
|
||||
{
|
||||
|
@@ -125,12 +125,11 @@ public class TileEntityMonitorRenderer implements BlockEntityRenderer<TileMonito
|
||||
transform.pop();
|
||||
|
||||
// Draw the background blocker
|
||||
FixedWidthFontRenderer.drawBlocker( transform.peek().getModel(),
|
||||
renderer,
|
||||
(float) -TileMonitor.RENDER_MARGIN,
|
||||
(float) TileMonitor.RENDER_MARGIN,
|
||||
(float) (xSize + 2 * TileMonitor.RENDER_MARGIN),
|
||||
(float) -(ySize + TileMonitor.RENDER_MARGIN * 2) );
|
||||
FixedWidthFontRenderer.drawBlocker(
|
||||
transform.peek().getModel(), renderer,
|
||||
-MARGIN, MARGIN,
|
||||
(float) (xSize + 2 * MARGIN), (float) -(ySize + MARGIN * 2)
|
||||
);
|
||||
|
||||
renderer.getBuffer( RenderLayer.getSolid() );
|
||||
}
|
||||
|
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
package dan200.computercraft.core.apis;
|
||||
|
||||
import dan200.computercraft.ComputerCraft;
|
||||
import dan200.computercraft.api.filesystem.IMount;
|
||||
import dan200.computercraft.api.filesystem.IWritableMount;
|
||||
import dan200.computercraft.api.peripheral.IComputerAccess;
|
||||
@@ -30,6 +31,10 @@ public abstract class ComputerAccess implements IComputerAccess
|
||||
public void unmountAll()
|
||||
{
|
||||
FileSystem fileSystem = environment.getFileSystem();
|
||||
if( !mounts.isEmpty() )
|
||||
{
|
||||
ComputerCraft.log.warn( "Peripheral or API called mount but did not call unmount for {}", mounts );
|
||||
}
|
||||
for( String mount : mounts )
|
||||
{
|
||||
fileSystem.unmount( mount );
|
||||
|
@@ -419,6 +419,7 @@ public class Terminal
|
||||
{
|
||||
if( c >= '0' && c <= '9' ) return c - '0';
|
||||
if( c >= 'a' && c <= 'f' ) return c - 'a' + 10;
|
||||
if( c >= 'A' && c <= 'F' ) return c - 'A' + 10;
|
||||
return 15 - def.ordinal();
|
||||
}
|
||||
}
|
||||
|
@@ -7,6 +7,7 @@
|
||||
package dan200.computercraft.shared.peripheral.modem.wired;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import dan200.computercraft.ComputerCraft;
|
||||
import dan200.computercraft.api.filesystem.IMount;
|
||||
import dan200.computercraft.api.filesystem.IWritableMount;
|
||||
import dan200.computercraft.api.lua.*;
|
||||
@@ -16,6 +17,7 @@ import dan200.computercraft.api.network.wired.IWiredSender;
|
||||
import dan200.computercraft.api.peripheral.IComputerAccess;
|
||||
import dan200.computercraft.api.peripheral.IPeripheral;
|
||||
import dan200.computercraft.api.peripheral.IWorkMonitor;
|
||||
import dan200.computercraft.api.peripheral.NotAttachedException;
|
||||
import dan200.computercraft.core.apis.PeripheralAPI;
|
||||
import dan200.computercraft.core.asm.PeripheralMethod;
|
||||
import dan200.computercraft.shared.peripheral.modem.ModemPeripheral;
|
||||
@@ -24,10 +26,7 @@ import net.minecraft.world.World;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ConcurrentMap;
|
||||
|
||||
@@ -326,6 +325,9 @@ public abstract class WiredModemPeripheral extends ModemPeripheral implements IW
|
||||
private final String type;
|
||||
private final Map<String, PeripheralMethod> methodMap;
|
||||
|
||||
private volatile boolean attached;
|
||||
private final Set<String> mounts = new HashSet<>();
|
||||
|
||||
RemotePeripheralWrapper( WiredModemElement element, IPeripheral peripheral, IComputerAccess computer, String name )
|
||||
{
|
||||
this.element = element;
|
||||
@@ -339,6 +341,7 @@ public abstract class WiredModemPeripheral extends ModemPeripheral implements IW
|
||||
|
||||
public void attach()
|
||||
{
|
||||
attached = true;
|
||||
peripheral.attach( this );
|
||||
computer.queueEvent( "peripheral", getAttachmentName() );
|
||||
}
|
||||
@@ -347,6 +350,18 @@ public abstract class WiredModemPeripheral extends ModemPeripheral implements IW
|
||||
{
|
||||
peripheral.detach( this );
|
||||
computer.queueEvent( "peripheral_detach", getAttachmentName() );
|
||||
attached = false;
|
||||
|
||||
synchronized( this )
|
||||
{
|
||||
if( !mounts.isEmpty() )
|
||||
{
|
||||
ComputerCraft.log.warn( "Peripheral {} called mount but did not call unmount for {}", peripheral, mounts );
|
||||
}
|
||||
|
||||
for( String mount : mounts ) computer.unmount( mount );
|
||||
mounts.clear();
|
||||
}
|
||||
}
|
||||
|
||||
public String getType()
|
||||
@@ -372,51 +387,68 @@ public abstract class WiredModemPeripheral extends ModemPeripheral implements IW
|
||||
// IComputerAccess implementation
|
||||
|
||||
@Override
|
||||
public String mount( @Nonnull String desiredLocation, @Nonnull IMount mount )
|
||||
public synchronized String mount( @Nonnull String desiredLocation, @Nonnull IMount mount )
|
||||
{
|
||||
return computer.mount( desiredLocation, mount, name );
|
||||
if( !attached ) throw new NotAttachedException();
|
||||
String mounted = computer.mount( desiredLocation, mount, name );
|
||||
mounts.add( mounted );
|
||||
return mounted;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String mount( @Nonnull String desiredLocation, @Nonnull IMount mount, @Nonnull String driveName )
|
||||
public synchronized String mount( @Nonnull String desiredLocation, @Nonnull IMount mount, @Nonnull String driveName )
|
||||
{
|
||||
return computer.mount( desiredLocation, mount, driveName );
|
||||
if( !attached ) throw new NotAttachedException();
|
||||
String mounted = computer.mount( desiredLocation, mount, driveName );
|
||||
mounts.add( mounted );
|
||||
return mounted;
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public String getAttachmentName()
|
||||
{
|
||||
if( !attached ) throw new NotAttachedException();
|
||||
return name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String mountWritable( @Nonnull String desiredLocation, @Nonnull IWritableMount mount )
|
||||
public synchronized String mountWritable( @Nonnull String desiredLocation, @Nonnull IWritableMount mount )
|
||||
{
|
||||
return computer.mountWritable( desiredLocation, mount, name );
|
||||
if( !attached ) throw new NotAttachedException();
|
||||
String mounted = computer.mountWritable( desiredLocation, mount, name );
|
||||
mounts.add( mounted );
|
||||
return mounted;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String mountWritable( @Nonnull String desiredLocation, @Nonnull IWritableMount mount, @Nonnull String driveName )
|
||||
public synchronized String mountWritable( @Nonnull String desiredLocation, @Nonnull IWritableMount mount, @Nonnull String driveName )
|
||||
{
|
||||
return computer.mountWritable( desiredLocation, mount, driveName );
|
||||
if( !attached ) throw new NotAttachedException();
|
||||
String mounted = computer.mountWritable( desiredLocation, mount, driveName );
|
||||
mounts.add( mounted );
|
||||
return mounted;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unmount( String location )
|
||||
public synchronized void unmount( String location )
|
||||
{
|
||||
if( !attached ) throw new NotAttachedException();
|
||||
computer.unmount( location );
|
||||
mounts.remove( location );
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getID()
|
||||
{
|
||||
if( !attached ) throw new NotAttachedException();
|
||||
return computer.getID();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void queueEvent( @Nonnull String event, Object... arguments )
|
||||
{
|
||||
if( !attached ) throw new NotAttachedException();
|
||||
computer.queueEvent( event, arguments );
|
||||
}
|
||||
|
||||
@@ -424,6 +456,7 @@ public abstract class WiredModemPeripheral extends ModemPeripheral implements IW
|
||||
@Override
|
||||
public Map<String, IPeripheral> getAvailablePeripherals()
|
||||
{
|
||||
if( !attached ) throw new NotAttachedException();
|
||||
synchronized( element.getRemotePeripherals() )
|
||||
{
|
||||
return ImmutableMap.copyOf( element.getRemotePeripherals() );
|
||||
@@ -434,6 +467,7 @@ public abstract class WiredModemPeripheral extends ModemPeripheral implements IW
|
||||
@Override
|
||||
public IPeripheral getAvailablePeripheral( @Nonnull String name )
|
||||
{
|
||||
if( !attached ) throw new NotAttachedException();
|
||||
synchronized( element.getRemotePeripherals() )
|
||||
{
|
||||
return element.getRemotePeripherals()
|
||||
@@ -445,6 +479,7 @@ public abstract class WiredModemPeripheral extends ModemPeripheral implements IW
|
||||
@Override
|
||||
public IWorkMonitor getMainThreadMonitor()
|
||||
{
|
||||
if( !attached ) throw new NotAttachedException();
|
||||
return computer.getMainThreadMonitor();
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 242 B After Width: | Height: | Size: 190 B |
Before Width: | Height: | Size: 228 B After Width: | Height: | Size: 181 B |
Before Width: | Height: | Size: 357 B After Width: | Height: | Size: 398 B |
Before Width: | Height: | Size: 410 B After Width: | Height: | Size: 476 B |
Before Width: | Height: | Size: 373 B After Width: | Height: | Size: 417 B |
Before Width: | Height: | Size: 380 B After Width: | Height: | Size: 526 B |
Before Width: | Height: | Size: 363 B After Width: | Height: | Size: 517 B |
Before Width: | Height: | Size: 347 B After Width: | Height: | Size: 404 B |
Before Width: | Height: | Size: 413 B After Width: | Height: | Size: 534 B |
Before Width: | Height: | Size: 206 B After Width: | Height: | Size: 426 B |
Before Width: | Height: | Size: 291 B After Width: | Height: | Size: 560 B |
Before Width: | Height: | Size: 286 B After Width: | Height: | Size: 554 B |
Before Width: | Height: | Size: 303 B After Width: | Height: | Size: 193 B |
Before Width: | Height: | Size: 355 B After Width: | Height: | Size: 214 B |
Before Width: | Height: | Size: 317 B After Width: | Height: | Size: 199 B |
Before Width: | Height: | Size: 389 B After Width: | Height: | Size: 217 B |
Before Width: | Height: | Size: 359 B After Width: | Height: | Size: 195 B |
Before Width: | Height: | Size: 408 B After Width: | Height: | Size: 218 B |
Before Width: | Height: | Size: 426 B After Width: | Height: | Size: 296 B |
Before Width: | Height: | Size: 422 B After Width: | Height: | Size: 294 B |
Before Width: | Height: | Size: 389 B After Width: | Height: | Size: 217 B |
Before Width: | Height: | Size: 359 B After Width: | Height: | Size: 195 B |
Before Width: | Height: | Size: 368 B After Width: | Height: | Size: 488 B |
Before Width: | Height: | Size: 366 B After Width: | Height: | Size: 490 B |
Before Width: | Height: | Size: 283 B After Width: | Height: | Size: 358 B |
Before Width: | Height: | Size: 280 B After Width: | Height: | Size: 360 B |
Before Width: | Height: | Size: 245 B After Width: | Height: | Size: 284 B |
Before Width: | Height: | Size: 175 B After Width: | Height: | Size: 205 B |
Before Width: | Height: | Size: 244 B After Width: | Height: | Size: 295 B |
Before Width: | Height: | Size: 360 B After Width: | Height: | Size: 450 B |
Before Width: | Height: | Size: 262 B After Width: | Height: | Size: 307 B |
Before Width: | Height: | Size: 212 B After Width: | Height: | Size: 248 B |
Before Width: | Height: | Size: 232 B After Width: | Height: | Size: 299 B |
Before Width: | Height: | Size: 196 B After Width: | Height: | Size: 224 B |
Before Width: | Height: | Size: 121 B After Width: | Height: | Size: 136 B |
Before Width: | Height: | Size: 176 B After Width: | Height: | Size: 227 B |
Before Width: | Height: | Size: 158 B After Width: | Height: | Size: 176 B |
Before Width: | Height: | Size: 75 B After Width: | Height: | Size: 75 B |
Before Width: | Height: | Size: 145 B After Width: | Height: | Size: 169 B |
Before Width: | Height: | Size: 215 B After Width: | Height: | Size: 236 B |
Before Width: | Height: | Size: 368 B After Width: | Height: | Size: 460 B |
Before Width: | Height: | Size: 149 B After Width: | Height: | Size: 152 B |
Before Width: | Height: | Size: 225 B After Width: | Height: | Size: 234 B |
Before Width: | Height: | Size: 388 B After Width: | Height: | Size: 522 B |
Before Width: | Height: | Size: 381 B After Width: | Height: | Size: 495 B |
Before Width: | Height: | Size: 368 B After Width: | Height: | Size: 484 B |
Before Width: | Height: | Size: 387 B After Width: | Height: | Size: 513 B |
Before Width: | Height: | Size: 375 B After Width: | Height: | Size: 511 B |
Before Width: | Height: | Size: 386 B After Width: | Height: | Size: 487 B |
Before Width: | Height: | Size: 388 B After Width: | Height: | Size: 508 B |
Before Width: | Height: | Size: 388 B After Width: | Height: | Size: 477 B |
Before Width: | Height: | Size: 388 B After Width: | Height: | Size: 522 B |
Before Width: | Height: | Size: 379 B After Width: | Height: | Size: 464 B |
Before Width: | Height: | Size: 393 B After Width: | Height: | Size: 487 B |
Before Width: | Height: | Size: 373 B After Width: | Height: | Size: 498 B |
Before Width: | Height: | Size: 367 B After Width: | Height: | Size: 445 B |
Before Width: | Height: | Size: 380 B After Width: | Height: | Size: 469 B |
Before Width: | Height: | Size: 371 B After Width: | Height: | Size: 505 B |
Before Width: | Height: | Size: 369 B After Width: | Height: | Size: 466 B |
Before Width: | Height: | Size: 385 B After Width: | Height: | Size: 482 B |
Before Width: | Height: | Size: 395 B After Width: | Height: | Size: 508 B |
Before Width: | Height: | Size: 386 B After Width: | Height: | Size: 487 B |
Before Width: | Height: | Size: 381 B After Width: | Height: | Size: 511 B |
Before Width: | Height: | Size: 347 B After Width: | Height: | Size: 195 B |
Before Width: | Height: | Size: 342 B After Width: | Height: | Size: 186 B |
Before Width: | Height: | Size: 251 B After Width: | Height: | Size: 182 B |
Before Width: | Height: | Size: 253 B After Width: | Height: | Size: 193 B |
Before Width: | Height: | Size: 218 B After Width: | Height: | Size: 238 B |
Before Width: | Height: | Size: 163 B After Width: | Height: | Size: 178 B |
Before Width: | Height: | Size: 217 B After Width: | Height: | Size: 233 B |
Before Width: | Height: | Size: 340 B After Width: | Height: | Size: 224 B |
Before Width: | Height: | Size: 230 B After Width: | Height: | Size: 175 B |
Before Width: | Height: | Size: 193 B After Width: | Height: | Size: 208 B |
Before Width: | Height: | Size: 223 B After Width: | Height: | Size: 242 B |
Before Width: | Height: | Size: 180 B After Width: | Height: | Size: 191 B |
Before Width: | Height: | Size: 113 B After Width: | Height: | Size: 117 B |
Before Width: | Height: | Size: 173 B After Width: | Height: | Size: 191 B |
Before Width: | Height: | Size: 148 B After Width: | Height: | Size: 155 B |
Before Width: | Height: | Size: 75 B After Width: | Height: | Size: 75 B |
Before Width: | Height: | Size: 145 B After Width: | Height: | Size: 155 B |
Before Width: | Height: | Size: 191 B After Width: | Height: | Size: 204 B |
Before Width: | Height: | Size: 345 B After Width: | Height: | Size: 186 B |
Before Width: | Height: | Size: 139 B After Width: | Height: | Size: 145 B |
Before Width: | Height: | Size: 192 B After Width: | Height: | Size: 198 B |
Before Width: | Height: | Size: 333 B After Width: | Height: | Size: 217 B |
Before Width: | Height: | Size: 326 B After Width: | Height: | Size: 212 B |
Before Width: | Height: | Size: 320 B After Width: | Height: | Size: 202 B |
Before Width: | Height: | Size: 330 B After Width: | Height: | Size: 210 B |
Before Width: | Height: | Size: 351 B After Width: | Height: | Size: 199 B |
Before Width: | Height: | Size: 348 B After Width: | Height: | Size: 188 B |
Before Width: | Height: | Size: 333 B After Width: | Height: | Size: 212 B |
Before Width: | Height: | Size: 329 B After Width: | Height: | Size: 203 B |
Before Width: | Height: | Size: 333 B After Width: | Height: | Size: 217 B |
Before Width: | Height: | Size: 322 B After Width: | Height: | Size: 234 B |
Before Width: | Height: | Size: 326 B After Width: | Height: | Size: 202 B |