mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2024-10-31 23:26:19 +00:00
5409d441b5
This registers IPeripheral as a capability. As a result, all (Minecraft facing) functionality operates using LazyOptional<_>s instead. Peripheral providers should now return a LazyOptional<IPeripheral> too. Hopefully this will allow custom peripherals to mark themselves as invalid (say, because a dependency has changed). While peripheral providers are somewhat redundant, they still have their usages. If a peripheral is applied to a large number of blocks (for instance, all inventories) then using capabilities does incur some memory overhead. We also make the following changes based on the above: - Remove the default implementation for IWiredElement, migrating the definition to a common "Capabilities" class. - Remove IPeripheralTile - we'll exclusively use capabilities now. Absurdly this is the most complex change, as all TEs needed to be migrated too. I'm not 100% sure of the correctness of this changes so far - I've tested it pretty well, but blocks with more complex peripheral logic (wired/wireless modems and turtles) are still a little messy. - Remove the "command block" peripheral provider, attaching a capability instead.
174 lines
7.6 KiB
XML
174 lines
7.6 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE module PUBLIC
|
|
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
|
|
"https://checkstyle.org/dtds/configuration_1_3.dtd">
|
|
<module name="Checker">
|
|
<property name="tabWidth" value="4"/>
|
|
<property name="charset" value="UTF-8" />
|
|
|
|
<module name="SuppressionFilter">
|
|
<property name="file" value="config/checkstyle/suppressions.xml" />
|
|
</module>
|
|
|
|
<module name="BeforeExecutionExclusionFileFilter">
|
|
<property name="fileNamePattern" value="render_old"/>
|
|
</module>
|
|
|
|
<module name="TreeWalker">
|
|
<!-- Annotations -->
|
|
<module name="AnnotationLocation" />
|
|
<module name="AnnotationUseStyle" />
|
|
<module name="MissingDeprecated" />
|
|
<module name="MissingOverride" />
|
|
|
|
<!-- Blocks -->
|
|
<module name="EmptyBlock" />
|
|
<module name="EmptyCatchBlock">
|
|
<property name="exceptionVariableName" value="ignored" />
|
|
</module>
|
|
<module name="LeftCurly">
|
|
<property name="option" value="nl" />
|
|
<!-- The defaults, minus lambdas. -->
|
|
<property name="tokens" value="ANNOTATION_DEF,CLASS_DEF,CTOR_DEF,ENUM_CONSTANT_DEF,ENUM_DEF,INTERFACE_DEF,LITERAL_CASE,LITERAL_CATCH,LITERAL_DEFAULT,LITERAL_DO,LITERAL_ELSE,LITERAL_FINALLY,LITERAL_FOR,LITERAL_IF,LITERAL_SWITCH,LITERAL_SYNCHRONIZED,LITERAL_TRY,LITERAL_WHILE,METHOD_DEF,OBJBLOCK,STATIC_INIT" />
|
|
</module>
|
|
<module name="NeedBraces">
|
|
<property name="allowSingleLineStatement" value="true"/>
|
|
</module>
|
|
<module name="RightCurly">
|
|
<property name="option" value="alone" />
|
|
</module>
|
|
|
|
<!-- Class design. As if we've ever followed good practice here. -->
|
|
<module name="FinalClass" />
|
|
<module name="InterfaceIsType" />
|
|
<module name="MutableException" />
|
|
<module name="OneTopLevelClass" />
|
|
|
|
<!-- Coding -->
|
|
<module name="ArrayTrailingComma" />
|
|
<module name="EqualsHashCode" />
|
|
<!-- FallThrough does not handle unreachable code well -->
|
|
<module name="IllegalInstantiation" />
|
|
<module name="IllegalThrows" />
|
|
<module name="ModifiedControlVariable" />
|
|
<module name="NoClone" />
|
|
<module name="NoFinalizer" />
|
|
<module name="OneStatementPerLine" />
|
|
<module name="PackageDeclaration" />
|
|
<module name="SimplifyBooleanExpression" />
|
|
<module name="SimplifyBooleanReturn" />
|
|
<module name="StringLiteralEquality" />
|
|
<module name="UnnecessaryParentheses" />
|
|
<module name="UnnecessarySemicolonAfterTypeMemberDeclaration" />
|
|
<module name="UnnecessarySemicolonInTryWithResources" />
|
|
<module name="UnnecessarySemicolonInEnumeration" />
|
|
|
|
<!-- Imports -->
|
|
<module name="CustomImportOrder" />
|
|
<module name="IllegalImport" />
|
|
<module name="RedundantImport" />
|
|
<module name="UnusedImports" />
|
|
|
|
<!-- Javadoc -->
|
|
<!-- TODO: Missing* checks for the dan200.computercraft.api package? -->
|
|
<module name="AtclauseOrder" />
|
|
<module name="InvalidJavadocPosition" />
|
|
<module name="JavadocBlockTagLocation" />
|
|
<module name="JavadocMethod"/>
|
|
<module name="JavadocType"/>
|
|
<module name="JavadocStyle" />
|
|
<module name="NonEmptyAtclauseDescription" />
|
|
<module name="SingleLineJavadoc" />
|
|
<module name="SummaryJavadocCheck"/>
|
|
|
|
<!-- Misc -->
|
|
<module name="ArrayTypeStyle" />
|
|
<module name="CommentsIndentation" />
|
|
<module name="Indentation" />
|
|
<module name="OuterTypeFilename" />
|
|
|
|
<!-- Modifiers -->
|
|
<module name="ModifierOrder" />
|
|
<module name="RedundantModifier" />
|
|
|
|
<!-- Naming -->
|
|
<module name="ClassTypeParameterName" />
|
|
<module name="InterfaceTypeParameterName" />
|
|
<module name="LambdaParameterName" />
|
|
<module name="LocalFinalVariableName" />
|
|
<module name="LocalVariableName" />
|
|
<!-- Allow an optional m_ on private members -->
|
|
<module name="MemberName">
|
|
<property name="applyToPrivate" value="false" />
|
|
<property name="applyToPackage" value="false" />
|
|
</module>
|
|
<module name="MemberName">
|
|
<property name="format" value="^(m_)?[a-z][a-zA-Z0-9]*$" />
|
|
<property name="applyToPrivate" value="true" />
|
|
<property name="applyToPackage" value="true" />
|
|
</module>
|
|
<module name="MethodName" />
|
|
<module name="MethodTypeParameterName" />
|
|
<module name="PackageName">
|
|
<property name="format" value="^dan200\.computercraf(\.[a-z][a-z0-9]*)*" />
|
|
</module>
|
|
<module name="ParameterName" />
|
|
<module name="StaticVariableName">
|
|
<property name="format" value="^[a-z][a-zA-Z0-9]*|CAPABILITY(_[A-Z_]+)?$" />
|
|
<property name="applyToPrivate" value="false" />
|
|
</module>
|
|
<module name="StaticVariableName">
|
|
<property name="format" value="^(s_)?[a-z][a-zA-Z0-9]*|CAPABILITY(_[A-Z_]+)?$" />
|
|
<property name="applyToPrivate" value="true" />
|
|
</module>
|
|
<module name="TypeName" />
|
|
|
|
<!-- Whitespace -->
|
|
<module name="EmptyForInitializerPad"/>
|
|
<module name="EmptyForIteratorPad">
|
|
<property name="option" value="space"/>
|
|
</module>
|
|
<module name="GenericWhitespace" />
|
|
<module name="MethodParamPad" />
|
|
<module name="NoLineWrap" />
|
|
<module name="NoWhitespaceAfter">
|
|
<property name="tokens" value="AT,INC,DEC,UNARY_MINUS,UNARY_PLUS,BNOT,LNOT,DOT,ARRAY_DECLARATOR,INDEX_OP" />
|
|
</module>
|
|
<module name="NoWhitespaceBefore" />
|
|
<!-- TODO: Decide on an OperatorWrap style. -->
|
|
<module name="ParenPad">
|
|
<property name="option" value="space" />
|
|
<property name="tokens" value="ANNOTATION,ANNOTATION_FIELD_DEF,CTOR_CALL,CTOR_DEF,ENUM_CONSTANT_DEF,LITERAL_CATCH,LITERAL_DO,LITERAL_FOR,LITERAL_IF,LITERAL_NEW,LITERAL_SWITCH,LITERAL_SYNCHRONIZED,LITERAL_WHILE,METHOD_CALL,METHOD_DEF,RESOURCE_SPECIFICATION,SUPER_CTOR_CALL,LAMBDA" />
|
|
</module>
|
|
<module name="ParenPad">
|
|
<property name="option" value="nospace" />
|
|
<property name="tokens" value="DOT,EXPR,QUESTION" />
|
|
</module>
|
|
<module name="SeparatorWrap">
|
|
<property name="option" value="eol" />
|
|
<property name="tokens" value="COMMA,SEMI,ELLIPSIS,ARRAY_DECLARATOR,RBRACK,METHOD_REF" />
|
|
</module>
|
|
<module name="SeparatorWrap">
|
|
<property name="option" value="nl" />
|
|
<property name="tokens" value="DOT,AT" />
|
|
</module>
|
|
<module name="SingleSpaceSeparator" />
|
|
<module name="TypecastParenPad" />
|
|
<module name="WhitespaceAfter">
|
|
<property name="tokens" value="COMMA" />
|
|
</module>
|
|
<module name="WhitespaceAround">
|
|
<property name="allowEmptyConstructors" value="true" />
|
|
<property name="ignoreEnhancedForColon" value="false" />
|
|
<property name="tokens" value="ASSIGN,BAND,BAND_ASSIGN,BOR,BOR_ASSIGN,BSR,BSR_ASSIGN,BXOR,BXOR_ASSIGN,COLON,DIV,DIV_ASSIGN,EQUAL,GE,GT,LAMBDA,LAND,LCURLY,LE,LITERAL_RETURN,LOR,LT,MINUS,MINUS_ASSIGN,MOD,MOD_ASSIGN,NOT_EQUAL,PLUS,PLUS_ASSIGN,QUESTION,RCURLY,SL,SLIST,SL_ASSIGN,SR,SR_ASSIGN,STAR,STAR_ASSIGN,LITERAL_ASSERT,TYPE_EXTENSION_AND" />
|
|
</module>
|
|
</module>
|
|
|
|
<module name="FileTabCharacter" />
|
|
<module name="NewlineAtEndOfFile" />
|
|
<module name="RegexpSingleline">
|
|
<property name="format" value="\s+$"/>
|
|
<property name="message" value="Trailing whitespace"/>
|
|
</module>
|
|
</module>
|