diff --git a/build.gradle b/build.gradle index 0f41883..117dd02 100644 --- a/build.gradle +++ b/build.gradle @@ -3,9 +3,11 @@ buildscript { maven { url "https://plugins.gradle.org/m2/" } maven { url = 'https://files.minecraftforge.net/maven' } mavenCentral() + maven { url "https://repo.spongepowered.org/maven/" } } dependencies { classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '4.1.+', changing: true + } } @@ -18,7 +20,7 @@ apply plugin: 'net.minecraftforge.gradle' apply plugin: 'eclipse' apply plugin: 'maven-publish' -version = '1.16.5-0.1.28-T' + System.currentTimeMillis() +version = '1.16.5-0.1.31-T' + System.currentTimeMillis() group = 'com.yourname.modid' // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = 'MasterfulMachinery' @@ -42,7 +44,7 @@ minecraft { // // Use non-default mappings at your own risk. they may not always work. // Simply re-run your setup task after changing the mappings to update your workspace. - mappings channel: 'official', version: '1.16.5' + mappings channel: 'snapshot', version: '20210309-1.16.5' // makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable. // accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') @@ -64,7 +66,8 @@ minecraft { // You can set various levels here. // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels property 'forge.logging.console.level', 'debug' - properties 'mixin.env.disableRefMap': 'true' + property 'mixin.env.remapRefMap', 'true' + property 'mixin.env.refMapRemappingFile', "${buildDir}/createSrgToMcp/output.srg" mods { masterfulmachinery { source sourceSets.main @@ -86,7 +89,8 @@ minecraft { // You can set various levels here. // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels property 'forge.logging.console.level', 'debug' - properties 'mixin.env.disableRefMap': 'true' + property 'mixin.env.remapRefMap', 'true' + property 'mixin.env.refMapRemappingFile', "${buildDir}/createSrgToMcp/output.srg" mods { masterfulmachinery { source sourceSets.main @@ -103,7 +107,8 @@ minecraft { // "REGISTRIES": For firing of registry events. // "REGISTRYDUMP": For getting the contents of all registries. property 'forge.logging.markers', 'REGISTRIES' - properties 'mixin.env.disableRefMap': 'true' + property 'mixin.env.remapRefMap', 'true' + property 'mixin.env.refMapRemappingFile', "${buildDir}/createSrgToMcp/output.srg" // Recommended logging level for the console // You can set various levels here. // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels @@ -137,6 +142,9 @@ repositories { includeGroup "curse.maven" } } + maven { + url 'https://repo.spongepowered.org/maven/' + } } dependencies { // Specify the version of Minecraft to use, If this is any group other then 'net.minecraft' it is assumed @@ -145,6 +153,7 @@ dependencies { compileOnly 'org.projectlombok:lombok:1.18.18' annotationProcessor 'org.projectlombok:lombok:1.18.18' minecraft 'net.minecraftforge:forge:1.16.5-36.1.16' + shade 'com.github.marschall:memoryfilesystem:2.1.0' implementation fg.deobf("mekanism:Mekanism:${mekanism_version}")// core @@ -156,6 +165,11 @@ dependencies { // at runtime, use the full JEI jar runtimeOnly fg.deobf("mezz.jei:jei-${mc_version}:${jei_version}") implementation fg.deobf('me.desht.pneumaticcraft:pneumaticcraft-repressurized:1.16.5-2.12.2-186'); + implementation fg.deobf("curse.maven:create-328085:3278516") +// implementation fg.deobf("curse.maven:astral-sorcery-241721:3156477") +// implementation fg.deobf("curse.maven:curios-309927:3275653") + + // You may put jars on which you depend on in ./libs or you may define them like so.. // compile "some.group:artifact:version:classifier" // compile "some.group:artifact:version" diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 0d4a951..e708b1c 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 1c4bcc2..28ff446 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index cccdd3d..4f906e0 100644 --- a/gradlew +++ b/gradlew @@ -1,5 +1,21 @@ #!/usr/bin/env sh +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + ############################################################################## ## ## Gradle start up script for UN*X @@ -28,7 +44,7 @@ APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" @@ -66,6 +82,7 @@ esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then @@ -109,10 +126,11 @@ if $darwin; then GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" fi -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` # We build the pattern for arguments to be converted via cygpath @@ -138,19 +156,19 @@ if $cygwin ; then else eval `echo args$i`="\"$arg\"" fi - i=$((i+1)) + i=`expr $i + 1` done case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; esac fi @@ -159,14 +177,9 @@ save () { for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done echo " " } -APP_ARGS=$(save "$@") +APP_ARGS=`save "$@"` # Collect all arguments for the java command, following the shell quoting and substitution rules eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" -fi - exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index f955316..107acd3 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,3 +1,19 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + @if "%DEBUG%" == "" @echo off @rem ########################################################################## @rem @@ -13,15 +29,18 @@ if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if "%ERRORLEVEL%" == "0" goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -35,7 +54,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -45,28 +64,14 @@ echo location of your Java installation. goto fail -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - :execute @rem Setup the command line set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell diff --git a/src/main/java/com/ticticboooom/mods/mm/MM.java b/src/main/java/com/ticticboooom/mods/mm/MM.java index 73e253c..f09e223 100644 --- a/src/main/java/com/ticticboooom/mods/mm/MM.java +++ b/src/main/java/com/ticticboooom/mods/mm/MM.java @@ -67,7 +67,7 @@ public class MM { RecipeTypes.RECIPE_SERIALIZERS.register(bus); bus.addListener(this::clientEvents); if (FMLEnvironment.dist == Dist.CLIENT) { - Minecraft.getInstance().getResourcePackRepository().addPackFinder(new MMPackFinder(PackType.RESOURCE)); + Minecraft.getInstance().getResourcePackList().addPackFinder(new MMPackFinder(PackType.RESOURCE)); } MinecraftForge.EVENT_BUS.addListener(this::onServerStart); } @@ -95,30 +95,30 @@ public class MM { } public void onServerStart(final FMLServerAboutToStartEvent event) { - event.getServer().getPackRepository().addPackFinder(new MMPackFinder(PackType.DATA)); + event.getServer().getResourcePacks().addPackFinder(new MMPackFinder(PackType.DATA)); } private void clientEvents(final FMLClientSetupEvent event) { for (RegistryObject> container : MMLoader.CONTAINERS) { - ScreenManager.register(container.get(), ControllerBlockContainerScreen::new); + ScreenManager.registerFactory(container.get(), ControllerBlockContainerScreen::new); } for (RegistryObject> container : MMLoader.PORT_CONTAINERS) { - ScreenManager.register((ContainerType) container.get(), PortBlockContainerScreen::new); + ScreenManager.registerFactory((ContainerType) container.get(), PortBlockContainerScreen::new); } for (RegistryObject block : MMLoader.BLOCKS) { - RenderTypeLookup.setRenderLayer(block.get(), layer -> layer == RenderType.solid() || layer == RenderType.translucent()); + RenderTypeLookup.setRenderLayer(block.get(), layer -> layer == RenderType.getSolid() || layer == RenderType.getTranslucent()); } for (RegistryObject block : MMLoader.IPORT_BLOCKS) { - RenderTypeLookup.setRenderLayer(block.get(), layer -> layer == RenderType.solid() || layer == RenderType.translucent()); + RenderTypeLookup.setRenderLayer(block.get(), layer -> layer == RenderType.getSolid() || layer == RenderType.getTranslucent()); } for (RegistryObject block : MMLoader.OPORT_BLOCKS) { - RenderTypeLookup.setRenderLayer(block.get(), layer -> layer == RenderType.solid() || layer == RenderType.translucent()); + RenderTypeLookup.setRenderLayer(block.get(), layer -> layer == RenderType.getSolid() || layer == RenderType.getTranslucent()); } - RenderTypeLookup.setRenderLayer(MMSetup.PROJECTOR_BLOCK.get(), RenderType.translucent()); - ScreenManager.register(MMSetup.STRUCTURE_CONTAINER.get(), StructureGenBlockContainerScreen::new); + RenderTypeLookup.setRenderLayer(MMSetup.PROJECTOR_BLOCK.get(), RenderType.getTranslucent()); + ScreenManager.registerFactory(MMSetup.STRUCTURE_CONTAINER.get(), StructureGenBlockContainerScreen::new); } } diff --git a/src/main/java/com/ticticboooom/mods/mm/block/ControllerBlock.java b/src/main/java/com/ticticboooom/mods/mm/block/ControllerBlock.java index a79b0e2..279c688 100644 --- a/src/main/java/com/ticticboooom/mods/mm/block/ControllerBlock.java +++ b/src/main/java/com/ticticboooom/mods/mm/block/ControllerBlock.java @@ -40,25 +40,25 @@ public class ControllerBlock extends DirectionalBlock { private String texOverride; public ControllerBlock(RegistryObject> type, String name, String id, String texOverride) { - super(AbstractBlock.Properties.of(Material.METAL) + super(AbstractBlock.Properties.create(Material.IRON) .harvestLevel(1) .harvestTool(ToolType.PICKAXE)); this.type = type; this.controllerName = name; this.controllerId = id; this.texOverride = texOverride; - this.registerDefaultState(this.defaultBlockState().setValue(FACING, Direction.NORTH)); + this.setDefaultState(this.getDefaultState().with(FACING, Direction.NORTH)); } @Override - protected void createBlockStateDefinition(StateContainer.Builder builder) { - super.createBlockStateDefinition(builder.add(FACING)); + protected void fillStateContainer(StateContainer.Builder builder) { + super.fillStateContainer(builder.add(FACING)); } @Nullable @Override public BlockState getStateForPlacement(BlockItemUseContext ctx) { - return this.defaultBlockState().setValue(FACING, ctx.getHorizontalDirection().getOpposite()); + return this.getDefaultState().with(FACING, ctx.getPlacementHorizontalFacing().getOpposite()); } @Override @@ -73,9 +73,9 @@ public class ControllerBlock extends DirectionalBlock { } @Override - public ActionResultType use(BlockState state, World level, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult traceResult) { - if (!level.isClientSide()) { - TileEntity blockEntity = level.getBlockEntity(pos); + public ActionResultType onBlockActivated(BlockState state, World worldIn, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { + if (!worldIn.isRemote()) { + TileEntity blockEntity = worldIn.getTileEntity(pos); if (blockEntity instanceof ControllerBlockEntity) { NetworkHooks.openGui(((ServerPlayerEntity) player), (ControllerBlockEntity)blockEntity, pos); } diff --git a/src/main/java/com/ticticboooom/mods/mm/block/MachinePortBlock.java b/src/main/java/com/ticticboooom/mods/mm/block/MachinePortBlock.java index 3a1d44f..8176a99 100644 --- a/src/main/java/com/ticticboooom/mods/mm/block/MachinePortBlock.java +++ b/src/main/java/com/ticticboooom/mods/mm/block/MachinePortBlock.java @@ -20,6 +20,7 @@ import net.minecraft.util.math.BlockRayTraceResult; import net.minecraft.world.IBlockReader; import net.minecraft.world.IWorldReader; import net.minecraft.world.World; +import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.fml.RegistryObject; import net.minecraftforge.fml.network.NetworkHooks; import net.minecraftforge.items.ItemStackHandler; @@ -38,7 +39,7 @@ public class MachinePortBlock extends Block { private ResourceLocation overlay; public MachinePortBlock(RegistryObject> type, String name, String controllerId, String textureOverride, ResourceLocation overlay) { - super(AbstractBlock.Properties.of(Material.METAL)); + super(AbstractBlock.Properties.create(Material.IRON)); this.type = type; this.langName = name; this.controllerId = controllerId; @@ -58,9 +59,9 @@ public class MachinePortBlock extends Block { } @Override - public ActionResultType use(BlockState state, World level, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult traceResult) { - if (!level.isClientSide()) { - TileEntity blockEntity = level.getBlockEntity(pos); + public ActionResultType onBlockActivated(BlockState state, World level, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult traceResult) { + if (!level.isRemote()) { + TileEntity blockEntity = level.getTileEntity(pos); if (blockEntity instanceof MachinePortBlockEntity) { NetworkHooks.openGui(((ServerPlayerEntity) player), (MachinePortBlockEntity)blockEntity, pos); } @@ -70,22 +71,26 @@ public class MachinePortBlock extends Block { @Override - public void onRemove(BlockState state, World world, BlockPos pos, BlockState state1, boolean p_196243_5_) { - TileEntity tile = world.getBlockEntity(pos); + public void onReplaced(BlockState state, World worldIn, BlockPos pos, BlockState newState, boolean isMoving) { + TileEntity tile = worldIn.getTileEntity(pos); if (tile instanceof MachinePortBlockEntity){ - Object o = ((MachinePortBlockEntity) tile).getStorage().getLO().orElse(null); + LazyOptional lo = ((MachinePortBlockEntity) tile).getStorage().getLO(); + if (lo == null){ + return; + } + Object o = lo.orElse(null); if (o instanceof ItemStackHandler) { - InventoryHelper.dropContents(world, pos, new ItemStackInventory((ItemStackHandler) o)); + InventoryHelper.dropInventoryItems(worldIn, pos, new ItemStackInventory((ItemStackHandler) o)); } } - super.onRemove(state, world, pos, state1, p_196243_5_); + super.onReplaced(state, worldIn, pos, newState, isMoving); } @Override public void neighborChanged(BlockState p_220069_1_, World world, BlockPos pos, Block p_220069_4_, BlockPos changedPos, boolean p_220069_6_) { super.neighborChanged(p_220069_1_, world, pos, p_220069_4_, changedPos, p_220069_6_); - TileEntity tile = world.getBlockEntity(pos); + TileEntity tile = world.getTileEntity(pos); if (tile instanceof MachinePortBlockEntity){ ((MachinePortBlockEntity) tile).getStorage().neighborChanged(); } diff --git a/src/main/java/com/ticticboooom/mods/mm/block/ProjectorBlock.java b/src/main/java/com/ticticboooom/mods/mm/block/ProjectorBlock.java index 844b0a9..59ef239 100644 --- a/src/main/java/com/ticticboooom/mods/mm/block/ProjectorBlock.java +++ b/src/main/java/com/ticticboooom/mods/mm/block/ProjectorBlock.java @@ -22,58 +22,58 @@ import java.util.stream.Stream; public class ProjectorBlock extends Block { public ProjectorBlock() { - super(Properties.of(Material.METAL)); - this.registerDefaultState(this.defaultBlockState().setValue(FACING, Direction.NORTH)); + super(Properties.create(Material.IRON)); + this.setDefaultState(this.getDefaultState().with(FACING, Direction.NORTH)); } - private static final DirectionProperty FACING = HorizontalBlock.FACING; + private static final DirectionProperty FACING = HorizontalBlock.HORIZONTAL_FACING; private static final VoxelShape SHAPE_N = Stream.of( - Block.box(0, 0, 0, 16, 8, 16), - Block.box(0, 8, 0, 4, 10, 16), - Block.box(4, 8, 8, 16, 12, 16), - Block.box(12, 8, 0, 16, 10, 8), - Block.box(5, 8, 1, 11, 12, 7), - Block.box(5, 12, 9, 11, 16, 15) - ).reduce((v1, v2) -> VoxelShapes.join(v1, v2, IBooleanFunction.OR)).get(); + Block.makeCuboidShape(0, 0, 0, 16, 8, 16), + Block.makeCuboidShape(0, 8, 0, 4, 10, 16), + Block.makeCuboidShape(4, 8, 8, 16, 12, 16), + Block.makeCuboidShape(12, 8, 0, 16, 10, 8), + Block.makeCuboidShape(5, 8, 1, 11, 12, 7), + Block.makeCuboidShape(5, 12, 9, 11, 16, 15) + ).reduce((v1, v2) -> VoxelShapes.combineAndSimplify(v1, v2, IBooleanFunction.OR)).get(); private static final VoxelShape SHAPE_E = Stream.of( - Block.box(0, 0, 0, 16, 8, 16), - Block.box(0, 8, 0, 16, 10, 4), - Block.box(0, 8, 4, 8, 12, 16), - Block.box(8, 8, 12, 16, 10, 16), - Block.box(9, 8, 5, 15, 12, 11), - Block.box(1, 12, 5, 7, 16, 11) - ).reduce((v1, v2) -> VoxelShapes.join(v1, v2, IBooleanFunction.OR)).get(); + Block.makeCuboidShape(0, 0, 0, 16, 8, 16), + Block.makeCuboidShape(0, 8, 0, 16, 10, 4), + Block.makeCuboidShape(0, 8, 4, 8, 12, 16), + Block.makeCuboidShape(8, 8, 12, 16, 10, 16), + Block.makeCuboidShape(9, 8, 5, 15, 12, 11), + Block.makeCuboidShape(1, 12, 5, 7, 16, 11) + ).reduce((v1, v2) -> VoxelShapes.combineAndSimplify(v1, v2, IBooleanFunction.OR)).get(); private static final VoxelShape SHAPE_S = Stream.of( - Block.box(0, 0, 0, 16, 8, 16), - Block.box(12, 8, 0, 16, 10, 16), - Block.box(0, 8, 0, 12, 12, 8), - Block.box(0, 8, 8, 4, 10, 16), - Block.box(5, 8, 9, 11, 12, 15), - Block.box(5, 12, 1, 11, 16, 7) - ).reduce((v1, v2) -> VoxelShapes.join(v1, v2, IBooleanFunction.OR)).get(); + Block.makeCuboidShape(0, 0, 0, 16, 8, 16), + Block.makeCuboidShape(12, 8, 0, 16, 10, 16), + Block.makeCuboidShape(0, 8, 0, 12, 12, 8), + Block.makeCuboidShape(0, 8, 8, 4, 10, 16), + Block.makeCuboidShape(5, 8, 9, 11, 12, 15), + Block.makeCuboidShape(5, 12, 1, 11, 16, 7) + ).reduce((v1, v2) -> VoxelShapes.combineAndSimplify(v1, v2, IBooleanFunction.OR)).get(); private static final VoxelShape SHAPE_W = Stream.of( - Block.box(0, 0, 0, 16, 8, 16), - Block.box(0, 8, 12, 16, 10, 16), - Block.box(8, 8, 0, 16, 12, 12), - Block.box(0, 8, 0, 8, 10, 4), - Block.box(1, 8, 5, 7, 12, 11), - Block.box(9, 12, 5, 15, 16, 11) - ).reduce((v1, v2) -> VoxelShapes.join(v1, v2, IBooleanFunction.OR)).get(); + Block.makeCuboidShape(0, 0, 0, 16, 8, 16), + Block.makeCuboidShape(0, 8, 12, 16, 10, 16), + Block.makeCuboidShape(8, 8, 0, 16, 12, 12), + Block.makeCuboidShape(0, 8, 0, 8, 10, 4), + Block.makeCuboidShape(1, 8, 5, 7, 12, 11), + Block.makeCuboidShape(9, 12, 5, 15, 16, 11) + ).reduce((v1, v2) -> VoxelShapes.combineAndSimplify(v1, v2, IBooleanFunction.OR)).get(); @Override - protected void createBlockStateDefinition(StateContainer.Builder builder) { - super.createBlockStateDefinition(builder.add(FACING)); + protected void fillStateContainer(StateContainer.Builder builder) { + super.fillStateContainer(builder.add(FACING)); } @Nullable @Override public BlockState getStateForPlacement(BlockItemUseContext ctx) { - return this.defaultBlockState().setValue(FACING, ctx.getHorizontalDirection().getOpposite()); + return this.getDefaultState().with(FACING, ctx.getPlacementHorizontalFacing().getOpposite()); } @Override @@ -89,7 +89,7 @@ public class ProjectorBlock extends Block { @Override public VoxelShape getShape(BlockState state, IBlockReader p_220053_2_, BlockPos p_220053_3_, ISelectionContext p_220053_4_) { - switch (state.getValue(FACING)) { + switch (state.get(FACING)) { case NORTH: return SHAPE_N; case EAST: diff --git a/src/main/java/com/ticticboooom/mods/mm/block/StructureGenBlock.java b/src/main/java/com/ticticboooom/mods/mm/block/StructureGenBlock.java index 397b258..dd6d8d8 100644 --- a/src/main/java/com/ticticboooom/mods/mm/block/StructureGenBlock.java +++ b/src/main/java/com/ticticboooom/mods/mm/block/StructureGenBlock.java @@ -21,7 +21,7 @@ import javax.annotation.Nullable; public class StructureGenBlock extends Block { public StructureGenBlock() { - super(Properties.of(Material.METAL)); + super(Properties.create(Material.IRON)); } @Override @@ -36,9 +36,9 @@ public class StructureGenBlock extends Block { } @Override - public ActionResultType use(BlockState state, World level, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult traceResult) { - if (!level.isClientSide()) { - TileEntity blockEntity = level.getBlockEntity(pos); + public ActionResultType onBlockActivated(BlockState state, World level, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult traceResult) { + if (!level.isRemote()) { + TileEntity blockEntity = level.getTileEntity(pos); if (blockEntity instanceof ControllerBlockEntity) { NetworkHooks.openGui(((ServerPlayerEntity) player), (StructureGenBlockEntity)blockEntity, pos); } diff --git a/src/main/java/com/ticticboooom/mods/mm/block/container/ControllerBlockContainer.java b/src/main/java/com/ticticboooom/mods/mm/block/container/ControllerBlockContainer.java index 8eee735..5609054 100644 --- a/src/main/java/com/ticticboooom/mods/mm/block/container/ControllerBlockContainer.java +++ b/src/main/java/com/ticticboooom/mods/mm/block/container/ControllerBlockContainer.java @@ -34,17 +34,20 @@ public class ControllerBlockContainer extends Container { } public ControllerBlockContainer(ContainerType container, int windowId, PlayerInventory player, PacketBuffer buf) { - this(container, windowId, player, (ControllerBlockEntity) player.player.level.getBlockEntity(buf.readBlockPos())); + this(container, windowId, player, (ControllerBlockEntity) player.player.world.getTileEntity(buf.readBlockPos())); } + + @Override - public boolean stillValid(PlayerEntity p_75145_1_) { + public boolean canInteractWith(PlayerEntity p_75145_1_) { return true; } @Override - public ItemStack quickMoveStack(PlayerEntity p_82846_1_, int p_82846_2_) { + public ItemStack transferStackInSlot(PlayerEntity playerIn, int index) { return ItemStack.EMPTY; } + } diff --git a/src/main/java/com/ticticboooom/mods/mm/block/container/PortBlockContainer.java b/src/main/java/com/ticticboooom/mods/mm/block/container/PortBlockContainer.java index a23c10c..4e2fee3 100644 --- a/src/main/java/com/ticticboooom/mods/mm/block/container/PortBlockContainer.java +++ b/src/main/java/com/ticticboooom/mods/mm/block/container/PortBlockContainer.java @@ -28,11 +28,11 @@ public class PortBlockContainer extends Container { } public PortBlockContainer(ContainerType container, int windowId, PlayerInventory player, PacketBuffer buf) { - this(container, windowId, player, (MachinePortBlockEntity) player.player.level.getBlockEntity(buf.readBlockPos())); + this(container, windowId, player, (MachinePortBlockEntity) player.player.world.getTileEntity(buf.readBlockPos())); } @Override - public boolean stillValid(PlayerEntity p_75145_1_) { + public boolean canInteractWith(PlayerEntity p_75145_1_) { return true; } @@ -42,27 +42,27 @@ public class PortBlockContainer extends Container { } @Override - public ItemStack quickMoveStack(PlayerEntity p_82846_1_, int index) { + public ItemStack transferStackInSlot(PlayerEntity p_82846_1_, int index) { ItemStack itemStack = ItemStack.EMPTY; Object o = tile.getStorage().getLO().orElse(null); if (o instanceof ItemStackHandler) { ItemStackHandler handler = ((ItemStackHandler) o); Slot slot = this.getSlot(index); - if (slot.hasItem()) { - ItemStack itemStack1 = slot.getItem(); + if (slot.getHasStack()) { + ItemStack itemStack1 = slot.getStack(); itemStack = itemStack1.copy(); if (index < handler.getSlots()) { - if (!this.moveItemStackTo(itemStack1, handler.getSlots(), inv.getContainerSize(), true)) { + if (!this.mergeItemStack(itemStack1, handler.getSlots(), this.inventorySlots.size(), true)) { return ItemStack.EMPTY; } - } else if (!this.moveItemStackTo(itemStack1, 0, handler.getSlots(), false)) { + } else if (!this.mergeItemStack(itemStack1, 0, handler.getSlots(), false)) { return ItemStack.EMPTY; } if (itemStack1.isEmpty()) { - slot.set(ItemStack.EMPTY); + slot.putStack(ItemStack.EMPTY); } else { - slot.setChanged(); + slot.onSlotChanged(); } } } diff --git a/src/main/java/com/ticticboooom/mods/mm/block/container/ProjectorBlockContainer.java b/src/main/java/com/ticticboooom/mods/mm/block/container/ProjectorBlockContainer.java index e8a09b0..1b60efc 100644 --- a/src/main/java/com/ticticboooom/mods/mm/block/container/ProjectorBlockContainer.java +++ b/src/main/java/com/ticticboooom/mods/mm/block/container/ProjectorBlockContainer.java @@ -16,11 +16,11 @@ public class ProjectorBlockContainer extends Container { } @Override - public boolean stillValid(PlayerEntity p_75145_1_) { + public boolean canInteractWith(PlayerEntity p_75145_1_) { return true; } public ProjectorBlockContainer(int w, PlayerInventory inv, PacketBuffer buf) { - this(w, (ProjectorBlockEntity) inv.player.level.getBlockEntity(buf.readBlockPos())); + this(w, (ProjectorBlockEntity) inv.player.world.getTileEntity(buf.readBlockPos())); } } diff --git a/src/main/java/com/ticticboooom/mods/mm/block/container/StructureGenBlockContainer.java b/src/main/java/com/ticticboooom/mods/mm/block/container/StructureGenBlockContainer.java index 9b2c607..cd4f09e 100644 --- a/src/main/java/com/ticticboooom/mods/mm/block/container/StructureGenBlockContainer.java +++ b/src/main/java/com/ticticboooom/mods/mm/block/container/StructureGenBlockContainer.java @@ -17,11 +17,11 @@ public class StructureGenBlockContainer extends Container { } @Override - public boolean stillValid(PlayerEntity p_75145_1_) { + public boolean canInteractWith(PlayerEntity p_75145_1_) { return true; } public StructureGenBlockContainer(int w, PlayerInventory inv, PacketBuffer buf) { - this(w, (StructureGenBlockEntity) inv.player.level.getBlockEntity(buf.readBlockPos())); + this(w, (StructureGenBlockEntity) inv.player.world.getTileEntity(buf.readBlockPos())); } } diff --git a/src/main/java/com/ticticboooom/mods/mm/block/tile/ControllerBlockEntity.java b/src/main/java/com/ticticboooom/mods/mm/block/tile/ControllerBlockEntity.java index 3e10c6c..16c7d1d 100644 --- a/src/main/java/com/ticticboooom/mods/mm/block/tile/ControllerBlockEntity.java +++ b/src/main/java/com/ticticboooom/mods/mm/block/tile/ControllerBlockEntity.java @@ -43,13 +43,13 @@ public class ControllerBlockEntity extends UpdatableTile implements ITickableTil @Override public void tick() { - if (level.isClientSide()){ + if (world.isRemote()){ return; } update.setMsg("Failed to construct \nthe machine"); - List recipes = level.getRecipeManager().getAllRecipesFor(RecipeTypes.MACHINE_STRUCTURE); + List recipes = world.getRecipeManager().getRecipesForType(RecipeTypes.MACHINE_STRUCTURE); for (MachineStructureRecipe recipe : recipes) { - int index = recipe.matches(this.worldPosition, level, controllerId); + int index = recipe.matches(this.pos, world, controllerId); if (index != -1) { if (!update.getSid().equals(recipe.getId().toString())){ update.setTicksTaken(0); @@ -64,11 +64,11 @@ public class ControllerBlockEntity extends UpdatableTile implements ITickableTil } private void onStructureFound(MachineStructureRecipe structure, int index) { - ArrayList ports = structure.getPorts(worldPosition, level, index); + ArrayList ports = structure.getPorts(pos, world, index); List inputPorts = new ArrayList<>(); List outputPorts = new ArrayList<>(); for (BlockPos port : ports) { - TileEntity blockEntity = level.getBlockEntity(port); + TileEntity blockEntity = world.getTileEntity(port); if (blockEntity instanceof MachinePortBlockEntity) { MachinePortBlockEntity portBE = (MachinePortBlockEntity) blockEntity; @@ -84,7 +84,7 @@ public class ControllerBlockEntity extends UpdatableTile implements ITickableTil } private void onPortsEstablished(List inputPorts, List outputPorts, MachineStructureRecipe structure) { - List processRecipes = level.getRecipeManager().getAllRecipesFor(RecipeTypes.MACHINE_PROCESS); + List processRecipes = world.getRecipeManager().getRecipesForType(RecipeTypes.MACHINE_PROCESS); boolean processed = false; for (MachineProcessRecipe recipe : processRecipes) { if (recipe.matches(inputPorts, structure.getStructureId())) { @@ -115,15 +115,15 @@ public class ControllerBlockEntity extends UpdatableTile implements ITickableTil } @Override - public CompoundNBT save(CompoundNBT nbt) { + public CompoundNBT write(CompoundNBT nbt) { nbt.putInt("ticks", update.getTicksTaken()); nbt.putString("msg", update.getMsg()); - return super.save(nbt); + return super.write(nbt); } @Override - public void load(BlockState p_230337_1_, CompoundNBT nbt) { - super.load(p_230337_1_, nbt); + public void read(BlockState p_230337_1_, CompoundNBT nbt) { + super.read(p_230337_1_, nbt); update.setTicksTaken(nbt.getInt("ticks")); update.setMsg(nbt.getString("msg")); } diff --git a/src/main/java/com/ticticboooom/mods/mm/block/tile/MachinePortBlockEntity.java b/src/main/java/com/ticticboooom/mods/mm/block/tile/MachinePortBlockEntity.java index ee78824..adf6da1 100644 --- a/src/main/java/com/ticticboooom/mods/mm/block/tile/MachinePortBlockEntity.java +++ b/src/main/java/com/ticticboooom/mods/mm/block/tile/MachinePortBlockEntity.java @@ -47,14 +47,14 @@ public class MachinePortBlockEntity extends UpdatableTile implements ITickableTi } @Override - public CompoundNBT save(CompoundNBT nbt) { + public CompoundNBT write(CompoundNBT nbt) { nbt.put("inv", storage.save(new CompoundNBT())); - return super.save(nbt); + return super.write(nbt); } @Override - public void load(BlockState state, CompoundNBT nbt) { - super.load(state, nbt); + public void read(BlockState state, CompoundNBT nbt) { + super.read(state, nbt); storage.load(nbt.getCompound("inv")); } @@ -71,6 +71,9 @@ public class MachinePortBlockEntity extends UpdatableTile implements ITickableTi @Override public void tick() { + if (world.isRemote()){ + return; + } this.getStorage().tick(this); update(); } diff --git a/src/main/java/com/ticticboooom/mods/mm/block/tile/StructureGenBlockEntity.java b/src/main/java/com/ticticboooom/mods/mm/block/tile/StructureGenBlockEntity.java index d64cc30..d39ca8a 100644 --- a/src/main/java/com/ticticboooom/mods/mm/block/tile/StructureGenBlockEntity.java +++ b/src/main/java/com/ticticboooom/mods/mm/block/tile/StructureGenBlockEntity.java @@ -27,18 +27,18 @@ public class StructureGenBlockEntity extends UpdatableTile implements ITickableT private ItemStack device = ItemStack.EMPTY; @Override - public CompoundNBT save(CompoundNBT nbt) { - NonNullList list = NonNullList.of(device); + public CompoundNBT write(CompoundNBT nbt) { + NonNullList list = NonNullList.from(device); nbt = ItemStackHelper.saveAllItems(nbt, list); - return super.save(nbt); + return super.write(nbt); } @Override - public void load(BlockState p_230337_1_, CompoundNBT nbt) { + public void read(BlockState p_230337_1_, CompoundNBT nbt) { NonNullList list = NonNullList.withSize(1, ItemStack.EMPTY); ItemStackHelper.loadAllItems(nbt, list); device = list.get(0); - super.load(p_230337_1_, nbt); + super.read(p_230337_1_, nbt); } diff --git a/src/main/java/com/ticticboooom/mods/mm/block/tile/UpdatableTile.java b/src/main/java/com/ticticboooom/mods/mm/block/tile/UpdatableTile.java index 36110c6..df078d9 100644 --- a/src/main/java/com/ticticboooom/mods/mm/block/tile/UpdatableTile.java +++ b/src/main/java/com/ticticboooom/mods/mm/block/tile/UpdatableTile.java @@ -14,8 +14,8 @@ public class UpdatableTile extends TileEntity{ } public void update() { - if (!level.isClientSide()){ - PacketHandler.INSTANCE.send(PacketDistributor.ALL.noArg(), new TileClientUpdatePacket.Data(worldPosition, save(new CompoundNBT()))); + if (!world.isRemote()){ + PacketHandler.INSTANCE.send(PacketDistributor.ALL.noArg(), new TileClientUpdatePacket.Data(pos, write(new CompoundNBT()))); } } } diff --git a/src/main/java/com/ticticboooom/mods/mm/client/jei/category/MMJeiPlugin.java b/src/main/java/com/ticticboooom/mods/mm/client/jei/category/MMJeiPlugin.java index b7cfc19..2ffb349 100644 --- a/src/main/java/com/ticticboooom/mods/mm/client/jei/category/MMJeiPlugin.java +++ b/src/main/java/com/ticticboooom/mods/mm/client/jei/category/MMJeiPlugin.java @@ -46,12 +46,12 @@ public class MMJeiPlugin implements IModPlugin { @Override public void registerRecipes(IRecipeRegistration registration) { ENERGY_TYPE_RENDERER.setHelpers(registration.getJeiHelpers()); - List structureRecipes = Minecraft.getInstance().level.getRecipeManager().getAllRecipesFor(RecipeTypes.MACHINE_STRUCTURE); + List structureRecipes = Minecraft.getInstance().world.getRecipeManager().getRecipesForType(RecipeTypes.MACHINE_STRUCTURE); for (RegistryObject block : MMLoader.BLOCKS) { registration.addRecipes(structureRecipes.stream().filter(x -> x.getControllerId().contains(block.get().getControllerId())).collect(Collectors.toList()), new ResourceLocation(MM.ID, "machine_structure_" + block.get().getControllerId())); } - List processRecipes = Minecraft.getInstance().level.getRecipeManager().getAllRecipesFor(RecipeTypes.MACHINE_PROCESS); + List processRecipes = Minecraft.getInstance().world.getRecipeManager().getRecipesForType(RecipeTypes.MACHINE_PROCESS); for (MachineStructureRecipe structureRecipe : structureRecipes) { List recipes = processRecipes.stream().filter(x -> x.getStructureId().equals(structureRecipe.getStructureId())).collect(Collectors.toList()); registration.addRecipes(recipes, new ResourceLocation(MM.ID, "machine_process_" + structureRecipe.getStructureId())); @@ -64,7 +64,7 @@ public class MMJeiPlugin implements IModPlugin { for (RegistryObject block : MMLoader.BLOCKS) { registration.addRecipeCategories(new MachineStructureRecipeCategory(registration.getJeiHelpers(), block.get())); } - List structureRecipes = Minecraft.getInstance().level.getRecipeManager().getAllRecipesFor(RecipeTypes.MACHINE_STRUCTURE); + List structureRecipes = Minecraft.getInstance().world.getRecipeManager().getRecipesForType(RecipeTypes.MACHINE_STRUCTURE); for (MachineStructureRecipe structureRecipe : structureRecipes) { registration.addRecipeCategories(new MachineProcessRecipeCategory(registration.getJeiHelpers(), structureRecipe.getStructureId(), structureRecipe.getName())); } diff --git a/src/main/java/com/ticticboooom/mods/mm/client/jei/category/MachineStructureRecipeCategory.java b/src/main/java/com/ticticboooom/mods/mm/client/jei/category/MachineStructureRecipeCategory.java index 21a28ed..dcfbae6 100644 --- a/src/main/java/com/ticticboooom/mods/mm/client/jei/category/MachineStructureRecipeCategory.java +++ b/src/main/java/com/ticticboooom/mods/mm/client/jei/category/MachineStructureRecipeCategory.java @@ -83,10 +83,10 @@ public class MachineStructureRecipeCategory implements IRecipeCategory objects = new ArrayList<>(); objects.add(ingredient); - objects.add(Ingredient.of(new ItemStack(ForgeRegistries.ITEMS.getValue(controller.getRegistryName())))); + objects.add(Ingredient.fromStacks(new ItemStack(ForgeRegistries.ITEMS.getValue(controller.getRegistryName())))); iIngredients.setInputIngredients(objects); } @@ -112,7 +112,7 @@ public class MachineStructureRecipeCategory implements IRecipeCategory { } @Override - public ItemStack assemble(IInventory p_77572_1_) { + public ItemStack getCraftingResult(IInventory inv) { return null; } @Override - public boolean canCraftInDimensions(int p_194133_1_, int p_194133_2_) { + public boolean canFit(int p_194133_1_, int p_194133_2_) { return false; } @Override - public ItemStack getResultItem() { + public ItemStack getRecipeOutput() { return ItemStack.EMPTY; } @@ -208,7 +208,7 @@ public class MachineProcessRecipe implements IRecipe { @SneakyThrows @Override - public MachineProcessRecipe fromJson(ResourceLocation rl, JsonObject obj) { + public MachineProcessRecipe read(ResourceLocation rl, JsonObject obj) { int ticks = obj.get("ticks").getAsInt(); String structureId = obj.get("structureId").getAsString(); JsonArray inputs = obj.get("inputs").getAsJsonArray(); @@ -255,11 +255,11 @@ public class MachineProcessRecipe implements IRecipe { @Nullable @Override - public MachineProcessRecipe fromNetwork(ResourceLocation rl, PacketBuffer buf) { + public MachineProcessRecipe read(ResourceLocation rl, PacketBuffer buf) { int inputCount = buf.readInt(); int outputCount = buf.readInt(); int ticks = buf.readInt(); - String structureId = buf.readUtf(); + String structureId = buf.readString(); List inputs = getStates(buf, inputCount); List outputs = getStates(buf, outputCount); return new MachineProcessRecipe(inputs, outputs, ticks, structureId, rl); @@ -268,7 +268,7 @@ public class MachineProcessRecipe implements IRecipe { private List getStates(PacketBuffer buf, int count) { List result = new ArrayList<>(); for (int i = 0; i < count; i++) { - String inpType = buf.readUtf(); + String inpType = buf.readString(); boolean perTick = buf.readBoolean(); double chance = buf.readDouble(); MasterfulPortType value = MMPorts.PORTS.get(RLUtils.toRL(inpType)); @@ -281,11 +281,11 @@ public class MachineProcessRecipe implements IRecipe { } @Override - public void toNetwork(PacketBuffer buf, MachineProcessRecipe recipe) { + public void write(PacketBuffer buf, MachineProcessRecipe recipe) { buf.writeInt(recipe.inputs.size()); buf.writeInt(recipe.outputs.size()); buf.writeInt(recipe.ticks); - buf.writeUtf(recipe.structureId); + buf.writeString(recipe.structureId); writeStates(buf, recipe.inputs); writeStates(buf, recipe.outputs); @@ -294,7 +294,7 @@ public class MachineProcessRecipe implements IRecipe { private void writeStates(PacketBuffer buf, List states) { for (PortState state : states) { MasterfulPortType value = MMPorts.PORTS.get(state.getName()); - buf.writeUtf(value.getRegistryName().toString()); + buf.writeString(value.getRegistryName().toString()); buf.writeBoolean(state.isConsumePerTick()); buf.writeDouble(state.getChance()); value.getParser().write(buf, state); diff --git a/src/main/java/com/ticticboooom/mods/mm/data/MachineStructureRecipe.java b/src/main/java/com/ticticboooom/mods/mm/data/MachineStructureRecipe.java index 605ae8d..9bfc92b 100644 --- a/src/main/java/com/ticticboooom/mods/mm/data/MachineStructureRecipe.java +++ b/src/main/java/com/ticticboooom/mods/mm/data/MachineStructureRecipe.java @@ -87,12 +87,12 @@ public class MachineStructureRecipe implements IRecipe { } @Override - public ItemStack assemble(IInventory p_77572_1_) { + public ItemStack getCraftingResult(IInventory p_77572_1_) { return null; } @Override - public boolean canCraftInDimensions(int p_194133_1_, int p_194133_2_) { + public boolean canFit(int p_194133_1_, int p_194133_2_) { return false; } @@ -122,7 +122,7 @@ public class MachineStructureRecipe implements IRecipe { private boolean innerBlockMatch(BlockPos controllerPos, World world, MachineStructureRecipeKeyModel model) { - BlockPos pos = controllerPos.offset(model.getPos().getX(), model.getPos().getY(), model.getPos().getZ()); + BlockPos pos = controllerPos.add(model.getPos().getX(), model.getPos().getY(), model.getPos().getZ()); BlockState blockState = world.getBlockState(pos); boolean valid = false; if (!model.getTag().equals("")) { @@ -131,7 +131,7 @@ public class MachineStructureRecipe implements IRecipe { MM.LOG.fatal("too many : (colons) in structure tag: {}", model.getTag()); return false; } - ITag tag = BlockTags.getAllTags().getTag(new ResourceLocation(split[0], split[1])); + ITag tag = BlockTags.getCollection().get(new ResourceLocation(split[0], split[1])); if (tag == null) { MM.LOG.fatal("no existing block tag for structure tag: {}", model.getTag()); return false; @@ -153,8 +153,8 @@ public class MachineStructureRecipe implements IRecipe { return true; } try { - CompoundNBT compoundNBT = JsonToNBT.parseTag(model.getNbt()); - TileEntity blockEntity = world.getBlockEntity(pos); + CompoundNBT compoundNBT = JsonToNBT.getTagFromJson(model.getNbt()); + TileEntity blockEntity = world.getTileEntity(pos); return compoundNBT.equals(blockEntity.getTileData()); } catch (CommandSyntaxException e) { @@ -166,7 +166,7 @@ public class MachineStructureRecipe implements IRecipe { public ArrayList getPorts(BlockPos controllerPos, World world, int index) { ArrayList result = new ArrayList<>(); for (MachineStructureRecipeKeyModel model : models.get(index)) { - BlockPos pos = controllerPos.offset(model.getPos().toVector()); + BlockPos pos = controllerPos.add(model.getPos().toVector()); BlockState state = world.getBlockState(pos); if (state.getBlock() instanceof MachinePortBlock) { result.add(pos); @@ -180,7 +180,7 @@ public class MachineStructureRecipe implements IRecipe { } @Override - public ItemStack getResultItem() { + public ItemStack getRecipeOutput() { return ItemStack.EMPTY; } @@ -204,7 +204,7 @@ public class MachineStructureRecipe implements IRecipe { @Override - public MachineStructureRecipe fromJson(ResourceLocation rl, JsonObject obj) { + public MachineStructureRecipe read(ResourceLocation rl, JsonObject obj) { JsonElement controllerIdJson = obj.get("controllerId"); List ids = new ArrayList<>(); if (controllerIdJson.isJsonPrimitive()){ @@ -287,16 +287,16 @@ public class MachineStructureRecipe implements IRecipe { @SneakyThrows @Nullable @Override - public MachineStructureRecipe fromNetwork(ResourceLocation rl, PacketBuffer buf) { + public MachineStructureRecipe read(ResourceLocation rl, PacketBuffer buf) { List controllerId = new ArrayList<>(); int idCount = buf.readInt(); for (int i = 0; i < idCount; i++) { - controllerId.add(buf.readUtf()); + controllerId.add(buf.readString()); } - String id = buf.readUtf(); - String name = buf.readUtf(); + String id = buf.readString(); + String name = buf.readString(); try { - MachineStructureObject machineStructureObject = buf.readWithCodec(MachineStructureObject.CODEC); + MachineStructureObject machineStructureObject = buf.func_240628_a_(MachineStructureObject.CODEC); List models = machineStructureObject.getInner(); return new MachineStructureRecipe(models, controllerId, id, rl, name); } catch (Exception e) { @@ -306,15 +306,15 @@ public class MachineStructureRecipe implements IRecipe { } @Override - public void toNetwork(PacketBuffer buf, MachineStructureRecipe recipe) { + public void write(PacketBuffer buf, MachineStructureRecipe recipe) { buf.writeInt(recipe.controllerId.size()); for (String s : recipe.controllerId) { - buf.writeUtf(s); + buf.writeString(s); } - buf.writeUtf(recipe.id); - buf.writeUtf(recipe.name); + buf.writeString(recipe.id); + buf.writeString(recipe.name); try { - buf.writeWithCodec(MachineStructureObject.CODEC, new MachineStructureObject(recipe.getModels().get(0))); + buf.func_240629_a_(MachineStructureObject.CODEC, new MachineStructureObject(recipe.getModels().get(0))); } catch (Exception e) { e.printStackTrace(); } @@ -365,6 +365,5 @@ public class MachineStructureRecipe implements IRecipe { } } } - } } diff --git a/src/main/java/com/ticticboooom/mods/mm/data/model/structure/MockedNamedTag.java b/src/main/java/com/ticticboooom/mods/mm/data/model/structure/MockedNamedTag.java index 274dd2f..0dceff4 100644 --- a/src/main/java/com/ticticboooom/mods/mm/data/model/structure/MockedNamedTag.java +++ b/src/main/java/com/ticticboooom/mods/mm/data/model/structure/MockedNamedTag.java @@ -5,6 +5,7 @@ import net.minecraft.util.ResourceLocation; import java.util.ArrayList; import java.util.List; +import java.util.Random; public class MockedNamedTag implements ITag.INamedTag { private final ResourceLocation name; @@ -24,7 +25,12 @@ public class MockedNamedTag implements ITag.INamedTag { } @Override - public List getValues() { + public List getAllElements() { return new ArrayList<>(); } + + @Override + public T getRandomElement(Random random) { + return INamedTag.super.getRandomElement(random); + } } diff --git a/src/main/java/com/ticticboooom/mods/mm/datagen/InMemoryPack.java b/src/main/java/com/ticticboooom/mods/mm/datagen/InMemoryPack.java index 626e08b..c767dca 100644 --- a/src/main/java/com/ticticboooom/mods/mm/datagen/InMemoryPack.java +++ b/src/main/java/com/ticticboooom/mods/mm/datagen/InMemoryPack.java @@ -9,6 +9,7 @@ import net.minecraft.resources.data.IMetadataSectionSerializer; import net.minecraft.util.JSONUtils; import net.minecraft.util.ResourceLocation; +import javax.annotation.Nullable; import java.io.IOException; import java.io.InputStream; import java.nio.file.Files; @@ -27,17 +28,17 @@ public class InMemoryPack implements IResourcePack { } private static String getFullPath(ResourcePackType type, ResourceLocation location) { - return String.format("%s/%s/%s", type.getDirectory(), location.getNamespace(), location.getPath()); + return String.format("%s/%s/%s", type.getDirectoryName(), location.getNamespace(), location.getPath()); } @Override - public InputStream getRootResource(String fileName) throws IOException { + public InputStream getRootResourceStream(String fileName) throws IOException { Path resolved = path.resolve(fileName); return Files.newInputStream(resolved); } @Override - public InputStream getResource(ResourcePackType type, ResourceLocation location) throws IOException { + public InputStream getResourceStream(ResourcePackType type, ResourceLocation location) throws IOException { Path resolved = path.resolve(getFullPath(type, location)); if (!Files.exists(resolved)){ throw new IOException("Resource does not exist"); @@ -46,9 +47,9 @@ public class InMemoryPack implements IResourcePack { } @Override - public Collection getResources(ResourcePackType type, String namespaceIn, String pathIn, int maxDepthIn, Predicate filterIn) { + public Collection getAllResourceLocations(ResourcePackType type, String namespaceIn, String pathIn, int maxDepthIn, Predicate filterIn) { List result = new ArrayList<>(); - getChildResourceLocations(result, 0, maxDepthIn, filterIn, path.resolve(type.getDirectory() + "/" + namespaceIn + "/" + pathIn), namespaceIn, pathIn); + getChildResourceLocations(result, 0, maxDepthIn, filterIn, path.resolve(type.getDirectoryName() + "/" + namespaceIn + "/" + pathIn), namespaceIn, pathIn); return result; } @@ -75,16 +76,16 @@ public class InMemoryPack implements IResourcePack { @Override - public boolean hasResource(ResourcePackType type, ResourceLocation location) { - Path finalPath = path.resolve(type.getDirectory() + "/" + location.getNamespace() + "/" + location.getPath()); + public boolean resourceExists(ResourcePackType type, ResourceLocation location) { + Path finalPath = path.resolve(type.getDirectoryName() + "/" + location.getNamespace() + "/" + location.getPath()); return Files.exists(finalPath); } @Override - public Set getNamespaces(ResourcePackType type) { + public Set getResourceNamespaces(ResourcePackType type) { Set result = new HashSet<>(); try { - Stream list = Files.list(path.resolve(type.getDirectory())); + Stream list = Files.list(path.resolve(type.getDirectoryName())); for (Path resultingPath : list.collect(Collectors.toList())) { result.add(resultingPath.getFileName().toString()); } @@ -95,26 +96,27 @@ public class InMemoryPack implements IResourcePack { return result; } - public T getMetadataSection(IMetadataSectionSerializer deserializer) throws IOException { + public T getMetadata(IMetadataSectionSerializer deserializer) throws IOException { JsonObject jsonobject = new JsonObject(); JsonObject packObject = new JsonObject(); packObject.addProperty("pack_format", 6); - packObject.addProperty("description", "emendatusenigmatica"); + packObject.addProperty("description", "masterfulmachinery"); jsonobject.add("pack", packObject); - if (!jsonobject.has(deserializer.getMetadataSectionName())) { + if (!jsonobject.has(deserializer.getSectionName())) { return null; } else { try { - return deserializer.fromJson(JSONUtils.getAsJsonObject(jsonobject, deserializer.getMetadataSectionName())); + return deserializer.deserialize(JSONUtils.getJsonObject(jsonobject, deserializer.getSectionName())); } catch (JsonParseException jsonparseexception) { return null; } } } + @Override public String getName() { - return "In Memory Pack"; + return "MM Memory Pack"; } @Override diff --git a/src/main/java/com/ticticboooom/mods/mm/datagen/MMPackFinder.java b/src/main/java/com/ticticboooom/mods/mm/datagen/MMPackFinder.java index 90ff6e8..a953c86 100644 --- a/src/main/java/com/ticticboooom/mods/mm/datagen/MMPackFinder.java +++ b/src/main/java/com/ticticboooom/mods/mm/datagen/MMPackFinder.java @@ -43,11 +43,11 @@ public class MMPackFinder implements IPackFinder { @Override - public void loadPacks(Consumer infoConsumer, ResourcePackInfo.IFactory infoFactory) { + public void findPacks(Consumer infoConsumer, ResourcePackInfo.IFactory infoFactory) { Path rootPath = MemoryDataGeneratorFactory.ROOT_PATH; - ResourcePackInfo pack = ResourcePackInfo.create("mm_" + type.getSuffix(), true, - () -> new InMemoryPack(rootPath), infoFactory, ResourcePackInfo.Priority.TOP, IPackNameDecorator.DEFAULT); + ResourcePackInfo pack = ResourcePackInfo.createResourcePack("mm_" + type.getSuffix(), true, + () -> new InMemoryPack(rootPath), infoFactory, ResourcePackInfo.Priority.BOTTOM, IPackNameDecorator.PLAIN); if (pack != null) { infoConsumer.accept(pack); } diff --git a/src/main/java/com/ticticboooom/mods/mm/datagen/MockedNamedTag.java b/src/main/java/com/ticticboooom/mods/mm/datagen/MockedNamedTag.java index dd0a119..b37a1b2 100644 --- a/src/main/java/com/ticticboooom/mods/mm/datagen/MockedNamedTag.java +++ b/src/main/java/com/ticticboooom/mods/mm/datagen/MockedNamedTag.java @@ -24,7 +24,7 @@ public class MockedNamedTag implements ITag.INamedTag { } @Override - public List getValues() { + public List getAllElements() { return new ArrayList<>(); } } diff --git a/src/main/java/com/ticticboooom/mods/mm/datagen/gen/MMBlockStateProvider.java b/src/main/java/com/ticticboooom/mods/mm/datagen/gen/MMBlockStateProvider.java index 8a3fd7b..6824b63 100644 --- a/src/main/java/com/ticticboooom/mods/mm/datagen/gen/MMBlockStateProvider.java +++ b/src/main/java/com/ticticboooom/mods/mm/datagen/gen/MMBlockStateProvider.java @@ -70,7 +70,7 @@ public class MMBlockStateProvider extends BlockStateProvider { .end() .end() .customLoader(MultiLayerModelBuilder::begin) - .submodel(RenderType.solid(), this.models().nested().parent(new ModelFile.UncheckedModelFile(mcLoc("block/block"))) + .submodel(RenderType.getSolid(), this.models().nested().parent(new ModelFile.UncheckedModelFile(mcLoc("block/block"))) .texture("base", baseTexture) .element() .from(0, 0, 0) @@ -79,7 +79,7 @@ public class MMBlockStateProvider extends BlockStateProvider { //.allFaces((dir, uv) -> uv.uvs(0F,0.0F, 16F,16F)) .end() ) - .submodel(RenderType.translucent(), this.models().nested().parent(new ModelFile.UncheckedModelFile(mcLoc("block/block"))) + .submodel(RenderType.getTranslucent(), this.models().nested().parent(new ModelFile.UncheckedModelFile(mcLoc("block/block"))) .texture("overlay", overlayTexture) .element() .from(0, 0, 0) @@ -108,7 +108,7 @@ public class MMBlockStateProvider extends BlockStateProvider { .end() .end() .customLoader(MultiLayerModelBuilder::begin) - .submodel(RenderType.solid(), this.models().nested().parent(new ModelFile.UncheckedModelFile(mcLoc("block/block"))) + .submodel(RenderType.getSolid(), this.models().nested().parent(new ModelFile.UncheckedModelFile(mcLoc("block/block"))) .texture("base", baseTexture) .element() .from(0, 0, 0) @@ -117,7 +117,7 @@ public class MMBlockStateProvider extends BlockStateProvider { //.allFaces((dir, uv) -> uv.uvs(0F,0.0F, 16F,16F)) .end() ) - .submodel(RenderType.translucent(), this.models().nested().parent(new ModelFile.UncheckedModelFile(mcLoc("block/block"))) + .submodel(RenderType.getTranslucent(), this.models().nested().parent(new ModelFile.UncheckedModelFile(mcLoc("block/block"))) .texture("overlay", overlayTexture) .element() .from(0, 0, 0) diff --git a/src/main/java/com/ticticboooom/mods/mm/helper/RLUtils.java b/src/main/java/com/ticticboooom/mods/mm/helper/RLUtils.java index cbf0df5..5bd6cb4 100644 --- a/src/main/java/com/ticticboooom/mods/mm/helper/RLUtils.java +++ b/src/main/java/com/ticticboooom/mods/mm/helper/RLUtils.java @@ -4,10 +4,10 @@ import net.minecraft.util.ResourceLocation; public class RLUtils { public static ResourceLocation toRL(String str) { - return ResourceLocation.tryParse(str); + return ResourceLocation.tryCreate(str); } public static boolean isRL(String str) { - return ResourceLocation.tryParse(str) != null; + return ResourceLocation.tryCreate(str) != null; } } diff --git a/src/main/java/com/ticticboooom/mods/mm/inventory/ItemStackInventory.java b/src/main/java/com/ticticboooom/mods/mm/inventory/ItemStackInventory.java index 229746f..4c5d95d 100644 --- a/src/main/java/com/ticticboooom/mods/mm/inventory/ItemStackInventory.java +++ b/src/main/java/com/ticticboooom/mods/mm/inventory/ItemStackInventory.java @@ -15,7 +15,7 @@ public class ItemStackInventory implements IInventory { } @Override - public int getContainerSize() { + public int getSizeInventory() { return handler.getSlots(); } @@ -25,38 +25,39 @@ public class ItemStackInventory implements IInventory { } @Override - public ItemStack getItem(int p_70301_1_) { + public ItemStack getStackInSlot(int p_70301_1_) { return handler.getStackInSlot(p_70301_1_); } @Override - public ItemStack removeItem(int p_70298_1_, int p_70298_2_) { + public ItemStack decrStackSize(int p_70298_1_, int p_70298_2_) { ItemStack stackInSlot = handler.getStackInSlot(p_70298_1_); handler.setStackInSlot(p_70298_1_, ItemStack.EMPTY); return stackInSlot; } @Override - public ItemStack removeItemNoUpdate(int p_70304_1_) { + public ItemStack removeStackFromSlot(int p_70304_1_) { return handler.getStackInSlot(p_70304_1_); } @Override - public void setItem(int p_70299_1_, ItemStack p_70299_2_) { + public void setInventorySlotContents(int p_70299_1_, ItemStack p_70299_2_) { handler.setStackInSlot(p_70299_1_, p_70299_2_); } @Override - public void setChanged() { + public void markDirty() { + } @Override - public boolean stillValid(PlayerEntity p_70300_1_) { + public boolean isUsableByPlayer(PlayerEntity player) { return true; } @Override - public void clearContent() { + public void clear() { } } diff --git a/src/main/java/com/ticticboooom/mods/mm/inventory/mek/PortMekGasInventory.java b/src/main/java/com/ticticboooom/mods/mm/inventory/mek/PortMekGasInventory.java index b16dd44..9c36f58 100644 --- a/src/main/java/com/ticticboooom/mods/mm/inventory/mek/PortMekGasInventory.java +++ b/src/main/java/com/ticticboooom/mods/mm/inventory/mek/PortMekGasInventory.java @@ -46,15 +46,15 @@ public class PortMekGasInventory implements IGasHandler, IGasTank { @Override public GasStack insertChemical(int i, GasStack stack, Action action) { - if (!isValid(i, stack)) { + if (!isValid(i, stack)) { return GasStack.EMPTY; } if (action.simulate()) { if (this.stack.getAmount() + stack.getAmount() > capacity) { - return new GasStack(stack.getType(), stack.getAmount() - (this.stack.getAmount() + stack.getAmount() - capacity)); + return new GasStack(stack.getType(), (this.stack.getAmount() + stack.getAmount() - capacity)); } else { - return stack; + return GasStack.EMPTY; } } @@ -65,14 +65,14 @@ public class PortMekGasInventory implements IGasHandler, IGasTank { } else { this.stack.setAmount(capacity); } - return new GasStack(stack.getType(), preAmount + stack.getAmount() - capacity); + return new GasStack(stack.getType(), (preAmount + stack.getAmount() - capacity)); } else { if (this.stack.isEmpty()) { - this.stack = new GasStack(stack.getType(), this.stack.getAmount() + stack.getAmount()); + this.stack = new GasStack(stack.getType(), stack.getAmount()); } else { this.stack.setAmount(this.stack.getAmount() + stack.getAmount()); } - return stack; + return GasStack.EMPTY; } } diff --git a/src/main/java/com/ticticboooom/mods/mm/inventory/mek/PortMekSlurryInventory.java b/src/main/java/com/ticticboooom/mods/mm/inventory/mek/PortMekSlurryInventory.java index 539489c..beccbc7 100644 --- a/src/main/java/com/ticticboooom/mods/mm/inventory/mek/PortMekSlurryInventory.java +++ b/src/main/java/com/ticticboooom/mods/mm/inventory/mek/PortMekSlurryInventory.java @@ -56,7 +56,7 @@ public class PortMekSlurryInventory implements ISlurryHandler, ISlurryTank { if (this.stack.getAmount() + stack.getAmount() > capacity) { return new SlurryStack(stack.getType(), this.stack.getAmount() + stack.getAmount() - capacity); } else { - return stack; + return SlurryStack.EMPTY; } } @@ -74,7 +74,7 @@ public class PortMekSlurryInventory implements ISlurryHandler, ISlurryTank { } else { this.stack.setAmount(this.stack.getAmount() + stack.getAmount()); } - return stack; + return SlurryStack.EMPTY; } } diff --git a/src/main/java/com/ticticboooom/mods/mm/item/StructureGenSelectionDevice.java b/src/main/java/com/ticticboooom/mods/mm/item/StructureGenSelectionDevice.java index 7e922bc..8bee775 100644 --- a/src/main/java/com/ticticboooom/mods/mm/item/StructureGenSelectionDevice.java +++ b/src/main/java/com/ticticboooom/mods/mm/item/StructureGenSelectionDevice.java @@ -15,13 +15,14 @@ import net.minecraft.world.World; public class StructureGenSelectionDevice extends Item { public StructureGenSelectionDevice() { - super(new Item.Properties().tab(MMLoader.MASTERFUL_ITEM_GROUP)); + super(new Item.Properties().group(MMLoader.MASTERFUL_ITEM_GROUP)); } + @Override - public ActionResultType useOn(ItemUseContext ctx) { - BlockPos clickedPos = ctx.getClickedPos(); - ItemStack iih = ctx.getItemInHand(); + public ActionResultType onItemUse(ItemUseContext ctx) { + BlockPos clickedPos = ctx.getPos(); + ItemStack iih = ctx.getItem(); CompoundNBT tag = iih.getTag(); if (tag == null) { tag = new CompoundNBT(); diff --git a/src/main/java/com/ticticboooom/mods/mm/network/packets/TileClientUpdatePacket.java b/src/main/java/com/ticticboooom/mods/mm/network/packets/TileClientUpdatePacket.java index c778b9a..9f942c0 100644 --- a/src/main/java/com/ticticboooom/mods/mm/network/packets/TileClientUpdatePacket.java +++ b/src/main/java/com/ticticboooom/mods/mm/network/packets/TileClientUpdatePacket.java @@ -23,21 +23,21 @@ public class TileClientUpdatePacket { public static void encode(Data data, PacketBuffer buffer){ buffer.writeBlockPos(data.getPos()); - buffer.writeNbt(data.nbt); + buffer.writeCompoundTag(data.nbt); } public static Data decode(PacketBuffer buffer){ - return new Data(buffer.readBlockPos(), buffer.readNbt()); + return new Data(buffer.readBlockPos(), buffer.readCompoundTag()); } } public static void handle(Data data, Supplier ctx) { ctx.get().enqueueWork(() -> { - ClientWorld level = Minecraft.getInstance().level; - TileEntity blockEntity = level.getBlockEntity(data.getPos()); + ClientWorld level = Minecraft.getInstance().world; + TileEntity blockEntity = level.getTileEntity(data.getPos()); BlockState state = level.getBlockState(data.getPos()); if (blockEntity != null) { - blockEntity.load(state, data.nbt); + blockEntity.read(state, data.nbt); } }); ctx.get().setPacketHandled(true); diff --git a/src/main/java/com/ticticboooom/mods/mm/ports/parser/EnergyPortParser.java b/src/main/java/com/ticticboooom/mods/mm/ports/parser/EnergyPortParser.java index 50095f4..576359b 100644 --- a/src/main/java/com/ticticboooom/mods/mm/ports/parser/EnergyPortParser.java +++ b/src/main/java/com/ticticboooom/mods/mm/ports/parser/EnergyPortParser.java @@ -33,7 +33,7 @@ public class EnergyPortParser implements IPortFactory { @SneakyThrows @Override public void write(PacketBuffer buf, PortState state) { - buf.writeWithCodec(EnergyPortState.CODEC, ((EnergyPortState) state)); + buf.func_240629_a_(EnergyPortState.CODEC, ((EnergyPortState) state)); } @Override @@ -59,6 +59,6 @@ public class EnergyPortParser implements IPortFactory { @Override @SneakyThrows public PortState createState(PacketBuffer buf) { - return buf.readWithCodec(EnergyPortState.CODEC); + return buf.func_240628_a_(EnergyPortState.CODEC); } } diff --git a/src/main/java/com/ticticboooom/mods/mm/ports/parser/FluidPortParser.java b/src/main/java/com/ticticboooom/mods/mm/ports/parser/FluidPortParser.java index a992379..6d68c66 100644 --- a/src/main/java/com/ticticboooom/mods/mm/ports/parser/FluidPortParser.java +++ b/src/main/java/com/ticticboooom/mods/mm/ports/parser/FluidPortParser.java @@ -32,7 +32,7 @@ public class FluidPortParser implements IPortFactory { @SneakyThrows @Override public void write(PacketBuffer buf, PortState state) { - buf.writeWithCodec(FluidPortState.CODEC, ((FluidPortState) state)); + buf.func_240629_a_(FluidPortState.CODEC, ((FluidPortState) state)); } @Override @@ -53,7 +53,7 @@ public class FluidPortParser implements IPortFactory { @Override @SneakyThrows public PortState createState(PacketBuffer buf) { - return buf.readWithCodec(FluidPortState.CODEC); + return buf.func_240628_a_(FluidPortState.CODEC); } @Override diff --git a/src/main/java/com/ticticboooom/mods/mm/ports/parser/ItemPortParser.java b/src/main/java/com/ticticboooom/mods/mm/ports/parser/ItemPortParser.java index 55681c7..a4a4962 100644 --- a/src/main/java/com/ticticboooom/mods/mm/ports/parser/ItemPortParser.java +++ b/src/main/java/com/ticticboooom/mods/mm/ports/parser/ItemPortParser.java @@ -44,7 +44,7 @@ public class ItemPortParser implements IPortFactory { @SneakyThrows @Override public void write(PacketBuffer buf, PortState state) { - buf.writeWithCodec(ItemPortState.CODEC, ((ItemPortState) state)); + buf.func_240629_a_(ItemPortState.CODEC, ((ItemPortState) state)); } @Override @@ -56,7 +56,7 @@ public class ItemPortParser implements IPortFactory { @SneakyThrows @Override public PortState createState(PacketBuffer buf) { - return buf.readWithCodec(ItemPortState.CODEC); + return buf.func_240628_a_(ItemPortState.CODEC); } @Override public ResourceLocation getInputOverlay() { diff --git a/src/main/java/com/ticticboooom/mods/mm/ports/parser/MekGasPortParser.java b/src/main/java/com/ticticboooom/mods/mm/ports/parser/MekGasPortParser.java index 3b4a7ad..acff3b1 100644 --- a/src/main/java/com/ticticboooom/mods/mm/ports/parser/MekGasPortParser.java +++ b/src/main/java/com/ticticboooom/mods/mm/ports/parser/MekGasPortParser.java @@ -42,7 +42,7 @@ public class MekGasPortParser implements IPortFactory { @SneakyThrows @Override public PortState createState(PacketBuffer buf) { - return buf.readWithCodec(MekGasPortState.CODEC); + return buf.func_240628_a_(MekGasPortState.CODEC); } @Override @@ -56,7 +56,7 @@ public class MekGasPortParser implements IPortFactory { @SneakyThrows @Override public void write(PacketBuffer buf, PortState state) { - buf.writeWithCodec(MekGasPortState.CODEC, (MekGasPortState)state); + buf.func_240629_a_(MekGasPortState.CODEC, (MekGasPortState)state); } @Override diff --git a/src/main/java/com/ticticboooom/mods/mm/ports/parser/MekSlurryPortParser.java b/src/main/java/com/ticticboooom/mods/mm/ports/parser/MekSlurryPortParser.java index 57b2670..ed0faf3 100644 --- a/src/main/java/com/ticticboooom/mods/mm/ports/parser/MekSlurryPortParser.java +++ b/src/main/java/com/ticticboooom/mods/mm/ports/parser/MekSlurryPortParser.java @@ -42,7 +42,7 @@ public class MekSlurryPortParser implements IPortFactory { @SneakyThrows @Override public PortState createState(PacketBuffer buf) { - return buf.readWithCodec(MekSlurryPortState.CODEC); + return buf.func_240628_a_(MekSlurryPortState.CODEC); } @Override @@ -56,7 +56,7 @@ public class MekSlurryPortParser implements IPortFactory { @SneakyThrows @Override public void write(PacketBuffer buf, PortState state) { - buf.writeWithCodec(MekSlurryPortState.CODEC, (MekSlurryPortState)state); + buf.func_240629_a_(MekSlurryPortState.CODEC, (MekSlurryPortState)state); } @Override diff --git a/src/main/java/com/ticticboooom/mods/mm/ports/parser/PneumaticPortParser.java b/src/main/java/com/ticticboooom/mods/mm/ports/parser/PneumaticPortParser.java index 4a850fa..f1b0010 100644 --- a/src/main/java/com/ticticboooom/mods/mm/ports/parser/PneumaticPortParser.java +++ b/src/main/java/com/ticticboooom/mods/mm/ports/parser/PneumaticPortParser.java @@ -36,7 +36,7 @@ public class PneumaticPortParser implements IPortFactory{ @SneakyThrows @Override public void write(PacketBuffer buf, PortState state) { - buf.writeWithCodec(PneumaticPortState.CODEC, ((PneumaticPortState) state)); + buf.func_240629_a_(PneumaticPortState.CODEC, ((PneumaticPortState) state)); } @Override @@ -67,6 +67,6 @@ public class PneumaticPortParser implements IPortFactory{ @Override @SneakyThrows public PortState createState(PacketBuffer buf) { - return buf.readWithCodec(PneumaticPortState.CODEC); + return buf.func_240628_a_(PneumaticPortState.CODEC); } } diff --git a/src/main/java/com/ticticboooom/mods/mm/ports/parser/RotationPortParser.java b/src/main/java/com/ticticboooom/mods/mm/ports/parser/RotationPortParser.java new file mode 100644 index 0000000..68a43ee --- /dev/null +++ b/src/main/java/com/ticticboooom/mods/mm/ports/parser/RotationPortParser.java @@ -0,0 +1,61 @@ +package com.ticticboooom.mods.mm.ports.parser; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.mojang.datafixers.util.Pair; +import com.mojang.serialization.DataResult; +import com.mojang.serialization.JsonOps; +import com.ticticboooom.mods.mm.MM; +import com.ticticboooom.mods.mm.client.jei.category.MMJeiPlugin; +import com.ticticboooom.mods.mm.client.jei.ingredients.model.PressureStack; +import com.ticticboooom.mods.mm.ports.state.PneumaticPortState; +import com.ticticboooom.mods.mm.ports.state.PortState; +import com.ticticboooom.mods.mm.ports.state.RotationPortState; +import com.ticticboooom.mods.mm.ports.storage.PortStorage; +import com.ticticboooom.mods.mm.ports.storage.RotationPortStorage; +import lombok.SneakyThrows; +import mezz.jei.api.ingredients.IIngredients; +import net.minecraft.network.PacketBuffer; +import net.minecraft.util.ResourceLocation; + +import java.util.List; +import java.util.function.Supplier; + +public class RotationPortParser implements IPortFactory{ + + @Override + public Supplier createStorage(JsonObject obj) { + return RotationPortStorage::new; + } + @SneakyThrows + @Override + public void write(PacketBuffer buf, PortState state) { + buf.func_240629_a_(RotationPortState.CODEC, ((RotationPortState) state)); + } + + @Override + public void setIngredients(IIngredients ingredients, List stacks, boolean input) { + } + + @Override + public ResourceLocation getInputOverlay() { + return new ResourceLocation(MM.ID, "block/compat_ports/create_rotation_cutout"); + } + + @Override + public ResourceLocation getOutputOverlay() { + return new ResourceLocation(MM.ID, "block/compat_ports/create_rotation_cutout"); + } + + @Override + public PortState createState(JsonObject obj) { + DataResult> apply = JsonOps.INSTANCE.withDecoder(RotationPortState.CODEC).apply(obj); + return apply.result().get().getFirst(); + } + + @Override + @SneakyThrows + public PortState createState(PacketBuffer buf) { + return buf.func_240628_a_(RotationPortState.CODEC); + } +} diff --git a/src/main/java/com/ticticboooom/mods/mm/ports/state/ItemPortState.java b/src/main/java/com/ticticboooom/mods/mm/ports/state/ItemPortState.java index 8612d08..edbe344 100644 --- a/src/main/java/com/ticticboooom/mods/mm/ports/state/ItemPortState.java +++ b/src/main/java/com/ticticboooom/mods/mm/ports/state/ItemPortState.java @@ -70,7 +70,7 @@ public class ItemPortState extends PortState { current -= amount; } } else if (!tag.equals("")) { - if (ItemTags.getAllTags().getTag(RLUtils.toRL(tag)).contains(stackInSlot.getItem())) { + if (ItemTags.getCollection().get(RLUtils.toRL(tag)).contains(stackInSlot.getItem())) { int amount = stackInSlot.getCount(); stackInSlot.setCount(amount - (amount - current < 0 ? amount : current)); current -= amount; @@ -102,7 +102,7 @@ public class ItemPortState extends PortState { current -= stackInSlot.getCount(); } } else if (!tag.equals("")) { - ITag tag = ItemTags.getAllTags().getTag(RLUtils.toRL(this.tag)); + ITag tag = ItemTags.getCollection().get(RLUtils.toRL(this.tag)); if (tag != null && tag.contains(stackInSlot.getItem())) { current -= stackInSlot.getCount(); } @@ -216,11 +216,11 @@ public class ItemPortState extends PortState { if (!item.equals("") && RLUtils.isRL(item)) { return (List) ImmutableList.of(new ItemStack(ForgeRegistries.ITEMS.getValue(RLUtils.toRL(item)), this.count)); } else if (!tag.equals("") && RLUtils.isRL(tag)) { - ITag tag = ItemTags.getAllTags().getTag(RLUtils.toRL(this.tag)); + ITag tag = ItemTags.getCollection().get(RLUtils.toRL(this.tag)); assert tag != null; List stacks = new ArrayList<>(); - tag.getValues().forEach(z -> stacks.add(new ItemStack(z, this.count))); + tag.getAllElements().forEach(z -> stacks.add(new ItemStack(z, this.count))); return (List)stacks; } return new ArrayList<>(); @@ -232,9 +232,9 @@ public class ItemPortState extends PortState { if (!item.equals("") && RLUtils.isRL(item)) { layout.getItemStacks().set(typeIndex, new ItemStack(ForgeRegistries.ITEMS.getValue(RLUtils.toRL(item)), this.count)); } else if (!tag.equals("") && RLUtils.isRL(tag)) { - ITag tag = ItemTags.getAllTags().getTag(RLUtils.toRL(this.tag)); + ITag tag = ItemTags.getCollection().get(RLUtils.toRL(this.tag)); assert tag != null; - Stream itemStackStream = tag.getValues().stream().map(z -> new ItemStack(z.getItem(), this.count)); + Stream itemStackStream = tag.getAllElements().stream().map(z -> new ItemStack(z.getItem(), this.count)); layout.getItemStacks().set(typeIndex, itemStackStream.collect(Collectors.toList())); } if (this.getChance() < 1){ diff --git a/src/main/java/com/ticticboooom/mods/mm/ports/state/MekGasPortState.java b/src/main/java/com/ticticboooom/mods/mm/ports/state/MekGasPortState.java index 7b44c0f..134b33b 100644 --- a/src/main/java/com/ticticboooom/mods/mm/ports/state/MekGasPortState.java +++ b/src/main/java/com/ticticboooom/mods/mm/ports/state/MekGasPortState.java @@ -84,8 +84,8 @@ public class MekGasPortState extends PortState { if (st instanceof MekGasPortStorage) { MekGasPortStorage gasStorage = (MekGasPortStorage) st; GasStack extract = gasStorage.getInv().insertChemical(new GasStack(Objects.requireNonNull(MekanismAPI.gasRegistry().getValue(RLUtils.toRL(gas))), current), Action.EXECUTE); - current -= extract.getAmount(); - if (current <= 0){ + current -= current - extract.getAmount(); + if (current <= 0) { return; } } @@ -99,7 +99,7 @@ public class MekGasPortState extends PortState { if (st instanceof MekGasPortStorage) { MekGasPortStorage gasStorage = (MekGasPortStorage) st; GasStack extract = gasStorage.getInv().insertChemical(new GasStack(Objects.requireNonNull(MekanismAPI.gasRegistry().getValue(RLUtils.toRL(gas))), current), Action.SIMULATE); - current -= extract.getAmount(); + current -= current - extract.getAmount(); if (current <= 0) { return true; } diff --git a/src/main/java/com/ticticboooom/mods/mm/ports/state/RotationPortState.java b/src/main/java/com/ticticboooom/mods/mm/ports/state/RotationPortState.java new file mode 100644 index 0000000..35cae0b --- /dev/null +++ b/src/main/java/com/ticticboooom/mods/mm/ports/state/RotationPortState.java @@ -0,0 +1,89 @@ +package com.ticticboooom.mods.mm.ports.state; + +import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import com.ticticboooom.mods.mm.MM; +import com.ticticboooom.mods.mm.client.jei.category.MMJeiPlugin; +import com.ticticboooom.mods.mm.ports.storage.PortStorage; +import com.ticticboooom.mods.mm.ports.storage.RotationPortStorage; +import mezz.jei.api.gui.IRecipeLayout; +import mezz.jei.api.gui.drawable.IDrawableStatic; +import mezz.jei.api.helpers.IJeiHelpers; +import mezz.jei.api.ingredients.IIngredientType; +import net.minecraft.util.ResourceLocation; + +import java.util.ArrayList; +import java.util.List; + +public class RotationPortState extends PortState { + + public static final Codec CODEC = RecordCodecBuilder.create(x -> x.group( + Codec.FLOAT.fieldOf("speed").forGetter(z -> z.speed) + ).apply(x, RotationPortState::new)); + + private float speed; + + public RotationPortState(float pressure) { + this.speed = pressure; + } + + @Override + public void processRequirement(List storage) { + + } + + @Override + public boolean validateRequirement(List storage) { + for (PortStorage portStorage : storage) { + if (portStorage instanceof RotationPortStorage){ + RotationPortStorage rot = (RotationPortStorage) portStorage; + if (rot.getSpeed() >= speed) { + return true; + } + } + } + return false; + } + + @Override + public void processResult(List storage) { + for (PortStorage portStorage : storage) { + if (portStorage instanceof RotationPortStorage){ + RotationPortStorage rot = (RotationPortStorage) portStorage; + rot.setSpeed(speed); + } + } + } + + @Override + public boolean validateResult(List storage) { + return true; + } + + @Override + public ResourceLocation getName() { + return new ResourceLocation(MM.ID, "create_rotation"); + } + + @Override + public IIngredientType getJeiIngredientType() { + return MMJeiPlugin.PRESSURE_TYPE; + } + + @Override + public List getIngredient(boolean input) { + return new ArrayList<>(); + } + + @Override + public void setupRecipe(IRecipeLayout layout, Integer typeIndex, int x, int y, boolean input) { + + } + + @Override + public void render(MatrixStack ms, int x, int y, int mouseX, int mouseY, IJeiHelpers helpers) { + IDrawableStatic slot = helpers.getGuiHelper().getSlotDrawable(); + slot.draw(ms, x, y); + } +} diff --git a/src/main/java/com/ticticboooom/mods/mm/ports/storage/AstralStarlightPortStorage.java b/src/main/java/com/ticticboooom/mods/mm/ports/storage/AstralStarlightPortStorage.java new file mode 100644 index 0000000..0583070 --- /dev/null +++ b/src/main/java/com/ticticboooom/mods/mm/ports/storage/AstralStarlightPortStorage.java @@ -0,0 +1,42 @@ +package com.ticticboooom.mods.mm.ports.storage; + +import com.mojang.blaze3d.matrix.MatrixStack; +import com.ticticboooom.mods.mm.block.tile.MachinePortBlockEntity; +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.nbt.CompoundNBT; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.util.LazyOptional; + +public class AstralStarlightPortStorage extends PortStorage { + + + + @Override + public LazyOptional getLO() { + return null; + } + + @Override + public boolean validate(Capability cap) { + return false; + } + + @Override + public CompoundNBT save(CompoundNBT nbt) { + return null; + } + + @Override + public void load(CompoundNBT nbt) { + + } + + @Override + public void render(MatrixStack stack, int mouseX, int mouseY, int left, int top, Screen screen) { + + } + + @Override + public void tick(MachinePortBlockEntity tile) { + } +} diff --git a/src/main/java/com/ticticboooom/mods/mm/ports/storage/EnergyPortStorage.java b/src/main/java/com/ticticboooom/mods/mm/ports/storage/EnergyPortStorage.java index 7dbddf0..8744f7f 100644 --- a/src/main/java/com/ticticboooom/mods/mm/ports/storage/EnergyPortStorage.java +++ b/src/main/java/com/ticticboooom/mods/mm/ports/storage/EnergyPortStorage.java @@ -58,7 +58,7 @@ public class EnergyPortStorage extends PortStorage { @Override public void render(MatrixStack stack, int mouseX, int mouseY, int left, int top, Screen screen) { - Minecraft.getInstance().textureManager.bind(new ResourceLocation(MM.ID, "textures/gui/port_gui.png")); + Minecraft.getInstance().textureManager.bindTexture(new ResourceLocation(MM.ID, "textures/gui/port_gui.png")); screen.blit(stack, left, top, 0, 0, 175, 256); int barOffsetX = 175 - 30; int barOffsetY = 20; @@ -68,7 +68,7 @@ public class EnergyPortStorage extends PortStorage { amount = (float)inv.getEnergyStored() / inv.getMaxEnergyStored(); } screen.blit(stack, left + barOffsetX, top + barOffsetY, 193, 18, 18, (int) (108 * amount)); - AbstractGui.drawString(stack, Minecraft.getInstance().font,Math.round((float)10000 * amount) / 100.f + "%", left + 30, top + 60, 0xfefefe); - AbstractGui.drawString(stack, Minecraft.getInstance().font,inv.getEnergyStored() + "FE", left + 30, top + 80, 0xfefefe); + AbstractGui.drawString(stack, Minecraft.getInstance().fontRenderer,Math.round((float)10000 * amount) / 100.f + "%", left + 30, top + 60, 0xfefefe); + AbstractGui.drawString(stack, Minecraft.getInstance().fontRenderer, inv.getEnergyStored() + "FE", left + 30, top + 80, 0xfefefe); } } diff --git a/src/main/java/com/ticticboooom/mods/mm/ports/storage/FluidPortStorage.java b/src/main/java/com/ticticboooom/mods/mm/ports/storage/FluidPortStorage.java index 6269435..eee18f4 100644 --- a/src/main/java/com/ticticboooom/mods/mm/ports/storage/FluidPortStorage.java +++ b/src/main/java/com/ticticboooom/mods/mm/ports/storage/FluidPortStorage.java @@ -59,13 +59,13 @@ public class FluidPortStorage extends PortStorage { @Override public void render(MatrixStack stack, int mouseX, int mouseY, int left, int top, Screen screen) { - Minecraft.getInstance().textureManager.bind(new ResourceLocation(MM.ID, "textures/gui/port_gui.png")); + Minecraft.getInstance().textureManager.bindTexture(new ResourceLocation(MM.ID, "textures/gui/port_gui.png")); screen.blit(stack, left, top, 0, 0, 175, 256); int x = 78; int y = 40; screen.blit(stack, left + x, top + y, 175, 0, 18, 18); FluidRenderer.INSTANCE.render(stack, left + x + 1, top + y + 1, inv.getFluidInTank(0), 16); - AbstractGui.drawCenteredString(stack, Minecraft.getInstance().font, inv.getFluidInTank(0).getAmount() + " " + inv.getFluidInTank(0).getDisplayName().getString(), left + x + 9 + 1, top + y + 30, 0xfefefe); + AbstractGui.drawCenteredString(stack, Minecraft.getInstance().fontRenderer, inv.getFluidInTank(0).getAmount() + " " + inv.getFluidInTank(0).getDisplayName().getString(), left + x + 9 + 1, top + y + 30, 0xfefefe); } } diff --git a/src/main/java/com/ticticboooom/mods/mm/ports/storage/ItemPortStorage.java b/src/main/java/com/ticticboooom/mods/mm/ports/storage/ItemPortStorage.java index 52b10db..553c0e9 100644 --- a/src/main/java/com/ticticboooom/mods/mm/ports/storage/ItemPortStorage.java +++ b/src/main/java/com/ticticboooom/mods/mm/ports/storage/ItemPortStorage.java @@ -67,7 +67,7 @@ public class ItemPortStorage extends PortStorage { @Override public void render(MatrixStack stack, int mouseX, int mouseY, int left, int top, Screen screen) { - Minecraft.getInstance().textureManager.bind(new ResourceLocation(MM.ID, "textures/gui/port_gui.png")); + Minecraft.getInstance().textureManager.bindTexture(new ResourceLocation(MM.ID, "textures/gui/port_gui.png")); screen.blit(stack, left, top, 0, 0, 175, 256); int offsetY = ((108 - (rows * 18)) / 2) + 7; int offsetX = ((162 - (columns * 18)) / 2) + 7; diff --git a/src/main/java/com/ticticboooom/mods/mm/ports/storage/MekGasPortStorage.java b/src/main/java/com/ticticboooom/mods/mm/ports/storage/MekGasPortStorage.java index 141ed70..1c39853 100644 --- a/src/main/java/com/ticticboooom/mods/mm/ports/storage/MekGasPortStorage.java +++ b/src/main/java/com/ticticboooom/mods/mm/ports/storage/MekGasPortStorage.java @@ -66,7 +66,7 @@ public class MekGasPortStorage extends PortStorage { @Override public void render(MatrixStack stack, int mouseX, int mouseY, int left, int top, Screen screen) { - Minecraft.getInstance().textureManager.bind(new ResourceLocation(MM.ID, "textures/gui/port_gui.png")); + Minecraft.getInstance().textureManager.bindTexture(new ResourceLocation(MM.ID, "textures/gui/port_gui.png")); screen.blit(stack, left, top, 0, 0, 175, 256); int barOffsetX = 175 - 30; int barOffsetY = 20; @@ -76,8 +76,8 @@ public class MekGasPortStorage extends PortStorage { amount = (float)inv.getStack().getAmount() / inv.getTankCapacity(0); } screen.blit(stack, left + barOffsetX, top + barOffsetY, 193, 18, 18, (int) (108 * amount)); - AbstractGui.drawString(stack, Minecraft.getInstance().font,inv.getStack().getType().getTextComponent().getString(), left + 30, top + 60, 0xfefefe); - AbstractGui.drawString(stack, Minecraft.getInstance().font, inv.getStack().getAmount() + "mB", left + 30, top + 80, 0xfefefe); + AbstractGui.drawString(stack, Minecraft.getInstance().fontRenderer,inv.getStack().getType().getTextComponent().getString(), left + 30, top + 60, 0xfefefe); + AbstractGui.drawString(stack, Minecraft.getInstance().fontRenderer, inv.getStack().getAmount() + "mB", left + 30, top + 80, 0xfefefe); } } diff --git a/src/main/java/com/ticticboooom/mods/mm/ports/storage/MekSlurryPortStorage.java b/src/main/java/com/ticticboooom/mods/mm/ports/storage/MekSlurryPortStorage.java index a3ce949..9400aa1 100644 --- a/src/main/java/com/ticticboooom/mods/mm/ports/storage/MekSlurryPortStorage.java +++ b/src/main/java/com/ticticboooom/mods/mm/ports/storage/MekSlurryPortStorage.java @@ -67,7 +67,7 @@ public class MekSlurryPortStorage extends PortStorage { @Override public void render(MatrixStack stack, int mouseX, int mouseY, int left, int top, Screen screen) { - Minecraft.getInstance().textureManager.bind(new ResourceLocation(MM.ID, "textures/gui/port_gui.png")); + Minecraft.getInstance().textureManager.bindTexture(new ResourceLocation(MM.ID, "textures/gui/port_gui.png")); screen.blit(stack, left, top, 0, 0, 175, 256); int barOffsetX = 175 - 30; int barOffsetY = 20; @@ -77,8 +77,8 @@ public class MekSlurryPortStorage extends PortStorage { amount = (float) inv.getStack().getAmount() / inv.getTankCapacity(0); } screen.blit(stack, left + barOffsetX, top + barOffsetY, 193, 18, 18, (int) (108 * amount)); - AbstractGui.drawString(stack, Minecraft.getInstance().font, inv.getStack().getType().getTextComponent().getString(), left + 30, top + 60, 0xfefefe); - AbstractGui.drawString(stack, Minecraft.getInstance().font, inv.getStack().getAmount() + "mB", left + 30, top + 80, 0xfefefe); + AbstractGui.drawString(stack, Minecraft.getInstance().fontRenderer, inv.getStack().getType().getTextComponent().getString(), left + 30, top + 60, 0xfefefe); + AbstractGui.drawString(stack, Minecraft.getInstance().fontRenderer, inv.getStack().getAmount() + "mB", left + 30, top + 80, 0xfefefe); } } diff --git a/src/main/java/com/ticticboooom/mods/mm/ports/storage/PneumaticPortStorage.java b/src/main/java/com/ticticboooom/mods/mm/ports/storage/PneumaticPortStorage.java index 7af52b6..a62dfb7 100644 --- a/src/main/java/com/ticticboooom/mods/mm/ports/storage/PneumaticPortStorage.java +++ b/src/main/java/com/ticticboooom/mods/mm/ports/storage/PneumaticPortStorage.java @@ -74,14 +74,18 @@ public class PneumaticPortStorage extends PortStorage { @Override public void render(MatrixStack stack, int mouseX, int mouseY, int left, int top, Screen screen) { - Minecraft.getInstance().textureManager.bind(new ResourceLocation(MM.ID, "textures/gui/port_gui.png")); + Minecraft.getInstance().textureManager.bindTexture(new ResourceLocation(MM.ID, "textures/gui/port_gui.png")); screen.blit(stack, left, top, 0, 0, 175, 256); int barOffsetX = 175 - 30; int barOffsetY = 20; screen.blit(stack, left + barOffsetX, top + barOffsetY, 175, 18, 18, 108); - AbstractGui.drawString(stack, Minecraft.getInstance().font, NumberFormat.getInstance().format(inv.getPressure()) + "P", left + 30, top + 60, 0xfefefe); - } + float amount = inv.getPressure() / inv.getCriticalPressure(); + screen.blit(stack, left + barOffsetX, top + barOffsetY, 193, 18, 18, (int) (108 * amount)); + AbstractGui.drawString(stack, Minecraft.getInstance().fontRenderer, NumberFormat.getInstance().format(inv.getPressure()) + "P", left + 30, top + 60, 0xfefefe); + AbstractGui.drawCenteredString(stack, Minecraft.getInstance().fontRenderer, inv.getAir() + " Air", left + mouseX + 9 + 1, top + mouseY + 30, 0xfefefe); + + } @Override public void tick(MachinePortBlockEntity tile) { this.inv.tick(tile); diff --git a/src/main/java/com/ticticboooom/mods/mm/ports/storage/RotationPortStorage.java b/src/main/java/com/ticticboooom/mods/mm/ports/storage/RotationPortStorage.java new file mode 100644 index 0000000..f95b15d --- /dev/null +++ b/src/main/java/com/ticticboooom/mods/mm/ports/storage/RotationPortStorage.java @@ -0,0 +1,115 @@ +package com.ticticboooom.mods.mm.ports.storage; + +import com.google.common.collect.Lists; +import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import com.simibubi.create.Create; +import com.simibubi.create.content.contraptions.KineticNetwork; +import com.simibubi.create.content.contraptions.base.KineticTileEntity; +import com.ticticboooom.mods.mm.MM; +import com.ticticboooom.mods.mm.block.tile.MachinePortBlockEntity; +import lombok.Getter; +import lombok.Setter; +import me.desht.pneumaticcraft.api.PNCCapabilities; +import me.desht.pneumaticcraft.api.tileentity.IAirHandlerMachine; +import me.desht.pneumaticcraft.common.capabilities.MachineAirHandler; +import me.desht.pneumaticcraft.common.util.DirectionUtil; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.AbstractGui; +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.nbt.CompoundNBT; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Direction; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.util.LazyOptional; + +import java.text.NumberFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class RotationPortStorage extends PortStorage { + + @Getter + @Setter + private float speed; + + private HashMap kinetics = new HashMap<>(); + public RotationPortStorage() { + neighborChanged(); + } + + @Override + public LazyOptional getLO() { + return null; + } + + @Override + public boolean validate(Capability cap) { + return false; + } + + @Override + public CompoundNBT save(CompoundNBT nbt) { + nbt.putFloat("speed", speed); + return nbt; + } + + @Override + public void load(CompoundNBT nbt) { + speed = nbt.getFloat("speed"); + } + + @Override + public void render(MatrixStack stack, int mouseX, int mouseY, int left, int top, Screen screen) { + Minecraft.getInstance().textureManager.bindTexture(new ResourceLocation(MM.ID, "textures/gui/port_gui.png")); + screen.blit(stack, left, top, 0, 0, 175, 256); + AbstractGui.drawCenteredString(stack, Minecraft.getInstance().fontRenderer, speed + " Speed", left + 60, top + 30, 0xfefefe); + } + + @Override + public void tick(MachinePortBlockEntity tile) { + BlockPos blockPos = tile.getPos(); + World level = tile.getWorld(); + HashMap tiles = new HashMap<>(); + tiles.put(Direction.EAST, level.getTileEntity(blockPos.add(1, 0, 0))); + tiles.put(Direction.WEST, level.getTileEntity(blockPos.add(-1, 0, 0))); + tiles.put(Direction.UP, level.getTileEntity(blockPos.add(0, 1, 0))); + tiles.put(Direction.DOWN, level.getTileEntity(blockPos.add(0, -1, 0))); + tiles.put(Direction.NORTH, level.getTileEntity(blockPos.add(0, 0, 1))); + tiles.put(Direction.SOUTH, level.getTileEntity(blockPos.add(0, 0, -1))); + speed = 0; + if (tile.isInput()) { + for (Map.Entry tileEntity : tiles.entrySet()) { + if (tileEntity.getValue() instanceof KineticTileEntity) { + KineticTileEntity te = (KineticTileEntity) tileEntity.getValue(); + if (Math.abs(te.getSpeed()) > speed){ + speed = Math.abs(te.getSpeed()); + } + } + } + } else { + for (Map.Entry tileEntity : tiles.entrySet()) { + if (tileEntity.getValue() instanceof KineticTileEntity) { + + KineticTileEntity te = (KineticTileEntity) tileEntity.getValue(); + if (speed == 0){ + te.detachKinetics(); + te.setSpeed(0); + te.setNetwork(null); + } else { + te.setSpeed(speed); + te.setNetwork(te.getPos().toLong()); + te.attachKinetics(); + } + te.notifyUpdate(); + } + } + } + } +} diff --git a/src/main/java/com/ticticboooom/mods/mm/registration/MMLoader.java b/src/main/java/com/ticticboooom/mods/mm/registration/MMLoader.java index 7bf1483..c2cf759 100644 --- a/src/main/java/com/ticticboooom/mods/mm/registration/MMLoader.java +++ b/src/main/java/com/ticticboooom/mods/mm/registration/MMLoader.java @@ -35,7 +35,7 @@ public class MMLoader { public static final ItemGroup MASTERFUL_ITEM_GROUP = new ItemGroup(MM.ID) { @Override - public ItemStack makeIcon() { + public ItemStack createIcon() { return new ItemStack(MMSetup.BLUEPRINT.get()); } }; @@ -69,8 +69,8 @@ public class MMLoader { Registerable>> cont = new Registerable<>(); cont.set(MMSetup.CONTAINER_REG.register(controllerId + "_controller", () -> IForgeContainerType.create((i, o, u) -> new ControllerBlockContainer(cont.get().get(), i, o, u)))); controllerBlock.set(MMSetup.BLOCKS_REG.register(controllerId + "_controller", () -> new ControllerBlock(controllerTile.get(), controllerName, controllerId, textureOverrideFinal))); - controllerTile.set(MMSetup.TILES_REG.register(controllerId + "_controller", () -> TileEntityType.Builder.of(() -> new ControllerBlockEntity(controllerTile.get(), cont.get(), controllerId), controllerBlock.get().get()).build(null))); - MMSetup.ITEMS_REG.register(controllerId + "_controller", () -> new BlockItem(controllerBlock.get().get(), new Item.Properties().tab(MASTERFUL_ITEM_GROUP))); + controllerTile.set(MMSetup.TILES_REG.register(controllerId + "_controller", () -> TileEntityType.Builder.create(() -> new ControllerBlockEntity(controllerTile.get(), cont.get(), controllerId), controllerBlock.get().get()).build(null))); + MMSetup.ITEMS_REG.register(controllerId + "_controller", () -> new BlockItem(controllerBlock.get().get(), new Item.Properties().group(MASTERFUL_ITEM_GROUP))); BLOCKS.add(controllerBlock.get()); CONTAINERS.add(cont.get()); } @@ -98,8 +98,8 @@ public class MMLoader { Registerable>> cont = new Registerable<>(); cont.set(MMSetup.CONTAINER_REG.register(controllerId + "_" + id + "_port_" + resourceLocation.getPath() + "_input", () -> IForgeContainerType.create((i, o, u) -> new PortBlockContainer(cont.get().get(), i, o, u)))); block.set(MMSetup.BLOCKS_REG.register(controllerId + "_" + id + "_port_" + resourceLocation.getPath() + "_input", () -> new MachinePortBlock(tile.get(), name, controllerId, portTextureOverrideFinal, value.getParser().getInputOverlay()))); - tile.set(MMSetup.TILES_REG.register(controllerId + "_" + id + "_port_" + resourceLocation.getPath() + "_input", () -> TileEntityType.Builder.of(() -> new MachinePortBlockEntity(tile.get().get(),cont.get().get(), data.get(), true), block.get().get()).build(null))); - MMSetup.ITEMS_REG.register(controllerId + "_" + id + "_port_" + resourceLocation.getPath() + "_input", () -> new BlockItem(block.get().get(), new Item.Properties().tab(MASTERFUL_ITEM_GROUP))); + tile.set(MMSetup.TILES_REG.register(controllerId + "_" + id + "_port_" + resourceLocation.getPath() + "_input", () -> TileEntityType.Builder.create(() -> new MachinePortBlockEntity(tile.get().get(),cont.get().get(), data.get(), true), block.get().get()).build(null))); + MMSetup.ITEMS_REG.register(controllerId + "_" + id + "_port_" + resourceLocation.getPath() + "_input", () -> new BlockItem(block.get().get(), new Item.Properties().group(MASTERFUL_ITEM_GROUP))); PORT_CONTAINERS.add(cont.get()); IPORT_BLOCKS.add(block.get()); } @@ -110,8 +110,8 @@ public class MMLoader { Registerable>> cont = new Registerable<>(); cont.set(MMSetup.CONTAINER_REG.register(controllerId + "_" + id + "_port_" + resourceLocation.getPath() + "_output", () -> IForgeContainerType.create((i, o, u) -> new PortBlockContainer(cont.get().get(), i, o, u)))); block.set(MMSetup.BLOCKS_REG.register(controllerId + "_" + id + "_port_" + resourceLocation.getPath() + "_output", () -> new MachinePortBlock(tile.get(), name, controllerId, portTextureOverrideFinal, value.getParser().getOutputOverlay()))); - tile.set(MMSetup.TILES_REG.register(controllerId + "_" + id + "_port_" + resourceLocation.getPath() + "_output", () -> TileEntityType.Builder.of(() -> new MachinePortBlockEntity(tile.get().get(), cont.get().get(), data.get(), false), block.get().get()).build(null))); - MMSetup.ITEMS_REG.register(controllerId + "_" + id + "_port_" + resourceLocation.getPath() + "_output", () -> new BlockItem(block.get().get(), new Item.Properties().tab(MASTERFUL_ITEM_GROUP))); + tile.set(MMSetup.TILES_REG.register(controllerId + "_" + id + "_port_" + resourceLocation.getPath() + "_output", () -> TileEntityType.Builder.create(() -> new MachinePortBlockEntity(tile.get().get(), cont.get().get(), data.get(), false), block.get().get()).build(null))); + MMSetup.ITEMS_REG.register(controllerId + "_" + id + "_port_" + resourceLocation.getPath() + "_output", () -> new BlockItem(block.get().get(), new Item.Properties().group(MASTERFUL_ITEM_GROUP))); PORT_CONTAINERS.add(cont.get()); OPORT_BLOCKS.add(block.get()); } diff --git a/src/main/java/com/ticticboooom/mods/mm/registration/MMPorts.java b/src/main/java/com/ticticboooom/mods/mm/registration/MMPorts.java index d48659f..42e9d32 100644 --- a/src/main/java/com/ticticboooom/mods/mm/registration/MMPorts.java +++ b/src/main/java/com/ticticboooom/mods/mm/registration/MMPorts.java @@ -18,5 +18,6 @@ public class MMPorts { PORTS.put(new ResourceLocation(MM.ID, "mekanism_gas"),new MasterfulPortType(new ResourceLocation(MM.ID, "mekanism_gas"), new MekGasPortParser())); PORTS.put(new ResourceLocation(MM.ID, "mekanism_slurry"),new MasterfulPortType(new ResourceLocation(MM.ID, "mekanism_slurry"), new MekSlurryPortParser())); PORTS.put(new ResourceLocation(MM.ID, "pncr_pressure"),new MasterfulPortType(new ResourceLocation(MM.ID, "pncr_pressure"), new PneumaticPortParser())); + PORTS.put(new ResourceLocation(MM.ID, "create_rotation"),new MasterfulPortType(new ResourceLocation(MM.ID, "create_rotation"), new RotationPortParser())); } } diff --git a/src/main/java/com/ticticboooom/mods/mm/registration/MMSetup.java b/src/main/java/com/ticticboooom/mods/mm/registration/MMSetup.java index ec71253..6b145f8 100644 --- a/src/main/java/com/ticticboooom/mods/mm/registration/MMSetup.java +++ b/src/main/java/com/ticticboooom/mods/mm/registration/MMSetup.java @@ -25,17 +25,17 @@ public class MMSetup { public static final DeferredRegister> TILES_REG = DeferredRegister.create(ForgeRegistries.TILE_ENTITIES, MM.ID); public static final DeferredRegister> CONTAINER_REG = DeferredRegister.create(ForgeRegistries.CONTAINERS, MM.ID); - public static final RegistryObject BLUEPRINT = ITEMS_REG.register("blueprint", () -> new Item(new Item.Properties().tab(MMLoader.MASTERFUL_ITEM_GROUP))); + public static final RegistryObject BLUEPRINT = ITEMS_REG.register("blueprint", () -> new Item(new Item.Properties().group(MMLoader.MASTERFUL_ITEM_GROUP))); - public static final RegistryObject> PROJECTOR_TILE = TILES_REG.register("projector", () -> TileEntityType.Builder.of(ProjectorBlockEntity::new).build(null)); + public static final RegistryObject> PROJECTOR_TILE = TILES_REG.register("projector", () -> TileEntityType.Builder.create(ProjectorBlockEntity::new).build(null)); public static final RegistryObject PROJECTOR_BLOCK = BLOCKS_REG.register("projector", ProjectorBlock::new); public static final RegistryObject> PROJECTOR_CONTAINER = CONTAINER_REG.register("projector", () -> IForgeContainerType.create(ProjectorBlockContainer::new)); - public static final RegistryObject PROJECTOR_ITEM = ITEMS_REG.register("projector", () -> new BlockItem(PROJECTOR_BLOCK.get(), new Item.Properties().tab(MMLoader.MASTERFUL_ITEM_GROUP))); + public static final RegistryObject PROJECTOR_ITEM = ITEMS_REG.register("projector", () -> new BlockItem(PROJECTOR_BLOCK.get(), new Item.Properties().group(MMLoader.MASTERFUL_ITEM_GROUP))); - public static final RegistryObject> STRUCTURE_TILE = TILES_REG.register("structure_generator", () -> TileEntityType.Builder.of(StructureGenBlockEntity::new).build(null)); + public static final RegistryObject> STRUCTURE_TILE = TILES_REG.register("structure_generator", () -> TileEntityType.Builder.create(StructureGenBlockEntity::new).build(null)); public static final RegistryObject STRUCTURE_BLOCK = BLOCKS_REG.register("structure_generator", StructureGenBlock::new); public static final RegistryObject> STRUCTURE_CONTAINER = CONTAINER_REG.register("structure_generator", () -> IForgeContainerType.create(StructureGenBlockContainer::new)); - public static final RegistryObject STRUCTURE_ITEM = ITEMS_REG.register("structure_generator", () -> new BlockItem(STRUCTURE_BLOCK.get(), new Item.Properties().tab(MMLoader.MASTERFUL_ITEM_GROUP))); + public static final RegistryObject STRUCTURE_ITEM = ITEMS_REG.register("structure_generator", () -> new BlockItem(STRUCTURE_BLOCK.get(), new Item.Properties().group(MMLoader.MASTERFUL_ITEM_GROUP))); public static final RegistryObject STRUCTURE_DEVICE = ITEMS_REG.register("structure_gen_device", StructureGenSelectionDevice::new); }