Skip to content

Commit fce726e

Browse files
committed
Add configurable size for storage items
1 parent dd089c3 commit fce726e

File tree

11 files changed

+77
-8
lines changed

11 files changed

+77
-8
lines changed

build.gradle

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
plugins {
2-
id 'fabric-loom' version '1.10-SNAPSHOT'
2+
id 'fabric-loom' version '1.15-SNAPSHOT'
33
id 'maven-publish'
44
}
55

@@ -35,6 +35,10 @@ repositories {
3535
includeGroup "maven.modrinth"
3636
}
3737
}
38+
maven {
39+
name 'Xander Maven'
40+
url 'https://maven.isxander.dev/releases'
41+
}
3842
}
3943

4044
dependencies {
@@ -53,6 +57,8 @@ dependencies {
5357
//RoughlyEnoughItems
5458
modRuntimeOnly "me.shedaniel:RoughlyEnoughItems-fabric:$reiVersion"
5559

60+
modImplementation "dev.isxander:yet-another-config-lib:${project.yacl_version}"
61+
5662
testImplementation 'com.google.code.findbugs:jsr305:3.0.2'
5763
}
5864

gradle.properties

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,13 @@ minecraft_version=1.21.1
66
yarn_mappings=1.21.1+build.3
77
loader_version=0.16.10
88
# Mod Properties
9-
mod_version=1.1.2
9+
mod_version=1.2.0
1010
maven_group=org.windclan
1111
archives_base_name=embeddedcomputer
1212
# Dependencies
1313
# check this on https://modmuss50.me/fabric.html
1414
fabric_version=0.115.3+1.21.1
1515

16-
cctVersion=1.116.0
16+
cctVersion=1.117.1
17+
yacl_version=3.8.1+1.21.1-fabric
1718
reiVersion=16.0.799

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package org.windclan.embeddedcomputer;
2+
3+
import com.google.gson.GsonBuilder;
4+
import dev.isxander.yacl3.config.v2.api.ConfigClassHandler;
5+
import dev.isxander.yacl3.config.v2.api.SerialEntry;
6+
import dev.isxander.yacl3.config.v2.api.serializer.GsonConfigSerializerBuilder;
7+
import net.fabricmc.loader.api.FabricLoader;
8+
import net.minecraft.util.Identifier;
9+
10+
public class Config {
11+
public static ConfigClassHandler<Config> HANDLER = ConfigClassHandler.createBuilder(Config.class)
12+
.id(Identifier.of("embeddedcomputer", "config"))
13+
.serializer(config -> GsonConfigSerializerBuilder.create(config)
14+
.setPath(FabricLoader.getInstance().getConfigDir().resolve("config.json5"))
15+
.appendGsonBuilder(GsonBuilder::setPrettyPrinting) // not needed, pretty print by default
16+
.setJson5(true)
17+
.build())
18+
.build();
19+
20+
@SerialEntry
21+
public int ZIP_DISK_STORAGE = 5000000;
22+
23+
@SerialEntry
24+
public int FLASH_CARD_STORAGE = 2500000;
25+
26+
@SerialEntry
27+
public int DEBUG_ITEM_STORAGE = 2147483647;
28+
29+
@SerialEntry
30+
public int HARD_DRIVE_STORAGE = 25000000;
31+
}

src/main/java/org/windclan/embeddedcomputer/main.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.slf4j.Logger;
1212
import org.slf4j.LoggerFactory;
1313
import org.windclan.embeddedcomputer.secure.SecureComputerAPI;
14+
import org.windclan.embeddedcomputer.storage.ServerStorageConfig;
1415

1516
public class main implements ModInitializer {
1617

@@ -28,5 +29,8 @@ public void onInitialize() {
2829
var secure = computer.getComponent(registry.SECURE_COMPONENT);
2930
return secure == null ? null : new SecureComputerAPI(secure);
3031
});
32+
33+
Config.HANDLER.load();
34+
ServerStorageConfig.updateConfig();
3135
}
3236
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/*
2+
* This Source Code Form is subject to the terms of the Mozilla Public
3+
* License, v. 2.0. If a copy of the MPL was not distributed with this
4+
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
5+
*/
6+
package org.windclan.embeddedcomputer.storage;
7+
8+
import org.windclan.embeddedcomputer.Config;
9+
10+
public class ServerStorageConfig {
11+
public static int ZIP_DISK_STORAGE = 0;
12+
public static int FLASH_CARD_STORAGE = 0;
13+
public static int DEBUG_ITEM_STORAGE = 0;
14+
public static int HARD_DRIVE_STORAGE = 0;
15+
16+
public static void updateConfig() {
17+
ZIP_DISK_STORAGE = Config.HANDLER.instance().ZIP_DISK_STORAGE;
18+
FLASH_CARD_STORAGE = Config.HANDLER.instance().FLASH_CARD_STORAGE;
19+
DEBUG_ITEM_STORAGE = Config.HANDLER.instance().DEBUG_ITEM_STORAGE;
20+
HARD_DRIVE_STORAGE = Config.HANDLER.instance().HARD_DRIVE_STORAGE;
21+
}
22+
}

