1
0
mirror of https://github.com/SquidDev-CC/CC-Tweaked synced 2025-08-30 00:57:55 +00:00

Merge branch 'mc-1.18.x/stable' into mc-1.18.x/dev

This commit is contained in:
Toad-Dev
2021-12-26 12:42:34 -08:00
13 changed files with 46 additions and 50 deletions

View File

@@ -24,7 +24,6 @@ import dan200.computercraft.shared.computer.inventory.ContainerComputerBase;
import dan200.computercraft.shared.computer.inventory.ContainerViewComputer;
import dan200.computercraft.shared.peripheral.diskdrive.ContainerDiskDrive;
import dan200.computercraft.shared.peripheral.monitor.ClientMonitor;
import dan200.computercraft.shared.peripheral.monitor.MonitorWatcher;
import dan200.computercraft.shared.peripheral.printer.ContainerPrinter;
import dan200.computercraft.shared.pocket.items.ItemPocketComputer;
import dan200.computercraft.shared.turtle.inventory.ContainerTurtle;
@@ -43,11 +42,16 @@ import net.fabricmc.fabric.api.client.screenhandler.v1.ScreenRegistry;
import net.fabricmc.fabric.api.event.client.ClientSpriteRegistryCallback;
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents;
import net.fabricmc.fabric.api.object.builder.v1.client.model.FabricModelPredicateProviderRegistry;
import net.minecraft.client.multiplayer.ClientLevel;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.item.ClampedItemPropertyFunction;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.inventory.InventoryMenu;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.function.Supplier;
@@ -81,7 +85,6 @@ public final class ComputerCraftProxyClient implements ClientModInitializer
public void onInitializeClient()
{
FrameInfo.init();
MonitorWatcher.init();
registerContainers();
// While turtles themselves are not transparent, their upgrades may be.
@@ -111,7 +114,7 @@ public final class ComputerCraftProxyClient implements ClientModInitializer
.ordinal(),
() -> Registry.ModItems.POCKET_COMPUTER_NORMAL,
() -> Registry.ModItems.POCKET_COMPUTER_ADVANCED );
registerItemProperty( "state",
registerItemProperty( "coloured",
( stack, world, player, integer ) -> IColouredItem.getColourBasic( stack ) != -1 ? 1 : 0,
() -> Registry.ModItems.POCKET_COMPUTER_NORMAL,
() -> Registry.ModItems.POCKET_COMPUTER_ADVANCED );
@@ -142,9 +145,25 @@ public final class ComputerCraftProxyClient implements ClientModInitializer
private static void registerItemProperty( String name, ClampedItemPropertyFunction getter, Supplier<? extends Item>... items )
{
ResourceLocation id = new ResourceLocation( ComputerCraft.MOD_ID, name );
// Terrible hack, but some of our properties return values greater than 1, so we don't want to clamp.
var unclampedGetter = new ClampedItemPropertyFunction()
{
@Override
@Deprecated
public float call( @NotNull ItemStack itemStack, @Nullable ClientLevel clientLevel, @Nullable LivingEntity livingEntity, int i )
{
return getter.unclampedCall( itemStack, clientLevel, livingEntity, i );
}
@Override
public float unclampedCall( ItemStack itemStack, @Nullable ClientLevel clientLevel, @Nullable LivingEntity livingEntity, int i )
{
return getter.unclampedCall( itemStack, clientLevel, livingEntity, i );
}
};
for( Supplier<? extends Item> item : items )
{
FabricModelPredicateProviderRegistry.register( item.get(), id, getter );
FabricModelPredicateProviderRegistry.register( item.get(), id, unclampedGetter );
}
}
}

View File

@@ -5,7 +5,7 @@
*/
package dan200.computercraft.fabric.mixin;
import dan200.computercraft.shared.peripheral.monitor.MonitorWatcher;
import dan200.computercraft.fabric.events.ComputerCraftCustomEvents;
import net.minecraft.network.protocol.game.ClientboundLevelChunkWithLightPacket;
import net.minecraft.server.level.ChunkMap;
import net.minecraft.server.level.ServerLevel;
@@ -46,7 +46,7 @@ public class MixinChunkMap
@Inject( method = "playerLoadedChunk", at = @At( value = "HEAD" ) )
private void playerLoadedChunk( ServerPlayer serverPlayer, MutableObject<ClientboundLevelChunkWithLightPacket> mutableObject, LevelChunk levelChunk, CallbackInfo ci )
{
MonitorWatcher.onWatch( serverPlayer, levelChunk.getPos() );
ComputerCraftCustomEvents.SERVER_PLAYER_LOADED_CHUNK_EVENT.invoker().onServerPlayerLoadedChunk( serverPlayer, levelChunk.getPos() );
}
}

