mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2025-01-07 07:50:27 +00:00
Some post-1.17 cleanup
- Fix broken Javadoc references - Apply a couple of refactoring suggestions from IDEA
This commit is contained in:
parent
0d35331b82
commit
0e94355a85
@ -6,5 +6,5 @@ mod_version=1.98.2
|
|||||||
# Minecraft properties (update mods.toml when changing)
|
# Minecraft properties (update mods.toml when changing)
|
||||||
mc_version=1.17.1
|
mc_version=1.17.1
|
||||||
mapping_version=2021.09.05
|
mapping_version=2021.09.05
|
||||||
forge_version=37.0.82
|
forge_version=37.0.85
|
||||||
# NO SERIOUSLY, UPDATE mods.toml WHEN CHANGING
|
# NO SERIOUSLY, UPDATE mods.toml WHEN CHANGING
|
||||||
|
@ -19,8 +19,6 @@ import net.minecraftforge.fml.common.Mod;
|
|||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
@ -43,10 +41,10 @@ public final class ComputerCraft
|
|||||||
|
|
||||||
public static boolean httpEnabled = true;
|
public static boolean httpEnabled = true;
|
||||||
public static boolean httpWebsocketEnabled = true;
|
public static boolean httpWebsocketEnabled = true;
|
||||||
public static List<AddressRule> httpRules = Collections.unmodifiableList( Arrays.asList(
|
public static List<AddressRule> httpRules = List.of(
|
||||||
AddressRule.parse( "$private", null, Action.DENY.toPartial() ),
|
AddressRule.parse( "$private", null, Action.DENY.toPartial() ),
|
||||||
AddressRule.parse( "*", null, Action.ALLOW.toPartial() )
|
AddressRule.parse( "*", null, Action.ALLOW.toPartial() )
|
||||||
) );
|
);
|
||||||
|
|
||||||
public static int httpMaxRequests = 16;
|
public static int httpMaxRequests = 16;
|
||||||
public static int httpMaxWebsockets = 4;
|
public static int httpMaxWebsockets = 4;
|
||||||
|
@ -62,7 +62,7 @@ public final class ComputerCraftAPI
|
|||||||
*
|
*
|
||||||
* eg: if createUniqueNumberedSaveDir( world, "computer/disk" ) was called returns 42, then "computer/disk/42" is now
|
* eg: if createUniqueNumberedSaveDir( world, "computer/disk" ) was called returns 42, then "computer/disk/42" is now
|
||||||
* available for writing.
|
* available for writing.
|
||||||
* @see #createSaveDirMount(World, String, long)
|
* @see #createSaveDirMount(Level, String, long)
|
||||||
*/
|
*/
|
||||||
public static int createUniqueNumberedSaveDir( @Nonnull Level world, @Nonnull String parentSubPath )
|
public static int createUniqueNumberedSaveDir( @Nonnull Level world, @Nonnull String parentSubPath )
|
||||||
{
|
{
|
||||||
@ -81,7 +81,7 @@ public final class ComputerCraftAPI
|
|||||||
* @param capacity The amount of data that can be stored in the directory before it fills up, in bytes.
|
* @param capacity The amount of data that can be stored in the directory before it fills up, in bytes.
|
||||||
* @return The mount, or null if it could be created for some reason. Use IComputerAccess.mount() or IComputerAccess.mountWritable()
|
* @return The mount, or null if it could be created for some reason. Use IComputerAccess.mount() or IComputerAccess.mountWritable()
|
||||||
* to mount this on a Computers' file system.
|
* to mount this on a Computers' file system.
|
||||||
* @see #createUniqueNumberedSaveDir(World, String)
|
* @see #createUniqueNumberedSaveDir(Level, String)
|
||||||
* @see IComputerAccess#mount(String, IMount)
|
* @see IComputerAccess#mount(String, IMount)
|
||||||
* @see IComputerAccess#mountWritable(String, IWritableMount)
|
* @see IComputerAccess#mountWritable(String, IWritableMount)
|
||||||
* @see IMount
|
* @see IMount
|
||||||
|
@ -43,7 +43,7 @@ public class NoTermComputerScreen<T extends ContainerComputerBase> extends Scree
|
|||||||
@Override
|
@Override
|
||||||
protected void init()
|
protected void init()
|
||||||
{
|
{
|
||||||
this.passEvents = true; // to allow gui click events pass through mouseHelper protection (see MouseHelper.OnPres:105 code string)
|
passEvents = true; // Pass mouse vents through to the game's mouse handler.
|
||||||
minecraft.mouseHandler.grabMouse();
|
minecraft.mouseHandler.grabMouse();
|
||||||
minecraft.screen = this;
|
minecraft.screen = this;
|
||||||
|
|
||||||
@ -103,7 +103,7 @@ public class NoTermComputerScreen<T extends ContainerComputerBase> extends Scree
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render( PoseStack transform, int mouseX, int mouseY, float partialTicks )
|
public void render( @Nonnull PoseStack transform, int mouseX, int mouseY, float partialTicks )
|
||||||
{
|
{
|
||||||
super.render( transform, mouseX, mouseY, partialTicks );
|
super.render( transform, mouseX, mouseY, partialTicks );
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ public class DynamicImageButton extends Button
|
|||||||
List<Component> tooltip = this.tooltip.get();
|
List<Component> tooltip = this.tooltip.get();
|
||||||
if( !tooltip.isEmpty() )
|
if( !tooltip.isEmpty() )
|
||||||
{
|
{
|
||||||
screen.renderComponentToolTip( stack, tooltip, mouseX, mouseY, screen.getMinecraft().font );
|
screen.renderComponentTooltip( stack, tooltip, mouseX, mouseY );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -292,7 +292,7 @@ public final class ResourceMount implements IMount
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A {@link ISelectiveResourceReloadListener} which reloads any associated mounts.
|
* A {@link ResourceManagerReloadListener} which reloads any associated mounts.
|
||||||
*
|
*
|
||||||
* While people should really be keeping a permanent reference to this, some people construct it every
|
* While people should really be keeping a permanent reference to this, some people construct it every
|
||||||
* method call, so let's make this as small as possible.
|
* method call, so let's make this as small as possible.
|
||||||
|
@ -24,7 +24,7 @@ class ResultInterpreterFunction extends ResumableVarArgFunction<ResultInterprete
|
|||||||
static class Container
|
static class Container
|
||||||
{
|
{
|
||||||
ILuaCallback callback;
|
ILuaCallback callback;
|
||||||
int errorAdjust;
|
final int errorAdjust;
|
||||||
|
|
||||||
Container( ILuaCallback callback, int errorAdjust )
|
Container( ILuaCallback callback, int errorAdjust )
|
||||||
{
|
{
|
||||||
|
@ -44,7 +44,7 @@ public final class ComputerMBean implements DynamicMBean, Tracker
|
|||||||
add( "task", TrackingField.TOTAL_TIME, attributes, TrackingField.TASKS );
|
add( "task", TrackingField.TOTAL_TIME, attributes, TrackingField.TASKS );
|
||||||
add( "serverTask", TrackingField.SERVER_TIME, attributes, TrackingField.SERVER_COUNT );
|
add( "serverTask", TrackingField.SERVER_TIME, attributes, TrackingField.SERVER_COUNT );
|
||||||
|
|
||||||
this.info = new MBeanInfo(
|
info = new MBeanInfo(
|
||||||
ComputerMBean.class.getSimpleName(),
|
ComputerMBean.class.getSimpleName(),
|
||||||
"metrics about all computers on the server",
|
"metrics about all computers on the server",
|
||||||
attributes.toArray( new MBeanAttributeInfo[0] ), null, null, null
|
attributes.toArray( new MBeanAttributeInfo[0] ), null, null, null
|
||||||
@ -69,7 +69,7 @@ public final class ComputerMBean implements DynamicMBean, Tracker
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object getAttribute( String attribute ) throws AttributeNotFoundException, MBeanException, ReflectionException
|
public Object getAttribute( String attribute ) throws AttributeNotFoundException
|
||||||
{
|
{
|
||||||
LongSupplier value = attributes.get( attribute );
|
LongSupplier value = attributes.get( attribute );
|
||||||
if( value == null ) throw new AttributeNotFoundException();
|
if( value == null ) throw new AttributeNotFoundException();
|
||||||
@ -95,7 +95,7 @@ public final class ComputerMBean implements DynamicMBean, Tracker
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object invoke( String actionName, Object[] params, String[] signature ) throws MBeanException, ReflectionException
|
public Object invoke( String actionName, Object[] params, String[] signature )
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -149,7 +149,7 @@ public final class ComputerMBean implements DynamicMBean, Tracker
|
|||||||
|
|
||||||
private static class Counter
|
private static class Counter
|
||||||
{
|
{
|
||||||
AtomicLong value = new AtomicLong();
|
final AtomicLong value = new AtomicLong();
|
||||||
AtomicLong count = new AtomicLong();
|
final AtomicLong count = new AtomicLong();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -110,9 +110,8 @@ public class BlockModelProvider extends BlockStateProvider
|
|||||||
|
|
||||||
BlockModelBuilder model = models()
|
BlockModelBuilder model = models()
|
||||||
.getBuilder( name( block ) )
|
.getBuilder( name( block ) )
|
||||||
.customLoader( BasicCustomLoader.makeFactory( new ResourceLocation( ComputerCraft.MOD_ID, "turtle" ), x -> {
|
.customLoader( BasicCustomLoader.makeFactory( new ResourceLocation( ComputerCraft.MOD_ID, "turtle" ),
|
||||||
x.addProperty( "model", base.getLocation().toString() );
|
x -> x.addProperty( "model", base.getLocation().toString() ) ) )
|
||||||
} ) )
|
|
||||||
.end();
|
.end();
|
||||||
|
|
||||||
for( Direction facing : BlockTurtle.FACING.getPossibleValues() )
|
for( Direction facing : BlockTurtle.FACING.getPossibleValues() )
|
||||||
|
@ -26,7 +26,7 @@ import java.util.Map;
|
|||||||
import java.util.function.BiConsumer;
|
import java.util.function.BiConsumer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An alternative to {@link net.minecraft.data.LootTableProvider}, with a more flexible interface.
|
* An alternative to {@link net.minecraft.data.loot.LootTableProvider}, with a more flexible interface.
|
||||||
*/
|
*/
|
||||||
public abstract class LootTableProvider implements DataProvider
|
public abstract class LootTableProvider implements DataProvider
|
||||||
{
|
{
|
||||||
|
@ -25,11 +25,9 @@ import net.minecraftforge.fml.config.ModConfig;
|
|||||||
import net.minecraftforge.fml.event.config.ModConfigEvent;
|
import net.minecraftforge.fml.event.config.ModConfigEvent;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
@Mod.EventBusSubscriber( modid = ComputerCraft.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD )
|
@Mod.EventBusSubscriber( modid = ComputerCraft.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD )
|
||||||
public final class Config
|
public final class Config
|
||||||
@ -337,8 +335,8 @@ public final class Config
|
|||||||
// HTTP
|
// HTTP
|
||||||
ComputerCraft.httpEnabled = httpEnabled.get();
|
ComputerCraft.httpEnabled = httpEnabled.get();
|
||||||
ComputerCraft.httpWebsocketEnabled = httpWebsocketEnabled.get();
|
ComputerCraft.httpWebsocketEnabled = httpWebsocketEnabled.get();
|
||||||
ComputerCraft.httpRules = Collections.unmodifiableList( httpRules.get().stream()
|
ComputerCraft.httpRules = httpRules.get().stream()
|
||||||
.map( AddressRuleConfig::parseRule ).filter( Objects::nonNull ).collect( Collectors.toList() ) );
|
.map( AddressRuleConfig::parseRule ).filter( Objects::nonNull ).toList();
|
||||||
|
|
||||||
ComputerCraft.httpMaxRequests = httpMaxRequests.get();
|
ComputerCraft.httpMaxRequests = httpMaxRequests.get();
|
||||||
ComputerCraft.httpMaxWebsockets = httpMaxWebsockets.get();
|
ComputerCraft.httpMaxWebsockets = httpMaxWebsockets.get();
|
||||||
|
@ -22,7 +22,7 @@ public final class ComputerProxy
|
|||||||
this.get = get;
|
this.get = get;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected TileComputerBase getTile()
|
TileComputerBase getTile()
|
||||||
{
|
{
|
||||||
return get.get();
|
return get.get();
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,7 @@ public class ComputerUpgradeRecipe extends ComputerFamilyRecipe
|
|||||||
return SERIALIZER;
|
return SERIALIZER;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final RecipeSerializer<ComputerUpgradeRecipe> SERIALIZER = new Serializer<ComputerUpgradeRecipe>()
|
public static final RecipeSerializer<ComputerUpgradeRecipe> SERIALIZER = new Serializer<>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
protected ComputerUpgradeRecipe create( ResourceLocation identifier, String group, int width, int height, NonNullList<Ingredient> ingredients, ItemStack result, ComputerFamily family )
|
protected ComputerUpgradeRecipe create( ResourceLocation identifier, String group, int width, int height, NonNullList<Ingredient> ingredients, ItemStack result, ComputerFamily family )
|
||||||
|
@ -152,7 +152,7 @@ public final class TileDiskDrive extends TileGeneric implements DefaultInventory
|
|||||||
return super.save( nbt );
|
return super.save( nbt );
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void serverTick()
|
void serverTick()
|
||||||
{
|
{
|
||||||
// Ejection
|
// Ejection
|
||||||
if( ejectQueued )
|
if( ejectQueued )
|
||||||
|
@ -148,7 +148,7 @@ public class ItemData
|
|||||||
*
|
*
|
||||||
* @param rawEnchants The raw NBT list of enchantments
|
* @param rawEnchants The raw NBT list of enchantments
|
||||||
* @param enchants The enchantment map to add it to.
|
* @param enchants The enchantment map to add it to.
|
||||||
* @see net.minecraft.enchantment.EnchantmentHelper
|
* @see EnchantmentHelper
|
||||||
*/
|
*/
|
||||||
private static void addEnchantments( @Nonnull ListTag rawEnchants, @Nonnull ArrayList<Map<String, Object>> enchants )
|
private static void addEnchantments( @Nonnull ListTag rawEnchants, @Nonnull ArrayList<Map<String, Object>> enchants )
|
||||||
{
|
{
|
||||||
|
@ -7,6 +7,7 @@ package dan200.computercraft.shared.peripheral.generic.methods;
|
|||||||
|
|
||||||
import dan200.computercraft.ComputerCraft;
|
import dan200.computercraft.ComputerCraft;
|
||||||
import dan200.computercraft.api.lua.GenericSource;
|
import dan200.computercraft.api.lua.GenericSource;
|
||||||
|
import dan200.computercraft.api.lua.ILuaContext;
|
||||||
import dan200.computercraft.api.lua.LuaException;
|
import dan200.computercraft.api.lua.LuaException;
|
||||||
import dan200.computercraft.api.lua.LuaFunction;
|
import dan200.computercraft.api.lua.LuaFunction;
|
||||||
import dan200.computercraft.api.peripheral.IComputerAccess;
|
import dan200.computercraft.api.peripheral.IComputerAccess;
|
||||||
@ -60,9 +61,10 @@ public class InventoryMethods implements GenericSource
|
|||||||
* List all items in this inventory. This returns a table, with an entry for each slot.
|
* List all items in this inventory. This returns a table, with an entry for each slot.
|
||||||
*
|
*
|
||||||
* Each item in the inventory is represented by a table containing some basic information, much like
|
* Each item in the inventory is represented by a table containing some basic information, much like
|
||||||
* {@link dan200.computercraft.shared.turtle.apis.TurtleAPI#getItemDetail} includes. More information can be fetched
|
* {@link dan200.computercraft.shared.turtle.apis.TurtleAPI#getItemDetail(ILuaContext, Optional, Optional)}
|
||||||
* with {@link #getItemDetail}. The table contains the item `name`, the `count` and an a (potentially nil) hash of
|
* includes. More information can be fetched with {@link #getItemDetail}. The table contains the item `name`, the
|
||||||
* the item's `nbt.` This NBT data doesn't contain anything useful, but allows you to distinguish identical items.
|
* `count` and an a (potentially nil) hash of the item's `nbt.` This NBT data doesn't contain anything useful, but
|
||||||
|
* allows you to distinguish identical items.
|
||||||
*
|
*
|
||||||
* The returned table is sparse, and so empty slots will be `nil` - it is recommended to loop over using `pairs`
|
* The returned table is sparse, and so empty slots will be `nil` - it is recommended to loop over using `pairs`
|
||||||
* rather than `ipairs`.
|
* rather than `ipairs`.
|
||||||
|
@ -9,6 +9,7 @@ import com.google.common.collect.ImmutableMap;
|
|||||||
import dan200.computercraft.api.ComputerCraftAPI;
|
import dan200.computercraft.api.ComputerCraftAPI;
|
||||||
import dan200.computercraft.shared.Registry;
|
import dan200.computercraft.shared.Registry;
|
||||||
import dan200.computercraft.shared.common.BlockGeneric;
|
import dan200.computercraft.shared.common.BlockGeneric;
|
||||||
|
import dan200.computercraft.shared.util.WaterloggableHelpers;
|
||||||
import dan200.computercraft.shared.util.WorldUtil;
|
import dan200.computercraft.shared.util.WorldUtil;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
@ -176,7 +177,7 @@ public class BlockCable extends BlockGeneric implements SimpleWaterloggedBlock
|
|||||||
@Deprecated
|
@Deprecated
|
||||||
public FluidState getFluidState( @Nonnull BlockState state )
|
public FluidState getFluidState( @Nonnull BlockState state )
|
||||||
{
|
{
|
||||||
return getWaterloggedFluidState( state );
|
return WaterloggableHelpers.getFluidState( state );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
@Nonnull
|
||||||
@ -184,7 +185,7 @@ public class BlockCable extends BlockGeneric implements SimpleWaterloggedBlock
|
|||||||
@Deprecated
|
@Deprecated
|
||||||
public BlockState updateShape( @Nonnull BlockState state, @Nonnull Direction side, @Nonnull BlockState otherState, @Nonnull LevelAccessor world, @Nonnull BlockPos pos, @Nonnull BlockPos otherPos )
|
public BlockState updateShape( @Nonnull BlockState state, @Nonnull Direction side, @Nonnull BlockState otherState, @Nonnull LevelAccessor world, @Nonnull BlockPos pos, @Nonnull BlockPos otherPos )
|
||||||
{
|
{
|
||||||
updateWaterloggedPostPlacement( state, world, pos );
|
WaterloggableHelpers.updateShape( state, world, pos );
|
||||||
// Should never happen, but handle the case where we've no modem or cable.
|
// Should never happen, but handle the case where we've no modem or cable.
|
||||||
if( !state.getValue( CABLE ) && state.getValue( MODEM ) == CableModemVariant.None )
|
if( !state.getValue( CABLE ) && state.getValue( MODEM ) == CableModemVariant.None )
|
||||||
{
|
{
|
||||||
@ -209,7 +210,7 @@ public class BlockCable extends BlockGeneric implements SimpleWaterloggedBlock
|
|||||||
public BlockState getStateForPlacement( @Nonnull BlockPlaceContext context )
|
public BlockState getStateForPlacement( @Nonnull BlockPlaceContext context )
|
||||||
{
|
{
|
||||||
BlockState state = defaultBlockState()
|
BlockState state = defaultBlockState()
|
||||||
.setValue( WATERLOGGED, getWaterloggedStateForPlacement( context ) );
|
.setValue( WATERLOGGED, getFluidStateForPlacement( context ) );
|
||||||
|
|
||||||
if( context.getItemInHand().getItem() instanceof ItemBlockCable.Cable )
|
if( context.getItemInHand().getItem() instanceof ItemBlockCable.Cable )
|
||||||
{
|
{
|
||||||
|
@ -7,6 +7,7 @@ package dan200.computercraft.shared.peripheral.modem.wireless;
|
|||||||
|
|
||||||
import dan200.computercraft.shared.common.BlockGeneric;
|
import dan200.computercraft.shared.common.BlockGeneric;
|
||||||
import dan200.computercraft.shared.peripheral.modem.ModemShapes;
|
import dan200.computercraft.shared.peripheral.modem.ModemShapes;
|
||||||
|
import dan200.computercraft.shared.util.WaterloggableHelpers;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||||
@ -64,7 +65,7 @@ public class BlockWirelessModem extends BlockGeneric implements SimpleWaterlogge
|
|||||||
@Deprecated
|
@Deprecated
|
||||||
public FluidState getFluidState( @Nonnull BlockState state )
|
public FluidState getFluidState( @Nonnull BlockState state )
|
||||||
{
|
{
|
||||||
return getWaterloggedFluidState( state );
|
return WaterloggableHelpers.getFluidState( state );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
@Nonnull
|
||||||
@ -72,7 +73,7 @@ public class BlockWirelessModem extends BlockGeneric implements SimpleWaterlogge
|
|||||||
@Deprecated
|
@Deprecated
|
||||||
public BlockState updateShape( @Nonnull BlockState state, @Nonnull Direction side, @Nonnull BlockState otherState, @Nonnull LevelAccessor world, @Nonnull BlockPos pos, @Nonnull BlockPos otherPos )
|
public BlockState updateShape( @Nonnull BlockState state, @Nonnull Direction side, @Nonnull BlockState otherState, @Nonnull LevelAccessor world, @Nonnull BlockPos pos, @Nonnull BlockPos otherPos )
|
||||||
{
|
{
|
||||||
updateWaterloggedPostPlacement( state, world, pos );
|
WaterloggableHelpers.updateShape( state, world, pos );
|
||||||
return side == state.getValue( FACING ) && !state.canSurvive( world, pos )
|
return side == state.getValue( FACING ) && !state.canSurvive( world, pos )
|
||||||
? state.getFluidState().createLegacyBlock()
|
? state.getFluidState().createLegacyBlock()
|
||||||
: state;
|
: state;
|
||||||
@ -92,6 +93,6 @@ public class BlockWirelessModem extends BlockGeneric implements SimpleWaterlogge
|
|||||||
{
|
{
|
||||||
return defaultBlockState()
|
return defaultBlockState()
|
||||||
.setValue( FACING, placement.getClickedFace().getOpposite() )
|
.setValue( FACING, placement.getClickedFace().getOpposite() )
|
||||||
.setValue( WATERLOGGED, getWaterloggedStateForPlacement( placement ) );
|
.setValue( WATERLOGGED, getFluidStateForPlacement( placement ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -101,7 +101,7 @@ public final class MonitorWatcher
|
|||||||
if( !(world instanceof ServerLevel) ) continue;
|
if( !(world instanceof ServerLevel) ) continue;
|
||||||
|
|
||||||
LevelChunk chunk = world.getChunkAt( pos );
|
LevelChunk chunk = world.getChunkAt( pos );
|
||||||
if( !((ServerLevel) world).getChunkSource().chunkMap.getPlayers( chunk.getPos(), false ).findAny().isPresent() )
|
if( ((ServerLevel) world).getChunkSource().chunkMap.getPlayers( chunk.getPos(), false ).findAny().isEmpty() )
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,7 @@ import dan200.computercraft.shared.computer.core.ComputerFamily;
|
|||||||
import dan200.computercraft.shared.turtle.core.TurtleBrain;
|
import dan200.computercraft.shared.turtle.core.TurtleBrain;
|
||||||
import dan200.computercraft.shared.turtle.items.ITurtleItem;
|
import dan200.computercraft.shared.turtle.items.ITurtleItem;
|
||||||
import dan200.computercraft.shared.turtle.items.TurtleItemFactory;
|
import dan200.computercraft.shared.turtle.items.TurtleItemFactory;
|
||||||
|
import dan200.computercraft.shared.util.WaterloggableHelpers;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
@ -98,7 +99,7 @@ public class BlockTurtle extends BlockComputerBase<TileTurtle> implements Simple
|
|||||||
{
|
{
|
||||||
return defaultBlockState()
|
return defaultBlockState()
|
||||||
.setValue( FACING, placement.getHorizontalDirection() )
|
.setValue( FACING, placement.getHorizontalDirection() )
|
||||||
.setValue( WATERLOGGED, getWaterloggedStateForPlacement( placement ) );
|
.setValue( WATERLOGGED, getFluidStateForPlacement( placement ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
@Nonnull
|
||||||
@ -106,7 +107,7 @@ public class BlockTurtle extends BlockComputerBase<TileTurtle> implements Simple
|
|||||||
@Deprecated
|
@Deprecated
|
||||||
public FluidState getFluidState( @Nonnull BlockState state )
|
public FluidState getFluidState( @Nonnull BlockState state )
|
||||||
{
|
{
|
||||||
return getWaterloggedFluidState( state );
|
return WaterloggableHelpers.getFluidState( state );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
@Nonnull
|
||||||
@ -114,7 +115,7 @@ public class BlockTurtle extends BlockComputerBase<TileTurtle> implements Simple
|
|||||||
@Deprecated
|
@Deprecated
|
||||||
public BlockState updateShape( @Nonnull BlockState state, @Nonnull Direction side, @Nonnull BlockState otherState, @Nonnull LevelAccessor world, @Nonnull BlockPos pos, @Nonnull BlockPos otherPos )
|
public BlockState updateShape( @Nonnull BlockState state, @Nonnull Direction side, @Nonnull BlockState otherState, @Nonnull LevelAccessor world, @Nonnull BlockPos pos, @Nonnull BlockPos otherPos )
|
||||||
{
|
{
|
||||||
updateWaterloggedPostPlacement( state, world, pos );
|
WaterloggableHelpers.updateShape( state, world, pos );
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@ import dan200.computercraft.shared.util.WorldUtil;
|
|||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.network.chat.TextComponent;
|
import net.minecraft.network.chat.TextComponent;
|
||||||
|
import net.minecraft.network.protocol.game.ServerboundInteractPacket;
|
||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
import net.minecraft.world.InteractionResult;
|
import net.minecraft.world.InteractionResult;
|
||||||
import net.minecraft.world.InteractionResultHolder;
|
import net.minecraft.world.InteractionResultHolder;
|
||||||
@ -149,8 +150,8 @@ public class TurtlePlaceCommand implements ITurtleCommand
|
|||||||
* @param hitEntity The entity we're interacting with.
|
* @param hitEntity The entity we're interacting with.
|
||||||
* @param hitPos The position our ray trace hit the entity.
|
* @param hitPos The position our ray trace hit the entity.
|
||||||
* @return If this item was deployed.
|
* @return If this item was deployed.
|
||||||
* @see net.minecraft.network.play.ServerPlayNetHandler#handleInteract(CUseEntityPacket)
|
* @see net.minecraft.server.network.ServerGamePacketListenerImpl#handleInteract(ServerboundInteractPacket)
|
||||||
* @see net.minecraft.entity.player.PlayerEntity#interactOn(Entity, Hand)
|
* @see net.minecraft.world.entity.player.Player#interactOn(Entity, InteractionHand)
|
||||||
*/
|
*/
|
||||||
private static boolean doDeployOnEntity( @Nonnull ItemStack stack, TurtlePlayer turtlePlayer, @Nonnull Entity hitEntity, @Nonnull Vec3 hitPos )
|
private static boolean doDeployOnEntity( @Nonnull ItemStack stack, TurtlePlayer turtlePlayer, @Nonnull Entity hitEntity, @Nonnull Vec3 hitPos )
|
||||||
{
|
{
|
||||||
@ -260,7 +261,7 @@ public class TurtlePlaceCommand implements ITurtleCommand
|
|||||||
* @param context The context of this place action.
|
* @param context The context of this place action.
|
||||||
* @param hit Where the block we're placing against was clicked.
|
* @param hit Where the block we're placing against was clicked.
|
||||||
* @return If this item was deployed.
|
* @return If this item was deployed.
|
||||||
* @see net.minecraft.server.management.PlayerInteractionManager#useItemOn For the original implementation.
|
* @see net.minecraft.server.level.ServerPlayerGameMode#useItemOn For the original implementation.
|
||||||
*/
|
*/
|
||||||
private static InteractionResult doDeployOnBlock(
|
private static InteractionResult doDeployOnBlock(
|
||||||
@Nonnull ItemStack stack, TurtlePlayer turtlePlayer, BlockPos position, UseOnContext context, BlockHitResult hit
|
@Nonnull ItemStack stack, TurtlePlayer turtlePlayer, BlockPos position, UseOnContext context, BlockHitResult hit
|
||||||
|
@ -41,7 +41,7 @@ public final class TurtleRecipe extends ComputerFamilyRecipe
|
|||||||
return TurtleItemFactory.create( computerID, label, -1, getFamily(), null, null, 0, null );
|
return TurtleItemFactory.create( computerID, label, -1, getFamily(), null, null, 0, null );
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final RecipeSerializer<TurtleRecipe> SERIALIZER = new Serializer<TurtleRecipe>()
|
public static final RecipeSerializer<TurtleRecipe> SERIALIZER = new Serializer<>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
protected TurtleRecipe create( ResourceLocation identifier, String group, int width, int height, NonNullList<Ingredient> ingredients, ItemStack result, ComputerFamily family )
|
protected TurtleRecipe create( ResourceLocation identifier, String group, int width, int height, NonNullList<Ingredient> ingredients, ItemStack result, ComputerFamily family )
|
||||||
|
@ -30,7 +30,7 @@ public class TurtleSpeaker extends AbstractTurtleUpgrade
|
|||||||
|
|
||||||
private static class Peripheral extends UpgradeSpeakerPeripheral
|
private static class Peripheral extends UpgradeSpeakerPeripheral
|
||||||
{
|
{
|
||||||
ITurtleAccess turtle;
|
final ITurtleAccess turtle;
|
||||||
|
|
||||||
Peripheral( ITurtleAccess turtle )
|
Peripheral( ITurtleAccess turtle )
|
||||||
{
|
{
|
||||||
|
@ -10,7 +10,7 @@ import net.minecraft.world.item.crafting.RecipeSerializer;
|
|||||||
import net.minecraftforge.registries.ForgeRegistryEntry;
|
import net.minecraftforge.registries.ForgeRegistryEntry;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A {@link IRecipeSerializer} which implements all the Forge registry entries.
|
* A {@link RecipeSerializer} which implements all the Forge registry entries.
|
||||||
*
|
*
|
||||||
* @param <T> The reciep serializer
|
* @param <T> The reciep serializer
|
||||||
*/
|
*/
|
||||||
|
@ -11,8 +11,6 @@ import net.minecraft.world.item.Item;
|
|||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraftforge.common.Tags;
|
import net.minecraftforge.common.Tags;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
|
||||||
|
|
||||||
public final class ColourUtils
|
public final class ColourUtils
|
||||||
{
|
{
|
||||||
@SuppressWarnings( { "unchecked", "rawtypes" } )
|
@SuppressWarnings( { "unchecked", "rawtypes" } )
|
||||||
@ -35,7 +33,6 @@ public final class ColourUtils
|
|||||||
Tags.Items.DYES_BLACK,
|
Tags.Items.DYES_BLACK,
|
||||||
};
|
};
|
||||||
|
|
||||||
@Nullable
|
|
||||||
private ColourUtils() {}
|
private ColourUtils() {}
|
||||||
|
|
||||||
public static DyeColor getStackColour( ItemStack stack )
|
public static DyeColor getStackColour( ItemStack stack )
|
||||||
|
@ -57,8 +57,9 @@ public final class ImpostorRecipe extends ShapedRecipe
|
|||||||
return SERIALIZER;
|
return SERIALIZER;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final RecipeSerializer<ImpostorRecipe> SERIALIZER = new BasicRecipeSerializer<ImpostorRecipe>()
|
public static final RecipeSerializer<ImpostorRecipe> SERIALIZER = new BasicRecipeSerializer<>()
|
||||||
{
|
{
|
||||||
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public ImpostorRecipe fromJson( @Nonnull ResourceLocation identifier, @Nonnull JsonObject json )
|
public ImpostorRecipe fromJson( @Nonnull ResourceLocation identifier, @Nonnull JsonObject json )
|
||||||
{
|
{
|
||||||
|
@ -59,8 +59,9 @@ public final class ImpostorShapelessRecipe extends ShapelessRecipe
|
|||||||
return SERIALIZER;
|
return SERIALIZER;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final RecipeSerializer<ImpostorShapelessRecipe> SERIALIZER = new BasicRecipeSerializer<ImpostorShapelessRecipe>()
|
public static final RecipeSerializer<ImpostorShapelessRecipe> SERIALIZER = new BasicRecipeSerializer<>()
|
||||||
{
|
{
|
||||||
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public ImpostorShapelessRecipe fromJson( @Nonnull ResourceLocation id, @Nonnull JsonObject json )
|
public ImpostorShapelessRecipe fromJson( @Nonnull ResourceLocation id, @Nonnull JsonObject json )
|
||||||
{
|
{
|
||||||
|
@ -9,6 +9,7 @@ import net.minecraft.world.Container;
|
|||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@ -16,7 +17,7 @@ import java.util.Set;
|
|||||||
/**
|
/**
|
||||||
* Provides a delegate over inventories.
|
* Provides a delegate over inventories.
|
||||||
*
|
*
|
||||||
* This may be used both on {@link net.minecraft.tileentity.TileEntity}s to redirect the inventory to another tile,
|
* This may be used both on {@link BlockEntity}s to redirect the inventory to another tile,
|
||||||
* and by other interfaces to have inventories which change their backing store.
|
* and by other interfaces to have inventories which change their backing store.
|
||||||
*/
|
*/
|
||||||
@FunctionalInterface
|
@FunctionalInterface
|
||||||
|
@ -16,9 +16,7 @@ import net.minecraft.world.level.material.FluidState;
|
|||||||
import net.minecraft.world.level.material.Fluids;
|
import net.minecraft.world.level.material.Fluids;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a block which can be filled with water
|
* Helpers for working with waterlogged blocks.
|
||||||
*
|
|
||||||
* I'm fairly sure this exists on 1.14, but it's a useful convenience wrapper to have on 1.13.
|
|
||||||
*/
|
*/
|
||||||
public final class WaterloggableHelpers
|
public final class WaterloggableHelpers
|
||||||
{
|
{
|
||||||
@ -29,24 +27,24 @@ public final class WaterloggableHelpers
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Call from {@link net.minecraft.block.Block#getFluidState(BlockState)}.
|
* Call from {@link net.minecraft.world.level.block.Block#getFluidState(BlockState)}.
|
||||||
*
|
*
|
||||||
* @param state The current state
|
* @param state The current state
|
||||||
* @return This waterlogged block's current fluid
|
* @return This waterlogged block's current fluid
|
||||||
*/
|
*/
|
||||||
public static FluidState getWaterloggedFluidState( BlockState state )
|
public static FluidState getFluidState( BlockState state )
|
||||||
{
|
{
|
||||||
return state.getValue( WATERLOGGED ) ? Fluids.WATER.getSource( false ) : Fluids.EMPTY.defaultFluidState();
|
return state.getValue( WATERLOGGED ) ? Fluids.WATER.getSource( false ) : Fluids.EMPTY.defaultFluidState();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Call from {@link net.minecraft.block.Block#updatePostPlacement(BlockState, Direction, BlockState, IWorld, BlockPos, BlockPos)}.
|
* Call from {@link net.minecraft.world.level.block.Block#updateShape(BlockState, Direction, BlockState, LevelAccessor, BlockPos, BlockPos)}.
|
||||||
*
|
*
|
||||||
* @param state The current state
|
* @param state The current state
|
||||||
* @param world The position of this block
|
* @param world The position of this block
|
||||||
* @param pos The world this block exists in
|
* @param pos The world this block exists in
|
||||||
*/
|
*/
|
||||||
public static void updateWaterloggedPostPlacement( BlockState state, LevelAccessor world, BlockPos pos )
|
public static void updateShape( BlockState state, LevelAccessor world, BlockPos pos )
|
||||||
{
|
{
|
||||||
if( state.getValue( WATERLOGGED ) )
|
if( state.getValue( WATERLOGGED ) )
|
||||||
{
|
{
|
||||||
@ -54,7 +52,7 @@ public final class WaterloggableHelpers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean getWaterloggedStateForPlacement( BlockPlaceContext context )
|
public static boolean getFluidStateForPlacement( BlockPlaceContext context )
|
||||||
{
|
{
|
||||||
return context.getLevel().getFluidState( context.getClickedPos() ).getType() == Fluids.WATER;
|
return context.getLevel().getFluidState( context.getClickedPos() ).getType() == Fluids.WATER;
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,6 @@ CC: Tweaked is a fork of ComputerCraft, adding programmable computers, turtles a
|
|||||||
[[dependencies.computercraft]]
|
[[dependencies.computercraft]]
|
||||||
modId="forge"
|
modId="forge"
|
||||||
mandatory=true
|
mandatory=true
|
||||||
versionRange="[37.0.82,38)"
|
versionRange="[37.0.85,38)"
|
||||||
ordering="NONE"
|
ordering="NONE"
|
||||||
side="BOTH"
|
side="BOTH"
|
||||||
|
Loading…
Reference in New Issue
Block a user