src/main/java/org/windclan/embeddedcomputer/storage/harddrive/HardDriveBlockEntity.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import net.minecraft.world.World;
1919
import org.windclan.embeddedcomputer.registry;
2020
import org.jetbrains.annotations.Nullable;
21+
import org.windclan.embeddedcomputer.storage.ServerStorageConfig;
2122

2223
import java.util.UUID;
2324

@@ -37,7 +38,7 @@ public WritableMount makeMount() {
3738
uuid = UUID.randomUUID().toString();
3839
markDirty();
3940
}
40-
return ComputerCraftAPI.createSaveDirMount(world.getServer(), "hdd/" + uuid, 25000000); // 25 Megabytes
41+
return ComputerCraftAPI.createSaveDirMount(world.getServer(), "hdd/" + uuid, ServerStorageConfig.HARD_DRIVE_STORAGE); // 25 Megabytes
4142
}
4243
public boolean attach(IComputerAccess computer, @Nullable String str) {
4344
if (isNull(str)) {

src/main/java/org/windclan/embeddedcomputer/storage/items/DebugMediaItem.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@
66
package org.windclan.embeddedcomputer.storage.items;
77

88
import org.windclan.embeddedcomputer.storage.MediaItem;
9+
import org.windclan.embeddedcomputer.storage.ServerStorageConfig;
910

1011
public class DebugMediaItem extends MediaItem {
1112
public DebugMediaItem(Settings settings) {
1213
super(settings);
1314
}
1415
@Override
1516
public int getMaxStorage() {
16-
return 2147483647; // ~2 Gigabytes
17+
return ServerStorageConfig.DEBUG_ITEM_STORAGE; // ~2 Gigabytes
1718
}
1819

1920
@Override

src/main/java/org/windclan/embeddedcomputer/storage/items/FlashCardItem.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@
66
package org.windclan.embeddedcomputer.storage.items;
77

88
import org.windclan.embeddedcomputer.storage.MediaItem;
9+
import org.windclan.embeddedcomputer.storage.ServerStorageConfig;
910

1011
public class FlashCardItem extends MediaItem {
1112
public FlashCardItem(Settings settings) {
1213
super(settings);
1314
}
1415
@Override
1516
public int getMaxStorage() {
16-
return 2500000; // 2.5 Megabytes
17+
return ServerStorageConfig.FLASH_CARD_STORAGE; // 2.5 Megabytes
1718
}
1819

1920
@Override

src/main/java/org/windclan/embeddedcomputer/storage/items/ZipDiskItem.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,15 @@
55
*/
66
package org.windclan.embeddedcomputer.storage.items;
77
import org.windclan.embeddedcomputer.storage.MediaItem;
8+
import org.windclan.embeddedcomputer.storage.ServerStorageConfig;
89

910
public class ZipDiskItem extends MediaItem {
1011
public ZipDiskItem(Settings settings) {
1112
super(settings);
1213
}
1314
@Override
1415
public int getMaxStorage() {
15-
return 5000000; // 5 Megabytes
16+
return ServerStorageConfig.ZIP_DISK_STORAGE; // 5 Megabytes
1617
}
1718
@Override
1819
public String getMountName() {

0 commit comments

Comments
 (0)