View File

@@ -145,49 +145,24 @@ public class TileMonitor extends TileGeneric implements IPeripheralTile
width = nbt.getInt( NBT_WIDTH );
height = nbt.getInt( NBT_HEIGHT );
if( oldXIndex != xIndex || oldYIndex != yIndex )
if( level != null && level.isClientSide )
{
// If our index has changed then it's possible the origin monitor has changed. Thus
// we'll clear our cache. If we're the origin then we'll need to remove the glList as well.
if( oldXIndex == 0 && oldYIndex == 0 && clientMonitor != null ) clientMonitor.destroy();
clientMonitor = null;
}
if( oldXIndex != xIndex || oldYIndex != yIndex )
{
// If our index has changed then it's possible the origin monitor has changed. Thus
// we'll clear our cache. If we're the origin then we'll need to remove the glList as well.
if( oldXIndex == 0 && oldYIndex == 0 && clientMonitor != null ) clientMonitor.destroy();
clientMonitor = null;
}
if( xIndex == 0 && yIndex == 0 )
{
// If we're the origin terminal then create it.
if( clientMonitor == null ) clientMonitor = new ClientMonitor( advanced, this );
if( xIndex == 0 && yIndex == 0 )
{
// If we're the origin terminal then create it.
if( clientMonitor == null ) clientMonitor = new ClientMonitor( advanced, this );
}
}
}
// @Override
// public final void handleUpdateTag( @Nonnull CompoundTag nbt )
// {
// super.handleUpdateTag( nbt );
//
// int oldXIndex = xIndex;
// int oldYIndex = yIndex;
//
// xIndex = nbt.getInt( NBT_X );
// yIndex = nbt.getInt( NBT_Y );
// width = nbt.getInt( NBT_WIDTH );
// height = nbt.getInt( NBT_HEIGHT );
//
// if( oldXIndex != xIndex || oldYIndex != yIndex )
// {
// // If our index has changed then it's possible the origin monitor has changed. Thus
// // we'll clear our cache. If we're the origin then we'll need to remove the glList as well.
// if( oldXIndex == 0 && oldYIndex == 0 && clientMonitor != null ) clientMonitor.destroy();
// clientMonitor = null;
// }
//
// if( xIndex == 0 && yIndex == 0 )
// {
// // If we're the origin terminal then create it.
// if( clientMonitor == null ) clientMonitor = new ClientMonitor( advanced, this );
// }
// }
@Override
public void blockTick()
{

View File

@@ -27,6 +27,7 @@ import dan200.computercraft.shared.peripheral.commandblock.CommandBlockPeriphera
import dan200.computercraft.shared.peripheral.generic.methods.InventoryMethods;
import dan200.computercraft.shared.peripheral.modem.wired.BlockCable;
import dan200.computercraft.shared.peripheral.modem.wireless.WirelessNetwork;
import dan200.computercraft.shared.peripheral.monitor.MonitorWatcher;
import dan200.computercraft.shared.turtle.FurnaceRefuelHandler;
import dan200.computercraft.shared.util.Config;
import dan200.computercraft.shared.util.TickScheduler;
@@ -51,6 +52,7 @@ public final class ComputerCraftProxyCommon
public static void init()
{
NetworkHandler.setup();
MonitorWatcher.init();
registerProviders();
registerHandlers();

Binary file not shown.

Before

Width:  |  Height:  |  Size: 283 B

After

Width:  |  Height:  |  Size: 668 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 249 B

After

Width:  |  Height:  |  Size: 624 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 B

After

Width:  |  Height:  |  Size: 614 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 125 B

After

Width:  |  Height:  |  Size: 548 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 B

After

Width:  |  Height:  |  Size: 484 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 260 B

After

Width:  |  Height:  |  Size: 656 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 245 B

After

Width:  |  Height:  |  Size: 583 B

View File

@@ -1,7 +1,7 @@
{
"schemaVersion": 1,
"id": "computercraft",
"name": "CC:Restitched",
"name": "CC: Restitched",
"version": "${version}",
"description": "CC: Tweaked for Fabric.",
"license": "ComputerCraft Public License",
@@ -20,9 +20,9 @@
"Toad-Dev"
],
"depends": {
"fabricloader": ">=0.11.3",
"fabric": "*",
"minecraft": "1.18.1"
"minecraft": "1.18.x",
"fabricloader": ">=0.12.9",
"fabric": "*"
},
"suggests": {
"modmenu": "*"

View File

@@ -1,6 +1,6 @@
{
"pack": {
"pack_format": 7,
"description": "The clasic look of ComputerCraft"
"pack_format": 8,
"description": "The classic look of ComputerCraft."
}
}