mirror of
https://github.com/TicTicBoooom-Mods/MasterfulMachinery.git
synced 2026-01-18 16:37:23 +01:00
reverting to forge mappings from mojmap
adding create and pncr ports
This commit is contained in:
24
build.gradle
24
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"
|
||||
|
||||
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -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
|
||||
|
||||
53
gradlew
vendored
53
gradlew
vendored
@@ -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" "$@"
|
||||
|
||||
43
gradlew.bat
vendored
43
gradlew.bat
vendored
@@ -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
|
||||
|
||||
@@ -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<ContainerType<ControllerBlockContainer>> container : MMLoader.CONTAINERS) {
|
||||
ScreenManager.register(container.get(), ControllerBlockContainerScreen::new);
|
||||
ScreenManager.registerFactory(container.get(), ControllerBlockContainerScreen::new);
|
||||
}
|
||||
for (RegistryObject<ContainerType<?>> container : MMLoader.PORT_CONTAINERS) {
|
||||
ScreenManager.register((ContainerType<PortBlockContainer>) container.get(), PortBlockContainerScreen::new);
|
||||
ScreenManager.registerFactory((ContainerType<PortBlockContainer>) container.get(), PortBlockContainerScreen::new);
|
||||
}
|
||||
|
||||
for (RegistryObject<ControllerBlock> 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<MachinePortBlock> 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<MachinePortBlock> 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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,25 +40,25 @@ public class ControllerBlock extends DirectionalBlock {
|
||||
private String texOverride;
|
||||
|
||||
public ControllerBlock(RegistryObject<TileEntityType<?>> 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<Block, BlockState> builder) {
|
||||
super.createBlockStateDefinition(builder.add(FACING));
|
||||
protected void fillStateContainer(StateContainer.Builder<Block, BlockState> 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);
|
||||
}
|
||||
|
||||
@@ -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<TileEntityType<?>> 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<Object> 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();
|
||||
}
|
||||
|
||||
@@ -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<Block, BlockState> builder) {
|
||||
super.createBlockStateDefinition(builder.add(FACING));
|
||||
protected void fillStateContainer(StateContainer.Builder<Block, BlockState> 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:
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<MachineStructureRecipe> recipes = level.getRecipeManager().getAllRecipesFor(RecipeTypes.MACHINE_STRUCTURE);
|
||||
List<MachineStructureRecipe> 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<BlockPos> ports = structure.getPorts(worldPosition, level, index);
|
||||
ArrayList<BlockPos> ports = structure.getPorts(pos, world, index);
|
||||
List<PortStorage> inputPorts = new ArrayList<>();
|
||||
List<PortStorage> 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<PortStorage> inputPorts, List<PortStorage> outputPorts, MachineStructureRecipe structure) {
|
||||
List<MachineProcessRecipe> processRecipes = level.getRecipeManager().getAllRecipesFor(RecipeTypes.MACHINE_PROCESS);
|
||||
List<MachineProcessRecipe> 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"));
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -27,18 +27,18 @@ public class StructureGenBlockEntity extends UpdatableTile implements ITickableT
|
||||
private ItemStack device = ItemStack.EMPTY;
|
||||
|
||||
@Override
|
||||
public CompoundNBT save(CompoundNBT nbt) {
|
||||
NonNullList<ItemStack> list = NonNullList.of(device);
|
||||
public CompoundNBT write(CompoundNBT nbt) {
|
||||
NonNullList<ItemStack> 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<ItemStack> 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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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())));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,12 +46,12 @@ public class MMJeiPlugin implements IModPlugin {
|
||||
@Override
|
||||
public void registerRecipes(IRecipeRegistration registration) {
|
||||
ENERGY_TYPE_RENDERER.setHelpers(registration.getJeiHelpers());
|
||||
List<MachineStructureRecipe> structureRecipes = Minecraft.getInstance().level.getRecipeManager().getAllRecipesFor(RecipeTypes.MACHINE_STRUCTURE);
|
||||
List<MachineStructureRecipe> structureRecipes = Minecraft.getInstance().world.getRecipeManager().getRecipesForType(RecipeTypes.MACHINE_STRUCTURE);
|
||||
for (RegistryObject<ControllerBlock> 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<MachineProcessRecipe> processRecipes = Minecraft.getInstance().level.getRecipeManager().getAllRecipesFor(RecipeTypes.MACHINE_PROCESS);
|
||||
List<MachineProcessRecipe> processRecipes = Minecraft.getInstance().world.getRecipeManager().getRecipesForType(RecipeTypes.MACHINE_PROCESS);
|
||||
for (MachineStructureRecipe structureRecipe : structureRecipes) {
|
||||
List<MachineProcessRecipe> 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<ControllerBlock> block : MMLoader.BLOCKS) {
|
||||
registration.addRecipeCategories(new MachineStructureRecipeCategory(registration.getJeiHelpers(), block.get()));
|
||||
}
|
||||
List<MachineStructureRecipe> structureRecipes = Minecraft.getInstance().level.getRecipeManager().getAllRecipesFor(RecipeTypes.MACHINE_STRUCTURE);
|
||||
List<MachineStructureRecipe> structureRecipes = Minecraft.getInstance().world.getRecipeManager().getRecipesForType(RecipeTypes.MACHINE_STRUCTURE);
|
||||
for (MachineStructureRecipe structureRecipe : structureRecipes) {
|
||||
registration.addRecipeCategories(new MachineProcessRecipeCategory(registration.getJeiHelpers(), structureRecipe.getStructureId(), structureRecipe.getName()));
|
||||
}
|
||||
|
||||
@@ -83,10 +83,10 @@ public class MachineStructureRecipeCategory implements IRecipeCategory<MachineSt
|
||||
|
||||
@Override
|
||||
public void setIngredients(MachineStructureRecipe machineStructureRecipe, IIngredients iIngredients) {
|
||||
Ingredient ingredient = Ingredient.of(new ItemStack(MMSetup.BLUEPRINT.get()));
|
||||
Ingredient ingredient = Ingredient.fromStacks(new ItemStack(MMSetup.BLUEPRINT.get()));
|
||||
ArrayList<Ingredient> 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<MachineSt
|
||||
yLastMousePosition = mouseY;
|
||||
}
|
||||
|
||||
if (GLFW.glfwGetMouseButton(mc.getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_1) != 0) {
|
||||
if (GLFW.glfwGetMouseButton(mc.getMainWindow().getHandle(), GLFW.GLFW_MOUSE_BUTTON_1) != 0) {
|
||||
double relMoveX = mouseX - xLastMousePosition;
|
||||
double relMoveY = mouseY - yLastMousePosition;
|
||||
xRotation += relMoveX;
|
||||
@@ -156,7 +156,7 @@ public class MachineStructureRecipeCategory implements IRecipeCategory<MachineSt
|
||||
if (!part.getBlock().equals("")) {
|
||||
ResourceLocation resourceLocation = new ResourceLocation(part.getBlock());
|
||||
Block block = ForgeRegistries.BLOCKS.getValue(resourceLocation);
|
||||
BlockState defaultState = block.defaultBlockState();
|
||||
BlockState defaultState = block.getDefaultState();
|
||||
new GuiBlockRenderBuilder(defaultState).at(bp)
|
||||
.withPrePosition(new Vector3f(6.5f, -5, 10))
|
||||
.withRotation(new Quaternion(new Vector3f(1, 0, 0), 15 + yRotation, true))
|
||||
@@ -173,7 +173,7 @@ public class MachineStructureRecipeCategory implements IRecipeCategory<MachineSt
|
||||
}
|
||||
}
|
||||
if (block != null) {
|
||||
BlockState defaultState = block.defaultBlockState().setValue(DirectionalBlock.FACING, Direction.NORTH);
|
||||
BlockState defaultState = block.getDefaultState().with(DirectionalBlock.FACING, Direction.NORTH);
|
||||
new GuiBlockRenderBuilder(defaultState).at(new BlockPos(0, 0, 0))
|
||||
.withPrePosition(new Vector3f(6.5f, -5, 10))
|
||||
.withRotation(new Quaternion(new Vector3f(1, 0, 0), 15 + yRotation, true))
|
||||
|
||||
@@ -20,26 +20,27 @@ public class ControllerBlockContainerScreen extends ContainerScreen<ControllerBl
|
||||
private static final ResourceLocation GUI = new ResourceLocation(MM.ID, "textures/gui/gui_large.png");
|
||||
|
||||
@Override
|
||||
protected void renderBg(MatrixStack stack, float p_230450_2_, int p_230450_3_, int p_230450_4_) {
|
||||
this.renderBackground(stack);
|
||||
this.minecraft.textureManager.bind(GUI);
|
||||
this.blit(stack, this.leftPos, this.topPos - 20, 0, 0, 256, 256);
|
||||
public void render(MatrixStack stack, int mouseX, int mouseY, float p_230430_4_) {
|
||||
|
||||
super.render(stack, mouseX, mouseY, p_230430_4_);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(MatrixStack p_230430_1_, int p_230430_2_, int p_230430_3_, float p_230430_4_) {
|
||||
super.render(p_230430_1_, p_230430_2_, p_230430_3_, p_230430_4_);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void renderLabels(MatrixStack stack, int p_230451_2_, int p_230451_3_) {
|
||||
this.minecraft.font.drawWordWrap(container.getTile().getDisplayName(), 10, -10, 176, 0xfefefe);
|
||||
drawString(stack, this.minecraft.font, "Inventory", 7, 110, 0xfefefe);
|
||||
protected void drawGuiContainerForegroundLayer(MatrixStack stack, int x0, int y0) {
|
||||
this.minecraft.fontRenderer.func_238418_a_(container.getTile().getDisplayName(), 10, -10, 176, 0xfefefe);
|
||||
drawString(stack, this.minecraft.fontRenderer, "Inventory", 7, 110, 0xfefefe);
|
||||
int y = 50;
|
||||
for (String s : container.getTile().getUpdate().getMsg().split("\n")) {
|
||||
drawString(stack, this.minecraft.font, s, 12, y, 0xfefefe);
|
||||
drawString(stack, this.minecraft.fontRenderer, s, 12, y, 0xfefefe);
|
||||
y += 12;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerBackgroundLayer(MatrixStack stack, float partialTicks, int x, int y) {
|
||||
this.renderBackground(stack);
|
||||
this.minecraft.textureManager.bindTexture(GUI);
|
||||
this.blit(stack, this.guiLeft, this.guiTop - 20, 0, 0, 256, 256);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,22 +18,23 @@ public class PortBlockContainerScreen extends ContainerScreen<PortBlockContainer
|
||||
}
|
||||
|
||||
private static final ResourceLocation GUI = new ResourceLocation(MM.ID, "textures/gui/port_gui.png");
|
||||
|
||||
@Override
|
||||
protected void renderBg(MatrixStack stack, float p_230450_2_, int mouseX, int mouseY) {
|
||||
this.renderBackground(stack);
|
||||
container.getTile().getStorage().render(stack, mouseX, mouseY, this.leftPos, this.topPos, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(MatrixStack p_230430_1_, int p_230430_2_, int p_230430_3_, float p_230430_4_) {
|
||||
super.render(p_230430_1_, p_230430_2_, p_230430_3_, p_230430_4_);
|
||||
this.renderTooltip(p_230430_1_, p_230430_2_, p_230430_3_);
|
||||
this.renderHoveredTooltip(p_230430_1_, p_230430_2_, p_230430_3_);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void renderLabels(MatrixStack stack, int p_230451_2_, int p_230451_3_) {
|
||||
drawString(stack, this.minecraft.font, container.getTile().getDisplayName(), 7, 5, 0xfefefe);
|
||||
drawString(stack, this.minecraft.font, "Inventory", 7, 130, 0xfefefe);
|
||||
protected void drawGuiContainerBackgroundLayer(MatrixStack stack, float partialTicks, int x, int y) {
|
||||
this.renderBackground(stack);
|
||||
container.getTile().getStorage().render(stack, x, y, this.guiLeft, this.guiTop, this);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerForegroundLayer(MatrixStack stack, int x, int y) {
|
||||
drawString(stack, this.minecraft.fontRenderer, container.getTile().getDisplayName(), 7, 5, 0xfefefe);
|
||||
drawString(stack, this.minecraft.fontRenderer, "Inventory", 7, 130, 0xfefefe);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -14,11 +14,6 @@ public class StructureGenBlockContainerScreen extends ContainerScreen<StructureG
|
||||
super(p_i51105_1_, p_i51105_2_, p_i51105_3_);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void renderBg(MatrixStack ms, float p_230450_2_, int p_230450_3_, int p_230450_4_) {
|
||||
Minecraft.getInstance().textureManager.bind(new ResourceLocation(MM.ID, "textures/gui/port_gui.png"));
|
||||
blit(ms, leftPos, topPos, 0, 0, 175, 256);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(MatrixStack ms, int p_230430_2_, int p_230430_3_, float p_230430_4_) {
|
||||
@@ -26,4 +21,10 @@ public class StructureGenBlockContainerScreen extends ContainerScreen<StructureG
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerBackgroundLayer(MatrixStack ms, float partialTicks, int x, int y) {
|
||||
Minecraft.getInstance().textureManager.bindTexture(new ResourceLocation(MM.ID, "textures/gui/port_gui.png"));
|
||||
blit(ms, guiLeft, guiTop, 0, 0, 175, 256);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,8 +65,8 @@ public class FluidRenderer {
|
||||
|
||||
private void drawTiledSprite(MatrixStack matrixStack, int xPosition, int yPosition, int width, int height, int color, int scaledAmount, TextureAtlasSprite sprite) {
|
||||
Minecraft minecraft = Minecraft.getInstance();
|
||||
minecraft.getTextureManager().bind(PlayerContainer.BLOCK_ATLAS);
|
||||
Matrix4f matrix = matrixStack.last().pose();
|
||||
minecraft.getTextureManager().bindTexture(PlayerContainer.LOCATION_BLOCKS_TEXTURE);
|
||||
Matrix4f matrix = matrixStack.getLast().getMatrix();
|
||||
setGLColorFromInt(color);
|
||||
|
||||
final int xTileCount = width / TEX_WIDTH;
|
||||
@@ -93,21 +93,21 @@ public class FluidRenderer {
|
||||
}
|
||||
|
||||
private void drawTextureWithMasking(Matrix4f matrix, int x, int y, TextureAtlasSprite sprite, int maskTop, int maskRight, int z) {
|
||||
float uMin = sprite.getU0();
|
||||
float uMax = sprite.getU1();
|
||||
float vMin = sprite.getV0();
|
||||
float vMax = sprite.getV1();
|
||||
float uMin = sprite.getMinU();
|
||||
float uMax = sprite.getMaxU();
|
||||
float vMin = sprite.getMinV();
|
||||
float vMax = sprite.getMaxV();
|
||||
uMax = uMax - (maskRight / 16F * (uMax - uMin));
|
||||
vMax = vMax - (maskTop / 16F * (vMax - vMin));
|
||||
|
||||
Tessellator tessellator = Tessellator.getInstance();
|
||||
BufferBuilder bufferBuilder = tessellator.getBuilder();
|
||||
BufferBuilder bufferBuilder = tessellator.getBuffer();
|
||||
bufferBuilder.begin(7, DefaultVertexFormats.POSITION_TEX);
|
||||
bufferBuilder.vertex(matrix, x, y + 16, z).uv(uMin, vMax).endVertex();
|
||||
bufferBuilder.vertex(matrix, x + 16 - maskRight, y + 16, z).uv(uMax, vMax).endVertex();
|
||||
bufferBuilder.vertex(matrix, x + 16 - maskRight, y + maskTop, z).uv(uMax, vMin).endVertex();
|
||||
bufferBuilder.vertex(matrix, x, y + maskTop, z).uv(uMin, vMin).endVertex();
|
||||
tessellator.end();
|
||||
bufferBuilder.pos(matrix, x, y + 16, z).tex(uMin, vMax).endVertex();
|
||||
bufferBuilder.pos(matrix, x + 16 - maskRight, y + 16, z).tex(uMax, vMax).endVertex();
|
||||
bufferBuilder.pos(matrix, x + 16 - maskRight, y + maskTop, z).tex(uMax, vMin).endVertex();
|
||||
bufferBuilder.pos(matrix, x, y + maskTop, z).tex(uMin, vMin).endVertex();
|
||||
tessellator.draw();
|
||||
}
|
||||
|
||||
private static void setGLColorFromInt(int color) {
|
||||
@@ -124,6 +124,6 @@ public class FluidRenderer {
|
||||
Fluid fluid = stack.getFluid();
|
||||
FluidAttributes attributes = fluid.getAttributes();
|
||||
ResourceLocation fluidStill = attributes.getStillTexture(stack);
|
||||
return minecraft.getTextureAtlas(PlayerContainer.BLOCK_ATLAS).apply(fluidStill);
|
||||
return minecraft.getAtlasSpriteGetter(PlayerContainer.LOCATION_BLOCKS_TEXTURE).apply(fluidStill);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ public class GuiBlockRenderBuilder {
|
||||
public GuiBlockRenderBuilder(BlockState blockState) {
|
||||
this.blockState = blockState;
|
||||
position = new BlockPos(0, 0, 0);
|
||||
tile = blockState.createTileEntity(Minecraft.getInstance().level);
|
||||
tile = blockState.createTileEntity(Minecraft.getInstance().world);
|
||||
if (tile != null) {
|
||||
ter = TileEntityRendererDispatcher.instance.getRenderer(tile);
|
||||
}
|
||||
@@ -64,7 +64,7 @@ public class GuiBlockRenderBuilder {
|
||||
RenderSystem.enableBlend();
|
||||
RenderSystem.enableRescaleNormal();
|
||||
RenderSystem.enableAlphaTest();
|
||||
RenderHelper.setupFor3DItems();
|
||||
RenderHelper.setupGui3DDiffuseLighting();
|
||||
RenderSystem.alphaFunc(516, 0.1F);
|
||||
RenderSystem.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA);
|
||||
RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
@@ -77,24 +77,24 @@ public class GuiBlockRenderBuilder {
|
||||
|
||||
public void finalize(MatrixStack ms) {
|
||||
prepareRender();
|
||||
IRenderTypeBuffer.Impl buf = mc.renderBuffers().bufferSource();
|
||||
BlockRendererDispatcher brd = Minecraft.getInstance().getBlockRenderer();
|
||||
ms.pushPose();
|
||||
IRenderTypeBuffer.Impl buf = mc.getRenderTypeBuffers().getBufferSource();
|
||||
BlockRendererDispatcher brd = Minecraft.getInstance().getBlockRendererDispatcher();
|
||||
ms.push();
|
||||
transformMatrix(ms);
|
||||
brd.renderBlock(blockState, ms, buf, 0xF000F0, OverlayTexture.NO_OVERLAY, EmptyModelData.INSTANCE);
|
||||
if (ter != null) {
|
||||
ter.render(tile, 1.0f, ms, buf, 0, 1);
|
||||
}
|
||||
buf.endBatch();
|
||||
ms.popPose();
|
||||
buf.finish();
|
||||
ms.pop();
|
||||
cleanupRender();
|
||||
}
|
||||
|
||||
private void transformMatrix(MatrixStack ms) {
|
||||
ms.scale(scale.x(), scale.y(), scale.z());
|
||||
ms.translate(prePosition.x(), prePosition.y(), prePosition.z());
|
||||
ms.scale(scale.getX(), scale.getY(), scale.getZ());
|
||||
ms.translate(prePosition.getX(), prePosition.getY(), prePosition.getZ());
|
||||
for (Quaternion quaternion : orderedRotation) {
|
||||
ms.mulPose(quaternion);
|
||||
ms.rotate(quaternion);
|
||||
}
|
||||
ms.translate(position.getX(), position.getY(), position.getZ());
|
||||
}
|
||||
|
||||
@@ -175,17 +175,17 @@ public class MachineProcessRecipe implements IRecipe<IInventory> {
|
||||
}
|
||||
|
||||
@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<IInventory> {
|
||||
|
||||
@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<IInventory> {
|
||||
|
||||
@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<PortState> inputs = getStates(buf, inputCount);
|
||||
List<PortState> outputs = getStates(buf, outputCount);
|
||||
return new MachineProcessRecipe(inputs, outputs, ticks, structureId, rl);
|
||||
@@ -268,7 +268,7 @@ public class MachineProcessRecipe implements IRecipe<IInventory> {
|
||||
private List<PortState> getStates(PacketBuffer buf, int count) {
|
||||
List<PortState> 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<IInventory> {
|
||||
}
|
||||
|
||||
@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<IInventory> {
|
||||
private void writeStates(PacketBuffer buf, List<PortState> 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);
|
||||
|
||||
@@ -87,12 +87,12 @@ public class MachineStructureRecipe implements IRecipe<IInventory> {
|
||||
}
|
||||
|
||||
@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<IInventory> {
|
||||
|
||||
|
||||
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<IInventory> {
|
||||
MM.LOG.fatal("too many : (colons) in structure tag: {}", model.getTag());
|
||||
return false;
|
||||
}
|
||||
ITag<Block> tag = BlockTags.getAllTags().getTag(new ResourceLocation(split[0], split[1]));
|
||||
ITag<Block> 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<IInventory> {
|
||||
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<IInventory> {
|
||||
public ArrayList<BlockPos> getPorts(BlockPos controllerPos, World world, int index) {
|
||||
ArrayList<BlockPos> 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<IInventory> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getResultItem() {
|
||||
public ItemStack getRecipeOutput() {
|
||||
return ItemStack.EMPTY;
|
||||
}
|
||||
|
||||
@@ -204,7 +204,7 @@ public class MachineStructureRecipe implements IRecipe<IInventory> {
|
||||
|
||||
|
||||
@Override
|
||||
public MachineStructureRecipe fromJson(ResourceLocation rl, JsonObject obj) {
|
||||
public MachineStructureRecipe read(ResourceLocation rl, JsonObject obj) {
|
||||
JsonElement controllerIdJson = obj.get("controllerId");
|
||||
List<String> ids = new ArrayList<>();
|
||||
if (controllerIdJson.isJsonPrimitive()){
|
||||
@@ -287,16 +287,16 @@ public class MachineStructureRecipe implements IRecipe<IInventory> {
|
||||
@SneakyThrows
|
||||
@Nullable
|
||||
@Override
|
||||
public MachineStructureRecipe fromNetwork(ResourceLocation rl, PacketBuffer buf) {
|
||||
public MachineStructureRecipe read(ResourceLocation rl, PacketBuffer buf) {
|
||||
List<String> 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<MachineStructureRecipeKeyModel> models = machineStructureObject.getInner();
|
||||
return new MachineStructureRecipe(models, controllerId, id, rl, name);
|
||||
} catch (Exception e) {
|
||||
@@ -306,15 +306,15 @@ public class MachineStructureRecipe implements IRecipe<IInventory> {
|
||||
}
|
||||
|
||||
@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<IInventory> {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import net.minecraft.util.ResourceLocation;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
public class MockedNamedTag<T> implements ITag.INamedTag<T> {
|
||||
private final ResourceLocation name;
|
||||
@@ -24,7 +25,12 @@ public class MockedNamedTag<T> implements ITag.INamedTag<T> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<T> getValues() {
|
||||
public List<T> getAllElements() {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public T getRandomElement(Random random) {
|
||||
return INamedTag.super.getRandomElement(random);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<ResourceLocation> getResources(ResourcePackType type, String namespaceIn, String pathIn, int maxDepthIn, Predicate<String> filterIn) {
|
||||
public Collection<ResourceLocation> getAllResourceLocations(ResourcePackType type, String namespaceIn, String pathIn, int maxDepthIn, Predicate<String> filterIn) {
|
||||
List<ResourceLocation> 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<String> getNamespaces(ResourcePackType type) {
|
||||
public Set<String> getResourceNamespaces(ResourcePackType type) {
|
||||
Set<String> result = new HashSet<>();
|
||||
try {
|
||||
Stream<Path> list = Files.list(path.resolve(type.getDirectory()));
|
||||
Stream<Path> 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> T getMetadataSection(IMetadataSectionSerializer<T> deserializer) throws IOException {
|
||||
public <T> T getMetadata(IMetadataSectionSerializer<T> 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
|
||||
|
||||
@@ -43,11 +43,11 @@ public class MMPackFinder implements IPackFinder {
|
||||
|
||||
|
||||
@Override
|
||||
public void loadPacks(Consumer<ResourcePackInfo> infoConsumer, ResourcePackInfo.IFactory infoFactory) {
|
||||
public void findPacks(Consumer<ResourcePackInfo> 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);
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ public class MockedNamedTag<T> implements ITag.INamedTag<T> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<T> getValues() {
|
||||
public List<T> getAllElements() {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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<NetworkEvent.Context> 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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<PortStorage> 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<Pair<RotationPortState, JsonElement>> 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);
|
||||
}
|
||||
}
|
||||
@@ -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<Item> tag = ItemTags.getAllTags().getTag(RLUtils.toRL(this.tag));
|
||||
ITag<Item> 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<T>) ImmutableList.of(new ItemStack(ForgeRegistries.ITEMS.getValue(RLUtils.toRL(item)), this.count));
|
||||
} else if (!tag.equals("") && RLUtils.isRL(tag)) {
|
||||
ITag<Item> tag = ItemTags.getAllTags().getTag(RLUtils.toRL(this.tag));
|
||||
ITag<Item> tag = ItemTags.getCollection().get(RLUtils.toRL(this.tag));
|
||||
assert tag != null;
|
||||
|
||||
List<ItemStack> 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<T>)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<Item> tag = ItemTags.getAllTags().getTag(RLUtils.toRL(this.tag));
|
||||
ITag<Item> tag = ItemTags.getCollection().get(RLUtils.toRL(this.tag));
|
||||
assert tag != null;
|
||||
Stream<ItemStack> itemStackStream = tag.getValues().stream().map(z -> new ItemStack(z.getItem(), this.count));
|
||||
Stream<ItemStack> itemStackStream = tag.getAllElements().stream().map(z -> new ItemStack(z.getItem(), this.count));
|
||||
layout.getItemStacks().set(typeIndex, itemStackStream.collect(Collectors.toList()));
|
||||
}
|
||||
if (this.getChance() < 1){
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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<RotationPortState> 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<PortStorage> storage) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean validateRequirement(List<PortStorage> 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<PortStorage> storage) {
|
||||
for (PortStorage portStorage : storage) {
|
||||
if (portStorage instanceof RotationPortStorage){
|
||||
RotationPortStorage rot = (RotationPortStorage) portStorage;
|
||||
rot.setSpeed(speed);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean validateResult(List<PortStorage> storage) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getName() {
|
||||
return new ResourceLocation(MM.ID, "create_rotation");
|
||||
}
|
||||
|
||||
@Override
|
||||
public IIngredientType<?> getJeiIngredientType() {
|
||||
return MMJeiPlugin.PRESSURE_TYPE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> List<T> 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);
|
||||
}
|
||||
}
|
||||
@@ -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 <T> LazyOptional<T> getLO() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> boolean validate(Capability<T> 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) {
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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<Direction, KineticTileEntity> kinetics = new HashMap<>();
|
||||
public RotationPortStorage() {
|
||||
neighborChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> LazyOptional<T> getLO() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> boolean validate(Capability<T> 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<Direction, TileEntity> 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<Direction, TileEntity> 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<Direction, TileEntity> 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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<RegistryObject<ContainerType<ControllerBlockContainer>>> 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<RegistryObject<ContainerType<?>>> 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<RegistryObject<ContainerType<?>>> 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());
|
||||
}
|
||||
|
||||
@@ -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()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,17 +25,17 @@ public class MMSetup {
|
||||
public static final DeferredRegister<TileEntityType<?>> TILES_REG = DeferredRegister.create(ForgeRegistries.TILE_ENTITIES, MM.ID);
|
||||
public static final DeferredRegister<ContainerType<?>> CONTAINER_REG = DeferredRegister.create(ForgeRegistries.CONTAINERS, MM.ID);
|
||||
|
||||
public static final RegistryObject<Item> BLUEPRINT = ITEMS_REG.register("blueprint", () -> new Item(new Item.Properties().tab(MMLoader.MASTERFUL_ITEM_GROUP)));
|
||||
public static final RegistryObject<Item> BLUEPRINT = ITEMS_REG.register("blueprint", () -> new Item(new Item.Properties().group(MMLoader.MASTERFUL_ITEM_GROUP)));
|
||||
|
||||
public static final RegistryObject<TileEntityType<?>> PROJECTOR_TILE = TILES_REG.register("projector", () -> TileEntityType.Builder.of(ProjectorBlockEntity::new).build(null));
|
||||
public static final RegistryObject<TileEntityType<?>> PROJECTOR_TILE = TILES_REG.register("projector", () -> TileEntityType.Builder.create(ProjectorBlockEntity::new).build(null));
|
||||
public static final RegistryObject<Block> PROJECTOR_BLOCK = BLOCKS_REG.register("projector", ProjectorBlock::new);
|
||||
public static final RegistryObject<ContainerType<ProjectorBlockContainer>> PROJECTOR_CONTAINER = CONTAINER_REG.register("projector", () -> IForgeContainerType.create(ProjectorBlockContainer::new));
|
||||
public static final RegistryObject<Item> PROJECTOR_ITEM = ITEMS_REG.register("projector", () -> new BlockItem(PROJECTOR_BLOCK.get(), new Item.Properties().tab(MMLoader.MASTERFUL_ITEM_GROUP)));
|
||||
public static final RegistryObject<Item> PROJECTOR_ITEM = ITEMS_REG.register("projector", () -> new BlockItem(PROJECTOR_BLOCK.get(), new Item.Properties().group(MMLoader.MASTERFUL_ITEM_GROUP)));
|
||||
|
||||
|
||||
public static final RegistryObject<TileEntityType<?>> STRUCTURE_TILE = TILES_REG.register("structure_generator", () -> TileEntityType.Builder.of(StructureGenBlockEntity::new).build(null));
|
||||
public static final RegistryObject<TileEntityType<?>> STRUCTURE_TILE = TILES_REG.register("structure_generator", () -> TileEntityType.Builder.create(StructureGenBlockEntity::new).build(null));
|
||||
public static final RegistryObject<Block> STRUCTURE_BLOCK = BLOCKS_REG.register("structure_generator", StructureGenBlock::new);
|
||||
public static final RegistryObject<ContainerType<StructureGenBlockContainer>> STRUCTURE_CONTAINER = CONTAINER_REG.register("structure_generator", () -> IForgeContainerType.create(StructureGenBlockContainer::new));
|
||||
public static final RegistryObject<Item> STRUCTURE_ITEM = ITEMS_REG.register("structure_generator", () -> new BlockItem(STRUCTURE_BLOCK.get(), new Item.Properties().tab(MMLoader.MASTERFUL_ITEM_GROUP)));
|
||||
public static final RegistryObject<Item> STRUCTURE_ITEM = ITEMS_REG.register("structure_generator", () -> new BlockItem(STRUCTURE_BLOCK.get(), new Item.Properties().group(MMLoader.MASTERFUL_ITEM_GROUP)));
|
||||
public static final RegistryObject<Item> STRUCTURE_DEVICE = ITEMS_REG.register("structure_gen_device", StructureGenSelectionDevice::new);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user