idk
16
.gitignore
vendored
|
|
@ -1,29 +1,21 @@
|
|||
# gradle
|
||||
|
||||
#Gradle
|
||||
.gradle/
|
||||
build/
|
||||
out/
|
||||
classes/
|
||||
|
||||
# eclipse
|
||||
|
||||
*.launch
|
||||
|
||||
# idea
|
||||
|
||||
#IDEA
|
||||
.idea/
|
||||
*.iml
|
||||
*.ipr
|
||||
*.iws
|
||||
|
||||
# vscode
|
||||
|
||||
#vscode
|
||||
.settings/
|
||||
.vscode/
|
||||
bin/
|
||||
.classpath
|
||||
.project
|
||||
|
||||
# fabric
|
||||
|
||||
#fabric
|
||||
run/
|
||||
10
LICENSE
|
|
@ -1,4 +1,4 @@
|
|||
MIT License
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2020 deirn
|
||||
|
||||
|
|
@ -9,13 +9,13 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
|
|
|||
48
build.gradle
|
|
@ -6,37 +6,44 @@ plugins {
|
|||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
targetCompatibility = JavaVersion.VERSION_1_8
|
||||
|
||||
version = "${minecraft}-${mod}"
|
||||
archivesBaseName = project.archives_base_name
|
||||
version = "${project.mod_version}+minecraft-${project.minecraft_version}"
|
||||
group = project.maven_group
|
||||
|
||||
repositories {
|
||||
maven {
|
||||
name = "CottonMC"
|
||||
url = "http://server.bbkr.space:8081/artifactory/libs-release"
|
||||
name = "Spinnery"
|
||||
url "https://dl.bintray.com/spinnery/Spinnery"
|
||||
}
|
||||
maven {
|
||||
url = "https://jitpack.io"
|
||||
}
|
||||
maven {
|
||||
name = "NerdHubMC"
|
||||
url = "https://maven.abusedmaster.xyz/"
|
||||
}
|
||||
jcenter()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
//to change the versions see the gradle.properties file
|
||||
minecraft "com.mojang:minecraft:${minecraft}"
|
||||
mappings "net.fabricmc:yarn:${minecraft}+build.${yarn}:v2"
|
||||
modImplementation "net.fabricmc:fabric-loader:${loader}"
|
||||
minecraft "com.mojang:minecraft:${project.minecraft_version}"
|
||||
mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
|
||||
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
|
||||
|
||||
// Fabric API. This is technically optional, but you probably want it anyway.
|
||||
modImplementation "net.fabricmc.fabric-api:fabric-api:${fabric}"
|
||||
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}"
|
||||
|
||||
modCompile "io.github.cottonmc:LibGui:${libgui}+${minecraft}"
|
||||
include "io.github.cottonmc:LibGui:${libgui}+${minecraft}"
|
||||
modApi "me.shedaniel.cloth:config-2:${project.cloth_config}"
|
||||
include "me.shedaniel.cloth:config-2:${project.cloth_config}"
|
||||
|
||||
modApi "me.shedaniel.cloth:config-2:${cloth_config}"
|
||||
include "me.shedaniel.cloth:config-2:${cloth_config}"
|
||||
modCompile "me.sargunvohra.mcmods:autoconfig1u:${project.autoconfig}"
|
||||
include "me.sargunvohra.mcmods:autoconfig1u:${project.autoconfig}"
|
||||
|
||||
modCompile "me.sargunvohra.mcmods:autoconfig1u:${autoconfig}"
|
||||
include "me.sargunvohra.mcmods:autoconfig1u:${autoconfig}"
|
||||
modCompile "com.github.vini2003:spinnery:${project.spinnery}"
|
||||
include "com.github.vini2003:spinnery:${project.spinnery}"
|
||||
|
||||
modImplementation "io.github.prospector:modmenu:1.10.2+build.32"
|
||||
// PSA: Some older mods, compiled on Loom 0.2.1, might have outdated Maven POMs.
|
||||
// You may need to force-disable transitiveness on them.
|
||||
modImplementation "com.github.emilyploszaj:trinkets:${project.trinkets}"
|
||||
|
||||
modImplementation "io.github.prospector:modmenu:${project.modmenu}"
|
||||
}
|
||||
|
||||
processResources {
|
||||
|
|
@ -76,7 +83,10 @@ publishing {
|
|||
publications {
|
||||
mavenJava(MavenPublication) {
|
||||
// add all the jars that should be included when publishing to maven
|
||||
artifact(remapJar) {
|
||||
artifact(jar) {
|
||||
builtBy remapJar
|
||||
}
|
||||
artifact("${project.buildDir.absolutePath}/libs/${archivesBaseName}-${project.version}.jar"){
|
||||
builtBy remapJar
|
||||
}
|
||||
artifact(sourcesJar) {
|
||||
|
|
|
|||
|
|
@ -1,14 +1,19 @@
|
|||
# Done to increase the memory available to gradle.
|
||||
org.gradle.jvmargs=-Xmx1G
|
||||
org.gradle.jvmargs = -Xmx1G
|
||||
|
||||
mod = 1.0.0
|
||||
#Fabric properties
|
||||
minecraft_version = 1.15.2
|
||||
yarn_mappings = 1.15.2+build.15
|
||||
loader_version = 0.8.4+build.198
|
||||
|
||||
minecraft = 1.15.2
|
||||
yarn = 15
|
||||
loader = 0.8.2+build.194
|
||||
#Mod properties
|
||||
mod_version = 0.0.0
|
||||
maven_group = io.gitlab.intended.storagenetworks
|
||||
archives_base_name = storagenetworks
|
||||
|
||||
# Dependencies
|
||||
fabric = 0.5.1+build.294-1.15
|
||||
libgui = 1.8.1
|
||||
cloth_config = 2.13.3
|
||||
autoconfig = 2.0.1
|
||||
#Dependencies
|
||||
fabric_api_version = 0.10.8+build.310-1.15
|
||||
cloth_config = 2.13.3
|
||||
autoconfig = 2.0.1
|
||||
spinnery = 2.0.28+fabric-1.15.2
|
||||
trinkets = 2.4.2
|
||||
modmenu = 1.10.2+build.32
|
||||
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
4
gradle/wrapper/gradle-wrapper.properties
vendored
|
|
@ -1,5 +1,5 @@
|
|||
#Sat Apr 18 15:42:54 ICT 2020
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip
|
||||
#Thu May 28 11:20:34 ICT 2020
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-5.5.1-all.zip
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStorePath=wrapper/dists
|
||||
|
|
|
|||
33
gradlew
vendored
|
|
@ -125,8 +125,8 @@ if $darwin; then
|
|||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
||||
fi
|
||||
|
||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
|
||||
# For Cygwin, switch paths to Windows format before running java
|
||||
if $cygwin ; then
|
||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
||||
|
|
@ -154,19 +154,19 @@ if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
|
|||
else
|
||||
eval `echo args$i`="\"$arg\""
|
||||
fi
|
||||
i=`expr $i + 1`
|
||||
i=$((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
|
||||
|
||||
|
|
@ -175,9 +175,14 @@ 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" "$@"
|
||||
|
|
|
|||
3
gradlew.bat
vendored
|
|
@ -29,9 +29,6 @@ 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="-Xmx64m" "-Xms64m"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,21 +0,0 @@
|
|||
package bai.deirn.fsn;
|
||||
|
||||
import bai.deirn.fsn.config.ModConfig;
|
||||
import bai.deirn.fsn.registry.BlockEntityTypeRegistry;
|
||||
import bai.deirn.fsn.registry.BlockRegistry;
|
||||
import bai.deirn.fsn.registry.ItemRegistry;
|
||||
import me.sargunvohra.mcmods.autoconfig1u.AutoConfig;
|
||||
import me.sargunvohra.mcmods.autoconfig1u.serializer.JanksonConfigSerializer;
|
||||
import net.fabricmc.api.ModInitializer;
|
||||
|
||||
public class FSN implements ModInitializer {
|
||||
|
||||
@Override
|
||||
public void onInitialize() {
|
||||
AutoConfig.register(ModConfig.class, JanksonConfigSerializer::new);
|
||||
BlockRegistry.init();
|
||||
BlockEntityTypeRegistry.init();
|
||||
ItemRegistry.init();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,99 +0,0 @@
|
|||
package bai.deirn.fsn;
|
||||
|
||||
import bai.deirn.fsn.config.ModConfig;
|
||||
import bai.deirn.fsn.registry.BlockRegistry;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import me.sargunvohra.mcmods.autoconfig1u.AutoConfig;
|
||||
import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.entity.BlockEntity;
|
||||
import net.minecraft.block.entity.BlockEntityType;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.BlockItem;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemGroup;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.text.TranslatableText;
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
import net.minecraft.util.shape.VoxelShape;
|
||||
import net.minecraft.util.shape.VoxelShapes;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Supplier;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public abstract class Utils {
|
||||
|
||||
public static final String MOD_ID = "fsn";
|
||||
public static final Logger LOGGER = Logger.getLogger(MOD_ID);
|
||||
|
||||
private static final ItemGroup ITEM_GROUP = FabricItemGroupBuilder.build(
|
||||
id("item_group"), () -> new ItemStack(BlockRegistry.MASTER)
|
||||
);
|
||||
|
||||
// Just so i could make shape with the values blockbench shows.
|
||||
public static VoxelShape cuboid(double xPos, double yPos, double zPos, double xSize, double ySize, double zSize) {
|
||||
double xMin = xPos / 16d;
|
||||
double yMin = yPos / 16d;
|
||||
double zMin = zPos / 16d;
|
||||
double xMax = (xPos + xSize) / 16d;
|
||||
double yMax = (yPos + ySize) / 16d;
|
||||
double zMax = (zPos + zSize) / 16d;
|
||||
|
||||
return VoxelShapes.cuboid(xMin, yMin, zMin, xMax, yMax, zMax);
|
||||
}
|
||||
|
||||
public static Item.Settings getItemSettings() {
|
||||
return new Item.Settings().group(ITEM_GROUP);
|
||||
}
|
||||
|
||||
// Block registry
|
||||
public static void register(String id, Block block) {
|
||||
Registry.register(Registry.BLOCK, id(id), block);
|
||||
register(id, new BlockItem(block, getItemSettings()));
|
||||
}
|
||||
|
||||
// BlockEntityType registry
|
||||
public static void register(String id, BlockEntityType<? extends BlockEntity> blockEntityType) {
|
||||
Registry.register(Registry.BLOCK_ENTITY_TYPE, id(id), blockEntityType);
|
||||
}
|
||||
|
||||
// Item registry
|
||||
public static void register(String id, Item item) {
|
||||
Registry.register(Registry.ITEM, id(id), item);
|
||||
}
|
||||
|
||||
public static List<BlockPos> getPosAround(BlockPos pos){
|
||||
return ImmutableList.of(
|
||||
pos.north(),
|
||||
pos.south(),
|
||||
pos.east(),
|
||||
pos.west(),
|
||||
pos.up(),
|
||||
pos.down()
|
||||
);
|
||||
}
|
||||
|
||||
public static BlockEntityType<?> createBlockEntity(Supplier<? extends BlockEntity> supplier, Block block) {
|
||||
return BlockEntityType.Builder.create(supplier, block).build(null);
|
||||
}
|
||||
|
||||
public static Identifier id(String path) {
|
||||
return new Identifier(MOD_ID, path);
|
||||
}
|
||||
|
||||
public static ModConfig config() {
|
||||
return AutoConfig.getConfigHolder(ModConfig.class).getConfig();
|
||||
}
|
||||
|
||||
public static TranslatableText text(String key) {
|
||||
return new TranslatableText("text."+MOD_ID+"."+key);
|
||||
}
|
||||
|
||||
public static void selfText(PlayerEntity player, String key) {
|
||||
player.addChatMessage(text(key), false);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,123 +0,0 @@
|
|||
package bai.deirn.fsn.block;
|
||||
|
||||
import bai.deirn.fsn.Utils;
|
||||
import bai.deirn.fsn.block.entity.CableBlockEntity;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import net.fabricmc.fabric.api.block.FabricBlockSettings;
|
||||
import net.fabricmc.fabric.api.tools.FabricToolTags;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.Material;
|
||||
import net.minecraft.block.entity.BlockEntity;
|
||||
import net.minecraft.entity.EntityContext;
|
||||
import net.minecraft.item.ItemPlacementContext;
|
||||
import net.minecraft.state.StateManager;
|
||||
import net.minecraft.state.property.BooleanProperty;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.Direction;
|
||||
import net.minecraft.util.shape.VoxelShape;
|
||||
import net.minecraft.util.shape.VoxelShapes;
|
||||
import net.minecraft.world.BlockView;
|
||||
import net.minecraft.world.IWorld;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class CableBlock extends ChildBlock {
|
||||
|
||||
public static final Settings SETTINGS = FabricBlockSettings
|
||||
.of(Material.GLASS)
|
||||
.breakByHand(true)
|
||||
.breakByTool(FabricToolTags.PICKAXES)
|
||||
.hardness(3F)
|
||||
.build();
|
||||
|
||||
public static final BooleanProperty NORTH = BooleanProperty.of("north");
|
||||
public static final BooleanProperty SOUTH = BooleanProperty.of("south");
|
||||
public static final BooleanProperty EAST = BooleanProperty.of("east");
|
||||
public static final BooleanProperty WEST = BooleanProperty.of("west");
|
||||
public static final BooleanProperty UP = BooleanProperty.of("up");
|
||||
public static final BooleanProperty DOWN = BooleanProperty.of("down");
|
||||
|
||||
public CableBlock(Settings settings) {
|
||||
super(settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockEntity createBlockEntity(BlockView view) {
|
||||
return new CableBlockEntity();
|
||||
}
|
||||
|
||||
private boolean canConnect(World world, BlockPos pos) {
|
||||
BlockState state = world.getBlockState(pos);
|
||||
return canConnect(world, pos, state);
|
||||
}
|
||||
|
||||
protected boolean canConnect(World world, BlockPos pos, BlockState state) {
|
||||
Block block = state.getBlock();
|
||||
return block instanceof ModBlock;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void appendProperties(StateManager.Builder<Block, BlockState> builder) {
|
||||
builder.add(NORTH, SOUTH, EAST, WEST, UP, DOWN);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockState getPlacementState(ItemPlacementContext ctx) {
|
||||
World world = ctx.getWorld();
|
||||
BlockPos pos = ctx.getBlockPos();
|
||||
|
||||
return this.getDefaultState()
|
||||
.with(NORTH, this.canConnect(world, pos.north()))
|
||||
.with(SOUTH, this.canConnect(world, pos.south()))
|
||||
.with(EAST, this.canConnect(world, pos.east()))
|
||||
.with(WEST, this.canConnect(world, pos.west()))
|
||||
.with(UP, this.canConnect(world, pos.up()))
|
||||
.with(DOWN, this.canConnect(world, pos.down()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockState getStateForNeighborUpdate(BlockState state, Direction facing, BlockState neighborState, IWorld world, BlockPos pos, BlockPos neighborPos) {
|
||||
super.getStateForNeighborUpdate(state, facing, neighborState, world, pos, neighborPos);
|
||||
Map<Direction, BooleanProperty> propertyMap = ImmutableMap.<Direction, BooleanProperty>builder()
|
||||
.put(Direction.NORTH, NORTH)
|
||||
.put(Direction.SOUTH, SOUTH)
|
||||
.put(Direction.EAST, EAST)
|
||||
.put(Direction.WEST, WEST)
|
||||
.put(Direction.UP, UP)
|
||||
.put(Direction.DOWN, DOWN)
|
||||
.build();
|
||||
|
||||
return state.with(propertyMap.get(facing), this.canConnect(world.getWorld(), neighborPos, neighborState));
|
||||
}
|
||||
|
||||
@Override
|
||||
public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, EntityContext context) {
|
||||
VoxelShape north = Utils.cuboid(6, 6, 0, 4, 4, 10);
|
||||
VoxelShape south = Utils.cuboid(6, 6, 6, 4, 4, 10);
|
||||
VoxelShape east = Utils.cuboid(6, 6, 6, 10, 4, 4);
|
||||
VoxelShape west = Utils.cuboid(0, 6, 6, 10, 4, 4);
|
||||
VoxelShape up = Utils.cuboid(6, 6, 6, 4, 10, 4);
|
||||
VoxelShape down = Utils.cuboid(6, 0, 6, 4, 10, 4);
|
||||
|
||||
boolean n = state.get(NORTH);
|
||||
boolean s = state.get(SOUTH);
|
||||
boolean e = state.get(EAST);
|
||||
boolean w = state.get(WEST);
|
||||
boolean u = state.get(UP);
|
||||
boolean d = state.get(DOWN);
|
||||
|
||||
VoxelShape result = Utils.cuboid(6, 6, 6, 4, 4, 4);
|
||||
|
||||
if (n) result = VoxelShapes.union(result, north);
|
||||
if (s) result = VoxelShapes.union(result, south);
|
||||
if (e) result = VoxelShapes.union(result, east);
|
||||
if (w) result = VoxelShapes.union(result, west);
|
||||
if (u) result = VoxelShapes.union(result, up);
|
||||
if (d) result = VoxelShapes.union(result, down);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,167 +0,0 @@
|
|||
package bai.deirn.fsn.block;
|
||||
|
||||
import bai.deirn.fsn.Utils;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockEntityProvider;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.entity.BlockEntity;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.BlockView;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public abstract class ChildBlock extends ModBlock implements BlockEntityProvider {
|
||||
|
||||
public ChildBlock(Settings settings) {
|
||||
super(settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockEntity createBlockEntity(BlockView view) {
|
||||
return null;
|
||||
}
|
||||
|
||||
private void validateMaster(World world, BlockPos pos) {
|
||||
BlockEntity blockEntity = world.getBlockEntity(pos);
|
||||
CompoundTag nbt = blockEntity.toTag(new CompoundTag());
|
||||
if (nbt.getBoolean("hasMaster")) {
|
||||
CompoundTag master = nbt.getCompound("masterPos");
|
||||
BlockPos masterPos = new BlockPos(master.getInt("x"), master.getInt("y"), master.getInt("z"));
|
||||
if (!(world.getBlockState(masterPos).getBlock() instanceof MasterBlock)) {
|
||||
nbt.putBoolean("hasMaster", false);
|
||||
blockEntity.fromTag(nbt);
|
||||
blockEntity.markDirty();
|
||||
world.updateNeighbors(pos, world.getBlockState(pos).getBlock());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@Override
|
||||
public BlockState getStateForNeighborUpdate(BlockState state, Direction facing, BlockState neighborState, IWorld world, BlockPos pos, BlockPos neighborPos) {
|
||||
BlockEntity blockEntity = world.getBlockEntity(pos);
|
||||
CompoundTag currentNbt = blockEntity.toTag(new CompoundTag());
|
||||
Block neighborBlock = neighborState.getBlock();
|
||||
|
||||
boolean currentlyHasMaster = currentNbt.getBoolean("hasMaster");
|
||||
|
||||
if (currentlyHasMaster) {
|
||||
CompoundTag currentMasterPos = currentNbt.getCompound("masterPos");
|
||||
if (neighborBlock instanceof ChildBlock) {
|
||||
BlockEntity neighborBlockEntity = world.getBlockEntity(neighborPos);
|
||||
CompoundTag neighborNbt = neighborBlockEntity.toTag(new CompoundTag());
|
||||
boolean neighborHasMaster = neighborNbt.getBoolean("hasMaster");
|
||||
if (!neighborHasMaster) {
|
||||
CompoundTag neighborMasterPos = neighborNbt.getCompound("masterPos");
|
||||
Utils.LOGGER.warning(currentMasterPos.toString()+" "+neighborMasterPos.toString());
|
||||
if (currentMasterPos.toString().equals(neighborMasterPos.toString())) {
|
||||
currentNbt.putBoolean("hasMaster", false);
|
||||
blockEntity.fromTag(currentNbt);
|
||||
blockEntity.markDirty();
|
||||
world.updateNeighbors(pos, state.getBlock());
|
||||
} else {
|
||||
neighborNbt.put("masterPos", currentMasterPos);
|
||||
neighborNbt.putBoolean("hasMaster", true);
|
||||
neighborBlockEntity.fromTag(neighborNbt);
|
||||
neighborBlockEntity.markDirty();
|
||||
world.updateNeighbors(neighborPos, neighborState.getBlock());
|
||||
}
|
||||
}
|
||||
} else if (!(neighborBlock instanceof MasterBlock)) {
|
||||
BlockPos masterPos = new BlockPos(currentMasterPos.getInt("x"), currentMasterPos.getInt("y"), currentMasterPos.getInt("z"));
|
||||
Block masterBlock = world.getBlockState(masterPos).getBlock();
|
||||
if (!(masterBlock instanceof MasterBlock)) {
|
||||
currentNbt.putBoolean("hasMaster", false);
|
||||
blockEntity.fromTag(currentNbt);
|
||||
blockEntity.markDirty();
|
||||
world.updateNeighbors(pos, state.getBlock());
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!currentlyHasMaster) {
|
||||
if (neighborBlock instanceof ChildBlock) {
|
||||
BlockEntity neighborBlockEntity = world.getBlockEntity(neighborPos);
|
||||
CompoundTag neighborNbt = neighborBlockEntity.toTag(new CompoundTag());
|
||||
blockEntity.fromTag(neighborNbt);
|
||||
blockEntity.markDirty();
|
||||
world.updateNeighbors(pos, state.getBlock());
|
||||
} else if (neighborBlock instanceof MasterBlock) {
|
||||
CompoundTag masterPos = new CompoundTag();
|
||||
masterPos.putInt("x", neighborPos.getX());
|
||||
masterPos.putInt("y", neighborPos.getY());
|
||||
masterPos.putInt("z", neighborPos.getZ());
|
||||
currentNbt.put("masterPos", masterPos);
|
||||
currentNbt.putBoolean("hasMaster", true);
|
||||
blockEntity.fromTag(currentNbt);
|
||||
blockEntity.markDirty();
|
||||
world.updateNeighbors(pos, state.getBlock());
|
||||
}
|
||||
}
|
||||
|
||||
return state;
|
||||
}
|
||||
*/
|
||||
|
||||
private int updateCount = 0;
|
||||
|
||||
@Override
|
||||
public void neighborUpdate(BlockState state, World world, BlockPos pos, Block block, BlockPos neighborPos, boolean moved) {
|
||||
BlockEntity blockEntity = world.getBlockEntity(pos);
|
||||
BlockState neighborState = world.getBlockState(neighborPos);
|
||||
Block neighborBlock = neighborState.getBlock();
|
||||
|
||||
CompoundTag currentNbt = blockEntity.toTag(new CompoundTag());
|
||||
boolean currentlyHasMaster = currentNbt.getBoolean("hasMaster");
|
||||
|
||||
if (neighborBlock instanceof ChildBlock) {
|
||||
BlockEntity neighborBlockEntity = world.getBlockEntity(neighborPos);
|
||||
CompoundTag neighborNbt = neighborBlockEntity.toTag(new CompoundTag());
|
||||
boolean neighborHasMaster = neighborNbt.getBoolean("hasMaster");
|
||||
if (currentlyHasMaster && !neighborHasMaster) {
|
||||
CompoundTag masterPos = currentNbt.getCompound("masterPos");
|
||||
CompoundTag neighborMasterPos = neighborNbt.getCompound("masterPos");
|
||||
if (masterPos.equals(neighborMasterPos)) {
|
||||
currentNbt.putBoolean("hasMaster", false);
|
||||
blockEntity.fromTag(currentNbt);
|
||||
blockEntity.markDirty();
|
||||
world.updateNeighbors(pos, block);
|
||||
} else {
|
||||
neighborBlockEntity.fromTag(currentNbt);
|
||||
neighborBlockEntity.markDirty();
|
||||
world.updateNeighbors(neighborPos, neighborBlock);
|
||||
}
|
||||
}
|
||||
if (!currentlyHasMaster && neighborHasMaster) {
|
||||
blockEntity.fromTag(neighborNbt);
|
||||
blockEntity.markDirty();
|
||||
world.updateNeighbors(pos, block);
|
||||
}
|
||||
} else if (neighborBlock instanceof MasterBlock) {
|
||||
if (!currentlyHasMaster) {
|
||||
CompoundTag masterPos = new CompoundTag();
|
||||
masterPos.putInt("x", neighborPos.getX());
|
||||
masterPos.putInt("y", neighborPos.getY());
|
||||
masterPos.putInt("z", neighborPos.getZ());
|
||||
currentNbt.put("masterPos", masterPos);
|
||||
currentNbt.putBoolean("hasMaster", true);
|
||||
blockEntity.fromTag(currentNbt);
|
||||
blockEntity.markDirty();
|
||||
world.updateNeighbors(pos, block);
|
||||
}
|
||||
} else if (currentlyHasMaster) {
|
||||
CompoundTag master = currentNbt.getCompound("masterPos");
|
||||
BlockPos masterPos = new BlockPos(master.getInt("x"), master.getInt("y"), master.getInt("z"));
|
||||
currentNbt.putBoolean("hasMaster", false);
|
||||
blockEntity.fromTag(currentNbt);
|
||||
blockEntity.markDirty();
|
||||
world.updateNeighbors(pos, block);
|
||||
world.updateNeighbors(masterPos, world.getBlockState(masterPos).getBlock());
|
||||
} else {
|
||||
updateCount = 0;
|
||||
}
|
||||
|
||||
updateCount++;
|
||||
Utils.LOGGER.warning("updateCount: " + updateCount);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
package bai.deirn.fsn.block;
|
||||
|
||||
import bai.deirn.fsn.Utils;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.entity.EntityContext;
|
||||
import net.minecraft.inventory.Inventory;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.shape.VoxelShape;
|
||||
import net.minecraft.util.shape.VoxelShapes;
|
||||
import net.minecraft.world.BlockView;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public abstract class ConnectorCableBlock extends CableBlock {
|
||||
|
||||
public ConnectorCableBlock(Settings settings) {
|
||||
super(settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean canConnect(World world, BlockPos pos, BlockState state) {
|
||||
Block block = state.getBlock();
|
||||
boolean result = block instanceof ModBlock;
|
||||
if (!result && block.hasBlockEntity()) {
|
||||
result = Inventory.class.isAssignableFrom(world.getBlockEntity(pos).getClass());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, EntityContext context) {
|
||||
VoxelShape end = Utils.cuboid(5, 5, 5, 6, 6, 6);
|
||||
VoxelShape result = super.getOutlineShape(state, view, pos, context);
|
||||
return VoxelShapes.union(result, end);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
package bai.deirn.fsn.block;
|
||||
|
||||
import bai.deirn.fsn.Utils;
|
||||
import bai.deirn.fsn.block.entity.CraftingTerminalBlockEntity;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.entity.BlockEntity;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.util.ActionResult;
|
||||
import net.minecraft.util.Hand;
|
||||
import net.minecraft.util.hit.BlockHitResult;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.BlockView;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class CraftingTerminalBlock extends ChildBlock {
|
||||
|
||||
public CraftingTerminalBlock(Settings settings) {
|
||||
super(settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockEntity createBlockEntity(BlockView view) {
|
||||
return new CraftingTerminalBlockEntity();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) {
|
||||
Utils.selfText(player, "useCraftingTerminal");
|
||||
return super.onUse(state, world, pos, player, hand, hit);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
package bai.deirn.fsn.block;
|
||||
|
||||
public class ExportCableBlock extends ConnectorCableBlock {
|
||||
|
||||
public ExportCableBlock(Settings settings) {
|
||||
super(settings);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
package bai.deirn.fsn.block;
|
||||
|
||||
public class ImportCableBlock extends ConnectorCableBlock {
|
||||
|
||||
public ImportCableBlock(Settings settings) {
|
||||
super(settings);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,88 +0,0 @@
|
|||
package bai.deirn.fsn.block;
|
||||
|
||||
import bai.deirn.fsn.block.entity.MasterBlockEntity;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockEntityProvider;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.entity.BlockEntity;
|
||||
import net.minecraft.client.item.TooltipContext;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.text.Text;
|
||||
import net.minecraft.text.TranslatableText;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.BlockView;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class MasterBlock extends ModBlock implements BlockEntityProvider {
|
||||
|
||||
public MasterBlock(Settings settings) {
|
||||
super(settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockEntity createBlockEntity(BlockView view) {
|
||||
return new MasterBlockEntity();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void buildTooltip(ItemStack stack, BlockView view, List<Text> tooltip, TooltipContext options) {
|
||||
super.buildTooltip(stack, view, tooltip, options);
|
||||
tooltip.add(new TranslatableText(stack.getTranslationKey()+".tooltip2"));
|
||||
}
|
||||
|
||||
/*
|
||||
@Override
|
||||
public BlockState getStateForNeighborUpdate(BlockState state, Direction facing, BlockState neighborState, IWorld world, BlockPos pos, BlockPos neighborPos) {
|
||||
Block neighborBlock = neighborState.getBlock();
|
||||
|
||||
if (neighborBlock instanceof ChildBlock) {
|
||||
BlockEntity neighborBlockEntity = world.getBlockEntity(neighborPos);
|
||||
CompoundTag neighborNbt = neighborBlockEntity.toTag(new CompoundTag());
|
||||
boolean neighborHasMaster = neighborNbt.getBoolean("hasMaster");
|
||||
|
||||
if (!neighborHasMaster) {
|
||||
CompoundTag masterPos = new CompoundTag();
|
||||
masterPos.putInt("x", pos.getX());
|
||||
masterPos.putInt("y", pos.getY());
|
||||
masterPos.putInt("z", pos.getZ());
|
||||
neighborNbt.put("masterPos", masterPos);
|
||||
neighborNbt.putBoolean("hasMaster", true);
|
||||
neighborBlockEntity.fromTag(neighborNbt);
|
||||
neighborBlockEntity.markDirty();
|
||||
}
|
||||
}
|
||||
|
||||
return state;
|
||||
}
|
||||
*/
|
||||
|
||||
@Override
|
||||
public void neighborUpdate(BlockState state, World world, BlockPos pos, Block block, BlockPos neighborPos, boolean moved) {
|
||||
super.neighborUpdate(state, world, pos, block, neighborPos, moved);
|
||||
|
||||
BlockState neighborState = world.getBlockState(neighborPos);
|
||||
Block neighborBlock = neighborState.getBlock();
|
||||
|
||||
if (neighborBlock instanceof ChildBlock) {
|
||||
BlockEntity neighborBlockEntity = world.getBlockEntity(neighborPos);
|
||||
CompoundTag neighborNbt = neighborBlockEntity.toTag(new CompoundTag());
|
||||
boolean neighborHasMaster = neighborNbt.getBoolean("hasMaster");
|
||||
|
||||
if (!neighborHasMaster) {
|
||||
CompoundTag masterPos = new CompoundTag();
|
||||
masterPos.putInt("x", pos.getX());
|
||||
masterPos.putInt("y", pos.getY());
|
||||
masterPos.putInt("z", pos.getZ());
|
||||
neighborNbt.put("masterPos", masterPos);
|
||||
neighborNbt.putBoolean("hasMaster", true);
|
||||
neighborBlockEntity.fromTag(neighborNbt);
|
||||
neighborBlockEntity.markDirty();
|
||||
world.updateNeighbors(neighborPos, neighborBlock);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
package bai.deirn.fsn.block;
|
||||
|
||||
import net.fabricmc.fabric.api.block.FabricBlockSettings;
|
||||
import net.fabricmc.fabric.api.tools.FabricToolTags;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.Material;
|
||||
import net.minecraft.client.item.TooltipContext;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.text.Text;
|
||||
import net.minecraft.text.TranslatableText;
|
||||
import net.minecraft.world.BlockView;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ModBlock extends Block {
|
||||
|
||||
public static final Settings SETTINGS = FabricBlockSettings
|
||||
.of(Material.STONE)
|
||||
.breakByHand(true)
|
||||
.breakByTool(FabricToolTags.PICKAXES)
|
||||
.hardness(5F)
|
||||
.build();
|
||||
|
||||
public ModBlock(Settings settings) {
|
||||
super(settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void buildTooltip(ItemStack stack, BlockView view, List<Text> tooltip, TooltipContext options) {
|
||||
tooltip.add(new TranslatableText(stack.getTranslationKey()+".tooltip"));
|
||||
}
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
package bai.deirn.fsn.block;
|
||||
|
||||
public class ProcessingCableBlock extends ConnectorCableBlock {
|
||||
|
||||
public ProcessingCableBlock(Settings settings) {
|
||||
super(settings);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
package bai.deirn.fsn.block;
|
||||
|
||||
import bai.deirn.fsn.block.entity.ProcessingTerminalBlockEntity;
|
||||
import net.minecraft.block.entity.BlockEntity;
|
||||
import net.minecraft.world.BlockView;
|
||||
|
||||
public class ProcessingTerminalBlock extends ChildBlock {
|
||||
|
||||
public ProcessingTerminalBlock(Settings settings) {
|
||||
super(settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockEntity createBlockEntity(BlockView view) {
|
||||
return new ProcessingTerminalBlockEntity();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
package bai.deirn.fsn.block;
|
||||
|
||||
import bai.deirn.fsn.block.entity.StorageCableBlockEntity;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.entity.BlockEntity;
|
||||
import net.minecraft.entity.LivingEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.nbt.NbtHelper;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.BlockView;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class StorageCableBlock extends ConnectorCableBlock {
|
||||
|
||||
public StorageCableBlock(Settings settings) {
|
||||
super(settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockEntity createBlockEntity(BlockView view) {
|
||||
return new StorageCableBlockEntity();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlaced(World world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack itemStack) {
|
||||
super.onPlaced(world, pos, state, placer, itemStack);
|
||||
|
||||
CompoundTag masterPos = world.getBlockEntity(pos).toTag(new CompoundTag()).getCompound("masterPos");
|
||||
BlockEntity master = world.getBlockEntity(NbtHelper.toBlockPos(masterPos));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
package bai.deirn.fsn.block.entity;
|
||||
|
||||
import bai.deirn.fsn.registry.BlockEntityTypeRegistry;
|
||||
|
||||
public class CableBlockEntity extends ChildBlockEntity {
|
||||
|
||||
public CableBlockEntity() {
|
||||
super(BlockEntityTypeRegistry.CABLE);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
package bai.deirn.fsn.block.entity;
|
||||
|
||||
import net.minecraft.block.entity.BlockEntity;
|
||||
import net.minecraft.block.entity.BlockEntityType;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
|
||||
public abstract class ChildBlockEntity extends BlockEntity {
|
||||
|
||||
protected boolean hasMaster = false;
|
||||
protected CompoundTag masterPos = new CompoundTag();
|
||||
protected int[] masterPosArray = new int[3];
|
||||
|
||||
public ChildBlockEntity(BlockEntityType<?> type) {
|
||||
super(type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompoundTag toTag(CompoundTag tag) {
|
||||
super.toTag(tag);
|
||||
|
||||
tag.putBoolean("hasMaster", hasMaster);
|
||||
this.masterPos.putInt("x", masterPosArray[0]);
|
||||
this.masterPos.putInt("y", masterPosArray[1]);
|
||||
this.masterPos.putInt("z", masterPosArray[2]);
|
||||
tag.put("masterPos", this.masterPos);
|
||||
|
||||
return tag;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromTag(CompoundTag tag) {
|
||||
super.fromTag(tag);
|
||||
|
||||
this.hasMaster = tag.getBoolean("hasMaster");
|
||||
this.masterPos = tag.getCompound("masterPos");
|
||||
this.masterPosArray[0] = this.masterPos.getInt("x");
|
||||
this.masterPosArray[1] = this.masterPos.getInt("y");
|
||||
this.masterPosArray[2] = this.masterPos.getInt("z");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
package bai.deirn.fsn.block.entity;
|
||||
|
||||
import bai.deirn.fsn.registry.BlockEntityTypeRegistry;
|
||||
|
||||
public class CraftingTerminalBlockEntity extends ChildBlockEntity {
|
||||
|
||||
public CraftingTerminalBlockEntity() {
|
||||
super(BlockEntityTypeRegistry.CRAFTING_TERMINAL);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
package bai.deirn.fsn.block.entity;
|
||||
|
||||
import bai.deirn.fsn.registry.BlockEntityTypeRegistry;
|
||||
import net.minecraft.block.entity.BlockEntity;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.nbt.ListTag;
|
||||
import net.minecraft.nbt.Tag;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class MasterBlockEntity extends BlockEntity {
|
||||
|
||||
private ListTag storagePos = new ListTag();
|
||||
private List<int[]> storagePosArray = new ArrayList<>();
|
||||
|
||||
public MasterBlockEntity() {
|
||||
super(BlockEntityTypeRegistry.MASTER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompoundTag toTag(CompoundTag tag) {
|
||||
super.toTag(tag);
|
||||
|
||||
this.storagePosArray.forEach(storage -> {
|
||||
CompoundTag compoundTag = new CompoundTag();
|
||||
compoundTag.putInt("x", storage[0]);
|
||||
compoundTag.putInt("y", storage[1]);
|
||||
compoundTag.putInt("z", storage[2]);
|
||||
this.storagePos.add(compoundTag);
|
||||
});
|
||||
|
||||
tag.put("storagePos", storagePos);
|
||||
|
||||
return tag;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromTag(CompoundTag tag) {
|
||||
super.fromTag(tag);
|
||||
|
||||
this.storagePos = (ListTag) tag.get("storagePos");
|
||||
this.storagePosArray.clear();
|
||||
for (Tag storage : this.storagePos) {
|
||||
CompoundTag compoundTag = (CompoundTag) storage;
|
||||
int[] ints = {
|
||||
compoundTag.getInt("x"),
|
||||
compoundTag.getInt("y"),
|
||||
compoundTag.getInt("z")
|
||||
};
|
||||
storagePosArray.add(ints);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
package bai.deirn.fsn.block.entity;
|
||||
|
||||
import bai.deirn.fsn.registry.BlockEntityTypeRegistry;
|
||||
|
||||
public class ProcessingTerminalBlockEntity extends ChildBlockEntity {
|
||||
|
||||
public ProcessingTerminalBlockEntity() {
|
||||
super(BlockEntityTypeRegistry.PROCESSING_TERMINAL);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
package bai.deirn.fsn.block.entity;
|
||||
|
||||
import bai.deirn.fsn.registry.BlockEntityTypeRegistry;
|
||||
|
||||
public class StorageCableBlockEntity extends ChildBlockEntity {
|
||||
|
||||
public StorageCableBlockEntity() {
|
||||
super(BlockEntityTypeRegistry.STORAGE_CABLE);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
package bai.deirn.fsn.config;
|
||||
|
||||
import bai.deirn.fsn.Utils;
|
||||
import me.sargunvohra.mcmods.autoconfig1u.ConfigData;
|
||||
import me.sargunvohra.mcmods.autoconfig1u.annotation.Config;
|
||||
import me.sargunvohra.mcmods.autoconfig1u.annotation.ConfigEntry;
|
||||
|
||||
@Config(name = Utils.MOD_ID)
|
||||
@Config.Gui.Background(Utils.MOD_ID+":textures/gui/config.png")
|
||||
public class ModConfig implements ConfigData {
|
||||
|
||||
@ConfigEntry.Gui.Tooltip
|
||||
public boolean remote0 = true;
|
||||
@ConfigEntry.Gui.Tooltip
|
||||
public boolean remote1 = true;
|
||||
@ConfigEntry.Gui.Tooltip
|
||||
public boolean remote2 = true;
|
||||
@ConfigEntry.Gui.Tooltip
|
||||
public boolean remote3 = true;
|
||||
|
||||
}
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
package bai.deirn.fsn.config;
|
||||
|
||||
import bai.deirn.fsn.Utils;
|
||||
import io.github.prospector.modmenu.api.ModMenuApi;
|
||||
import me.sargunvohra.mcmods.autoconfig1u.AutoConfig;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class ModMenuIntegration implements ModMenuApi {
|
||||
|
||||
@Override
|
||||
public String getModId() {
|
||||
return Utils.MOD_ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Supplier<Screen>> getConfigScreen(Screen screen) {
|
||||
return Optional.of(AutoConfig.getConfigScreen(ModConfig.class, screen));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
package bai.deirn.fsn.gui.controller;
|
||||
|
||||
import io.github.cottonmc.cotton.gui.CottonCraftingController;
|
||||
import net.minecraft.entity.player.PlayerInventory;
|
||||
import net.minecraft.recipe.RecipeType;
|
||||
|
||||
public class CraftingTerminalController extends CottonCraftingController {
|
||||
public CraftingTerminalController(RecipeType<?> recipeType, int syncId, PlayerInventory playerInventory) {
|
||||
super(recipeType, syncId, playerInventory);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
package bai.deirn.fsn.item;
|
||||
|
||||
import net.minecraft.client.item.TooltipContext;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.text.Text;
|
||||
import net.minecraft.text.TranslatableText;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ModItem extends Item {
|
||||
|
||||
public ModItem(Settings settings) {
|
||||
super(settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void appendTooltip(ItemStack stack, World world, List<Text> tooltip, TooltipContext context) {
|
||||
tooltip.add(new TranslatableText(stack.getTranslationKey()+".tooltip"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
package bai.deirn.fsn.mixin;
|
||||
|
||||
import net.minecraft.inventory.Inventory;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
|
||||
@Mixin(Inventory.class)
|
||||
public class MixinInventory {
|
||||
}
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
package bai.deirn.fsn.registry;
|
||||
|
||||
import bai.deirn.fsn.Utils;
|
||||
import bai.deirn.fsn.block.entity.*;
|
||||
import net.minecraft.block.entity.BlockEntityType;
|
||||
|
||||
public abstract class BlockEntityTypeRegistry {
|
||||
|
||||
public static final BlockEntityType<?> MASTER = Utils.createBlockEntity(MasterBlockEntity::new, BlockRegistry.MASTER);
|
||||
public static final BlockEntityType<?> CRAFTING_TERMINAL = Utils.createBlockEntity(CraftingTerminalBlockEntity::new, BlockRegistry.CRAFTING_TERMINAL);
|
||||
public static final BlockEntityType<?> PROCESSING_TERMINAL = Utils.createBlockEntity(ProcessingTerminalBlockEntity::new, BlockRegistry.PROCESSING_TERMINAL);
|
||||
|
||||
public static final BlockEntityType<?> CABLE = Utils.createBlockEntity(CableBlockEntity::new, BlockRegistry.CABLE);
|
||||
public static final BlockEntityType<?> STORAGE_CABLE = Utils.createBlockEntity(StorageCableBlockEntity::new, BlockRegistry.STORAGE_CABLE);
|
||||
|
||||
public static void init(){
|
||||
Utils.register("master", MASTER);
|
||||
Utils.register("crafting_terminal", CRAFTING_TERMINAL);
|
||||
Utils.register("processing_terminal", PROCESSING_TERMINAL);
|
||||
Utils.register("cable", CABLE);
|
||||
Utils.register("storage_cable", STORAGE_CABLE);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
package bai.deirn.fsn.registry;
|
||||
|
||||
import bai.deirn.fsn.Utils;
|
||||
import bai.deirn.fsn.block.*;
|
||||
import net.minecraft.block.Block;
|
||||
|
||||
public abstract class BlockRegistry {
|
||||
|
||||
public static final Block MASTER = new MasterBlock(ModBlock.SETTINGS);
|
||||
public static final Block CRAFTING_TERMINAL = new CraftingTerminalBlock(ModBlock.SETTINGS);
|
||||
public static final Block PROCESSING_TERMINAL = new ProcessingTerminalBlock(ModBlock.SETTINGS);
|
||||
|
||||
public static final Block CABLE = new CableBlock(CableBlock.SETTINGS);
|
||||
public static final Block STORAGE_CABLE = new StorageCableBlock(CableBlock.SETTINGS);
|
||||
public static final Block IMPORT_CABLE = new ImportCableBlock(CableBlock.SETTINGS);
|
||||
public static final Block EXPORT_CABLE = new ExportCableBlock(CableBlock.SETTINGS);
|
||||
public static final Block PROCESSING_CABLE = new ProcessingCableBlock(CableBlock.SETTINGS);
|
||||
|
||||
public static void init() {
|
||||
Utils.register("master", MASTER);
|
||||
Utils.register("crafting_terminal", CRAFTING_TERMINAL);
|
||||
Utils.register("processing_terminal", PROCESSING_TERMINAL);
|
||||
Utils.register("cable", CABLE);
|
||||
Utils.register("storage_cable", STORAGE_CABLE);
|
||||
Utils.register("import_cable", IMPORT_CABLE);
|
||||
Utils.register("export_cable", EXPORT_CABLE);
|
||||
Utils.register("processing_cable", PROCESSING_CABLE);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
package bai.deirn.fsn.registry;
|
||||
|
||||
public abstract class ItemRegistry {
|
||||
|
||||
public static void init() {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"multipart": [
|
||||
{"apply": {"model": "fsn:block/cable_center"}},
|
||||
{"when": {"north": true}, "apply": {"model": "fsn:block/cable_side"}},
|
||||
{"when": {"south": true}, "apply": {"model": "fsn:block/cable_side", "y": 180}},
|
||||
{"when": {"east" : true}, "apply": {"model": "fsn:block/cable_side", "y": 90}},
|
||||
{"when": {"west" : true}, "apply": {"model": "fsn:block/cable_side", "y": -90}},
|
||||
{"when": {"up" : true}, "apply": {"model": "fsn:block/cable_side", "x": -90}},
|
||||
{"when": {"down" : true}, "apply": {"model": "fsn:block/cable_side", "x": 90}}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"variants": {
|
||||
"": { "model": "fsn:block/crafting_terminal" }
|
||||
}
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"multipart": [
|
||||
{"apply": {"model": "fsn:block/cable_end_export"}},
|
||||
{"when": {"north": true}, "apply": {"model": "fsn:block/cable_side"}},
|
||||
{"when": {"south": true}, "apply": {"model": "fsn:block/cable_side", "y": 180}},
|
||||
{"when": {"east" : true}, "apply": {"model": "fsn:block/cable_side", "y": 90}},
|
||||
{"when": {"west" : true}, "apply": {"model": "fsn:block/cable_side", "y": -90}},
|
||||
{"when": {"up" : true}, "apply": {"model": "fsn:block/cable_side", "x": -90}},
|
||||
{"when": {"down" : true}, "apply": {"model": "fsn:block/cable_side", "x": 90}}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"multipart": [
|
||||
{"apply": {"model": "fsn:block/cable_end_import"}},
|
||||
{"when": {"north": true}, "apply": {"model": "fsn:block/cable_side"}},
|
||||
{"when": {"south": true}, "apply": {"model": "fsn:block/cable_side", "y": 180}},
|
||||
{"when": {"east" : true}, "apply": {"model": "fsn:block/cable_side", "y": 90}},
|
||||
{"when": {"west" : true}, "apply": {"model": "fsn:block/cable_side", "y": -90}},
|
||||
{"when": {"up" : true}, "apply": {"model": "fsn:block/cable_side", "x": -90}},
|
||||
{"when": {"down" : true}, "apply": {"model": "fsn:block/cable_side", "x": 90}}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"variants": {
|
||||
"": { "model": "fsn:block/master" }
|
||||
}
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"multipart": [
|
||||
{"apply": {"model": "fsn:block/cable_end_processing"}},
|
||||
{"when": {"north": true}, "apply": {"model": "fsn:block/cable_side"}},
|
||||
{"when": {"south": true}, "apply": {"model": "fsn:block/cable_side", "y": 180}},
|
||||
{"when": {"east" : true}, "apply": {"model": "fsn:block/cable_side", "y": 90}},
|
||||
{"when": {"west" : true}, "apply": {"model": "fsn:block/cable_side", "y": -90}},
|
||||
{"when": {"up" : true}, "apply": {"model": "fsn:block/cable_side", "x": -90}},
|
||||
{"when": {"down" : true}, "apply": {"model": "fsn:block/cable_side", "x": 90}}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"variants": {
|
||||
"": { "model": "fsn:block/processing_terminal" }
|
||||
}
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"multipart": [
|
||||
{"apply": {"model": "fsn:block/cable_end_storage"}},
|
||||
{"when": {"north": true}, "apply": {"model": "fsn:block/cable_side"}},
|
||||
{"when": {"south": true}, "apply": {"model": "fsn:block/cable_side", "y": 180}},
|
||||
{"when": {"east" : true}, "apply": {"model": "fsn:block/cable_side", "y": 90}},
|
||||
{"when": {"west" : true}, "apply": {"model": "fsn:block/cable_side", "y": -90}},
|
||||
{"when": {"up" : true}, "apply": {"model": "fsn:block/cable_side", "x": -90}},
|
||||
{"when": {"down" : true}, "apply": {"model": "fsn:block/cable_side", "x": 90}}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
{
|
||||
"itemGroup.fsn.item_group": "Storage Networks",
|
||||
"block.fsn.master": "Network Master",
|
||||
"block.fsn.master.tooltip": "§7Heart of the storage connection. §5One per connection.",
|
||||
"block.fsn.master.tooltip2": "§7ふらふらふらふら",
|
||||
"block.fsn.crafting_terminal": "Crafting Terminal",
|
||||
"block.fsn.crafting_terminal.tooltip": "§7nice",
|
||||
"block.fsn.processing_terminal": "Processing Terminal",
|
||||
"block.fsn.processing_terminal.tooltip": "§7Loading tooltip text...",
|
||||
"block.fsn.cable": "Cable",
|
||||
"block.fsn.cable.tooltip": "§7regular pipe",
|
||||
"block.fsn.storage_cable": "Storage Cable",
|
||||
"block.fsn.storage_cable.tooltip": "§7pipe for connecting inventories",
|
||||
"block.fsn.import_cable": "Import Cable",
|
||||
"block.fsn.import_cable.tooltip": "§7from block to network",
|
||||
"block.fsn.export_cable": "Export Cable",
|
||||
"block.fsn.export_cable.tooltip": "§7from network to block",
|
||||
"block.fsn.processing_cable": "Processing Cable",
|
||||
"block.fsn.processing_cable.tooltip": "§7Ok §kGoogle§r§7, cook me some steak. Well done steak.",
|
||||
"text.autoconfig.fsn.title": "Fabric Storage Networks",
|
||||
"text.autoconfig.fsn.option.remote0": "Enable Limited Remote",
|
||||
"text.autoconfig.fsn.option.remote0.@Tooltip": "§cRestart Required!",
|
||||
"text.autoconfig.fsn.option.remote1": "Enable Regular Crafting Remote",
|
||||
"text.autoconfig.fsn.option.remote1.@Tooltip": "§cRestart Required!",
|
||||
"text.autoconfig.fsn.option.remote2": "Enable Advanced Crafting Remote",
|
||||
"text.autoconfig.fsn.option.remote2.@Tooltip": "§cRestart Required!",
|
||||
"text.autoconfig.fsn.option.remote3": "Enable Ultimate Crafting Remote",
|
||||
"text.autoconfig.fsn.option.remote3.@Tooltip": "§cRestart Required!"
|
||||
}
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
{
|
||||
"textures": {
|
||||
"0": "fsn:block/cable",
|
||||
"particle": "fsn:block/cable"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [6, 6, 6],
|
||||
"to": [10, 10, 10],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [14, 14, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 0, 14, 4], "texture": "#0"},
|
||||
"east": {"uv": [6, 0, 10, 4], "texture": "#0"},
|
||||
"south": {"uv": [10, 0, 14, 4], "texture": "#0"},
|
||||
"west": {"uv": [6, 0, 10, 4], "texture": "#0"},
|
||||
"up": {"uv": [10, 4, 6, 0], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [10, 0, 6, 4], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
"parent": "block/cube_all",
|
||||
"textures": {
|
||||
"0": "fsn:block/cable",
|
||||
"particle": "fsn:block/cable"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [5, 5, 5],
|
||||
"to": [11, 11, 11],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [13, 13, 13]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 10, 6, 16], "texture": "#0"},
|
||||
"east": {"uv": [0, 10, 6, 16], "texture": "#0"},
|
||||
"south": {"uv": [0, 10, 6, 16], "texture": "#0"},
|
||||
"west": {"uv": [0, 10, 6, 16], "texture": "#0"},
|
||||
"up": {"uv": [0, 10, 6, 16], "texture": "#0"},
|
||||
"down": {"uv": [0, 10, 6, 16], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
"parent": "block/cube_all",
|
||||
"textures": {
|
||||
"0": "fsn:block/cable",
|
||||
"particle": "fsn:block/cable"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [5, 5, 5],
|
||||
"to": [11, 11, 11],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [13, 13, 13]},
|
||||
"faces": {
|
||||
"north": {"uv": [6, 4, 12, 10], "texture": "#0"},
|
||||
"east": {"uv": [6, 4, 12, 10], "texture": "#0"},
|
||||
"south": {"uv": [6, 4, 12, 10], "texture": "#0"},
|
||||
"west": {"uv": [6, 4, 12, 10], "texture": "#0"},
|
||||
"up": {"uv": [6, 4, 12, 10], "texture": "#0"},
|
||||
"down": {"uv": [6, 4, 12, 10], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
"parent": "block/cube_all",
|
||||
"textures": {
|
||||
"0": "fsn:block/cable",
|
||||
"particle": "fsn:block/cable"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [5, 5, 5],
|
||||
"to": [11, 11, 11],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [13, 13, 13]},
|
||||
"faces": {
|
||||
"north": {"uv": [6, 10, 12, 16], "texture": "#0"},
|
||||
"east": {"uv": [6, 10, 12, 16], "texture": "#0"},
|
||||
"south": {"uv": [6, 10, 12, 16], "texture": "#0"},
|
||||
"west": {"uv": [6, 10, 12, 16], "texture": "#0"},
|
||||
"up": {"uv": [6, 10, 12, 16], "texture": "#0"},
|
||||
"down": {"uv": [6, 10, 12, 16], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
"parent": "block/cube_all",
|
||||
"textures": {
|
||||
"0": "fsn:block/cable",
|
||||
"particle": "fsn:block/cable"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [5, 5, 5],
|
||||
"to": [11, 11, 11],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [13, 13, 13]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 4, 6, 10], "texture": "#0"},
|
||||
"east": {"uv": [0, 4, 6, 10], "texture": "#0"},
|
||||
"south": {"uv": [0, 4, 6, 10], "texture": "#0"},
|
||||
"west": {"uv": [0, 4, 6, 10], "texture": "#0"},
|
||||
"up": {"uv": [0, 4, 6, 10], "texture": "#0"},
|
||||
"down": {"uv": [0, 4, 6, 10], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
{
|
||||
"textures": {
|
||||
"0": "fsn:block/cable",
|
||||
"particle": "fsn:block/cable"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [6, 6, 0],
|
||||
"to": [10, 10, 10],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [14, 14, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 0, 14, 4], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 10, 4], "texture": "#0"},
|
||||
"south": {"uv": [10, 0, 14, 4], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 10, 4], "texture": "#0"},
|
||||
"up": {"uv": [10, 4, 0, 0], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [10, 0, 0, 4], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"parent": "block/cube_all",
|
||||
"textures": {
|
||||
"all": "fsn:block/crafting_terminal"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"parent": "block/cube_all",
|
||||
"textures": {
|
||||
"all": "fsn:block/master"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"parent": "block/cube_all",
|
||||
"textures": {
|
||||
"all": "fsn:block/processing_terminal"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,66 +0,0 @@
|
|||
{
|
||||
"textures": {
|
||||
"0": "fsn:block/cable",
|
||||
"particle": "fsn:block/cable"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [6, 6, 0],
|
||||
"to": [10, 10, 10],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [14, 14, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 0, 14, 4], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 10, 4], "texture": "#0"},
|
||||
"south": {"uv": [10, 0, 14, 4], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 10, 4], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 10, 4], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 10, 4], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6, 6, 6],
|
||||
"to": [10, 10, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [14, 14, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 0, 14, 4], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 10, 4], "texture": "#0"},
|
||||
"south": {"uv": [10, 0, 14, 4], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 10, 4], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 10, 4], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 10, 4], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [90, 0, 0],
|
||||
"translation": [0, 1.75, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"rotation": [90, 0, 0],
|
||||
"translation": [0, 1.75, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [45, 0, 0],
|
||||
"translation": [0, 0.25, 2.25],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [45, 0, 0],
|
||||
"translation": [0, 0.25, 2.25],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, -2, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, -45, 0]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 90, 0]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"parent": "fsn:block/crafting_terminal"
|
||||
}
|
||||
|
|
@ -1,79 +0,0 @@
|
|||
{
|
||||
"textures": {
|
||||
"0": "fsn:block/cable",
|
||||
"particle": "fsn:block/cable"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [6, 6, 0],
|
||||
"to": [10, 10, 10],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [14, 14, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 0, 14, 4], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 10, 4], "texture": "#0"},
|
||||
"south": {"uv": [10, 0, 14, 4], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 10, 4], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 10, 4], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 10, 4], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6, 6, 6],
|
||||
"to": [10, 10, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [14, 14, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 0, 14, 4], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 10, 4], "texture": "#0"},
|
||||
"south": {"uv": [10, 0, 14, 4], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 10, 4], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 10, 4], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 10, 4], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5, 5, 5],
|
||||
"to": [11, 11, 11],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [13, 13, 13]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 10, 6, 16], "texture": "#0"},
|
||||
"east": {"uv": [0, 10, 6, 16], "texture": "#0"},
|
||||
"south": {"uv": [0, 10, 6, 16], "texture": "#0"},
|
||||
"west": {"uv": [0, 10, 6, 16], "texture": "#0"},
|
||||
"up": {"uv": [0, 10, 6, 16], "texture": "#0"},
|
||||
"down": {"uv": [0, 10, 6, 16], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [90, 0, 0],
|
||||
"translation": [0, 1.75, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"rotation": [90, 0, 0],
|
||||
"translation": [0, 1.75, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [45, 0, 0],
|
||||
"translation": [0, 0.25, 2.25],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [45, 0, 0],
|
||||
"translation": [0, 0.25, 2.25],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, -2, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, -45, 0]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 90, 0]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,79 +0,0 @@
|
|||
{
|
||||
"textures": {
|
||||
"0": "fsn:block/cable",
|
||||
"particle": "fsn:block/cable"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [6, 6, 0],
|
||||
"to": [10, 10, 10],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [14, 14, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 0, 14, 4], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 10, 4], "texture": "#0"},
|
||||
"south": {"uv": [10, 0, 14, 4], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 10, 4], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 10, 4], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 10, 4], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6, 6, 6],
|
||||
"to": [10, 10, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [14, 14, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 0, 14, 4], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 10, 4], "texture": "#0"},
|
||||
"south": {"uv": [10, 0, 14, 4], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 10, 4], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 10, 4], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 10, 4], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5, 5, 5],
|
||||
"to": [11, 11, 11],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [13, 13, 13]},
|
||||
"faces": {
|
||||
"north": {"uv": [6, 4, 12, 10], "texture": "#0"},
|
||||
"east": {"uv": [6, 4, 12, 10], "texture": "#0"},
|
||||
"south": {"uv": [6, 4, 12, 10], "texture": "#0"},
|
||||
"west": {"uv": [6, 4, 12, 10], "texture": "#0"},
|
||||
"up": {"uv": [6, 4, 12, 10], "texture": "#0"},
|
||||
"down": {"uv": [6, 4, 12, 10], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [90, 0, 0],
|
||||
"translation": [0, 1.75, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"rotation": [90, 0, 0],
|
||||
"translation": [0, 1.75, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [45, 0, 0],
|
||||
"translation": [0, 0.25, 2.25],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [45, 0, 0],
|
||||
"translation": [0, 0.25, 2.25],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, -2, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, -45, 0]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 90, 0]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"parent": "fsn:block/master"
|
||||
}
|
||||
|
|
@ -1,79 +0,0 @@
|
|||
{
|
||||
"textures": {
|
||||
"0": "fsn:block/cable",
|
||||
"particle": "fsn:block/cable"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [6, 6, 0],
|
||||
"to": [10, 10, 10],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [14, 14, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 0, 14, 4], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 10, 4], "texture": "#0"},
|
||||
"south": {"uv": [10, 0, 14, 4], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 10, 4], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 10, 4], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 10, 4], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6, 6, 6],
|
||||
"to": [10, 10, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [14, 14, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 0, 14, 4], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 10, 4], "texture": "#0"},
|
||||
"south": {"uv": [10, 0, 14, 4], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 10, 4], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 10, 4], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 10, 4], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5, 5, 5],
|
||||
"to": [11, 11, 11],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [13, 13, 13]},
|
||||
"faces": {
|
||||
"north": {"uv": [6, 10, 12, 16], "texture": "#0"},
|
||||
"east": {"uv": [6, 10, 12, 16], "texture": "#0"},
|
||||
"south": {"uv": [6, 10, 12, 16], "texture": "#0"},
|
||||
"west": {"uv": [6, 10, 12, 16], "texture": "#0"},
|
||||
"up": {"uv": [6, 10, 12, 16], "texture": "#0"},
|
||||
"down": {"uv": [6, 10, 12, 16], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [90, 0, 0],
|
||||
"translation": [0, 1.75, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"rotation": [90, 0, 0],
|
||||
"translation": [0, 1.75, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [45, 0, 0],
|
||||
"translation": [0, 0.25, 2.25],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [45, 0, 0],
|
||||
"translation": [0, 0.25, 2.25],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, -2, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, -45, 0]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 90, 0]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"parent": "fsn:block/processing_terminal"
|
||||
}
|
||||
|
|
@ -1,79 +0,0 @@
|
|||
{
|
||||
"textures": {
|
||||
"0": "fsn:block/cable",
|
||||
"particle": "fsn:block/cable"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [6, 6, 0],
|
||||
"to": [10, 10, 10],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [14, 14, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 0, 14, 4], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 10, 4], "texture": "#0"},
|
||||
"south": {"uv": [10, 0, 14, 4], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 10, 4], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 10, 4], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 10, 4], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6, 6, 6],
|
||||
"to": [10, 10, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [14, 14, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 0, 14, 4], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 10, 4], "texture": "#0"},
|
||||
"south": {"uv": [10, 0, 14, 4], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 10, 4], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 10, 4], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 10, 4], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5, 5, 5],
|
||||
"to": [11, 11, 11],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [13, 13, 13]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 4, 6, 10], "texture": "#0"},
|
||||
"east": {"uv": [0, 4, 6, 10], "texture": "#0"},
|
||||
"south": {"uv": [0, 4, 6, 10], "texture": "#0"},
|
||||
"west": {"uv": [0, 4, 6, 10], "texture": "#0"},
|
||||
"up": {"uv": [0, 4, 6, 10], "texture": "#0"},
|
||||
"down": {"uv": [0, 4, 6, 10], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [90, 0, 0],
|
||||
"translation": [0, 1.75, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"rotation": [90, 0, 0],
|
||||
"translation": [0, 1.75, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [45, 0, 0],
|
||||
"translation": [0, 0.25, 2.25],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [45, 0, 0],
|
||||
"translation": [0, 0.25, 2.25],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, -2, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, -45, 0]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 90, 0]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 277 B |
|
Before Width: | Height: | Size: 198 B |
|
Before Width: | Height: | Size: 224 B |
|
Before Width: | Height: | Size: 229 B |
|
Before Width: | Height: | Size: 99 B |
|
Before Width: | Height: | Size: 180 B |
|
Before Width: | Height: | Size: 211 B |
|
Before Width: | Height: | Size: 207 B |
|
Before Width: | Height: | Size: 196 B After Width: | Height: | Size: 196 B |
|
|
@ -1,19 +0,0 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "fsn:cable"
|
||||
}
|
||||
],
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "fsn:crafting_terminal"
|
||||
}
|
||||
],
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "fsn:export_cable"
|
||||
}
|
||||
],
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "fsn:import_cable"
|
||||
}
|
||||
],
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "fsn:master"
|
||||
}
|
||||
],
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "fsn:processing_cable"
|
||||
}
|
||||
],
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "fsn:processing_terminal"
|
||||
}
|
||||
],
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "fsn:storage_cable"
|
||||
}
|
||||
],
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,38 +1,36 @@
|
|||
{
|
||||
"schemaVersion": 1,
|
||||
"id": "fsn",
|
||||
"id": "storagenetworks",
|
||||
"version": "${version}",
|
||||
|
||||
"name": "Fabric Storage Networks",
|
||||
"description": "Storage Networks for Fabric, 100% original idea.",
|
||||
"description": "Clone of Storage Networks for Fabric Loader",
|
||||
"authors": [
|
||||
"deirn"
|
||||
],
|
||||
"contributors": [],
|
||||
"contact": {
|
||||
"sources": "https://github.com/badasintended/fsn"
|
||||
"homepage": "https://gitlab.com/intended/fabric/fsn",
|
||||
"sources": "https://gitlab.com/intended/fabric/fsn"
|
||||
},
|
||||
|
||||
"license": "MIT",
|
||||
"icon": "assets/fsn/icon.png",
|
||||
|
||||
"icon": "assets/storagenetworks/icon.png",
|
||||
"environment": "*",
|
||||
"entrypoints": {
|
||||
"main": [
|
||||
"bai.deirn.fsn.FSN"
|
||||
"io.gitlab.intended.storagenetworks.StorageNetworks"
|
||||
],
|
||||
"client": [
|
||||
"io.gitlab.intended.storagenetworks.client.StorageNetworksClient"
|
||||
],
|
||||
"modmenu": [
|
||||
"bai.deirn.fsn.config.ModMenuIntegration"
|
||||
"io.gitlab.intended.storagenetworks.client.modmenu.ModMenuIntegration"
|
||||
]
|
||||
},
|
||||
"mixins": [
|
||||
"storagenetworks.mixins.json"
|
||||
],
|
||||
|
||||
"depends": {
|
||||
"fabricloader": ">=0.7.4",
|
||||
"fabric": "*",
|
||||
"minecraft": "1.15.x"
|
||||
},
|
||||
"suggests": {
|
||||
"flamingo": "*"
|
||||
"fabricloader": ">=0.4.0",
|
||||
"fabric": "*"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
{
|
||||
"required": true,
|
||||
"minVersion": "0.8",
|
||||
"package": "bai.deirn.fsn.mixin",
|
||||
"compatibilityLevel": "JAVA_8",
|
||||
"mixins": [
|
||||
],
|
||||
"client": [
|
||||
"MixinInventory"
|
||||
],
|
||||
"injectors": {
|
||||
"defaultRequire": 1
|
||||
}
|
||||
}
|
||||
11
src/main/resources/storagenetworks.mixins.json
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"required": true,
|
||||
"package": "io.gitlab.intended.storagenetworks.mixin",
|
||||
"compatibilityLevel": "JAVA_8",
|
||||
"mixins": [],
|
||||
"client": [],
|
||||
"server": [],
|
||||
"injectors": {
|
||||
"defaultRequire": 1
|
||||
}
|
||||
}
|
||||