Port to 1.19.2 - v1.11.0

This commit is contained in:
raoulvdberge
2022-09-30 12:51:05 +02:00
committed by Raoul
parent 774380aa3b
commit 8cfa05b001
275 changed files with 3098 additions and 3488 deletions

View File

@@ -36,7 +36,7 @@ body:
If your Minecraft version isn't listed here, it means that it's no longer supported. In that case, don't create an issue. If your Minecraft version isn't listed here, it means that it's no longer supported. In that case, don't create an issue.
options: options:
- Minecraft 1.18.2 - Minecraft 1.18.2
- Minecraft 1.16.5 - Minecraft 1.19.2
validations: validations:
required: true required: true
- type: input - type: input

View File

@@ -7,6 +7,10 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased] ## [Unreleased]
### Changed
- Ported to Minecraft 1.19.2.
## [v1.10.3] - 2022-08-06 ## [v1.10.3] - 2022-08-06
### Fixed ### Fixed

View File

@@ -33,7 +33,7 @@ apply plugin: 'maven-publish'
group = 'com.refinedmods' group = 'com.refinedmods'
archivesBaseName = 'refinedstorage' archivesBaseName = 'refinedstorage'
version = '1.10.4' version = '1.11.0'
if (System.getenv('GITHUB_SHA') != null) { if (System.getenv('GITHUB_SHA') != null) {
version += '+' + System.getenv('GITHUB_SHA').substring(0, 7) version += '+' + System.getenv('GITHUB_SHA').substring(0, 7)
@@ -50,7 +50,7 @@ tasks.withType(JavaCompile) {
} }
minecraft { minecraft {
mappings channel: 'official', version: '1.18.2' mappings channel: 'official', version: '1.19.2'
accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
runs { runs {
@@ -102,17 +102,18 @@ processResources {
} }
dependencies { dependencies {
minecraft 'net.minecraftforge:forge:1.18.2-40.1.48' minecraft 'net.minecraftforge:forge:1.19.2-43.0.0'
compileOnly fg.deobf("mezz.jei:jei-1.18.2:9.7.1.232:api") compileOnly fg.deobf("mezz.jei:jei-1.19.1-common-api:11.2.0.243")
runtimeOnly fg.deobf("mezz.jei:jei-1.18.2:9.7.1.232") compileOnly fg.deobf("mezz.jei:jei-1.19.1-forge-api:11.2.0.243")
runtimeOnly fg.deobf("mezz.jei:jei-1.19.1-forge:11.2.0.243")
compileOnly fg.deobf('curse.maven:mouse-tweaks-60089:3578801') compileOnly fg.deobf('curse.maven:mouse-tweaks-60089:3871353')
compileOnly fg.deobf('curse.maven:crafting-tweaks-233071:3584842') compileOnly fg.deobf('curse.maven:crafting-tweaks-233071:3914007')
runtimeOnly fg.deobf("top.theillusivec4.curios:curios-forge:1.18.2-5.0.6.3") runtimeOnly fg.deobf("top.theillusivec4.curios:curios-forge:1.19.1-5.1.0.5")
compileOnly fg.deobf("top.theillusivec4.curios:curios-forge:1.18.2-5.0.6.3:api") compileOnly fg.deobf("top.theillusivec4.curios:curios-forge:1.19.1-5.1.0.5:api")
} }
jar { jar {
@@ -137,7 +138,7 @@ if (System.getenv("CURSEFORGE_TOKEN") != null) {
changelog = System.getenv("CHANGELOG") changelog = System.getenv("CHANGELOG")
changelogType = 'markdown' changelogType = 'markdown'
releaseType = project.version.toString().contains('beta') ? 'beta' : (project.version.toString().contains('alpha') ? 'alpha' : 'release') releaseType = project.version.toString().contains('beta') ? 'beta' : (project.version.toString().contains('alpha') ? 'alpha' : 'release')
addGameVersion "1.18.2" addGameVersion "1.19.2"
mainArtifact(jar) { mainArtifact(jar) {
displayName = "v$project.version" displayName = "v$project.version"
} }

View File

@@ -1,34 +1,7 @@
{ {
"variants": { "variants": {
"connected=false,direction=north": { "": {
"model": "refinedstorage:block/disk_manipulator/disconnected" "model": "refinedstorage:block/disk_manipulator/loader"
},
"connected=true,direction=north": {
"model": "refinedstorage:block/disk_manipulator/black"
},
"connected=false,direction=south": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 180
},
"connected=true,direction=south": {
"model": "refinedstorage:block/disk_manipulator/black",
"y": 180
},
"connected=false,direction=west": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 270
},
"connected=true,direction=west": {
"model": "refinedstorage:block/disk_manipulator/black",
"y": 270
},
"connected=false,direction=east": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 90
},
"connected=true,direction=east": {
"model": "refinedstorage:block/disk_manipulator/black",
"y": 90
} }
} }
} }

View File

@@ -1,34 +1,7 @@
{ {
"variants": { "variants": {
"connected=false,direction=north": { "": {
"model": "refinedstorage:block/disk_manipulator/disconnected" "model": "refinedstorage:block/disk_manipulator/loader"
},
"connected=true,direction=north": {
"model": "refinedstorage:block/disk_manipulator/blue"
},
"connected=false,direction=south": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 180
},
"connected=true,direction=south": {
"model": "refinedstorage:block/disk_manipulator/blue",
"y": 180
},
"connected=false,direction=west": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 270
},
"connected=true,direction=west": {
"model": "refinedstorage:block/disk_manipulator/blue",
"y": 270
},
"connected=false,direction=east": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 90
},
"connected=true,direction=east": {
"model": "refinedstorage:block/disk_manipulator/blue",
"y": 90
} }
} }
} }

View File

@@ -1,34 +1,7 @@
{ {
"variants": { "variants": {
"connected=false,direction=north": { "": {
"model": "refinedstorage:block/disk_manipulator/disconnected" "model": "refinedstorage:block/disk_manipulator/loader"
},
"connected=true,direction=north": {
"model": "refinedstorage:block/disk_manipulator/brown"
},
"connected=false,direction=south": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 180
},
"connected=true,direction=south": {
"model": "refinedstorage:block/disk_manipulator/brown",
"y": 180
},
"connected=false,direction=west": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 270
},
"connected=true,direction=west": {
"model": "refinedstorage:block/disk_manipulator/brown",
"y": 270
},
"connected=false,direction=east": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 90
},
"connected=true,direction=east": {
"model": "refinedstorage:block/disk_manipulator/brown",
"y": 90
} }
} }
} }

View File

@@ -1,34 +1,7 @@
{ {
"variants": { "variants": {
"connected=false,direction=north": { "": {
"model": "refinedstorage:block/disk_manipulator/disconnected" "model": "refinedstorage:block/disk_manipulator/loader"
},
"connected=true,direction=north": {
"model": "refinedstorage:block/disk_manipulator/cyan"
},
"connected=false,direction=south": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 180
},
"connected=true,direction=south": {
"model": "refinedstorage:block/disk_manipulator/cyan",
"y": 180
},
"connected=false,direction=west": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 270
},
"connected=true,direction=west": {
"model": "refinedstorage:block/disk_manipulator/cyan",
"y": 270
},
"connected=false,direction=east": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 90
},
"connected=true,direction=east": {
"model": "refinedstorage:block/disk_manipulator/cyan",
"y": 90
} }
} }
} }

View File

@@ -1,34 +1,7 @@
{ {
"variants": { "variants": {
"connected=false,direction=north": { "": {
"model": "refinedstorage:block/disk_manipulator/disconnected" "model": "refinedstorage:block/disk_manipulator/loader"
},
"connected=true,direction=north": {
"model": "refinedstorage:block/disk_manipulator/light_blue"
},
"connected=false,direction=south": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 180
},
"connected=true,direction=south": {
"model": "refinedstorage:block/disk_manipulator/light_blue",
"y": 180
},
"connected=false,direction=west": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 270
},
"connected=true,direction=west": {
"model": "refinedstorage:block/disk_manipulator/light_blue",
"y": 270
},
"connected=false,direction=east": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 90
},
"connected=true,direction=east": {
"model": "refinedstorage:block/disk_manipulator/light_blue",
"y": 90
} }
} }
} }

View File

@@ -1,34 +1,7 @@
{ {
"variants": { "variants": {
"connected=false,direction=north": { "": {
"model": "refinedstorage:block/disk_manipulator/disconnected" "model": "refinedstorage:block/disk_manipulator/loader"
},
"connected=true,direction=north": {
"model": "refinedstorage:block/disk_manipulator/gray"
},
"connected=false,direction=south": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 180
},
"connected=true,direction=south": {
"model": "refinedstorage:block/disk_manipulator/gray",
"y": 180
},
"connected=false,direction=west": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 270
},
"connected=true,direction=west": {
"model": "refinedstorage:block/disk_manipulator/gray",
"y": 270
},
"connected=false,direction=east": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 90
},
"connected=true,direction=east": {
"model": "refinedstorage:block/disk_manipulator/gray",
"y": 90
} }
} }
} }

View File

@@ -1,34 +1,7 @@
{ {
"variants": { "variants": {
"connected=false,direction=north": { "": {
"model": "refinedstorage:block/disk_manipulator/disconnected" "model": "refinedstorage:block/disk_manipulator/loader"
},
"connected=true,direction=north": {
"model": "refinedstorage:block/disk_manipulator/green"
},
"connected=false,direction=south": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 180
},
"connected=true,direction=south": {
"model": "refinedstorage:block/disk_manipulator/green",
"y": 180
},
"connected=false,direction=west": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 270
},
"connected=true,direction=west": {
"model": "refinedstorage:block/disk_manipulator/green",
"y": 270
},
"connected=false,direction=east": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 90
},
"connected=true,direction=east": {
"model": "refinedstorage:block/disk_manipulator/green",
"y": 90
} }
} }
} }

View File

@@ -1,34 +1,7 @@
{ {
"variants": { "variants": {
"connected=false,direction=north": { "": {
"model": "refinedstorage:block/disk_manipulator/disconnected" "model": "refinedstorage:block/disk_manipulator/loader"
},
"connected=true,direction=north": {
"model": "refinedstorage:block/disk_manipulator/light_gray"
},
"connected=false,direction=south": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 180
},
"connected=true,direction=south": {
"model": "refinedstorage:block/disk_manipulator/light_gray",
"y": 180
},
"connected=false,direction=west": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 270
},
"connected=true,direction=west": {
"model": "refinedstorage:block/disk_manipulator/light_gray",
"y": 270
},
"connected=false,direction=east": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 90
},
"connected=true,direction=east": {
"model": "refinedstorage:block/disk_manipulator/light_gray",
"y": 90
} }
} }
} }

View File

@@ -1,34 +1,7 @@
{ {
"variants": { "variants": {
"connected=false,direction=north": { "": {
"model": "refinedstorage:block/disk_manipulator/disconnected" "model": "refinedstorage:block/disk_manipulator/loader"
},
"connected=true,direction=north": {
"model": "refinedstorage:block/disk_manipulator/lime"
},
"connected=false,direction=south": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 180
},
"connected=true,direction=south": {
"model": "refinedstorage:block/disk_manipulator/lime",
"y": 180
},
"connected=false,direction=west": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 270
},
"connected=true,direction=west": {
"model": "refinedstorage:block/disk_manipulator/lime",
"y": 270
},
"connected=false,direction=east": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 90
},
"connected=true,direction=east": {
"model": "refinedstorage:block/disk_manipulator/lime",
"y": 90
} }
} }
} }

View File

@@ -1,34 +1,7 @@
{ {
"variants": { "variants": {
"connected=false,direction=north": { "": {
"model": "refinedstorage:block/disk_manipulator/disconnected" "model": "refinedstorage:block/disk_manipulator/loader"
},
"connected=true,direction=north": {
"model": "refinedstorage:block/disk_manipulator/magenta"
},
"connected=false,direction=south": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 180
},
"connected=true,direction=south": {
"model": "refinedstorage:block/disk_manipulator/magenta",
"y": 180
},
"connected=false,direction=west": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 270
},
"connected=true,direction=west": {
"model": "refinedstorage:block/disk_manipulator/magenta",
"y": 270
},
"connected=false,direction=east": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 90
},
"connected=true,direction=east": {
"model": "refinedstorage:block/disk_manipulator/magenta",
"y": 90
} }
} }
} }

View File

@@ -1,34 +1,7 @@
{ {
"variants": { "variants": {
"connected=false,direction=north": { "": {
"model": "refinedstorage:block/disk_manipulator/disconnected" "model": "refinedstorage:block/disk_manipulator/loader"
},
"connected=true,direction=north": {
"model": "refinedstorage:block/disk_manipulator/orange"
},
"connected=false,direction=south": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 180
},
"connected=true,direction=south": {
"model": "refinedstorage:block/disk_manipulator/orange",
"y": 180
},
"connected=false,direction=west": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 270
},
"connected=true,direction=west": {
"model": "refinedstorage:block/disk_manipulator/orange",
"y": 270
},
"connected=false,direction=east": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 90
},
"connected=true,direction=east": {
"model": "refinedstorage:block/disk_manipulator/orange",
"y": 90
} }
} }
} }

View File

@@ -1,34 +1,7 @@
{ {
"variants": { "variants": {
"connected=false,direction=north": { "": {
"model": "refinedstorage:block/disk_manipulator/disconnected" "model": "refinedstorage:block/disk_manipulator/loader"
},
"connected=true,direction=north": {
"model": "refinedstorage:block/disk_manipulator/pink"
},
"connected=false,direction=south": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 180
},
"connected=true,direction=south": {
"model": "refinedstorage:block/disk_manipulator/pink",
"y": 180
},
"connected=false,direction=west": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 270
},
"connected=true,direction=west": {
"model": "refinedstorage:block/disk_manipulator/pink",
"y": 270
},
"connected=false,direction=east": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 90
},
"connected=true,direction=east": {
"model": "refinedstorage:block/disk_manipulator/pink",
"y": 90
} }
} }
} }

View File

@@ -1,34 +1,7 @@
{ {
"variants": { "variants": {
"connected=false,direction=north": { "": {
"model": "refinedstorage:block/disk_manipulator/disconnected" "model": "refinedstorage:block/disk_manipulator/loader"
},
"connected=true,direction=north": {
"model": "refinedstorage:block/disk_manipulator/purple"
},
"connected=false,direction=south": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 180
},
"connected=true,direction=south": {
"model": "refinedstorage:block/disk_manipulator/purple",
"y": 180
},
"connected=false,direction=west": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 270
},
"connected=true,direction=west": {
"model": "refinedstorage:block/disk_manipulator/purple",
"y": 270
},
"connected=false,direction=east": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 90
},
"connected=true,direction=east": {
"model": "refinedstorage:block/disk_manipulator/purple",
"y": 90
} }
} }
} }

View File

@@ -1,34 +1,7 @@
{ {
"variants": { "variants": {
"connected=false,direction=north": { "": {
"model": "refinedstorage:block/disk_manipulator/disconnected" "model": "refinedstorage:block/disk_manipulator/loader"
},
"connected=true,direction=north": {
"model": "refinedstorage:block/disk_manipulator/red"
},
"connected=false,direction=south": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 180
},
"connected=true,direction=south": {
"model": "refinedstorage:block/disk_manipulator/red",
"y": 180
},
"connected=false,direction=west": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 270
},
"connected=true,direction=west": {
"model": "refinedstorage:block/disk_manipulator/red",
"y": 270
},
"connected=false,direction=east": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 90
},
"connected=true,direction=east": {
"model": "refinedstorage:block/disk_manipulator/red",
"y": 90
} }
} }
} }

View File

@@ -1,34 +1,7 @@
{ {
"variants": { "variants": {
"connected=false,direction=north": { "": {
"model": "refinedstorage:block/disk_manipulator/disconnected" "model": "refinedstorage:block/disk_manipulator/loader"
},
"connected=true,direction=north": {
"model": "refinedstorage:block/disk_manipulator/white"
},
"connected=false,direction=south": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 180
},
"connected=true,direction=south": {
"model": "refinedstorage:block/disk_manipulator/white",
"y": 180
},
"connected=false,direction=west": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 270
},
"connected=true,direction=west": {
"model": "refinedstorage:block/disk_manipulator/white",
"y": 270
},
"connected=false,direction=east": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 90
},
"connected=true,direction=east": {
"model": "refinedstorage:block/disk_manipulator/white",
"y": 90
} }
} }
} }

View File

@@ -1,34 +1,7 @@
{ {
"variants": { "variants": {
"connected=false,direction=north": { "": {
"model": "refinedstorage:block/disk_manipulator/disconnected" "model": "refinedstorage:block/disk_manipulator/loader"
},
"connected=true,direction=north": {
"model": "refinedstorage:block/disk_manipulator/yellow"
},
"connected=false,direction=south": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 180
},
"connected=true,direction=south": {
"model": "refinedstorage:block/disk_manipulator/yellow",
"y": 180
},
"connected=false,direction=west": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 270
},
"connected=true,direction=west": {
"model": "refinedstorage:block/disk_manipulator/yellow",
"y": 270
},
"connected=false,direction=east": {
"model": "refinedstorage:block/disk_manipulator/disconnected",
"y": 90
},
"connected=true,direction=east": {
"model": "refinedstorage:block/disk_manipulator/yellow",
"y": 90
} }
} }
} }

View File

@@ -1,13 +1,13 @@
{ {
"parent": "refinedstorage:block/cube_north_cutout", "parent": "refinedstorage:block/cube_north_cutout",
"textures": { "textures": {
"particle": "refinedstorage:block/disk_manipulator/right", "cutout": "refinedstorage:block/disk_manipulator/cutouts/black",
"east": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"west": "refinedstorage:block/disk_manipulator/left",
"up": "refinedstorage:block/disk_manipulator/top",
"down": "refinedstorage:block/bottom", "down": "refinedstorage:block/bottom",
"east": "refinedstorage:block/disk_manipulator/right",
"north": "refinedstorage:block/disk_manipulator/front", "north": "refinedstorage:block/disk_manipulator/front",
"cutout": "refinedstorage:block/disk_manipulator/cutouts/black" "particle": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"up": "refinedstorage:block/disk_manipulator/top",
"west": "refinedstorage:block/disk_manipulator/left"
} }
} }

View File

@@ -1,13 +1,13 @@
{ {
"parent": "refinedstorage:block/cube_north_cutout", "parent": "refinedstorage:block/cube_north_cutout",
"textures": { "textures": {
"particle": "refinedstorage:block/disk_manipulator/right", "cutout": "refinedstorage:block/disk_manipulator/cutouts/blue",
"east": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"west": "refinedstorage:block/disk_manipulator/left",
"up": "refinedstorage:block/disk_manipulator/top",
"down": "refinedstorage:block/bottom", "down": "refinedstorage:block/bottom",
"east": "refinedstorage:block/disk_manipulator/right",
"north": "refinedstorage:block/disk_manipulator/front", "north": "refinedstorage:block/disk_manipulator/front",
"cutout": "refinedstorage:block/disk_manipulator/cutouts/blue" "particle": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"up": "refinedstorage:block/disk_manipulator/top",
"west": "refinedstorage:block/disk_manipulator/left"
} }
} }

View File

@@ -1,13 +1,13 @@
{ {
"parent": "refinedstorage:block/cube_north_cutout", "parent": "refinedstorage:block/cube_north_cutout",
"textures": { "textures": {
"particle": "refinedstorage:block/disk_manipulator/right", "cutout": "refinedstorage:block/disk_manipulator/cutouts/brown",
"east": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"west": "refinedstorage:block/disk_manipulator/left",
"up": "refinedstorage:block/disk_manipulator/top",
"down": "refinedstorage:block/bottom", "down": "refinedstorage:block/bottom",
"east": "refinedstorage:block/disk_manipulator/right",
"north": "refinedstorage:block/disk_manipulator/front", "north": "refinedstorage:block/disk_manipulator/front",
"cutout": "refinedstorage:block/disk_manipulator/cutouts/brown" "particle": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"up": "refinedstorage:block/disk_manipulator/top",
"west": "refinedstorage:block/disk_manipulator/left"
} }
} }

View File

@@ -1,13 +1,13 @@
{ {
"parent": "refinedstorage:block/cube_north_cutout", "parent": "refinedstorage:block/cube_north_cutout",
"textures": { "textures": {
"particle": "refinedstorage:block/disk_manipulator/right", "cutout": "refinedstorage:block/disk_manipulator/cutouts/cyan",
"east": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"west": "refinedstorage:block/disk_manipulator/left",
"up": "refinedstorage:block/disk_manipulator/top",
"down": "refinedstorage:block/bottom", "down": "refinedstorage:block/bottom",
"east": "refinedstorage:block/disk_manipulator/right",
"north": "refinedstorage:block/disk_manipulator/front", "north": "refinedstorage:block/disk_manipulator/front",
"cutout": "refinedstorage:block/disk_manipulator/cutouts/cyan" "particle": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"up": "refinedstorage:block/disk_manipulator/top",
"west": "refinedstorage:block/disk_manipulator/left"
} }
} }

View File

@@ -1,13 +1,13 @@
{ {
"parent": "refinedstorage:block/cube_north_cutout", "parent": "refinedstorage:block/cube_north_cutout",
"textures": { "textures": {
"particle": "refinedstorage:block/disk_manipulator/right", "cutout": "refinedstorage:block/disk_manipulator/cutouts/disconnected",
"east": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"west": "refinedstorage:block/disk_manipulator/left",
"up": "refinedstorage:block/disk_manipulator/top",
"down": "refinedstorage:block/bottom", "down": "refinedstorage:block/bottom",
"east": "refinedstorage:block/disk_manipulator/right",
"north": "refinedstorage:block/disk_manipulator/front", "north": "refinedstorage:block/disk_manipulator/front",
"cutout": "refinedstorage:block/disk_manipulator/cutouts/disconnected" "particle": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"up": "refinedstorage:block/disk_manipulator/top",
"west": "refinedstorage:block/disk_manipulator/left"
} }
} }

View File

@@ -1,13 +1,13 @@
{ {
"parent": "refinedstorage:block/cube_north_cutout", "parent": "refinedstorage:block/cube_north_cutout",
"textures": { "textures": {
"particle": "refinedstorage:block/disk_manipulator/right", "cutout": "refinedstorage:block/disk_manipulator/cutouts/gray",
"east": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"west": "refinedstorage:block/disk_manipulator/left",
"up": "refinedstorage:block/disk_manipulator/top",
"down": "refinedstorage:block/bottom", "down": "refinedstorage:block/bottom",
"east": "refinedstorage:block/disk_manipulator/right",
"north": "refinedstorage:block/disk_manipulator/front", "north": "refinedstorage:block/disk_manipulator/front",
"cutout": "refinedstorage:block/disk_manipulator/cutouts/gray" "particle": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"up": "refinedstorage:block/disk_manipulator/top",
"west": "refinedstorage:block/disk_manipulator/left"
} }
} }

View File

@@ -1,13 +1,13 @@
{ {
"parent": "refinedstorage:block/cube_north_cutout", "parent": "refinedstorage:block/cube_north_cutout",
"textures": { "textures": {
"particle": "refinedstorage:block/disk_manipulator/right", "cutout": "refinedstorage:block/disk_manipulator/cutouts/green",
"east": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"west": "refinedstorage:block/disk_manipulator/left",
"up": "refinedstorage:block/disk_manipulator/top",
"down": "refinedstorage:block/bottom", "down": "refinedstorage:block/bottom",
"east": "refinedstorage:block/disk_manipulator/right",
"north": "refinedstorage:block/disk_manipulator/front", "north": "refinedstorage:block/disk_manipulator/front",
"cutout": "refinedstorage:block/disk_manipulator/cutouts/green" "particle": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"up": "refinedstorage:block/disk_manipulator/top",
"west": "refinedstorage:block/disk_manipulator/left"
} }
} }

View File

@@ -1,13 +1,13 @@
{ {
"parent": "refinedstorage:block/cube_north_cutout", "parent": "refinedstorage:block/cube_north_cutout",
"textures": { "textures": {
"particle": "refinedstorage:block/disk_manipulator/right", "cutout": "refinedstorage:block/disk_manipulator/cutouts/light_blue",
"east": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"west": "refinedstorage:block/disk_manipulator/left",
"up": "refinedstorage:block/disk_manipulator/top",
"down": "refinedstorage:block/bottom", "down": "refinedstorage:block/bottom",
"east": "refinedstorage:block/disk_manipulator/right",
"north": "refinedstorage:block/disk_manipulator/front", "north": "refinedstorage:block/disk_manipulator/front",
"cutout": "refinedstorage:block/disk_manipulator/cutouts/light_blue" "particle": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"up": "refinedstorage:block/disk_manipulator/top",
"west": "refinedstorage:block/disk_manipulator/left"
} }
} }

View File

@@ -1,13 +1,13 @@
{ {
"parent": "refinedstorage:block/cube_north_cutout", "parent": "refinedstorage:block/cube_north_cutout",
"textures": { "textures": {
"particle": "refinedstorage:block/disk_manipulator/right", "cutout": "refinedstorage:block/disk_manipulator/cutouts/light_gray",
"east": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"west": "refinedstorage:block/disk_manipulator/left",
"up": "refinedstorage:block/disk_manipulator/top",
"down": "refinedstorage:block/bottom", "down": "refinedstorage:block/bottom",
"east": "refinedstorage:block/disk_manipulator/right",
"north": "refinedstorage:block/disk_manipulator/front", "north": "refinedstorage:block/disk_manipulator/front",
"cutout": "refinedstorage:block/disk_manipulator/cutouts/light_gray" "particle": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"up": "refinedstorage:block/disk_manipulator/top",
"west": "refinedstorage:block/disk_manipulator/left"
} }
} }

View File

@@ -1,13 +1,13 @@
{ {
"parent": "refinedstorage:block/cube_north_cutout", "parent": "refinedstorage:block/cube_north_cutout",
"textures": { "textures": {
"particle": "refinedstorage:block/disk_manipulator/right", "cutout": "refinedstorage:block/disk_manipulator/cutouts/lime",
"east": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"west": "refinedstorage:block/disk_manipulator/left",
"up": "refinedstorage:block/disk_manipulator/top",
"down": "refinedstorage:block/bottom", "down": "refinedstorage:block/bottom",
"east": "refinedstorage:block/disk_manipulator/right",
"north": "refinedstorage:block/disk_manipulator/front", "north": "refinedstorage:block/disk_manipulator/front",
"cutout": "refinedstorage:block/disk_manipulator/cutouts/lime" "particle": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"up": "refinedstorage:block/disk_manipulator/top",
"west": "refinedstorage:block/disk_manipulator/left"
} }
} }

View File

@@ -0,0 +1,4 @@
{
"loader": "refinedstorage:disk_manipulator",
"render_type": "minecraft:cutout"
}

View File

@@ -1,13 +1,13 @@
{ {
"parent": "refinedstorage:block/cube_north_cutout", "parent": "refinedstorage:block/cube_north_cutout",
"textures": { "textures": {
"particle": "refinedstorage:block/disk_manipulator/right", "cutout": "refinedstorage:block/disk_manipulator/cutouts/magenta",
"east": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"west": "refinedstorage:block/disk_manipulator/left",
"up": "refinedstorage:block/disk_manipulator/top",
"down": "refinedstorage:block/bottom", "down": "refinedstorage:block/bottom",
"east": "refinedstorage:block/disk_manipulator/right",
"north": "refinedstorage:block/disk_manipulator/front", "north": "refinedstorage:block/disk_manipulator/front",
"cutout": "refinedstorage:block/disk_manipulator/cutouts/magenta" "particle": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"up": "refinedstorage:block/disk_manipulator/top",
"west": "refinedstorage:block/disk_manipulator/left"
} }
} }

View File

@@ -1,13 +1,13 @@
{ {
"parent": "refinedstorage:block/cube_north_cutout", "parent": "refinedstorage:block/cube_north_cutout",
"textures": { "textures": {
"particle": "refinedstorage:block/disk_manipulator/right", "cutout": "refinedstorage:block/disk_manipulator/cutouts/orange",
"east": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"west": "refinedstorage:block/disk_manipulator/left",
"up": "refinedstorage:block/disk_manipulator/top",
"down": "refinedstorage:block/bottom", "down": "refinedstorage:block/bottom",
"east": "refinedstorage:block/disk_manipulator/right",
"north": "refinedstorage:block/disk_manipulator/front", "north": "refinedstorage:block/disk_manipulator/front",
"cutout": "refinedstorage:block/disk_manipulator/cutouts/orange" "particle": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"up": "refinedstorage:block/disk_manipulator/top",
"west": "refinedstorage:block/disk_manipulator/left"
} }
} }

View File

@@ -1,13 +1,13 @@
{ {
"parent": "refinedstorage:block/cube_north_cutout", "parent": "refinedstorage:block/cube_north_cutout",
"textures": { "textures": {
"particle": "refinedstorage:block/disk_manipulator/right", "cutout": "refinedstorage:block/disk_manipulator/cutouts/pink",
"east": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"west": "refinedstorage:block/disk_manipulator/left",
"up": "refinedstorage:block/disk_manipulator/top",
"down": "refinedstorage:block/bottom", "down": "refinedstorage:block/bottom",
"east": "refinedstorage:block/disk_manipulator/right",
"north": "refinedstorage:block/disk_manipulator/front", "north": "refinedstorage:block/disk_manipulator/front",
"cutout": "refinedstorage:block/disk_manipulator/cutouts/pink" "particle": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"up": "refinedstorage:block/disk_manipulator/top",
"west": "refinedstorage:block/disk_manipulator/left"
} }
} }

View File

@@ -1,13 +1,13 @@
{ {
"parent": "refinedstorage:block/cube_north_cutout", "parent": "refinedstorage:block/cube_north_cutout",
"textures": { "textures": {
"particle": "refinedstorage:block/disk_manipulator/right", "cutout": "refinedstorage:block/disk_manipulator/cutouts/purple",
"east": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"west": "refinedstorage:block/disk_manipulator/left",
"up": "refinedstorage:block/disk_manipulator/top",
"down": "refinedstorage:block/bottom", "down": "refinedstorage:block/bottom",
"east": "refinedstorage:block/disk_manipulator/right",
"north": "refinedstorage:block/disk_manipulator/front", "north": "refinedstorage:block/disk_manipulator/front",
"cutout": "refinedstorage:block/disk_manipulator/cutouts/purple" "particle": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"up": "refinedstorage:block/disk_manipulator/top",
"west": "refinedstorage:block/disk_manipulator/left"
} }
} }

View File

@@ -1,13 +1,13 @@
{ {
"parent": "refinedstorage:block/cube_north_cutout", "parent": "refinedstorage:block/cube_north_cutout",
"textures": { "textures": {
"particle": "refinedstorage:block/disk_manipulator/right", "cutout": "refinedstorage:block/disk_manipulator/cutouts/red",
"east": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"west": "refinedstorage:block/disk_manipulator/left",
"up": "refinedstorage:block/disk_manipulator/top",
"down": "refinedstorage:block/bottom", "down": "refinedstorage:block/bottom",
"east": "refinedstorage:block/disk_manipulator/right",
"north": "refinedstorage:block/disk_manipulator/front", "north": "refinedstorage:block/disk_manipulator/front",
"cutout": "refinedstorage:block/disk_manipulator/cutouts/red" "particle": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"up": "refinedstorage:block/disk_manipulator/top",
"west": "refinedstorage:block/disk_manipulator/left"
} }
} }

View File

@@ -1,13 +1,13 @@
{ {
"parent": "refinedstorage:block/cube_north_cutout", "parent": "refinedstorage:block/cube_north_cutout",
"textures": { "textures": {
"particle": "refinedstorage:block/disk_manipulator/right", "cutout": "refinedstorage:block/disk_manipulator/cutouts/white",
"east": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"west": "refinedstorage:block/disk_manipulator/left",
"up": "refinedstorage:block/disk_manipulator/top",
"down": "refinedstorage:block/bottom", "down": "refinedstorage:block/bottom",
"east": "refinedstorage:block/disk_manipulator/right",
"north": "refinedstorage:block/disk_manipulator/front", "north": "refinedstorage:block/disk_manipulator/front",
"cutout": "refinedstorage:block/disk_manipulator/cutouts/white" "particle": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"up": "refinedstorage:block/disk_manipulator/top",
"west": "refinedstorage:block/disk_manipulator/left"
} }
} }

View File

@@ -1,13 +1,13 @@
{ {
"parent": "refinedstorage:block/cube_north_cutout", "parent": "refinedstorage:block/cube_north_cutout",
"textures": { "textures": {
"particle": "refinedstorage:block/disk_manipulator/right", "cutout": "refinedstorage:block/disk_manipulator/cutouts/yellow",
"east": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"west": "refinedstorage:block/disk_manipulator/left",
"up": "refinedstorage:block/disk_manipulator/top",
"down": "refinedstorage:block/bottom", "down": "refinedstorage:block/bottom",
"east": "refinedstorage:block/disk_manipulator/right",
"north": "refinedstorage:block/disk_manipulator/front", "north": "refinedstorage:block/disk_manipulator/front",
"cutout": "refinedstorage:block/disk_manipulator/cutouts/yellow" "particle": "refinedstorage:block/disk_manipulator/right",
"south": "refinedstorage:block/disk_manipulator/back",
"up": "refinedstorage:block/disk_manipulator/top",
"west": "refinedstorage:block/disk_manipulator/left"
} }
} }

View File

@@ -10,10 +10,8 @@ import com.refinedmods.refinedstorage.network.NetworkHandler;
import com.refinedmods.refinedstorage.setup.ClientSetup; import com.refinedmods.refinedstorage.setup.ClientSetup;
import com.refinedmods.refinedstorage.setup.CommonSetup; import com.refinedmods.refinedstorage.setup.CommonSetup;
import com.refinedmods.refinedstorage.setup.ServerSetup; import com.refinedmods.refinedstorage.setup.ServerSetup;
import net.minecraft.world.inventory.MenuType;
import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.item.crafting.RecipeSerializer;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.DistExecutor; import net.minecraftforge.fml.DistExecutor;
@@ -36,8 +34,11 @@ public final class RS {
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> { DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> {
FMLJavaModLoadingContext.get().getModEventBus().addListener(ClientSetup::onClientSetup); FMLJavaModLoadingContext.get().getModEventBus().addListener(ClientSetup::onClientSetup);
FMLJavaModLoadingContext.get().getModEventBus().addListener(ClientSetup::onModelBake); FMLJavaModLoadingContext.get().getModEventBus().addListener(ClientSetup::onModelBake);
FMLJavaModLoadingContext.get().getModEventBus().addListener(ClientSetup::onModelRegistry); FMLJavaModLoadingContext.get().getModEventBus().addListener(ClientSetup::onRegisterAdditionalModels);
FMLJavaModLoadingContext.get().getModEventBus().addListener(ClientSetup::onTextureStitch); FMLJavaModLoadingContext.get().getModEventBus().addListener(ClientSetup::onTextureStitch);
FMLJavaModLoadingContext.get().getModEventBus().addListener(ClientSetup::onRegisterModelGeometry);
FMLJavaModLoadingContext.get().getModEventBus().addListener(ClientSetup::onRegisterKeymappings);
FMLJavaModLoadingContext.get().getModEventBus().addListener(ClientSetup::onRegisterColorBindings);
MinecraftForge.EVENT_BUS.addListener(ClientSetup::addReloadListener); MinecraftForge.EVENT_BUS.addListener(ClientSetup::addReloadListener);
}); });
@@ -51,13 +52,14 @@ public final class RS {
RSLootFunctions.register(); RSLootFunctions.register();
FMLJavaModLoadingContext.get().getModEventBus().addListener(CommonSetup::onCommonSetup); FMLJavaModLoadingContext.get().getModEventBus().addListener(CommonSetup::onCommonSetup);
FMLJavaModLoadingContext.get().getModEventBus().addGenericListener(BlockEntityType.class, CommonSetup::onRegisterBlockEntities);
FMLJavaModLoadingContext.get().getModEventBus().addGenericListener(RecipeSerializer.class, CommonSetup::onRegisterRecipeSerializers);
FMLJavaModLoadingContext.get().getModEventBus().addGenericListener(MenuType.class, CommonSetup::onRegisterMenus);
FMLJavaModLoadingContext.get().getModEventBus().addListener(CommonSetup::onRegisterCapabilities); FMLJavaModLoadingContext.get().getModEventBus().addListener(CommonSetup::onRegisterCapabilities);
FMLJavaModLoadingContext.get().getModEventBus().register(new DataGenerators()); FMLJavaModLoadingContext.get().getModEventBus().register(new DataGenerators());
FMLJavaModLoadingContext.get().getModEventBus().register(new CuriosIntegration()); FMLJavaModLoadingContext.get().getModEventBus().register(new CuriosIntegration());
RSContainerMenus.REGISTRY.register(FMLJavaModLoadingContext.get().getModEventBus());
RSBlockEntities.REGISTRY.register(FMLJavaModLoadingContext.get().getModEventBus());
RSRecipeSerializers.REGISTRY.register(FMLJavaModLoadingContext.get().getModEventBus());
API.deliver(); API.deliver();
} }
} }

View File

@@ -1,90 +1,106 @@
package com.refinedmods.refinedstorage; package com.refinedmods.refinedstorage;
import com.refinedmods.refinedstorage.api.network.NetworkType;
import com.refinedmods.refinedstorage.api.network.grid.GridType;
import com.refinedmods.refinedstorage.apiimpl.storage.FluidStorageType;
import com.refinedmods.refinedstorage.apiimpl.storage.ItemStorageType;
import com.refinedmods.refinedstorage.blockentity.*; import com.refinedmods.refinedstorage.blockentity.*;
import com.refinedmods.refinedstorage.blockentity.craftingmonitor.CraftingMonitorBlockEntity; import com.refinedmods.refinedstorage.blockentity.craftingmonitor.CraftingMonitorBlockEntity;
import com.refinedmods.refinedstorage.blockentity.data.BlockEntitySynchronizationManager;
import com.refinedmods.refinedstorage.blockentity.data.BlockEntitySynchronizationSpec;
import com.refinedmods.refinedstorage.blockentity.grid.GridBlockEntity; import com.refinedmods.refinedstorage.blockentity.grid.GridBlockEntity;
import com.refinedmods.refinedstorage.blockentity.grid.portable.PortableGridBlockEntity; import com.refinedmods.refinedstorage.blockentity.grid.portable.PortableGridBlockEntity;
import com.refinedmods.refinedstorage.item.blockitem.PortableGridBlockItem;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraftforge.registries.ObjectHolder; import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
@ObjectHolder(RS.ID)
public final class RSBlockEntities { public final class RSBlockEntities {
@ObjectHolder("controller") public static final DeferredRegister<BlockEntityType<?>> REGISTRY = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, RS.ID);
public static final BlockEntityType<ControllerBlockEntity> CONTROLLER = null;
@ObjectHolder("creative_controller") public static final RegistryObject<BlockEntityType<ControllerBlockEntity>> CONTROLLER =
public static final BlockEntityType<ControllerBlockEntity> CREATIVE_CONTROLLER = null; REGISTRY.register("controller", () -> registerSynchronizationParameters(ControllerBlockEntity.SPEC, BlockEntityType.Builder.of((pos, state) -> new ControllerBlockEntity(NetworkType.NORMAL, pos, state), RSBlocks.CONTROLLER.getBlocks()).build(null)));
@ObjectHolder("detector") public static final RegistryObject<BlockEntityType<ControllerBlockEntity>> CREATIVE_CONTROLLER =
public static final BlockEntityType<DetectorBlockEntity> DETECTOR = null; REGISTRY.register("creative_controller", () -> registerSynchronizationParameters(ControllerBlockEntity.SPEC, BlockEntityType.Builder.of((pos, state) -> new ControllerBlockEntity(NetworkType.CREATIVE, pos, state), RSBlocks.CREATIVE_CONTROLLER.getBlocks()).build(null)));
@ObjectHolder("disk_drive") public static final RegistryObject<BlockEntityType<DetectorBlockEntity>> DETECTOR =
public static final BlockEntityType<DiskDriveBlockEntity> DISK_DRIVE = null; REGISTRY.register("detector", () -> registerSynchronizationParameters(DetectorBlockEntity.SPEC, BlockEntityType.Builder.of(DetectorBlockEntity::new, RSBlocks.DETECTOR.getBlocks()).build(null)));
@ObjectHolder("exporter") public static final RegistryObject<BlockEntityType<DiskDriveBlockEntity>> DISK_DRIVE =
public static final BlockEntityType<ExporterBlockEntity> EXPORTER = null; REGISTRY.register("disk_drive", () -> registerSynchronizationParameters(DiskDriveBlockEntity.SPEC, BlockEntityType.Builder.of(DiskDriveBlockEntity::new, RSBlocks.DISK_DRIVE.get()).build(null)));
@ObjectHolder("external_storage") public static final RegistryObject<BlockEntityType<ExporterBlockEntity>> EXPORTER =
public static final BlockEntityType<ExternalStorageBlockEntity> EXTERNAL_STORAGE = null; REGISTRY.register("exporter", () -> registerSynchronizationParameters(ExporterBlockEntity.SPEC, BlockEntityType.Builder.of(ExporterBlockEntity::new, RSBlocks.EXPORTER.get()).build(null)));
@ObjectHolder("grid") public static final RegistryObject<BlockEntityType<ExternalStorageBlockEntity>> EXTERNAL_STORAGE =
public static final BlockEntityType<GridBlockEntity> GRID = null; REGISTRY.register("external_storage", () -> registerSynchronizationParameters(ExternalStorageBlockEntity.SPEC, BlockEntityType.Builder.of(ExternalStorageBlockEntity::new, RSBlocks.EXTERNAL_STORAGE.get()).build(null)));
@ObjectHolder("crafting_grid") public static final RegistryObject<BlockEntityType<GridBlockEntity>> GRID =
public static final BlockEntityType<GridBlockEntity> CRAFTING_GRID = null; REGISTRY.register("grid", () -> registerSynchronizationParameters(GridBlockEntity.SPEC, BlockEntityType.Builder.of((pos, state) -> new GridBlockEntity(GridType.NORMAL, pos, state), RSBlocks.GRID.getBlocks()).build(null)));
@ObjectHolder("pattern_grid") public static final RegistryObject<BlockEntityType<GridBlockEntity>> CRAFTING_GRID =
public static final BlockEntityType<GridBlockEntity> PATTERN_GRID = null; REGISTRY.register("crafting_grid", () -> registerSynchronizationParameters(GridBlockEntity.SPEC, BlockEntityType.Builder.of((pos, state) -> new GridBlockEntity(GridType.CRAFTING, pos, state), RSBlocks.CRAFTING_GRID.getBlocks()).build(null)));
@ObjectHolder("fluid_grid") public static final RegistryObject<BlockEntityType<GridBlockEntity>> PATTERN_GRID =
public static final BlockEntityType<GridBlockEntity> FLUID_GRID = null; REGISTRY.register("pattern_grid", () -> registerSynchronizationParameters(GridBlockEntity.SPEC, BlockEntityType.Builder.of((pos, state) -> new GridBlockEntity(GridType.PATTERN, pos, state), RSBlocks.PATTERN_GRID.getBlocks()).build(null)));
@ObjectHolder("importer") public static final RegistryObject<BlockEntityType<GridBlockEntity>> FLUID_GRID =
public static final BlockEntityType<ImporterBlockEntity> IMPORTER = null; REGISTRY.register("fluid_grid", () -> registerSynchronizationParameters(GridBlockEntity.SPEC, BlockEntityType.Builder.of((pos, state) -> new GridBlockEntity(GridType.FLUID, pos, state), RSBlocks.FLUID_GRID.getBlocks()).build(null)));
@ObjectHolder("network_transmitter") public static final RegistryObject<BlockEntityType<ImporterBlockEntity>> IMPORTER =
public static final BlockEntityType<NetworkTransmitterBlockEntity> NETWORK_TRANSMITTER = null; REGISTRY.register("importer", () -> registerSynchronizationParameters(ImporterBlockEntity.SPEC, BlockEntityType.Builder.of(ImporterBlockEntity::new, RSBlocks.IMPORTER.get()).build(null)));
@ObjectHolder("network_receiver") public static final RegistryObject<BlockEntityType<NetworkTransmitterBlockEntity>> NETWORK_TRANSMITTER =
public static final BlockEntityType<NetworkReceiverBlockEntity> NETWORK_RECEIVER = null; REGISTRY.register("network_transmitter", () -> registerSynchronizationParameters(NetworkTransmitterBlockEntity.SPEC, BlockEntityType.Builder.of(NetworkTransmitterBlockEntity::new, RSBlocks.NETWORK_TRANSMITTER.getBlocks()).build(null)));
@ObjectHolder("relay") public static final RegistryObject<BlockEntityType<NetworkReceiverBlockEntity>> NETWORK_RECEIVER =
public static final BlockEntityType<RelayBlockEntity> RELAY = null; REGISTRY.register("network_receiver", () -> registerSynchronizationParameters(NetworkReceiverBlockEntity.SPEC, BlockEntityType.Builder.of(NetworkReceiverBlockEntity::new, RSBlocks.NETWORK_RECEIVER.getBlocks()).build(null)));
@ObjectHolder("cable") public static final RegistryObject<BlockEntityType<RelayBlockEntity>> RELAY =
public static final BlockEntityType<CableBlockEntity> CABLE = null; REGISTRY.register("relay", () -> registerSynchronizationParameters(RelayBlockEntity.SPEC, BlockEntityType.Builder.of(RelayBlockEntity::new, RSBlocks.RELAY.getBlocks()).build(null)));
@ObjectHolder("1k_storage_block") public static final RegistryObject<BlockEntityType<CableBlockEntity>> CABLE =
public static final BlockEntityType<StorageBlockEntity> ONE_K_STORAGE_BLOCK = null; REGISTRY.register("cable", () -> registerSynchronizationParameters(CableBlockEntity.SPEC, BlockEntityType.Builder.of(CableBlockEntity::new, RSBlocks.CABLE.get()).build(null)));
@ObjectHolder("4k_storage_block") public static final RegistryObject<BlockEntityType<StorageBlockEntity>> ONE_K_STORAGE_BLOCK =
public static final BlockEntityType<StorageBlockEntity> FOUR_K_STORAGE_BLOCK = null; REGISTRY.register("1k_storage_block", () -> registerSynchronizationParameters(StorageBlockEntity.SPEC, BlockEntityType.Builder.of((pos, state) -> new StorageBlockEntity(ItemStorageType.ONE_K, pos, state), RSBlocks.STORAGE_BLOCKS.get(ItemStorageType.ONE_K).get()).build(null)));
@ObjectHolder("16k_storage_block") public static final RegistryObject<BlockEntityType<StorageBlockEntity>> FOUR_K_STORAGE_BLOCK =
public static final BlockEntityType<StorageBlockEntity> SIXTEEN_K_STORAGE_BLOCK = null; REGISTRY.register("4k_storage_block", () -> registerSynchronizationParameters(StorageBlockEntity.SPEC, BlockEntityType.Builder.of((pos, state) -> new StorageBlockEntity(ItemStorageType.FOUR_K, pos, state), RSBlocks.STORAGE_BLOCKS.get(ItemStorageType.FOUR_K).get()).build(null)));
@ObjectHolder("64k_storage_block") public static final RegistryObject<BlockEntityType<StorageBlockEntity>> SIXTEEN_K_STORAGE_BLOCK =
public static final BlockEntityType<StorageBlockEntity> SIXTY_FOUR_K_STORAGE_BLOCK = null; REGISTRY.register("16k_storage_block", () -> registerSynchronizationParameters(StorageBlockEntity.SPEC, BlockEntityType.Builder.of((pos, state) -> new StorageBlockEntity(ItemStorageType.SIXTEEN_K, pos, state), RSBlocks.STORAGE_BLOCKS.get(ItemStorageType.SIXTEEN_K).get()).build(null)));
@ObjectHolder("creative_storage_block") public static final RegistryObject<BlockEntityType<StorageBlockEntity>> SIXTY_FOUR_K_STORAGE_BLOCK =
public static final BlockEntityType<StorageBlockEntity> CREATIVE_STORAGE_BLOCK = null; REGISTRY.register("64k_storage_block", () -> registerSynchronizationParameters(StorageBlockEntity.SPEC, BlockEntityType.Builder.of((pos, state) -> new StorageBlockEntity(ItemStorageType.SIXTY_FOUR_K, pos, state), RSBlocks.STORAGE_BLOCKS.get(ItemStorageType.SIXTY_FOUR_K).get()).build(null)));
@ObjectHolder("64k_fluid_storage_block") public static final RegistryObject<BlockEntityType<StorageBlockEntity>> CREATIVE_STORAGE_BLOCK =
public static final BlockEntityType<FluidStorageBlockEntity> SIXTY_FOUR_K_FLUID_STORAGE_BLOCK = null; REGISTRY.register("creative_storage_block", () -> registerSynchronizationParameters(StorageBlockEntity.SPEC, BlockEntityType.Builder.of((pos, state) -> new StorageBlockEntity(ItemStorageType.CREATIVE, pos, state), RSBlocks.STORAGE_BLOCKS.get(ItemStorageType.CREATIVE).get()).build(null)));
@ObjectHolder("256k_fluid_storage_block") public static final RegistryObject<BlockEntityType<FluidStorageBlockEntity>> SIXTY_FOUR_K_FLUID_STORAGE_BLOCK =
public static final BlockEntityType<FluidStorageBlockEntity> TWO_HUNDRED_FIFTY_SIX_K_FLUID_STORAGE_BLOCK = null; REGISTRY.register("64k_fluid_storage_block", () -> registerSynchronizationParameters(FluidStorageBlockEntity.SPEC, BlockEntityType.Builder.of((pos, state) -> new FluidStorageBlockEntity(FluidStorageType.SIXTY_FOUR_K, pos, state), RSBlocks.FLUID_STORAGE_BLOCKS.get(FluidStorageType.SIXTY_FOUR_K).get()).build(null)));
@ObjectHolder("1024k_fluid_storage_block") public static final RegistryObject<BlockEntityType<FluidStorageBlockEntity>> TWO_HUNDRED_FIFTY_SIX_K_FLUID_STORAGE_BLOCK =
public static final BlockEntityType<FluidStorageBlockEntity> THOUSAND_TWENTY_FOUR_K_FLUID_STORAGE_BLOCK = null; REGISTRY.register("256k_fluid_storage_block", () -> registerSynchronizationParameters(FluidStorageBlockEntity.SPEC, BlockEntityType.Builder.of((pos, state) -> new FluidStorageBlockEntity(FluidStorageType.TWO_HUNDRED_FIFTY_SIX_K, pos, state), RSBlocks.FLUID_STORAGE_BLOCKS.get(FluidStorageType.TWO_HUNDRED_FIFTY_SIX_K).get()).build(null)));
@ObjectHolder("4096k_fluid_storage_block") public static final RegistryObject<BlockEntityType<FluidStorageBlockEntity>> THOUSAND_TWENTY_FOUR_K_FLUID_STORAGE_BLOCK =
public static final BlockEntityType<FluidStorageBlockEntity> FOUR_THOUSAND_NINETY_SIX_K_FLUID_STORAGE_BLOCK = null; REGISTRY.register("1024k_fluid_storage_block", () -> registerSynchronizationParameters(FluidStorageBlockEntity.SPEC, BlockEntityType.Builder.of((pos, state) -> new FluidStorageBlockEntity(FluidStorageType.THOUSAND_TWENTY_FOUR_K, pos, state), RSBlocks.FLUID_STORAGE_BLOCKS.get(FluidStorageType.THOUSAND_TWENTY_FOUR_K).get()).build(null)));
@ObjectHolder("creative_fluid_storage_block") public static final RegistryObject<BlockEntityType<FluidStorageBlockEntity>> FOUR_THOUSAND_NINETY_SIX_K_FLUID_STORAGE_BLOCK =
public static final BlockEntityType<FluidStorageBlockEntity> CREATIVE_FLUID_STORAGE_BLOCK = null; REGISTRY.register("4096k_fluid_storage_block", () -> registerSynchronizationParameters(FluidStorageBlockEntity.SPEC, BlockEntityType.Builder.of((pos, state) -> new FluidStorageBlockEntity(FluidStorageType.FOUR_THOUSAND_NINETY_SIX_K, pos, state), RSBlocks.FLUID_STORAGE_BLOCKS.get(FluidStorageType.FOUR_THOUSAND_NINETY_SIX_K).get()).build(null)));
@ObjectHolder("security_manager") public static final RegistryObject<BlockEntityType<FluidStorageBlockEntity>> CREATIVE_FLUID_STORAGE_BLOCK =
public static final BlockEntityType<SecurityManagerBlockEntity> SECURITY_MANAGER = null; REGISTRY.register("creative_fluid_storage_block", () -> registerSynchronizationParameters(FluidStorageBlockEntity.SPEC, BlockEntityType.Builder.of((pos, state) -> new FluidStorageBlockEntity(FluidStorageType.CREATIVE, pos, state), RSBlocks.FLUID_STORAGE_BLOCKS.get(FluidStorageType.CREATIVE).get()).build(null)));
@ObjectHolder("interface") public static final RegistryObject<BlockEntityType<SecurityManagerBlockEntity>> SECURITY_MANAGER =
public static final BlockEntityType<InterfaceBlockEntity> INTERFACE = null; REGISTRY.register("security_manager", () -> registerSynchronizationParameters(SecurityManagerBlockEntity.SPEC, BlockEntityType.Builder.of(SecurityManagerBlockEntity::new, RSBlocks.SECURITY_MANAGER.getBlocks()).build(null)));
@ObjectHolder("fluid_interface") public static final RegistryObject<BlockEntityType<InterfaceBlockEntity>> INTERFACE =
public static final BlockEntityType<FluidInterfaceBlockEntity> FLUID_INTERFACE = null; REGISTRY.register("interface", () -> registerSynchronizationParameters(InterfaceBlockEntity.SPEC, BlockEntityType.Builder.of(InterfaceBlockEntity::new, RSBlocks.INTERFACE.get()).build(null)));
@ObjectHolder("wireless_transmitter") public static final RegistryObject<BlockEntityType<FluidInterfaceBlockEntity>> FLUID_INTERFACE =
public static final BlockEntityType<WirelessTransmitterBlockEntity> WIRELESS_TRANSMITTER = null; REGISTRY.register("fluid_interface", () -> registerSynchronizationParameters(FluidInterfaceBlockEntity.SPEC, BlockEntityType.Builder.of(FluidInterfaceBlockEntity::new, RSBlocks.FLUID_INTERFACE.get()).build(null)));
@ObjectHolder("storage_monitor") public static final RegistryObject<BlockEntityType<WirelessTransmitterBlockEntity>> WIRELESS_TRANSMITTER =
public static final BlockEntityType<StorageMonitorBlockEntity> STORAGE_MONITOR = null; REGISTRY.register("wireless_transmitter", () -> registerSynchronizationParameters(WirelessTransmitterBlockEntity.SPEC, BlockEntityType.Builder.of(WirelessTransmitterBlockEntity::new, RSBlocks.WIRELESS_TRANSMITTER.getBlocks()).build(null)));
@ObjectHolder("constructor") public static final RegistryObject<BlockEntityType<StorageMonitorBlockEntity>> STORAGE_MONITOR =
public static final BlockEntityType<ConstructorBlockEntity> CONSTRUCTOR = null; REGISTRY.register("storage_monitor", () -> registerSynchronizationParameters(StorageMonitorBlockEntity.SPEC, BlockEntityType.Builder.of(StorageMonitorBlockEntity::new, RSBlocks.STORAGE_MONITOR.get()).build(null)));
@ObjectHolder("destructor") public static final RegistryObject<BlockEntityType<ConstructorBlockEntity>> CONSTRUCTOR =
public static final BlockEntityType<DestructorBlockEntity> DESTRUCTOR = null; REGISTRY.register("constructor", () -> registerSynchronizationParameters(ConstructorBlockEntity.SPEC, BlockEntityType.Builder.of(ConstructorBlockEntity::new, RSBlocks.CONSTRUCTOR.get()).build(null)));
@ObjectHolder("disk_manipulator") public static final RegistryObject<BlockEntityType<DestructorBlockEntity>> DESTRUCTOR =
public static final BlockEntityType<DiskManipulatorBlockEntity> DISK_MANIPULATOR = null; REGISTRY.register("destructor", () -> registerSynchronizationParameters(DestructorBlockEntity.SPEC, BlockEntityType.Builder.of(DestructorBlockEntity::new, RSBlocks.DESTRUCTOR.get()).build(null)));
@ObjectHolder("portable_grid") public static final RegistryObject<BlockEntityType<DiskManipulatorBlockEntity>> DISK_MANIPULATOR =
public static final BlockEntityType<PortableGridBlockEntity> PORTABLE_GRID = null; REGISTRY.register("disk_manipulator", () -> registerSynchronizationParameters(DiskManipulatorBlockEntity.SPEC, BlockEntityType.Builder.of(DiskManipulatorBlockEntity::new, RSBlocks.DISK_MANIPULATOR.getBlocks()).build(null)));
@ObjectHolder("creative_portable_grid") public static final RegistryObject<BlockEntityType<PortableGridBlockEntity>> PORTABLE_GRID =
public static final BlockEntityType<PortableGridBlockEntity> CREATIVE_PORTABLE_GRID = null; REGISTRY.register("portable_grid", () -> registerSynchronizationParameters(PortableGridBlockEntity.SPEC, BlockEntityType.Builder.of((pos, state) -> new PortableGridBlockEntity(PortableGridBlockItem.Type.NORMAL, pos, state), RSBlocks.PORTABLE_GRID.get()).build(null)));
@ObjectHolder("crafter") public static final RegistryObject<BlockEntityType<PortableGridBlockEntity>> CREATIVE_PORTABLE_GRID =
public static final BlockEntityType<CrafterBlockEntity> CRAFTER = null; REGISTRY.register("creative_portable_grid", () -> registerSynchronizationParameters(PortableGridBlockEntity.SPEC, BlockEntityType.Builder.of((pos, state) -> new PortableGridBlockEntity(PortableGridBlockItem.Type.CREATIVE, pos, state), RSBlocks.CREATIVE_PORTABLE_GRID.get()).build(null)));
@ObjectHolder("crafter_manager") public static final RegistryObject<BlockEntityType<CrafterBlockEntity>> CRAFTER =
public static final BlockEntityType<CrafterManagerBlockEntity> CRAFTER_MANAGER = null; REGISTRY.register("crafter", () -> registerSynchronizationParameters(CrafterBlockEntity.SPEC, BlockEntityType.Builder.of(CrafterBlockEntity::new, RSBlocks.CRAFTER.getBlocks()).build(null)));
@ObjectHolder("crafting_monitor") public static final RegistryObject<BlockEntityType<CrafterManagerBlockEntity>> CRAFTER_MANAGER =
public static final BlockEntityType<CraftingMonitorBlockEntity> CRAFTING_MONITOR = null; REGISTRY.register("crafter_manager", () -> registerSynchronizationParameters(CrafterManagerBlockEntity.SPEC, BlockEntityType.Builder.of(CrafterManagerBlockEntity::new, RSBlocks.CRAFTER_MANAGER.getBlocks()).build(null)));
public static final RegistryObject<BlockEntityType<CraftingMonitorBlockEntity>> CRAFTING_MONITOR =
REGISTRY.register("crafting_monitor", () -> registerSynchronizationParameters(CraftingMonitorBlockEntity.SPEC, BlockEntityType.Builder.of(CraftingMonitorBlockEntity::new, RSBlocks.CRAFTING_MONITOR.getBlocks()).build(null)));
private static <T extends BlockEntity> BlockEntityType<T> registerSynchronizationParameters(BlockEntitySynchronizationSpec spec, BlockEntityType<T> t) {
spec.getParameters().forEach(BlockEntitySynchronizationManager::registerParameter);
return t;
}
private RSBlockEntities() { private RSBlockEntities() {
} }

View File

@@ -1,59 +1,41 @@
package com.refinedmods.refinedstorage; package com.refinedmods.refinedstorage;
import com.refinedmods.refinedstorage.blockentity.*;
import com.refinedmods.refinedstorage.container.*; import com.refinedmods.refinedstorage.container.*;
import com.refinedmods.refinedstorage.container.factory.*;
import net.minecraft.world.inventory.MenuType; import net.minecraft.world.inventory.MenuType;
import net.minecraftforge.registries.ObjectHolder; import net.minecraftforge.common.extensions.IForgeMenuType;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
@ObjectHolder(RS.ID)
public final class RSContainerMenus { public final class RSContainerMenus {
@ObjectHolder("controller") public static final DeferredRegister<MenuType<?>> REGISTRY = DeferredRegister.create(ForgeRegistries.MENU_TYPES, RS.ID);
public static final MenuType<ControllerContainerMenu> CONTROLLER = null;
@ObjectHolder("grid") public static final RegistryObject<MenuType<ControllerContainerMenu>> CONTROLLER = REGISTRY.register("controller", () -> IForgeMenuType.create(((windowId, inv, data) -> new ControllerContainerMenu(null, inv.player, windowId))));
public static final MenuType<GridContainerMenu> GRID = null; public static final RegistryObject<MenuType<GridContainerMenu>> GRID = REGISTRY.register("grid", () -> IForgeMenuType.create(new GridContainerFactory()));
@ObjectHolder("detector") public static final RegistryObject<MenuType<DetectorContainerMenu>> DETECTOR = REGISTRY.register("detector", () -> IForgeMenuType.create(new BlockEntityContainerFactory<DetectorContainerMenu, DetectorBlockEntity>((windowId, inv, blockEntity) -> new DetectorContainerMenu(blockEntity, inv.player, windowId))));
public static final MenuType<DetectorContainerMenu> DETECTOR = null; public static final RegistryObject<MenuType<ExporterContainerMenu>> EXPORTER = REGISTRY.register("exporter", () -> IForgeMenuType.create(new BlockEntityContainerFactory<ExporterContainerMenu, ExporterBlockEntity>((windowId, inv, blockEntity) -> new ExporterContainerMenu(blockEntity, inv.player, windowId))));
@ObjectHolder("exporter") public static final RegistryObject<MenuType<ExternalStorageContainerMenu>> EXTERNAL_STORAGE = REGISTRY.register("external_storage", () -> IForgeMenuType.create(new BlockEntityContainerFactory<ExternalStorageContainerMenu, ExternalStorageBlockEntity>((windowId, inv, blockEntity) -> new ExternalStorageContainerMenu(blockEntity, inv.player, windowId))));
public static final MenuType<ExporterContainerMenu> EXPORTER = null; public static final RegistryObject<MenuType<FilterContainerMenu>> FILTER = REGISTRY.register("filter", () -> IForgeMenuType.create((windowId, inv, data) -> new FilterContainerMenu(inv.player, inv.getSelected(), windowId)));
@ObjectHolder("external_storage") public static final RegistryObject<MenuType<ImporterContainerMenu>> IMPORTER = REGISTRY.register("importer", () -> IForgeMenuType.create(new BlockEntityContainerFactory<ImporterContainerMenu, ImporterBlockEntity>((windowId, inv, blockEntity) -> new ImporterContainerMenu(blockEntity, inv.player, windowId))));
public static final MenuType<ExternalStorageContainerMenu> EXTERNAL_STORAGE = null; public static final RegistryObject<MenuType<NetworkTransmitterContainerMenu>> NETWORK_TRANSMITTER = REGISTRY.register("network_transmitter", () -> IForgeMenuType.create(new BlockEntityContainerFactory<NetworkTransmitterContainerMenu, NetworkTransmitterBlockEntity>((windowId, inv, blockEntity) -> new NetworkTransmitterContainerMenu(blockEntity, inv.player, windowId))));
@ObjectHolder("filter") public static final RegistryObject<MenuType<RelayContainerMenu>> RELAY = REGISTRY.register("relay", () -> IForgeMenuType.create(new BlockEntityContainerFactory<RelayContainerMenu, RelayBlockEntity>((windowId, inv, blockEntity) -> new RelayContainerMenu(blockEntity, inv.player, windowId))));
public static final MenuType<FilterContainerMenu> FILTER = null; public static final RegistryObject<MenuType<DiskDriveContainerMenu>> DISK_DRIVE = REGISTRY.register("disk_drive", () -> IForgeMenuType.create(new BlockEntityContainerFactory<DiskDriveContainerMenu, DiskDriveBlockEntity>((windowId, inv, blockEntity) -> new DiskDriveContainerMenu(blockEntity, inv.player, windowId))));
@ObjectHolder("importer") public static final RegistryObject<MenuType<StorageContainerMenu>> STORAGE_BLOCK = REGISTRY.register("storage_block", () -> IForgeMenuType.create(new BlockEntityContainerFactory<StorageContainerMenu, StorageBlockEntity>((windowId, inv, blockEntity) -> new StorageContainerMenu(blockEntity, inv.player, windowId))));
public static final MenuType<ImporterContainerMenu> IMPORTER = null; public static final RegistryObject<MenuType<FluidStorageContainerMenu>> FLUID_STORAGE_BLOCK = REGISTRY.register("fluid_storage_block", () -> IForgeMenuType.create(new BlockEntityContainerFactory<FluidStorageContainerMenu, FluidStorageBlockEntity>((windowId, inv, blockEntity) -> new FluidStorageContainerMenu(blockEntity, inv.player, windowId))));
@ObjectHolder("network_transmitter") public static final RegistryObject<MenuType<SecurityManagerContainerMenu>> SECURITY_MANAGER = REGISTRY.register("security_manager", () -> IForgeMenuType.create(new BlockEntityContainerFactory<SecurityManagerContainerMenu, SecurityManagerBlockEntity>((windowId, inv, blockEntity) -> new SecurityManagerContainerMenu(blockEntity, inv.player, windowId))));
public static final MenuType<NetworkTransmitterContainerMenu> NETWORK_TRANSMITTER = null; public static final RegistryObject<MenuType<InterfaceContainerMenu>> INTERFACE = REGISTRY.register("interface", () -> IForgeMenuType.create(new BlockEntityContainerFactory<InterfaceContainerMenu, InterfaceBlockEntity>((windowId, inv, blockEntity) -> new InterfaceContainerMenu(blockEntity, inv.player, windowId))));
@ObjectHolder("relay") public static final RegistryObject<MenuType<FluidInterfaceContainerMenu>> FLUID_INTERFACE = REGISTRY.register("fluid_interface", () -> IForgeMenuType.create(new BlockEntityContainerFactory<FluidInterfaceContainerMenu, FluidInterfaceBlockEntity>((windowId, inv, blockEntity) -> new FluidInterfaceContainerMenu(blockEntity, inv.player, windowId))));
public static final MenuType<RelayContainerMenu> RELAY = null; public static final RegistryObject<MenuType<WirelessTransmitterContainerMenu>> WIRELESS_TRANSMITTER = REGISTRY.register("wireless_transmitter", () -> IForgeMenuType.create(new BlockEntityContainerFactory<WirelessTransmitterContainerMenu, WirelessTransmitterBlockEntity>((windowId, inv, blockEntity) -> new WirelessTransmitterContainerMenu(blockEntity, inv.player, windowId))));
@ObjectHolder("disk_drive") public static final RegistryObject<MenuType<StorageMonitorContainerMenu>> STORAGE_MONITOR = REGISTRY.register("storage_monitor", () -> IForgeMenuType.create(new BlockEntityContainerFactory<StorageMonitorContainerMenu, StorageMonitorBlockEntity>((windowId, inv, blockEntity) -> new StorageMonitorContainerMenu(blockEntity, inv.player, windowId))));
public static final MenuType<DiskDriveContainerMenu> DISK_DRIVE = null; public static final RegistryObject<MenuType<ConstructorContainerMenu>> CONSTRUCTOR = REGISTRY.register("constructor", () -> IForgeMenuType.create(new BlockEntityContainerFactory<ConstructorContainerMenu, ConstructorBlockEntity>((windowId, inv, blockEntity) -> new ConstructorContainerMenu(blockEntity, inv.player, windowId))));
@ObjectHolder("storage_block") public static final RegistryObject<MenuType<DestructorContainerMenu>> DESTRUCTOR = REGISTRY.register("destructor", () -> IForgeMenuType.create(new BlockEntityContainerFactory<DestructorContainerMenu, DestructorBlockEntity>((windowId, inv, blockEntity) -> new DestructorContainerMenu(blockEntity, inv.player, windowId))));
public static final MenuType<StorageContainerMenu> STORAGE_BLOCK = null; public static final RegistryObject<MenuType<DiskManipulatorContainerMenu>> DISK_MANIPULATOR = REGISTRY.register("disk_manipulator", () -> IForgeMenuType.create(new BlockEntityContainerFactory<DiskManipulatorContainerMenu, DiskManipulatorBlockEntity>((windowId, inv, blockEntity) -> new DiskManipulatorContainerMenu(blockEntity, inv.player, windowId))));
@ObjectHolder("fluid_storage_block") public static final RegistryObject<MenuType<CrafterContainerMenu>> CRAFTER = REGISTRY.register("crafter", () -> IForgeMenuType.create(new BlockEntityContainerFactory<CrafterContainerMenu, CrafterBlockEntity>((windowId, inv, blockEntity) -> new CrafterContainerMenu(blockEntity, inv.player, windowId))));
public static final MenuType<FluidStorageContainerMenu> FLUID_STORAGE_BLOCK = null; public static final RegistryObject<MenuType<CrafterManagerContainerMenu>> CRAFTER_MANAGER = REGISTRY.register("crafter_manager", () -> IForgeMenuType.create(new CrafterManagerContainerFactory()));
@ObjectHolder("security_manager") public static final RegistryObject<MenuType<CraftingMonitorContainerMenu>> CRAFTING_MONITOR = REGISTRY.register("crafting_monitor", () -> IForgeMenuType.create(new CraftingMonitorContainerFactory()));
public static final MenuType<SecurityManagerContainerMenu> SECURITY_MANAGER = null; public static final RegistryObject<MenuType<CraftingMonitorContainerMenu>> WIRELESS_CRAFTING_MONITOR = REGISTRY.register("wireless_crafting_monitor", () -> IForgeMenuType.create(new WirelessCraftingMonitorContainerFactory()));
@ObjectHolder("interface")
public static final MenuType<InterfaceContainerMenu> INTERFACE = null;
@ObjectHolder("fluid_interface")
public static final MenuType<FluidInterfaceContainerMenu> FLUID_INTERFACE = null;
@ObjectHolder("wireless_transmitter")
public static final MenuType<WirelessTransmitterContainerMenu> WIRELESS_TRANSMITTER = null;
@ObjectHolder("storage_monitor")
public static final MenuType<StorageMonitorContainerMenu> STORAGE_MONITOR = null;
@ObjectHolder("constructor")
public static final MenuType<ConstructorContainerMenu> CONSTRUCTOR = null;
@ObjectHolder("destructor")
public static final MenuType<DestructorContainerMenu> DESTRUCTOR = null;
@ObjectHolder("disk_manipulator")
public static final MenuType<DiskManipulatorContainerMenu> DISK_MANIPULATOR = null;
@ObjectHolder("crafter")
public static final MenuType<CrafterContainerMenu> CRAFTER = null;
@ObjectHolder("crafter_manager")
public static final MenuType<CrafterManagerContainerMenu> CRAFTER_MANAGER = null;
@ObjectHolder("crafting_monitor")
public static final MenuType<CraftingMonitorContainerMenu> CRAFTING_MONITOR = null;
@ObjectHolder("wireless_crafting_monitor")
public static final MenuType<CraftingMonitorContainerMenu> WIRELESS_CRAFTING_MONITOR = null;
private RSContainerMenus() { private RSContainerMenus() {
} }

View File

@@ -7,7 +7,8 @@ import com.refinedmods.refinedstorage.item.*;
import com.refinedmods.refinedstorage.item.blockitem.*; import com.refinedmods.refinedstorage.item.blockitem.*;
import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.BlockUtils;
import com.refinedmods.refinedstorage.util.ColorMap; import com.refinedmods.refinedstorage.util.ColorMap;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.ItemTags; import net.minecraft.tags.ItemTags;
import net.minecraft.tags.TagKey; import net.minecraft.tags.TagKey;
@@ -167,13 +168,13 @@ public final class RSItems {
LATE_REGISTRATION.add(() -> { LATE_REGISTRATION.add(() -> {
RSBlocks.CONTROLLER.forEach((color, block) -> { RSBlocks.CONTROLLER.forEach((color, block) -> {
if (color != ColorMap.DEFAULT_COLOR) { if (color != ColorMap.DEFAULT_COLOR) {
CONTROLLER.put(color, ITEMS.register(RSBlocks.CONTROLLER.get(color).getId().getPath(), () -> new ControllerBlockItem(RSBlocks.CONTROLLER.get(color).get(), color, new TranslatableComponent(RSBlocks.CONTROLLER.get(ColorMap.DEFAULT_COLOR).get().getDescriptionId())))); CONTROLLER.put(color, ITEMS.register(RSBlocks.CONTROLLER.get(color).getId().getPath(), () -> new ControllerBlockItem(RSBlocks.CONTROLLER.get(color).get(), color, Component.translatable(RSBlocks.CONTROLLER.get(ColorMap.DEFAULT_COLOR).get().getDescriptionId()))));
} }
}); });
RSBlocks.CREATIVE_CONTROLLER.forEach((color, block) -> { RSBlocks.CREATIVE_CONTROLLER.forEach((color, block) -> {
if (color != ColorMap.DEFAULT_COLOR) { if (color != ColorMap.DEFAULT_COLOR) {
CREATIVE_CONTROLLER.put(color, ITEMS.register(RSBlocks.CREATIVE_CONTROLLER.get(color).getId().getPath(), () -> new ControllerBlockItem(RSBlocks.CREATIVE_CONTROLLER.get(color).get(), color, new TranslatableComponent(RSBlocks.CREATIVE_CONTROLLER.get(ColorMap.DEFAULT_COLOR).get().getDescriptionId())))); CREATIVE_CONTROLLER.put(color, ITEMS.register(RSBlocks.CREATIVE_CONTROLLER.get(color).getId().getPath(), () -> new ControllerBlockItem(RSBlocks.CREATIVE_CONTROLLER.get(color).get(), color, Component.translatable(RSBlocks.CREATIVE_CONTROLLER.get(ColorMap.DEFAULT_COLOR).get().getDescriptionId()))));
} }
}); });
}); });

View File

@@ -0,0 +1,21 @@
package com.refinedmods.refinedstorage;
import com.refinedmods.refinedstorage.recipe.CoverRecipe;
import com.refinedmods.refinedstorage.recipe.HollowCoverRecipe;
import com.refinedmods.refinedstorage.recipe.UpgradeWithEnchantedBookRecipeSerializer;
import net.minecraft.core.Registry;
import net.minecraft.world.item.crafting.RecipeSerializer;
import net.minecraftforge.registries.DeferredRegister;
public final class RSRecipeSerializers {
public static final DeferredRegister<RecipeSerializer<?>> REGISTRY = DeferredRegister.create(Registry.RECIPE_SERIALIZER_REGISTRY, RS.ID);
static {
REGISTRY.register("upgrade_with_enchanted_book", UpgradeWithEnchantedBookRecipeSerializer::new);
REGISTRY.register("cover_recipe", () -> CoverRecipe.SERIALIZER);
REGISTRY.register("hollow_cover_recipe", () -> HollowCoverRecipe.SERIALIZER);
}
private RSRecipeSerializers() {
}
}

View File

@@ -268,6 +268,11 @@ public class CraftingPattern implements ICraftingPattern {
public static class DummyCraftingContainer extends CraftingContainer { public static class DummyCraftingContainer extends CraftingContainer {
public DummyCraftingContainer() { public DummyCraftingContainer() {
super(new AbstractContainerMenu(null, 0) { super(new AbstractContainerMenu(null, 0) {
@Override
public ItemStack quickMoveStack(Player p_38941_, int p_38942_) {
return ItemStack.EMPTY;
}
@Override @Override
public boolean stillValid(Player player) { public boolean stillValid(Player player) {
return true; return true;

View File

@@ -5,7 +5,7 @@ import com.refinedmods.refinedstorage.api.autocrafting.ICraftingPatternContainer
import com.refinedmods.refinedstorage.apiimpl.network.node.GridNetworkNode; import com.refinedmods.refinedstorage.apiimpl.network.node.GridNetworkNode;
import com.refinedmods.refinedstorage.item.PatternItem; import com.refinedmods.refinedstorage.item.PatternItem;
import net.minecraft.core.NonNullList; import net.minecraft.core.NonNullList;
import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.TagKey; import net.minecraft.tags.TagKey;
import net.minecraft.world.inventory.CraftingContainer; import net.minecraft.world.inventory.CraftingContainer;
@@ -48,7 +48,7 @@ public class CraftingPatternFactory {
} }
if (outputs.isEmpty() && fluidOutputs.isEmpty()) { if (outputs.isEmpty() && fluidOutputs.isEmpty()) {
throw new CraftingPatternFactoryException(new TranslatableComponent("misc.refinedstorage.pattern.error.processing_no_outputs")); throw new CraftingPatternFactoryException(Component.translatable("misc.refinedstorage.pattern.error.processing_no_outputs"));
} }
} else { } else {
CraftingContainer craftingContainer = new CraftingPattern.DummyCraftingContainer(); CraftingContainer craftingContainer = new CraftingPattern.DummyCraftingContainer();
@@ -72,10 +72,10 @@ public class CraftingPatternFactory {
modifyCraftingInputsToUseAlternatives(recipe, inputs); modifyCraftingInputsToUseAlternatives(recipe, inputs);
} }
} else { } else {
throw new CraftingPatternFactoryException(new TranslatableComponent("misc.refinedstorage.pattern.error.no_output")); throw new CraftingPatternFactoryException(Component.translatable("misc.refinedstorage.pattern.error.no_output"));
} }
} else { } else {
throw new CraftingPatternFactoryException(new TranslatableComponent("misc.refinedstorage.pattern.error.recipe_does_not_exist")); throw new CraftingPatternFactoryException(Component.translatable("misc.refinedstorage.pattern.error.recipe_does_not_exist"));
} }
} }
} catch (CraftingPatternFactoryException e) { } catch (CraftingPatternFactoryException e) {
@@ -116,7 +116,7 @@ public class CraftingPatternFactory {
for (ResourceLocation declaredAllowedTag : declaredAllowedTags) { for (ResourceLocation declaredAllowedTag : declaredAllowedTags) {
if (!tagsOfItem.contains(declaredAllowedTag)) { if (!tagsOfItem.contains(declaredAllowedTag)) {
throw new CraftingPatternFactoryException( throw new CraftingPatternFactoryException(
new TranslatableComponent( Component.translatable(
"misc.refinedstorage.pattern.error.tag_no_longer_applicable", "misc.refinedstorage.pattern.error.tag_no_longer_applicable",
declaredAllowedTag.toString(), declaredAllowedTag.toString(),
input.getHoverName() input.getHoverName()
@@ -162,7 +162,7 @@ public class CraftingPatternFactory {
for (ResourceLocation declaredAllowedTag : declaredAllowedTags) { for (ResourceLocation declaredAllowedTag : declaredAllowedTags) {
if (!tagsOfFluid.contains(declaredAllowedTag)) { if (!tagsOfFluid.contains(declaredAllowedTag)) {
throw new CraftingPatternFactoryException( throw new CraftingPatternFactoryException(
new TranslatableComponent( Component.translatable(
"misc.refinedstorage.pattern.error.tag_no_longer_applicable", "misc.refinedstorage.pattern.error.tag_no_longer_applicable",
declaredAllowedTag.toString(), declaredAllowedTag.toString(),
input.getDisplayName() input.getDisplayName()

View File

@@ -8,7 +8,6 @@ import com.refinedmods.refinedstorage.render.Styles;
import com.refinedmods.refinedstorage.util.PacketBufferUtils; import com.refinedmods.refinedstorage.util.PacketBufferUtils;
import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@@ -48,7 +47,7 @@ public class ErrorCraftingMonitorElement implements ICraftingMonitorElement {
@Override @Override
public List<Component> getTooltip() { public List<Component> getTooltip() {
List<Component> items = new ArrayList<>(base.getTooltip()); List<Component> items = new ArrayList<>(base.getTooltip());
items.add(new TranslatableComponent(message).setStyle(Styles.RED)); items.add(Component.translatable(message).setStyle(Styles.RED));
return items; return items;
} }

View File

@@ -118,7 +118,7 @@ public class FluidCraftingMonitorElement implements ICraftingMonitorElement {
@Nullable @Nullable
@Override @Override
public List<Component> getTooltip() { public List<Component> getTooltip() {
return Collections.singletonList(stack.getFluid().getAttributes().getDisplayName(stack)); return Collections.singletonList(stack.getDisplayName());
} }
@Override @Override

View File

@@ -9,23 +9,23 @@ import net.minecraftforge.eventbus.api.SubscribeEvent;
public class NetworkListener { public class NetworkListener {
@SubscribeEvent @SubscribeEvent
public void onLevelTick(TickEvent.WorldTickEvent e) { public void onLevelTick(TickEvent.LevelTickEvent e) {
if (!e.world.isClientSide() && e.phase == TickEvent.Phase.END) { if (!e.level.isClientSide() && e.phase == TickEvent.Phase.END) {
e.world.getProfiler().push("network ticking"); e.level.getProfiler().push("network ticking");
for (INetwork network : API.instance().getNetworkManager((ServerLevel) e.world).all()) { for (INetwork network : API.instance().getNetworkManager((ServerLevel) e.level).all()) {
network.update(); network.update();
} }
e.world.getProfiler().pop(); e.level.getProfiler().pop();
e.world.getProfiler().push("network node ticking"); e.level.getProfiler().push("network node ticking");
for (INetworkNode node : API.instance().getNetworkNodeManager((ServerLevel) e.world).all()) { for (INetworkNode node : API.instance().getNetworkNodeManager((ServerLevel) e.level).all()) {
node.update(); node.update();
} }
e.world.getProfiler().pop(); e.level.getProfiler().pop();
} }
} }
} }

View File

@@ -3,28 +3,28 @@ package com.refinedmods.refinedstorage.apiimpl.network;
import com.refinedmods.refinedstorage.api.network.node.INetworkNode; import com.refinedmods.refinedstorage.api.network.node.INetworkNode;
import com.refinedmods.refinedstorage.api.network.security.Permission; import com.refinedmods.refinedstorage.api.network.security.Permission;
import com.refinedmods.refinedstorage.api.util.Action; import com.refinedmods.refinedstorage.api.util.Action;
import com.refinedmods.refinedstorage.util.LevelUtils;
import com.refinedmods.refinedstorage.util.NetworkUtils; import com.refinedmods.refinedstorage.util.NetworkUtils;
import com.refinedmods.refinedstorage.util.PlayerUtils; import com.refinedmods.refinedstorage.util.PlayerUtils;
import com.refinedmods.refinedstorage.util.LevelUtils;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.LevelAccessor;
import net.minecraftforge.event.world.BlockEvent; import net.minecraftforge.event.level.BlockEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.eventbus.api.SubscribeEvent;
public class NetworkNodeListener { public class NetworkNodeListener {
@SubscribeEvent @SubscribeEvent
public void onBlockPlace(BlockEvent.EntityPlaceEvent e) { public void onBlockPlace(BlockEvent.EntityPlaceEvent e) {
if (!e.getWorld().isClientSide() && e.getEntity() instanceof Player) { if (!e.getLevel().isClientSide() && e.getEntity() instanceof Player) {
Player player = (Player) e.getEntity(); Player player = (Player) e.getEntity();
INetworkNode placed = NetworkUtils.getNodeFromBlockEntity(e.getWorld().getBlockEntity(e.getPos())); INetworkNode placed = NetworkUtils.getNodeFromBlockEntity(e.getLevel().getBlockEntity(e.getPos()));
if (placed != null) { if (placed != null) {
for (Direction facing : Direction.values()) { for (Direction facing : Direction.values()) {
INetworkNode node = NetworkUtils.getNodeFromBlockEntity(e.getWorld().getBlockEntity(e.getBlockSnapshot().getPos().relative(facing))); INetworkNode node = NetworkUtils.getNodeFromBlockEntity(e.getLevel().getBlockEntity(e.getBlockSnapshot().getPos().relative(facing)));
if (node != null && node.getNetwork() != null && !node.getNetwork().getSecurityManager().hasPermission(Permission.BUILD, player)) { if (node != null && node.getNetwork() != null && !node.getNetwork().getSecurityManager().hasPermission(Permission.BUILD, player)) {
LevelUtils.sendNoPermissionMessage(player); LevelUtils.sendNoPermissionMessage(player);
@@ -38,7 +38,7 @@ public class NetworkNodeListener {
} }
} }
discoverNode(e.getWorld(), e.getPos()); discoverNode(e.getLevel(), e.getPos());
placed.setOwner(player.getGameProfile().getId()); placed.setOwner(player.getGameProfile().getId());
} }
@@ -59,8 +59,8 @@ public class NetworkNodeListener {
@SubscribeEvent @SubscribeEvent
public void onBlockBreak(BlockEvent.BreakEvent e) { public void onBlockBreak(BlockEvent.BreakEvent e) {
if (!e.getWorld().isClientSide()) { if (!e.getLevel().isClientSide()) {
INetworkNode node = NetworkUtils.getNodeFromBlockEntity(e.getWorld().getBlockEntity(e.getPos())); INetworkNode node = NetworkUtils.getNodeFromBlockEntity(e.getLevel().getBlockEntity(e.getPos()));
if (node != null && node.getNetwork() != null && !node.getNetwork().getSecurityManager().hasPermission(Permission.BUILD, e.getPlayer())) { if (node != null && node.getNetwork() != null && !node.getNetwork().getSecurityManager().hasPermission(Permission.BUILD, e.getPlayer())) {
LevelUtils.sendNoPermissionMessage(e.getPlayer()); LevelUtils.sendNoPermissionMessage(e.getPlayer());

View File

@@ -43,7 +43,7 @@ public class GridManager implements IGridManager {
return; return;
} }
NetworkHooks.openGui(player, new GridMenuProvider(grid.getLeft(), grid.getRight()), buf -> { NetworkHooks.openScreen(player, new GridMenuProvider(grid.getLeft(), grid.getRight()), buf -> {
buf.writeResourceLocation(id); buf.writeResourceLocation(id);
buf.writeBoolean(pos != null); buf.writeBoolean(pos != null);

View File

@@ -6,7 +6,8 @@ import com.refinedmods.refinedstorage.api.network.grid.IGridTab;
import com.refinedmods.refinedstorage.api.render.IElementDrawer; import com.refinedmods.refinedstorage.api.render.IElementDrawer;
import com.refinedmods.refinedstorage.api.util.IFilter; import com.refinedmods.refinedstorage.api.util.IFilter;
import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.screens.Screen;
import net.minecraft.network.chat.TextComponent; import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.MutableComponent;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidStack;
@@ -17,7 +18,7 @@ import java.util.List;
public class GridTab implements IGridTab { public class GridTab implements IGridTab {
private final List<IFilter> filters; private final List<IFilter> filters;
@Nullable @Nullable
private final TextComponent name; private final MutableComponent name;
@Nonnull @Nonnull
private final ItemStack icon; private final ItemStack icon;
@Nullable @Nullable
@@ -25,7 +26,7 @@ public class GridTab implements IGridTab {
public GridTab(List<IFilter> filters, String name, @Nonnull ItemStack icon, @Nullable FluidStack fluidIcon) { public GridTab(List<IFilter> filters, String name, @Nonnull ItemStack icon, @Nullable FluidStack fluidIcon) {
this.filters = filters; this.filters = filters;
this.name = name.trim().isEmpty() ? null : new TextComponent(name); this.name = name.trim().isEmpty() ? null : Component.literal(name);
this.icon = icon; this.icon = icon;
this.fluidIcon = fluidIcon; this.fluidIcon = fluidIcon;
} }

View File

@@ -15,8 +15,8 @@ import com.refinedmods.refinedstorage.util.StackUtils;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.Containers; import net.minecraft.world.Containers;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraftforge.fluids.FluidAttributes;
import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidType;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler; import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.fluids.capability.IFluidHandler;
import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Pair;
@@ -36,14 +36,14 @@ public class FluidGridHandler implements IFluidGridHandler {
public void onExtract(ServerPlayer player, UUID id, boolean shift) { public void onExtract(ServerPlayer player, UUID id, boolean shift) {
FluidStack stack = network.getFluidStorageCache().getList().get(id); FluidStack stack = network.getFluidStorageCache().getList().get(id);
if (stack == null || stack.getAmount() < FluidAttributes.BUCKET_VOLUME || !network.getSecurityManager().hasPermission(Permission.EXTRACT, player) || !network.canRun()) { if (stack == null || stack.getAmount() < FluidType.BUCKET_VOLUME || !network.getSecurityManager().hasPermission(Permission.EXTRACT, player) || !network.canRun()) {
return; return;
} }
NetworkUtils.extractBucketFromPlayerInventoryOrNetwork(player, network, bucket -> bucket.getCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null).ifPresent(fluidHandler -> { NetworkUtils.extractBucketFromPlayerInventoryOrNetwork(player, network, bucket -> bucket.getCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null).ifPresent(fluidHandler -> {
network.getFluidStorageTracker().changed(player, stack.copy()); network.getFluidStorageTracker().changed(player, stack.copy());
FluidStack extracted = network.extractFluid(stack, FluidAttributes.BUCKET_VOLUME, Action.PERFORM); FluidStack extracted = network.extractFluid(stack, FluidType.BUCKET_VOLUME, Action.PERFORM);
fluidHandler.fill(extracted, IFluidHandler.FluidAction.EXECUTE); fluidHandler.fill(extracted, IFluidHandler.FluidAction.EXECUTE);

View File

@@ -133,7 +133,7 @@ public class ItemGridHandler implements IItemGridHandler {
int itemSize = item.getCount(); int itemSize = item.getCount();
// We copy here because some mods change the NBT tag of an item after getting the stack limit // We copy here because some mods change the NBT tag of an item after getting the stack limit
int maxItemSize = item.getItem().getItemStackLimit(item.copy()); int maxItemSize = item.getItem().getMaxStackSize(item.copy());
boolean single = (flags & EXTRACT_SINGLE) == EXTRACT_SINGLE; boolean single = (flags & EXTRACT_SINGLE) == EXTRACT_SINGLE;

View File

@@ -10,8 +10,8 @@ import com.refinedmods.refinedstorage.util.StackUtils;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.Containers; import net.minecraft.world.Containers;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraftforge.fluids.FluidAttributes;
import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidType;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler; import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.fluids.capability.IFluidHandler;
import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Pair;
@@ -34,7 +34,7 @@ public class PortableFluidGridHandler implements IFluidGridHandler {
FluidStack stack = portableGrid.getFluidCache().getList().get(id); FluidStack stack = portableGrid.getFluidCache().getList().get(id);
if (stack == null || stack.getAmount() < FluidAttributes.BUCKET_VOLUME) { if (stack == null || stack.getAmount() < FluidType.BUCKET_VOLUME) {
return; return;
} }
@@ -56,7 +56,7 @@ public class PortableFluidGridHandler implements IFluidGridHandler {
bucket.getCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null).ifPresent(fluidHandler -> { bucket.getCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null).ifPresent(fluidHandler -> {
portableGrid.getFluidStorageTracker().changed(player, stack.copy()); portableGrid.getFluidStorageTracker().changed(player, stack.copy());
fluidHandler.fill(portableGrid.getFluidStorage().extract(stack, FluidAttributes.BUCKET_VOLUME, IComparer.COMPARE_NBT, Action.PERFORM), IFluidHandler.FluidAction.EXECUTE); fluidHandler.fill(portableGrid.getFluidStorage().extract(stack, FluidType.BUCKET_VOLUME, IComparer.COMPARE_NBT, Action.PERFORM), IFluidHandler.FluidAction.EXECUTE);
if (shift) { if (shift) {
if (!player.getInventory().add(fluidHandler.getContainer().copy())) { if (!player.getInventory().add(fluidHandler.getContainer().copy())) {

View File

@@ -52,7 +52,7 @@ public class PortableItemGridHandler implements IItemGridHandler {
int itemSize = item.getCount(); int itemSize = item.getCount();
// We copy here because some mods change the NBT tag of an item after getting the stack limit // We copy here because some mods change the NBT tag of an item after getting the stack limit
int maxItemSize = item.getItem().getItemStackLimit(item.copy()); int maxItemSize = item.getItem().getMaxStackSize(item.copy());
boolean single = (flags & EXTRACT_SINGLE) == EXTRACT_SINGLE; boolean single = (flags & EXTRACT_SINGLE) == EXTRACT_SINGLE;

View File

@@ -8,7 +8,7 @@ import com.refinedmods.refinedstorage.api.network.item.INetworkItemManager;
import com.refinedmods.refinedstorage.api.network.item.INetworkItemProvider; import com.refinedmods.refinedstorage.api.network.item.INetworkItemProvider;
import com.refinedmods.refinedstorage.api.network.node.INetworkNode; import com.refinedmods.refinedstorage.api.network.node.INetworkNode;
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.network.chat.Component;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.Vec3;
@@ -50,7 +50,7 @@ public class NetworkItemManager implements INetworkItemManager {
} }
if (!inRange) { if (!inRange) {
player.sendMessage(new TranslatableComponent("misc.refinedstorage.network_item.out_of_range"), player.getUUID()); player.sendSystemMessage(Component.translatable("misc.refinedstorage.network_item.out_of_range"));
return; return;
} }

View File

@@ -11,7 +11,7 @@ import com.refinedmods.refinedstorage.container.factory.CraftingMonitorMenuProvi
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
import com.refinedmods.refinedstorage.item.WirelessCraftingMonitorItem; import com.refinedmods.refinedstorage.item.WirelessCraftingMonitorItem;
import com.refinedmods.refinedstorage.util.LevelUtils; import com.refinedmods.refinedstorage.util.LevelUtils;
import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
@@ -59,9 +59,11 @@ public class WirelessCraftingMonitorNetworkItem implements INetworkItem {
WirelessCraftingMonitor wirelessCraftingMonitor = new WirelessCraftingMonitor(stack, player.getServer(), slot); WirelessCraftingMonitor wirelessCraftingMonitor = new WirelessCraftingMonitor(stack, player.getServer(), slot);
NetworkHooks.openGui( NetworkHooks.openScreen(
(ServerPlayer) player, (ServerPlayer) player,
new CraftingMonitorMenuProvider(RSContainerMenus.WIRELESS_CRAFTING_MONITOR, wirelessCraftingMonitor, null), slot::writePlayerSlot); new CraftingMonitorMenuProvider(RSContainerMenus.WIRELESS_CRAFTING_MONITOR.get(), wirelessCraftingMonitor, null),
slot::writePlayerSlot
);
drainEnergy(RS.SERVER_CONFIG.getWirelessCraftingMonitor().getOpenUsage()); drainEnergy(RS.SERVER_CONFIG.getWirelessCraftingMonitor().getOpenUsage());
@@ -86,6 +88,6 @@ public class WirelessCraftingMonitorNetworkItem implements INetworkItem {
} }
private void sendOutOfEnergyMessage() { private void sendOutOfEnergyMessage() {
player.sendMessage(new TranslatableComponent("misc.refinedstorage.network_item.out_of_energy", new TranslatableComponent(stack.getItem().getDescriptionId())), player.getUUID()); player.sendSystemMessage(Component.translatable("misc.refinedstorage.network_item.out_of_energy", Component.translatable(stack.getItem().getDescriptionId())));
} }
} }

View File

@@ -10,7 +10,7 @@ import com.refinedmods.refinedstorage.apiimpl.network.grid.factory.WirelessFluid
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
import com.refinedmods.refinedstorage.item.WirelessFluidGridItem; import com.refinedmods.refinedstorage.item.WirelessFluidGridItem;
import com.refinedmods.refinedstorage.util.LevelUtils; import com.refinedmods.refinedstorage.util.LevelUtils;
import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
@@ -79,6 +79,6 @@ public class WirelessFluidGridNetworkItem implements INetworkItem {
} }
private void sendOutOfEnergyMessage() { private void sendOutOfEnergyMessage() {
player.sendMessage(new TranslatableComponent("misc.refinedstorage.network_item.out_of_energy", new TranslatableComponent(stack.getItem().getDescriptionId())), player.getUUID()); player.sendSystemMessage(Component.translatable("misc.refinedstorage.network_item.out_of_energy", Component.translatable(stack.getItem().getDescriptionId())));
} }
} }

View File

@@ -10,7 +10,7 @@ import com.refinedmods.refinedstorage.apiimpl.network.grid.factory.WirelessGridG
import com.refinedmods.refinedstorage.inventory.player.PlayerSlot; import com.refinedmods.refinedstorage.inventory.player.PlayerSlot;
import com.refinedmods.refinedstorage.item.WirelessGridItem; import com.refinedmods.refinedstorage.item.WirelessGridItem;
import com.refinedmods.refinedstorage.util.LevelUtils; import com.refinedmods.refinedstorage.util.LevelUtils;
import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
@@ -79,6 +79,6 @@ public class WirelessGridNetworkItem implements INetworkItem {
} }
private void sendOutOfEnergyMessage() { private void sendOutOfEnergyMessage() {
player.sendMessage(new TranslatableComponent("misc.refinedstorage.network_item.out_of_energy", new TranslatableComponent(stack.getItem().getDescriptionId())), player.getUUID()); player.sendSystemMessage(Component.translatable("misc.refinedstorage.network_item.out_of_energy", Component.translatable(stack.getItem().getDescriptionId())));
} }
} }

View File

@@ -35,8 +35,8 @@ import net.minecraft.world.level.Level;
import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.Vec3;
import net.minecraftforge.common.ForgeHooks; import net.minecraftforge.common.ForgeHooks;
import net.minecraftforge.fluids.FluidAttributes;
import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidType;
import net.minecraftforge.fluids.FluidUtil; import net.minecraftforge.fluids.FluidUtil;
import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandler;
@@ -100,12 +100,12 @@ public class ConstructorNetworkNode extends NetworkNode implements IComparable,
private void extractAndPlaceFluid(FluidStack stack) { private void extractAndPlaceFluid(FluidStack stack) {
BlockPos front = pos.relative(getDirection()); BlockPos front = pos.relative(getDirection());
if (network.extractFluid(stack, FluidAttributes.BUCKET_VOLUME, compare, Action.SIMULATE).getAmount() < FluidAttributes.BUCKET_VOLUME) { if (network.extractFluid(stack, FluidType.BUCKET_VOLUME, compare, Action.SIMULATE).getAmount() < FluidType.BUCKET_VOLUME) {
if (upgrades.hasUpgrade(UpgradeItem.Type.CRAFTING)) { if (upgrades.hasUpgrade(UpgradeItem.Type.CRAFTING)) {
network.getCraftingManager().request(this, stack, FluidAttributes.BUCKET_VOLUME); network.getCraftingManager().request(this, stack, FluidType.BUCKET_VOLUME);
} }
} else if (!level.getBlockState(front).getFluidState().isSource()) { } else if (!level.getBlockState(front).getFluidState().isSource()) {
FluidUtil.tryPlaceFluid(LevelUtils.getFakePlayer((ServerLevel) level, getOwner()), level, InteractionHand.MAIN_HAND, front, new NetworkFluidHandler(StackUtils.copy(stack, FluidAttributes.BUCKET_VOLUME)), stack); FluidUtil.tryPlaceFluid(LevelUtils.getFakePlayer((ServerLevel) level, getOwner()), level, InteractionHand.MAIN_HAND, front, new NetworkFluidHandler(StackUtils.copy(stack, FluidType.BUCKET_VOLUME)), stack);
} }
} }

View File

@@ -12,13 +12,12 @@ import com.refinedmods.refinedstorage.inventory.item.UpgradeItemHandler;
import com.refinedmods.refinedstorage.inventory.item.validator.PatternItemValidator; import com.refinedmods.refinedstorage.inventory.item.validator.PatternItemValidator;
import com.refinedmods.refinedstorage.inventory.listener.NetworkNodeInventoryListener; import com.refinedmods.refinedstorage.inventory.listener.NetworkNodeInventoryListener;
import com.refinedmods.refinedstorage.item.UpgradeItem; import com.refinedmods.refinedstorage.item.UpgradeItem;
import com.refinedmods.refinedstorage.util.StackUtils;
import com.refinedmods.refinedstorage.util.LevelUtils; import com.refinedmods.refinedstorage.util.LevelUtils;
import com.refinedmods.refinedstorage.util.StackUtils;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.Nameable; import net.minecraft.world.Nameable;
@@ -40,7 +39,7 @@ import java.util.UUID;
public class CrafterNetworkNode extends NetworkNode implements ICraftingPatternContainer { public class CrafterNetworkNode extends NetworkNode implements ICraftingPatternContainer {
public static final ResourceLocation ID = new ResourceLocation(RS.ID, "crafter"); public static final ResourceLocation ID = new ResourceLocation(RS.ID, "crafter");
private static final Component DEFAULT_NAME = new TranslatableComponent("gui.refinedstorage.crafter"); private static final Component DEFAULT_NAME = Component.translatable("gui.refinedstorage.crafter");
private static final String NBT_DISPLAY_NAME = "DisplayName"; private static final String NBT_DISPLAY_NAME = "DisplayName";
private static final String NBT_UUID = "CrafterUuid"; private static final String NBT_UUID = "CrafterUuid";
private static final String NBT_MODE = "Mode"; private static final String NBT_MODE = "Mode";
@@ -50,7 +49,8 @@ public class CrafterNetworkNode extends NetworkNode implements ICraftingPatternC
private final UpgradeItemHandler upgrades = (UpgradeItemHandler) new UpgradeItemHandler(4, UpgradeItem.Type.SPEED) private final UpgradeItemHandler upgrades = (UpgradeItemHandler) new UpgradeItemHandler(4, UpgradeItem.Type.SPEED)
.addListener(new NetworkNodeInventoryListener(this)); .addListener(new NetworkNodeInventoryListener(this));
// Used to prevent infinite recursion on getRootContainer() when there's e.g. two crafters facing each other. // Used to prevent infinite recursion on getRootContainer() when there's e.g. two crafters facing each other.
private boolean visited = false; private final BaseItemHandler patternsInventory = new BaseItemHandler(9) { private boolean visited = false;
private final BaseItemHandler patternsInventory = new BaseItemHandler(9) {
@Override @Override
public int getSlotLimit(int slot) { public int getSlotLimit(int slot) {
return 1; return 1;
@@ -86,6 +86,7 @@ public class CrafterNetworkNode extends NetworkNode implements ICraftingPatternC
private Component displayName; private Component displayName;
@Nullable @Nullable
private UUID uuid = null; private UUID uuid = null;
public CrafterNetworkNode(Level level, BlockPos pos) { public CrafterNetworkNode(Level level, BlockPos pos) {
super(level, pos); super(level, pos);
} }
@@ -309,7 +310,7 @@ public class CrafterNetworkNode extends NetworkNode implements ICraftingPatternC
} }
if (facing != null) { if (facing != null) {
return new TranslatableComponent(level.getBlockState(facing.getBlockPos()).getBlock().getDescriptionId()); return Component.translatable(level.getBlockState(facing.getBlockPos()).getBlock().getDescriptionId());
} }
return DEFAULT_NAME; return DEFAULT_NAME;
@@ -448,6 +449,4 @@ public class CrafterNetworkNode extends NetworkNode implements ICraftingPatternC
} }
} }

View File

@@ -13,7 +13,6 @@ import com.refinedmods.refinedstorage.blockentity.data.BlockEntitySynchronizatio
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
@@ -51,7 +50,7 @@ public class CraftingMonitorNetworkNode extends NetworkNode implements ICrafting
@Override @Override
public Component getTitle() { public Component getTitle() {
return new TranslatableComponent("gui.refinedstorage.crafting_monitor"); return Component.translatable("gui.refinedstorage.crafting_monitor");
} }
@Override @Override

View File

@@ -37,9 +37,9 @@ import net.minecraft.world.phys.AABB;
import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.Vec3;
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.world.BlockEvent; import net.minecraftforge.event.level.BlockEvent;
import net.minecraftforge.fluids.FluidAttributes;
import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidType;
import net.minecraftforge.fluids.IFluidBlock; import net.minecraftforge.fluids.IFluidBlock;
import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandler;
@@ -61,12 +61,14 @@ public class DestructorNetworkNode extends NetworkNode implements IComparable, I
private final BaseItemHandler itemFilters = new BaseItemHandler(9).addListener(new NetworkNodeInventoryListener(this)); private final BaseItemHandler itemFilters = new BaseItemHandler(9).addListener(new NetworkNodeInventoryListener(this));
private final FluidInventory fluidFilters = new FluidInventory(9).addListener(new NetworkNodeFluidInventoryListener(this)); private final FluidInventory fluidFilters = new FluidInventory(9).addListener(new NetworkNodeFluidInventoryListener(this));
private final CoverManager coverManager; private final CoverManager coverManager;
private int compare = IComparer.COMPARE_NBT; private final UpgradeItemHandler upgrades = (UpgradeItemHandler) new UpgradeItemHandler(4, UpgradeItem.Type.SPEED, UpgradeItem.Type.SILK_TOUCH, UpgradeItem.Type.FORTUNE_1, UpgradeItem.Type.FORTUNE_2, UpgradeItem.Type.FORTUNE_3) private int compare = IComparer.COMPARE_NBT;
private final UpgradeItemHandler upgrades = (UpgradeItemHandler) new UpgradeItemHandler(4, UpgradeItem.Type.SPEED, UpgradeItem.Type.SILK_TOUCH, UpgradeItem.Type.FORTUNE_1, UpgradeItem.Type.FORTUNE_2, UpgradeItem.Type.FORTUNE_3)
.addListener(new NetworkNodeInventoryListener(this)) .addListener(new NetworkNodeInventoryListener(this))
.addListener((handler, slot, reading) -> tool = createTool()); .addListener((handler, slot, reading) -> tool = createTool());
private int mode = IWhitelistBlacklist.BLACKLIST; private int mode = IWhitelistBlacklist.BLACKLIST;
private int type = IType.ITEMS; private int type = IType.ITEMS;
private boolean pickupItem = false; private boolean pickupItem = false;
public DestructorNetworkNode(Level level, BlockPos pos) { public DestructorNetworkNode(Level level, BlockPos pos) {
super(level, pos); super(level, pos);
this.coverManager = new CoverManager(this); this.coverManager = new CoverManager(this);
@@ -92,7 +94,9 @@ public class DestructorNetworkNode extends NetworkNode implements IComparable, I
breakFluid(); breakFluid();
} }
} }
} private ItemStack tool = createTool(); }
private ItemStack tool = createTool();
private void pickupItems() { private void pickupItems() {
BlockPos front = pos.relative(getDirection()); BlockPos front = pos.relative(getDirection());
@@ -178,7 +182,7 @@ public class DestructorNetworkNode extends NetworkNode implements IComparable, I
if (frontBlockState.getValue(LiquidBlock.LEVEL) == 0) { if (frontBlockState.getValue(LiquidBlock.LEVEL) == 0) {
Fluid fluid = ((LiquidBlock) frontBlock).getFluid(); Fluid fluid = ((LiquidBlock) frontBlock).getFluid();
FluidStack stack = new FluidStack(fluid, FluidAttributes.BUCKET_VOLUME); FluidStack stack = new FluidStack(fluid, FluidType.BUCKET_VOLUME);
if (IWhitelistBlacklist.acceptsFluid(fluidFilters, mode, compare, stack) && if (IWhitelistBlacklist.acceptsFluid(fluidFilters, mode, compare, stack) &&
network.insertFluid(stack, stack.getAmount(), Action.SIMULATE).isEmpty()) { network.insertFluid(stack, stack.getAmount(), Action.SIMULATE).isEmpty()) {
@@ -358,8 +362,4 @@ public class DestructorNetworkNode extends NetworkNode implements IComparable, I
} }
} }

View File

@@ -15,15 +15,15 @@ import com.refinedmods.refinedstorage.inventory.item.UpgradeItemHandler;
import com.refinedmods.refinedstorage.inventory.listener.NetworkNodeFluidInventoryListener; import com.refinedmods.refinedstorage.inventory.listener.NetworkNodeFluidInventoryListener;
import com.refinedmods.refinedstorage.inventory.listener.NetworkNodeInventoryListener; import com.refinedmods.refinedstorage.inventory.listener.NetworkNodeInventoryListener;
import com.refinedmods.refinedstorage.item.UpgradeItem; import com.refinedmods.refinedstorage.item.UpgradeItem;
import com.refinedmods.refinedstorage.util.StackUtils;
import com.refinedmods.refinedstorage.util.LevelUtils; import com.refinedmods.refinedstorage.util.LevelUtils;
import com.refinedmods.refinedstorage.util.StackUtils;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraftforge.fluids.FluidAttributes;
import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidType;
import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.IItemHandlerModifiable; import net.minecraftforge.items.IItemHandlerModifiable;
@@ -39,7 +39,8 @@ public class ExporterNetworkNode extends NetworkNode implements IComparable, ITy
private final BaseItemHandler itemFilters = new BaseItemHandler(9).addListener(new NetworkNodeInventoryListener(this)); private final BaseItemHandler itemFilters = new BaseItemHandler(9).addListener(new NetworkNodeInventoryListener(this));
private final FluidInventory fluidFilters = new FluidInventory(9).addListener(new NetworkNodeFluidInventoryListener(this)); private final FluidInventory fluidFilters = new FluidInventory(9).addListener(new NetworkNodeFluidInventoryListener(this));
private final CoverManager coverManager; private final CoverManager coverManager;
private int compare = IComparer.COMPARE_NBT; private final UpgradeItemHandler upgrades = (UpgradeItemHandler) new UpgradeItemHandler(4, UpgradeItem.Type.SPEED, UpgradeItem.Type.CRAFTING, UpgradeItem.Type.STACK, UpgradeItem.Type.REGULATOR) private int compare = IComparer.COMPARE_NBT;
private final UpgradeItemHandler upgrades = (UpgradeItemHandler) new UpgradeItemHandler(4, UpgradeItem.Type.SPEED, UpgradeItem.Type.CRAFTING, UpgradeItem.Type.STACK, UpgradeItem.Type.REGULATOR)
.addListener(new NetworkNodeInventoryListener(this)) .addListener(new NetworkNodeInventoryListener(this))
.addListener((handler, slot, reading) -> { .addListener((handler, slot, reading) -> {
if (!reading && !getUpgrades().hasUpgrade(UpgradeItem.Type.REGULATOR)) { if (!reading && !getUpgrades().hasUpgrade(UpgradeItem.Type.REGULATOR)) {
@@ -57,8 +58,8 @@ public class ExporterNetworkNode extends NetworkNode implements IComparable, ITy
for (int i = 0; i < fluidFilters.getSlots(); ++i) { for (int i = 0; i < fluidFilters.getSlots(); ++i) {
FluidStack filteredFluid = fluidFilters.getFluid(i); FluidStack filteredFluid = fluidFilters.getFluid(i);
if (!filteredFluid.isEmpty() && filteredFluid.getAmount() != FluidAttributes.BUCKET_VOLUME) { if (!filteredFluid.isEmpty() && filteredFluid.getAmount() != FluidType.BUCKET_VOLUME) {
filteredFluid.setAmount(FluidAttributes.BUCKET_VOLUME); filteredFluid.setAmount(FluidType.BUCKET_VOLUME);
changed = true; changed = true;
} }
} }
@@ -173,7 +174,7 @@ public class ExporterNetworkNode extends NetworkNode implements IComparable, ITy
FluidStack stack = fluids[filterSlot]; FluidStack stack = fluids[filterSlot];
if (stack != null) { if (stack != null) {
int toExtract = FluidAttributes.BUCKET_VOLUME * upgrades.getStackInteractCount(); int toExtract = FluidType.BUCKET_VOLUME * upgrades.getStackInteractCount();
FluidStack stackInStorage = network.getFluidStorageCache().getList().get(stack, compare); FluidStack stackInStorage = network.getFluidStorageCache().getList().get(stack, compare);
@@ -332,6 +333,4 @@ public class ExporterNetworkNode extends NetworkNode implements IComparable, ITy
} }
} }

View File

@@ -28,7 +28,7 @@ import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
@@ -248,7 +248,7 @@ public class ExternalStorageNetworkNode extends NetworkNode implements IStorageP
@Override @Override
public Component getTitle() { public Component getTitle() {
return new TranslatableComponent("gui.refinedstorage:external_storage"); return Component.translatable("gui.refinedstorage:external_storage");
} }
@Override @Override

View File

@@ -23,7 +23,7 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.FluidType;
import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.fluids.capability.templates.FluidTank; import net.minecraftforge.fluids.capability.templates.FluidTank;
@@ -85,7 +85,7 @@ public class FluidInterfaceNetworkNode extends NetworkNode {
} }
if (ticks % upgrades.getSpeed() == 0) { if (ticks % upgrades.getSpeed() == 0) {
FluidStack drained = tankIn.drain(FluidAttributes.BUCKET_VOLUME * upgrades.getStackInteractCount(), IFluidHandler.FluidAction.EXECUTE); FluidStack drained = tankIn.drain(FluidType.BUCKET_VOLUME * upgrades.getStackInteractCount(), IFluidHandler.FluidAction.EXECUTE);
// Drain in tank // Drain in tank
if (!drained.isEmpty()) { if (!drained.isEmpty()) {

View File

@@ -17,6 +17,9 @@ import com.refinedmods.refinedstorage.apiimpl.storage.cache.listener.FluidGridSt
import com.refinedmods.refinedstorage.apiimpl.storage.cache.listener.ItemGridStorageCacheListener; import com.refinedmods.refinedstorage.apiimpl.storage.cache.listener.ItemGridStorageCacheListener;
import com.refinedmods.refinedstorage.block.GridBlock; import com.refinedmods.refinedstorage.block.GridBlock;
import com.refinedmods.refinedstorage.block.NetworkNodeBlock; import com.refinedmods.refinedstorage.block.NetworkNodeBlock;
import com.refinedmods.refinedstorage.blockentity.config.IType;
import com.refinedmods.refinedstorage.blockentity.data.BlockEntitySynchronizationManager;
import com.refinedmods.refinedstorage.blockentity.grid.GridBlockEntity;
import com.refinedmods.refinedstorage.inventory.fluid.FluidInventory; import com.refinedmods.refinedstorage.inventory.fluid.FluidInventory;
import com.refinedmods.refinedstorage.inventory.item.BaseItemHandler; import com.refinedmods.refinedstorage.inventory.item.BaseItemHandler;
import com.refinedmods.refinedstorage.inventory.item.FilterItemHandler; import com.refinedmods.refinedstorage.inventory.item.FilterItemHandler;
@@ -24,14 +27,10 @@ import com.refinedmods.refinedstorage.inventory.item.validator.ItemValidator;
import com.refinedmods.refinedstorage.inventory.listener.NetworkNodeFluidInventoryListener; import com.refinedmods.refinedstorage.inventory.listener.NetworkNodeFluidInventoryListener;
import com.refinedmods.refinedstorage.inventory.listener.NetworkNodeInventoryListener; import com.refinedmods.refinedstorage.inventory.listener.NetworkNodeInventoryListener;
import com.refinedmods.refinedstorage.item.PatternItem; import com.refinedmods.refinedstorage.item.PatternItem;
import com.refinedmods.refinedstorage.blockentity.config.IType;
import com.refinedmods.refinedstorage.blockentity.data.BlockEntitySynchronizationManager;
import com.refinedmods.refinedstorage.blockentity.grid.GridBlockEntity;
import com.refinedmods.refinedstorage.util.StackUtils; import com.refinedmods.refinedstorage.util.StackUtils;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.Container; import net.minecraft.world.Container;
@@ -46,8 +45,8 @@ import net.minecraft.world.item.crafting.RecipeType;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.fluids.FluidAttributes;
import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidType;
import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.IItemHandlerModifiable; import net.minecraftforge.items.IItemHandlerModifiable;
import net.minecraftforge.items.wrapper.CombinedInvWrapper; import net.minecraftforge.items.wrapper.CombinedInvWrapper;
@@ -94,6 +93,11 @@ public class GridNetworkNode extends NetworkNode implements INetworkAwareGrid, I
return false; return false;
} }
@Override
public ItemStack quickMoveStack(Player p_38941_, int p_38942_) {
return ItemStack.EMPTY;
}
@Override @Override
public void slotsChanged(Container inventory) { public void slotsChanged(Container inventory) {
if (!level.isClientSide) { if (!level.isClientSide) {
@@ -101,7 +105,7 @@ public class GridNetworkNode extends NetworkNode implements INetworkAwareGrid, I
} }
} }
}; };
private final FluidInventory processingMatrixFluids = new FluidInventory(PROCESSING_MATRIX_SIZE * 2, FluidAttributes.BUCKET_VOLUME * 64) private final FluidInventory processingMatrixFluids = new FluidInventory(PROCESSING_MATRIX_SIZE * 2, FluidType.BUCKET_VOLUME * 64)
.addListener(new NetworkNodeFluidInventoryListener(this)) .addListener(new NetworkNodeFluidInventoryListener(this))
.addListener((handler, slot, reading) -> { .addListener((handler, slot, reading) -> {
if (!reading && slot < PROCESSING_MATRIX_SIZE) { if (!reading && slot < PROCESSING_MATRIX_SIZE) {
@@ -179,6 +183,7 @@ public class GridNetworkNode extends NetworkNode implements INetworkAwareGrid, I
private boolean exactPattern = true; private boolean exactPattern = true;
private boolean processingPattern = false; private boolean processingPattern = false;
private int processingType = IType.ITEMS; private int processingType = IType.ITEMS;
public GridNetworkNode(Level level, BlockPos pos, GridType type) { public GridNetworkNode(Level level, BlockPos pos, GridType type) {
super(level, pos); super(level, pos);
@@ -293,13 +298,13 @@ public class GridNetworkNode extends NetworkNode implements INetworkAwareGrid, I
public Component getTitle() { public Component getTitle() {
switch (type) { switch (type) {
case CRAFTING: case CRAFTING:
return new TranslatableComponent("gui.refinedstorage.crafting_grid"); return Component.translatable("gui.refinedstorage.crafting_grid");
case PATTERN: case PATTERN:
return new TranslatableComponent("gui.refinedstorage.pattern_grid"); return Component.translatable("gui.refinedstorage.pattern_grid");
case FLUID: case FLUID:
return new TranslatableComponent("gui.refinedstorage.fluid_grid"); return Component.translatable("gui.refinedstorage.fluid_grid");
default: default:
return new TranslatableComponent("gui.refinedstorage.grid"); return Component.translatable("gui.refinedstorage.grid");
} }
} }
@@ -775,10 +780,4 @@ public class GridNetworkNode extends NetworkNode implements INetworkAwareGrid, I
} }
} }

View File

@@ -5,27 +5,27 @@ import com.refinedmods.refinedstorage.api.network.node.ICoverable;
import com.refinedmods.refinedstorage.api.util.Action; import com.refinedmods.refinedstorage.api.util.Action;
import com.refinedmods.refinedstorage.api.util.IComparer; import com.refinedmods.refinedstorage.api.util.IComparer;
import com.refinedmods.refinedstorage.apiimpl.network.node.cover.CoverManager; import com.refinedmods.refinedstorage.apiimpl.network.node.cover.CoverManager;
import com.refinedmods.refinedstorage.blockentity.DiskDriveBlockEntity;
import com.refinedmods.refinedstorage.blockentity.ImporterBlockEntity;
import com.refinedmods.refinedstorage.blockentity.config.IComparable;
import com.refinedmods.refinedstorage.blockentity.config.IType;
import com.refinedmods.refinedstorage.blockentity.config.IWhitelistBlacklist;
import com.refinedmods.refinedstorage.inventory.fluid.FluidInventory; import com.refinedmods.refinedstorage.inventory.fluid.FluidInventory;
import com.refinedmods.refinedstorage.inventory.item.BaseItemHandler; import com.refinedmods.refinedstorage.inventory.item.BaseItemHandler;
import com.refinedmods.refinedstorage.inventory.item.UpgradeItemHandler; import com.refinedmods.refinedstorage.inventory.item.UpgradeItemHandler;
import com.refinedmods.refinedstorage.inventory.listener.NetworkNodeFluidInventoryListener; import com.refinedmods.refinedstorage.inventory.listener.NetworkNodeFluidInventoryListener;
import com.refinedmods.refinedstorage.inventory.listener.NetworkNodeInventoryListener; import com.refinedmods.refinedstorage.inventory.listener.NetworkNodeInventoryListener;
import com.refinedmods.refinedstorage.item.UpgradeItem; import com.refinedmods.refinedstorage.item.UpgradeItem;
import com.refinedmods.refinedstorage.blockentity.DiskDriveBlockEntity;
import com.refinedmods.refinedstorage.blockentity.ImporterBlockEntity;
import com.refinedmods.refinedstorage.blockentity.config.IComparable;
import com.refinedmods.refinedstorage.blockentity.config.IType;
import com.refinedmods.refinedstorage.blockentity.config.IWhitelistBlacklist;
import com.refinedmods.refinedstorage.util.StackUtils;
import com.refinedmods.refinedstorage.util.LevelUtils; import com.refinedmods.refinedstorage.util.LevelUtils;
import com.refinedmods.refinedstorage.util.StackUtils;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraftforge.fluids.FluidAttributes;
import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidType;
import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.IItemHandlerModifiable; import net.minecraftforge.items.IItemHandlerModifiable;
@@ -103,12 +103,12 @@ public class ImporterNetworkNode extends NetworkNode implements IComparable, IWh
IFluidHandler handler = LevelUtils.getFluidHandler(getFacingBlockEntity(), getDirection().getOpposite()); IFluidHandler handler = LevelUtils.getFluidHandler(getFacingBlockEntity(), getDirection().getOpposite());
if (handler != null) { if (handler != null) {
FluidStack stack = handler.drain(FluidAttributes.BUCKET_VOLUME, IFluidHandler.FluidAction.SIMULATE); FluidStack stack = handler.drain(FluidType.BUCKET_VOLUME, IFluidHandler.FluidAction.SIMULATE);
if (!stack.isEmpty() && if (!stack.isEmpty() &&
IWhitelistBlacklist.acceptsFluid(fluidFilters, mode, compare, stack) && IWhitelistBlacklist.acceptsFluid(fluidFilters, mode, compare, stack) &&
network.insertFluid(stack, stack.getAmount(), Action.SIMULATE).isEmpty()) { network.insertFluid(stack, stack.getAmount(), Action.SIMULATE).isEmpty()) {
FluidStack toDrain = handler.drain(FluidAttributes.BUCKET_VOLUME * upgrades.getStackInteractCount(), IFluidHandler.FluidAction.SIMULATE); FluidStack toDrain = handler.drain(FluidType.BUCKET_VOLUME * upgrades.getStackInteractCount(), IFluidHandler.FluidAction.SIMULATE);
if (!toDrain.isEmpty()) { if (!toDrain.isEmpty()) {
FluidStack remainder = network.insertFluidTracked(toDrain, toDrain.getAmount()); FluidStack remainder = network.insertFluidTracked(toDrain, toDrain.getAmount());

View File

@@ -24,7 +24,7 @@ import net.minecraft.world.InteractionResult;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.FluidType;
import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler; import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.fluids.capability.IFluidHandler;
@@ -50,7 +50,7 @@ public class StorageMonitorNetworkNode extends NetworkNode implements IComparabl
} }
}); });
private final FluidInventory fluidFilter = new FluidInventory(1, FluidAttributes.BUCKET_VOLUME) private final FluidInventory fluidFilter = new FluidInventory(1, FluidType.BUCKET_VOLUME)
.addListener((handler, slot, reading) -> { .addListener((handler, slot, reading) -> {
if (!reading) { if (!reading) {
LevelUtils.updateBlock(level, pos); LevelUtils.updateBlock(level, pos);
@@ -212,7 +212,7 @@ public class StorageMonitorNetworkNode extends NetworkNode implements IComparabl
} }
FluidStack stack = network.getFluidStorageCache().getList().get(filter); FluidStack stack = network.getFluidStorageCache().getList().get(filter);
if (stack == null || stack.getAmount() < FluidAttributes.BUCKET_VOLUME) { if (stack == null || stack.getAmount() < FluidType.BUCKET_VOLUME) {
return; return;
} }
@@ -221,7 +221,7 @@ public class StorageMonitorNetworkNode extends NetworkNode implements IComparabl
NetworkUtils.extractBucketFromPlayerInventoryOrNetwork(player, network, bucket -> bucket.getCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null).ifPresent(fluidHandler -> { NetworkUtils.extractBucketFromPlayerInventoryOrNetwork(player, network, bucket -> bucket.getCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null).ifPresent(fluidHandler -> {
network.getFluidStorageTracker().changed(player, stack.copy()); network.getFluidStorageTracker().changed(player, stack.copy());
fluidHandler.fill(network.extractFluid(stack, FluidAttributes.BUCKET_VOLUME, Action.PERFORM), IFluidHandler.FluidAction.EXECUTE); fluidHandler.fill(network.extractFluid(stack, FluidType.BUCKET_VOLUME, Action.PERFORM), IFluidHandler.FluidAction.EXECUTE);
if (!player.getInventory().add(fluidHandler.getContainer().copy())) { if (!player.getInventory().add(fluidHandler.getContainer().copy())) {
Containers.dropItemStack(player.getCommandSenderWorld(), player.getX(), player.getY(), player.getZ(), fluidHandler.getContainer()); Containers.dropItemStack(player.getCommandSenderWorld(), player.getX(), player.getY(), player.getZ(), fluidHandler.getContainer());

View File

@@ -29,7 +29,7 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.FluidType;
import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.IItemHandlerModifiable; import net.minecraftforge.items.IItemHandlerModifiable;
@@ -104,7 +104,7 @@ public class DiskManipulatorNetworkNode extends NetworkNode implements IComparab
int count = super.getStackInteractCount(); int count = super.getStackInteractCount();
if (type == IType.FLUIDS) { if (type == IType.FLUIDS) {
count *= FluidAttributes.BUCKET_VOLUME; count *= FluidType.BUCKET_VOLUME;
} }
return count; return count;

View File

@@ -26,7 +26,7 @@ import com.refinedmods.refinedstorage.util.AccessTypeUtils;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
@@ -247,7 +247,7 @@ public class FluidStorageNetworkNode extends NetworkNode implements IStorageScre
@Override @Override
public Component getTitle() { public Component getTitle() {
return new TranslatableComponent("block.refinedstorage." + type.getName() + "_fluid_storage_block"); return Component.translatable("block.refinedstorage." + type.getName() + "_fluid_storage_block");
} }
@Override @Override

View File

@@ -27,7 +27,7 @@ import com.refinedmods.refinedstorage.util.StackUtils;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
@@ -246,7 +246,7 @@ public class StorageNetworkNode extends NetworkNode implements IStorageScreen, I
@Override @Override
public Component getTitle() { public Component getTitle() {
return new TranslatableComponent("block.refinedstorage." + type.getName() + "_storage_block"); return Component.translatable("block.refinedstorage." + type.getName() + "_storage_block");
} }
@Override @Override

View File

@@ -2,7 +2,7 @@ package com.refinedmods.refinedstorage.apiimpl.util;
import com.refinedmods.refinedstorage.api.util.IQuantityFormatter; import com.refinedmods.refinedstorage.api.util.IQuantityFormatter;
import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.apiimpl.API;
import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fluids.FluidType;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.text.DecimalFormat; import java.text.DecimalFormat;
@@ -60,12 +60,12 @@ public class QuantityFormatter implements IQuantityFormatter {
@Override @Override
public String formatInBucketForm(int qty) { public String formatInBucketForm(int qty) {
return bucketFormatter.format((float) qty / (float) FluidAttributes.BUCKET_VOLUME) + " B"; return bucketFormatter.format((float) qty / (float) FluidType.BUCKET_VOLUME) + " B";
} }
@Override @Override
public String formatInBucketFormWithOnlyTrailingDigitsIfZero(int qty) { public String formatInBucketFormWithOnlyTrailingDigitsIfZero(int qty) {
float amountRaw = ((float) qty / (float) FluidAttributes.BUCKET_VOLUME); float amountRaw = ((float) qty / (float) FluidType.BUCKET_VOLUME);
int amount = (int) amountRaw; int amount = (int) amountRaw;
if (amount >= 1) { if (amount >= 1) {

View File

@@ -10,7 +10,8 @@ import com.refinedmods.refinedstorage.util.CollisionUtils;
import com.refinedmods.refinedstorage.util.NetworkUtils; import com.refinedmods.refinedstorage.util.NetworkUtils;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
@@ -92,10 +93,10 @@ public class ConstructorBlock extends CableBlock {
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) {
if (!level.isClientSide && CollisionUtils.isInBounds(getHeadShape(state), pos, hit.getLocation())) { if (!level.isClientSide && CollisionUtils.isInBounds(getHeadShape(state), pos, hit.getLocation())) {
return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openGui( return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openScreen(
(ServerPlayer) player, (ServerPlayer) player,
new BlockEntityMenuProvider<ConstructorBlockEntity>( new BlockEntityMenuProvider<ConstructorBlockEntity>(
new TranslatableComponent("gui.refinedstorage.constructor"), Component.translatable("gui.refinedstorage.constructor"),
(blockEntity, windowId, inventory, p) -> new ConstructorContainerMenu(blockEntity, player, windowId), (blockEntity, windowId, inventory, p) -> new ConstructorContainerMenu(blockEntity, player, windowId),
pos pos
), ),

View File

@@ -5,14 +5,13 @@ import com.refinedmods.refinedstorage.api.network.INetwork;
import com.refinedmods.refinedstorage.api.network.NetworkType; import com.refinedmods.refinedstorage.api.network.NetworkType;
import com.refinedmods.refinedstorage.apiimpl.API; import com.refinedmods.refinedstorage.apiimpl.API;
import com.refinedmods.refinedstorage.apiimpl.network.Network; import com.refinedmods.refinedstorage.apiimpl.network.Network;
import com.refinedmods.refinedstorage.container.ControllerContainerMenu;
import com.refinedmods.refinedstorage.blockentity.ControllerBlockEntity; import com.refinedmods.refinedstorage.blockentity.ControllerBlockEntity;
import com.refinedmods.refinedstorage.container.ControllerContainerMenu;
import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.BlockUtils;
import com.refinedmods.refinedstorage.util.ColorMap; import com.refinedmods.refinedstorage.util.ColorMap;
import com.refinedmods.refinedstorage.util.NetworkUtils; import com.refinedmods.refinedstorage.util.NetworkUtils;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.util.StringRepresentable; import net.minecraft.util.StringRepresentable;
@@ -106,12 +105,12 @@ public class ControllerBlock extends BaseBlock implements EntityBlock {
} }
if (!level.isClientSide) { if (!level.isClientSide) {
return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openGui( return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openScreen(
(ServerPlayer) player, (ServerPlayer) player,
new MenuProvider() { new MenuProvider() {
@Override @Override
public Component getDisplayName() { public Component getDisplayName() {
return new TranslatableComponent("gui.refinedstorage." + (ControllerBlock.this.getType() == NetworkType.CREATIVE ? "creative_" : "") + "controller"); return Component.translatable("gui.refinedstorage." + (ControllerBlock.this.getType() == NetworkType.CREATIVE ? "creative_" : "") + "controller");
} }
@Override @Override

View File

@@ -55,7 +55,7 @@ public class CrafterBlock extends ColoredNetworkBlock {
} }
if (!level.isClientSide) { if (!level.isClientSide) {
return NetworkUtils.attempt(level, pos, player, () -> NetworkHooks.openGui( return NetworkUtils.attempt(level, pos, player, () -> NetworkHooks.openScreen(
(ServerPlayer) player, (ServerPlayer) player,
new BlockEntityMenuProvider<CrafterBlockEntity>( new BlockEntityMenuProvider<CrafterBlockEntity>(
((CrafterBlockEntity) level.getBlockEntity(pos)).getNode().getName(), ((CrafterBlockEntity) level.getBlockEntity(pos)).getNode().getName(),

View File

@@ -41,7 +41,7 @@ public class CrafterManagerBlock extends ColoredNetworkBlock {
} }
if (!level.isClientSide) { if (!level.isClientSide) {
return NetworkUtils.attempt(level, pos, player, () -> NetworkHooks.openGui( return NetworkUtils.attempt(level, pos, player, () -> NetworkHooks.openScreen(
(ServerPlayer) player, (ServerPlayer) player,
new CrafterManagerMenuProvider((CrafterManagerBlockEntity) level.getBlockEntity(pos)), new CrafterManagerMenuProvider((CrafterManagerBlockEntity) level.getBlockEntity(pos)),
buf -> CrafterManagerMenuProvider.writeToBuffer(buf, level, pos) buf -> CrafterManagerMenuProvider.writeToBuffer(buf, level, pos)

View File

@@ -44,9 +44,9 @@ public class CraftingMonitorBlock extends ColoredNetworkBlock {
if (!level.isClientSide) { if (!level.isClientSide) {
CraftingMonitorBlockEntity blockEntity = (CraftingMonitorBlockEntity) level.getBlockEntity(pos); CraftingMonitorBlockEntity blockEntity = (CraftingMonitorBlockEntity) level.getBlockEntity(pos);
return NetworkUtils.attempt(level, pos, player, () -> NetworkHooks.openGui( return NetworkUtils.attempt(level, pos, player, () -> NetworkHooks.openScreen(
(ServerPlayer) player, (ServerPlayer) player,
new CraftingMonitorMenuProvider(RSContainerMenus.CRAFTING_MONITOR, blockEntity.getNode(), blockEntity), new CraftingMonitorMenuProvider(RSContainerMenus.CRAFTING_MONITOR.get(), blockEntity.getNode(), blockEntity),
pos pos
), Permission.MODIFY, Permission.AUTOCRAFTING); ), Permission.MODIFY, Permission.AUTOCRAFTING);
} }

View File

@@ -10,7 +10,8 @@ import com.refinedmods.refinedstorage.util.CollisionUtils;
import com.refinedmods.refinedstorage.util.NetworkUtils; import com.refinedmods.refinedstorage.util.NetworkUtils;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
@@ -92,10 +93,10 @@ public class DestructorBlock extends CableBlock {
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand handIn, BlockHitResult hit) { public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand handIn, BlockHitResult hit) {
if (!level.isClientSide && CollisionUtils.isInBounds(getHeadShape(state), pos, hit.getLocation())) { if (!level.isClientSide && CollisionUtils.isInBounds(getHeadShape(state), pos, hit.getLocation())) {
return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openGui( return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openScreen(
(ServerPlayer) player, (ServerPlayer) player,
new BlockEntityMenuProvider<DestructorBlockEntity>( new BlockEntityMenuProvider<DestructorBlockEntity>(
new TranslatableComponent("gui.refinedstorage.destructor"), Component.translatable("gui.refinedstorage.destructor"),
(blockEntity, windowId, inventory, p) -> new DestructorContainerMenu(blockEntity, player, windowId), (blockEntity, windowId, inventory, p) -> new DestructorContainerMenu(blockEntity, player, windowId),
pos pos
), ),

View File

@@ -9,7 +9,8 @@ import com.refinedmods.refinedstorage.util.ColorMap;
import com.refinedmods.refinedstorage.util.NetworkUtils; import com.refinedmods.refinedstorage.util.NetworkUtils;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
@@ -78,10 +79,10 @@ public class DetectorBlock extends ColoredNetworkBlock {
} }
if (!level.isClientSide) { if (!level.isClientSide) {
return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openGui( return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openScreen(
(ServerPlayer) player, (ServerPlayer) player,
new BlockEntityMenuProvider<DetectorBlockEntity>( new BlockEntityMenuProvider<DetectorBlockEntity>(
new TranslatableComponent("gui.refinedstorage.detector"), Component.translatable("gui.refinedstorage.detector"),
(blockEntity, windowId, inventory, p) -> new DetectorContainerMenu(blockEntity, player, windowId), (blockEntity, windowId, inventory, p) -> new DetectorContainerMenu(blockEntity, player, windowId),
pos pos
), ),

View File

@@ -6,7 +6,8 @@ import com.refinedmods.refinedstorage.blockentity.DiskDriveBlockEntity;
import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.BlockUtils;
import com.refinedmods.refinedstorage.util.NetworkUtils; import com.refinedmods.refinedstorage.util.NetworkUtils;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
@@ -36,10 +37,10 @@ public class DiskDriveBlock extends NetworkNodeBlock {
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult rayTraceResult) { public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult rayTraceResult) {
if (!level.isClientSide) { if (!level.isClientSide) {
return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openGui( return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openScreen(
(ServerPlayer) player, (ServerPlayer) player,
new BlockEntityMenuProvider<DiskDriveBlockEntity>( new BlockEntityMenuProvider<DiskDriveBlockEntity>(
new TranslatableComponent("gui.refinedstorage.disk_drive"), Component.translatable("gui.refinedstorage.disk_drive"),
(blockEntity, windowId, inventory, p) -> new DiskDriveContainerMenu(blockEntity, p, windowId), (blockEntity, windowId, inventory, p) -> new DiskDriveContainerMenu(blockEntity, p, windowId),
pos pos
), ),

View File

@@ -7,7 +7,8 @@ import com.refinedmods.refinedstorage.blockentity.DiskManipulatorBlockEntity;
import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.BlockUtils;
import com.refinedmods.refinedstorage.util.NetworkUtils; import com.refinedmods.refinedstorage.util.NetworkUtils;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
@@ -37,10 +38,10 @@ public class DiskManipulatorBlock extends ColoredNetworkBlock {
} }
if (!level.isClientSide) { if (!level.isClientSide) {
return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openGui( return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openScreen(
(ServerPlayer) player, (ServerPlayer) player,
new BlockEntityMenuProvider<DiskManipulatorBlockEntity>( new BlockEntityMenuProvider<DiskManipulatorBlockEntity>(
new TranslatableComponent("gui.refinedstorage.disk_manipulator"), Component.translatable("gui.refinedstorage.disk_manipulator"),
(blockEntity, windowId, inventory, p) -> new DiskManipulatorContainerMenu(blockEntity, p, windowId), (blockEntity, windowId, inventory, p) -> new DiskManipulatorContainerMenu(blockEntity, p, windowId),
pos pos
), ),

View File

@@ -10,7 +10,8 @@ import com.refinedmods.refinedstorage.util.CollisionUtils;
import com.refinedmods.refinedstorage.util.NetworkUtils; import com.refinedmods.refinedstorage.util.NetworkUtils;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
@@ -116,10 +117,10 @@ public class ExporterBlock extends CableBlock {
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) {
if (!level.isClientSide && CollisionUtils.isInBounds(getLineShape(state), pos, hit.getLocation())) { if (!level.isClientSide && CollisionUtils.isInBounds(getLineShape(state), pos, hit.getLocation())) {
return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openGui( return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openScreen(
(ServerPlayer) player, (ServerPlayer) player,
new BlockEntityMenuProvider<ExporterBlockEntity>( new BlockEntityMenuProvider<ExporterBlockEntity>(
new TranslatableComponent("gui.refinedstorage.exporter"), Component.translatable("gui.refinedstorage.exporter"),
(blockEntity, windowId, inventory, p) -> new ExporterContainerMenu(blockEntity, player, windowId), (blockEntity, windowId, inventory, p) -> new ExporterContainerMenu(blockEntity, player, windowId),
pos pos
), ),

View File

@@ -13,7 +13,8 @@ import com.refinedmods.refinedstorage.util.CollisionUtils;
import com.refinedmods.refinedstorage.util.NetworkUtils; import com.refinedmods.refinedstorage.util.NetworkUtils;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
@@ -96,10 +97,10 @@ public class ExternalStorageBlock extends CableBlock {
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) {
if (!level.isClientSide && CollisionUtils.isInBounds(getHeadShape(state), pos, hit.getLocation())) { if (!level.isClientSide && CollisionUtils.isInBounds(getHeadShape(state), pos, hit.getLocation())) {
return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openGui( return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openScreen(
(ServerPlayer) player, (ServerPlayer) player,
new BlockEntityMenuProvider<ExternalStorageBlockEntity>( new BlockEntityMenuProvider<ExternalStorageBlockEntity>(
new TranslatableComponent("gui.refinedstorage.external_storage"), Component.translatable("gui.refinedstorage.external_storage"),
(blockEntity, windowId, inventory, p) -> new ExternalStorageContainerMenu(blockEntity, player, windowId), (blockEntity, windowId, inventory, p) -> new ExternalStorageContainerMenu(blockEntity, player, windowId),
pos pos
), ),

View File

@@ -7,7 +7,8 @@ import com.refinedmods.refinedstorage.blockentity.FluidInterfaceBlockEntity;
import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.BlockUtils;
import com.refinedmods.refinedstorage.util.NetworkUtils; import com.refinedmods.refinedstorage.util.NetworkUtils;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
@@ -32,10 +33,10 @@ public class FluidInterfaceBlock extends NetworkNodeBlock {
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand handIn, BlockHitResult hit) { public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand handIn, BlockHitResult hit) {
if (!level.isClientSide) { if (!level.isClientSide) {
return NetworkUtils.attempt(level, pos, player, () -> NetworkHooks.openGui( return NetworkUtils.attempt(level, pos, player, () -> NetworkHooks.openScreen(
(ServerPlayer) player, (ServerPlayer) player,
new BlockEntityMenuProvider<FluidInterfaceBlockEntity>( new BlockEntityMenuProvider<FluidInterfaceBlockEntity>(
new TranslatableComponent("gui.refinedstorage.fluid_interface"), Component.translatable("gui.refinedstorage.fluid_interface"),
(blockEntity, windowId, inventory, p) -> new FluidInterfaceContainerMenu(blockEntity, player, windowId), (blockEntity, windowId, inventory, p) -> new FluidInterfaceContainerMenu(blockEntity, player, windowId),
pos pos
), ),

View File

@@ -58,7 +58,7 @@ public class FluidStorageBlock extends NetworkNodeBlock {
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand handIn, BlockHitResult hit) { public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand handIn, BlockHitResult hit) {
if (!level.isClientSide) { if (!level.isClientSide) {
return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openGui((ServerPlayer) player, new BlockEntityMenuProvider<FluidStorageBlockEntity>( return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openScreen((ServerPlayer) player, new BlockEntityMenuProvider<FluidStorageBlockEntity>(
((FluidStorageBlockEntity) level.getBlockEntity(pos)).getNode().getTitle(), ((FluidStorageBlockEntity) level.getBlockEntity(pos)).getNode().getTitle(),
(blockEntity, windowId, inventory, p) -> new FluidStorageContainerMenu(blockEntity, player, windowId), (blockEntity, windowId, inventory, p) -> new FluidStorageContainerMenu(blockEntity, player, windowId),
pos pos

View File

@@ -10,7 +10,8 @@ import com.refinedmods.refinedstorage.util.CollisionUtils;
import com.refinedmods.refinedstorage.util.NetworkUtils; import com.refinedmods.refinedstorage.util.NetworkUtils;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
@@ -115,10 +116,10 @@ public class ImporterBlock extends CableBlock {
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) {
if (!level.isClientSide && CollisionUtils.isInBounds(getLineShape(state), pos, hit.getLocation())) { if (!level.isClientSide && CollisionUtils.isInBounds(getLineShape(state), pos, hit.getLocation())) {
return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openGui( return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openScreen(
(ServerPlayer) player, (ServerPlayer) player,
new BlockEntityMenuProvider<ImporterBlockEntity>( new BlockEntityMenuProvider<ImporterBlockEntity>(
new TranslatableComponent("gui.refinedstorage.importer"), Component.translatable("gui.refinedstorage.importer"),
(blockEntity, windowId, inventory, p) -> new ImporterContainerMenu(blockEntity, player, windowId), (blockEntity, windowId, inventory, p) -> new ImporterContainerMenu(blockEntity, player, windowId),
pos pos
), ),

View File

@@ -7,7 +7,8 @@ import com.refinedmods.refinedstorage.blockentity.InterfaceBlockEntity;
import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.BlockUtils;
import com.refinedmods.refinedstorage.util.NetworkUtils; import com.refinedmods.refinedstorage.util.NetworkUtils;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
@@ -32,10 +33,10 @@ public class InterfaceBlock extends NetworkNodeBlock {
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand handIn, BlockHitResult hit) { public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand handIn, BlockHitResult hit) {
if (!level.isClientSide) { if (!level.isClientSide) {
return NetworkUtils.attempt(level, pos, player, () -> NetworkHooks.openGui( return NetworkUtils.attempt(level, pos, player, () -> NetworkHooks.openScreen(
(ServerPlayer) player, (ServerPlayer) player,
new BlockEntityMenuProvider<InterfaceBlockEntity>( new BlockEntityMenuProvider<InterfaceBlockEntity>(
new TranslatableComponent("gui.refinedstorage.interface"), Component.translatable("gui.refinedstorage.interface"),
(blockEntity, windowId, inventory, p) -> new InterfaceContainerMenu(blockEntity, player, windowId), (blockEntity, windowId, inventory, p) -> new InterfaceContainerMenu(blockEntity, player, windowId),
pos pos
), ),

View File

@@ -1,13 +1,13 @@
package com.refinedmods.refinedstorage.block; package com.refinedmods.refinedstorage.block;
import com.refinedmods.refinedstorage.RSBlocks; import com.refinedmods.refinedstorage.RSBlocks;
import com.refinedmods.refinedstorage.blockentity.NetworkTransmitterBlockEntity;
import com.refinedmods.refinedstorage.container.NetworkTransmitterContainerMenu; import com.refinedmods.refinedstorage.container.NetworkTransmitterContainerMenu;
import com.refinedmods.refinedstorage.container.factory.BlockEntityMenuProvider; import com.refinedmods.refinedstorage.container.factory.BlockEntityMenuProvider;
import com.refinedmods.refinedstorage.blockentity.NetworkTransmitterBlockEntity;
import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.BlockUtils;
import com.refinedmods.refinedstorage.util.NetworkUtils; import com.refinedmods.refinedstorage.util.NetworkUtils;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
@@ -37,10 +37,10 @@ public class NetworkTransmitterBlock extends ColoredNetworkBlock {
} }
if (!level.isClientSide) { if (!level.isClientSide) {
return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openGui( return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openScreen(
(ServerPlayer) player, (ServerPlayer) player,
new BlockEntityMenuProvider<NetworkTransmitterBlockEntity>( new BlockEntityMenuProvider<NetworkTransmitterBlockEntity>(
new TranslatableComponent("gui.refinedstorage.network_transmitter"), Component.translatable("gui.refinedstorage.network_transmitter"),
(blockEntity, windowId, inventory, p) -> new NetworkTransmitterContainerMenu(blockEntity, player, windowId), (blockEntity, windowId, inventory, p) -> new NetworkTransmitterContainerMenu(blockEntity, player, windowId),
pos pos
), ),

View File

@@ -7,7 +7,8 @@ import com.refinedmods.refinedstorage.blockentity.RelayBlockEntity;
import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.BlockUtils;
import com.refinedmods.refinedstorage.util.NetworkUtils; import com.refinedmods.refinedstorage.util.NetworkUtils;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
@@ -37,10 +38,10 @@ public class RelayBlock extends ColoredNetworkBlock {
} }
if (!level.isClientSide) { if (!level.isClientSide) {
return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openGui( return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openScreen(
(ServerPlayer) player, (ServerPlayer) player,
new BlockEntityMenuProvider<RelayBlockEntity>( new BlockEntityMenuProvider<RelayBlockEntity>(
new TranslatableComponent("gui.refinedstorage.relay"), Component.translatable("gui.refinedstorage.relay"),
(blockEntity, windowId, inventory, p) -> new RelayContainerMenu(blockEntity, player, windowId), (blockEntity, windowId, inventory, p) -> new RelayContainerMenu(blockEntity, player, windowId),
pos pos
), ),

View File

@@ -8,7 +8,8 @@ import com.refinedmods.refinedstorage.blockentity.SecurityManagerBlockEntity;
import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.BlockUtils;
import com.refinedmods.refinedstorage.util.NetworkUtils; import com.refinedmods.refinedstorage.util.NetworkUtils;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
@@ -38,10 +39,10 @@ public class SecurityManagerBlock extends ColoredNetworkBlock {
} }
if (!level.isClientSide) { if (!level.isClientSide) {
Runnable action = () -> NetworkHooks.openGui( Runnable action = () -> NetworkHooks.openScreen(
(ServerPlayer) player, (ServerPlayer) player,
new BlockEntityMenuProvider<SecurityManagerBlockEntity>( new BlockEntityMenuProvider<SecurityManagerBlockEntity>(
new TranslatableComponent("gui.refinedstorage.security_manager"), Component.translatable("gui.refinedstorage.security_manager"),
(blockEntity, windowId, inventory, p) -> new SecurityManagerContainerMenu(blockEntity, player, windowId), (blockEntity, windowId, inventory, p) -> new SecurityManagerContainerMenu(blockEntity, player, windowId),
pos pos
), ),

View File

@@ -60,7 +60,7 @@ public class StorageBlock extends NetworkNodeBlock {
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand handIn, BlockHitResult hit) { public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand handIn, BlockHitResult hit) {
if (!level.isClientSide) { if (!level.isClientSide) {
return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openGui((ServerPlayer) player, new BlockEntityMenuProvider<StorageBlockEntity>( return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openScreen((ServerPlayer) player, new BlockEntityMenuProvider<StorageBlockEntity>(
((StorageBlockEntity) level.getBlockEntity(pos)).getNode().getTitle(), ((StorageBlockEntity) level.getBlockEntity(pos)).getNode().getTitle(),
(blockEntity, windowId, inventory, p) -> new StorageContainerMenu(blockEntity, player, windowId), (blockEntity, windowId, inventory, p) -> new StorageContainerMenu(blockEntity, player, windowId),
pos pos

View File

@@ -8,7 +8,8 @@ import com.refinedmods.refinedstorage.util.BlockUtils;
import com.refinedmods.refinedstorage.util.LevelUtils; import com.refinedmods.refinedstorage.util.LevelUtils;
import com.refinedmods.refinedstorage.util.NetworkUtils; import com.refinedmods.refinedstorage.util.NetworkUtils;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
@@ -43,10 +44,10 @@ public class StorageMonitorBlock extends NetworkNodeBlock {
ItemStack held = player.getItemInHand(handIn); ItemStack held = player.getItemInHand(handIn);
if (player.isCrouching()) { if (player.isCrouching()) {
return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openGui( return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openScreen(
(ServerPlayer) player, (ServerPlayer) player,
new BlockEntityMenuProvider<StorageMonitorBlockEntity>( new BlockEntityMenuProvider<StorageMonitorBlockEntity>(
new TranslatableComponent("gui.refinedstorage.storage_monitor"), Component.translatable("gui.refinedstorage.storage_monitor"),
(blockEntity, windowId, inventory, p) -> new StorageMonitorContainerMenu(blockEntity, player, windowId), (blockEntity, windowId, inventory, p) -> new StorageMonitorContainerMenu(blockEntity, player, windowId),
pos pos
), ),

View File

@@ -7,7 +7,8 @@ import com.refinedmods.refinedstorage.blockentity.WirelessTransmitterBlockEntity
import com.refinedmods.refinedstorage.util.BlockUtils; import com.refinedmods.refinedstorage.util.BlockUtils;
import com.refinedmods.refinedstorage.util.NetworkUtils; import com.refinedmods.refinedstorage.util.NetworkUtils;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
@@ -79,10 +80,10 @@ public class WirelessTransmitterBlock extends ColoredNetworkBlock {
} }
if (!level.isClientSide) { if (!level.isClientSide) {
return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openGui( return NetworkUtils.attemptModify(level, pos, player, () -> NetworkHooks.openScreen(
(ServerPlayer) player, (ServerPlayer) player,
new BlockEntityMenuProvider<WirelessTransmitterBlockEntity>( new BlockEntityMenuProvider<WirelessTransmitterBlockEntity>(
new TranslatableComponent("gui.refinedstorage.wireless_transmitter"), Component.translatable("gui.refinedstorage.wireless_transmitter"),
(blockEntity, windowId, inventory, p) -> new WirelessTransmitterContainerMenu(blockEntity, player, windowId), (blockEntity, windowId, inventory, p) -> new WirelessTransmitterContainerMenu(blockEntity, player, windowId),
pos pos
), ),

View File

@@ -1,6 +1,7 @@
package com.refinedmods.refinedstorage.blockentity; package com.refinedmods.refinedstorage.blockentity;
import com.refinedmods.refinedstorage.blockentity.data.BlockEntitySynchronizationManager; import com.refinedmods.refinedstorage.blockentity.data.BlockEntitySynchronizationManager;
import com.refinedmods.refinedstorage.blockentity.data.BlockEntitySynchronizationSpec;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.Connection; import net.minecraft.network.Connection;
@@ -10,12 +11,12 @@ import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
public abstract class BaseBlockEntity extends BlockEntity { public abstract class BaseBlockEntity extends BlockEntity {
protected final BlockEntitySynchronizationManager dataManager = new BlockEntitySynchronizationManager(this); private final BlockEntitySynchronizationManager dataManager;
private boolean unloaded; private boolean unloaded;
public BaseBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) { protected BaseBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state, BlockEntitySynchronizationSpec syncSpec) {
super(type, pos, state); super(type, pos, state);
this.dataManager = new BlockEntitySynchronizationManager(this, syncSpec);
} }
public BlockEntitySynchronizationManager getDataManager() { public BlockEntitySynchronizationManager getDataManager() {

View File

@@ -4,14 +4,14 @@ import com.refinedmods.refinedstorage.RSBlockEntities;
import com.refinedmods.refinedstorage.apiimpl.network.node.CableNetworkNode; import com.refinedmods.refinedstorage.apiimpl.network.node.CableNetworkNode;
import com.refinedmods.refinedstorage.apiimpl.network.node.cover.CoverManager; import com.refinedmods.refinedstorage.apiimpl.network.node.cover.CoverManager;
import com.refinedmods.refinedstorage.blockentity.data.BlockEntitySynchronizationParameter; import com.refinedmods.refinedstorage.blockentity.data.BlockEntitySynchronizationParameter;
import com.refinedmods.refinedstorage.blockentity.data.BlockEntitySynchronizationSpec;
import com.refinedmods.refinedstorage.util.LevelUtils; import com.refinedmods.refinedstorage.util.LevelUtils;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.network.syncher.EntityDataSerializers;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.client.model.data.IModelData; import net.minecraftforge.client.model.data.ModelData;
import net.minecraftforge.client.model.data.ModelDataMap;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
@@ -19,9 +19,13 @@ public class CableBlockEntity extends NetworkNodeBlockEntity<CableNetworkNode> {
public static final BlockEntitySynchronizationParameter<CompoundTag, CableBlockEntity> COVER_MANAGER = new BlockEntitySynchronizationParameter<>(EntityDataSerializers.COMPOUND_TAG, new CompoundTag(), t -> t.getNode().getCoverManager().writeToNbt(), (t, v) -> t.getNode().getCoverManager().readFromNbt(v), (initial, p) -> { public static final BlockEntitySynchronizationParameter<CompoundTag, CableBlockEntity> COVER_MANAGER = new BlockEntitySynchronizationParameter<>(EntityDataSerializers.COMPOUND_TAG, new CompoundTag(), t -> t.getNode().getCoverManager().writeToNbt(), (t, v) -> t.getNode().getCoverManager().readFromNbt(v), (initial, p) -> {
}); });
public static BlockEntitySynchronizationSpec SPEC = BlockEntitySynchronizationSpec.builder()
.addWatchedParameter(REDSTONE_MODE)
.addWatchedParameter(COVER_MANAGER)
.build();
public CableBlockEntity(BlockPos pos, BlockState state) { public CableBlockEntity(BlockPos pos, BlockState state) {
super(RSBlockEntities.CABLE, pos, state); super(RSBlockEntities.CABLE.get(), pos, state, SPEC);
dataManager.addWatchedParameter(COVER_MANAGER);
} }
@Override @Override
@@ -32,8 +36,8 @@ public class CableBlockEntity extends NetworkNodeBlockEntity<CableNetworkNode> {
@Nonnull @Nonnull
@Override @Override
public IModelData getModelData() { public ModelData getModelData() {
return new ModelDataMap.Builder().withInitial(CoverManager.PROPERTY, this.getNode().getCoverManager()).build(); return ModelData.builder().with(CoverManager.PROPERTY, this.getNode().getCoverManager()).build();
} }
@Override @Override

View File

@@ -6,14 +6,14 @@ import com.refinedmods.refinedstorage.apiimpl.network.node.cover.CoverManager;
import com.refinedmods.refinedstorage.blockentity.config.IComparable; import com.refinedmods.refinedstorage.blockentity.config.IComparable;
import com.refinedmods.refinedstorage.blockentity.config.IType; import com.refinedmods.refinedstorage.blockentity.config.IType;
import com.refinedmods.refinedstorage.blockentity.data.BlockEntitySynchronizationParameter; import com.refinedmods.refinedstorage.blockentity.data.BlockEntitySynchronizationParameter;
import com.refinedmods.refinedstorage.blockentity.data.BlockEntitySynchronizationSpec;
import com.refinedmods.refinedstorage.util.LevelUtils; import com.refinedmods.refinedstorage.util.LevelUtils;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.network.syncher.EntityDataSerializers;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.client.model.data.IModelData; import net.minecraftforge.client.model.data.ModelData;
import net.minecraftforge.client.model.data.ModelDataMap;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
@@ -31,13 +31,16 @@ public class ConstructorBlockEntity extends NetworkNodeBlockEntity<ConstructorNe
(initial, p) -> { (initial, p) -> {
}); });
public ConstructorBlockEntity(BlockPos pos, BlockState state) { public static BlockEntitySynchronizationSpec SPEC = BlockEntitySynchronizationSpec.builder()
super(RSBlockEntities.CONSTRUCTOR, pos, state); .addWatchedParameter(REDSTONE_MODE)
.addWatchedParameter(COMPARE)
.addWatchedParameter(TYPE)
.addWatchedParameter(DROP)
.addWatchedParameter(COVER_MANAGER)
.build();
dataManager.addWatchedParameter(COMPARE); public ConstructorBlockEntity(BlockPos pos, BlockState state) {
dataManager.addWatchedParameter(TYPE); super(RSBlockEntities.CONSTRUCTOR.get(), pos, state, SPEC);
dataManager.addWatchedParameter(DROP);
dataManager.addWatchedParameter(COVER_MANAGER);
} }
@Override @Override
@@ -48,8 +51,8 @@ public class ConstructorBlockEntity extends NetworkNodeBlockEntity<ConstructorNe
@Nonnull @Nonnull
@Override @Override
public IModelData getModelData() { public ModelData getModelData() {
return new ModelDataMap.Builder().withInitial(CoverManager.PROPERTY, this.getNode().getCoverManager()).build(); return ModelData.builder().with(CoverManager.PROPERTY, this.getNode().getCoverManager()).build();
} }
@Override @Override

View File

@@ -12,6 +12,7 @@ import com.refinedmods.refinedstorage.apiimpl.network.node.RootNetworkNode;
import com.refinedmods.refinedstorage.blockentity.config.IRedstoneConfigurable; import com.refinedmods.refinedstorage.blockentity.config.IRedstoneConfigurable;
import com.refinedmods.refinedstorage.blockentity.config.RedstoneMode; import com.refinedmods.refinedstorage.blockentity.config.RedstoneMode;
import com.refinedmods.refinedstorage.blockentity.data.BlockEntitySynchronizationParameter; import com.refinedmods.refinedstorage.blockentity.data.BlockEntitySynchronizationParameter;
import com.refinedmods.refinedstorage.blockentity.data.BlockEntitySynchronizationSpec;
import com.refinedmods.refinedstorage.blockentity.data.RSSerializers; import com.refinedmods.refinedstorage.blockentity.data.RSSerializers;
import com.refinedmods.refinedstorage.capability.NetworkNodeProxyCapability; import com.refinedmods.refinedstorage.capability.NetworkNodeProxyCapability;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
@@ -37,6 +38,14 @@ public class ControllerBlockEntity extends BaseBlockEntity implements INetworkNo
public static final BlockEntitySynchronizationParameter<Integer, ControllerBlockEntity> ENERGY_CAPACITY = new BlockEntitySynchronizationParameter<>(EntityDataSerializers.INT, 0, t -> t.getNetwork().getEnergyStorage().getMaxEnergyStored()); public static final BlockEntitySynchronizationParameter<Integer, ControllerBlockEntity> ENERGY_CAPACITY = new BlockEntitySynchronizationParameter<>(EntityDataSerializers.INT, 0, t -> t.getNetwork().getEnergyStorage().getMaxEnergyStored());
public static final BlockEntitySynchronizationParameter<List<ClientNode>, ControllerBlockEntity> NODES = new BlockEntitySynchronizationParameter<>(RSSerializers.CLIENT_NODE_SERIALIZER, new ArrayList<>(), ControllerBlockEntity::collectClientNodes); public static final BlockEntitySynchronizationParameter<List<ClientNode>, ControllerBlockEntity> NODES = new BlockEntitySynchronizationParameter<>(RSSerializers.CLIENT_NODE_SERIALIZER, new ArrayList<>(), ControllerBlockEntity::collectClientNodes);
public static BlockEntitySynchronizationSpec SPEC = BlockEntitySynchronizationSpec.builder()
.addWatchedParameter(REDSTONE_MODE)
.addWatchedParameter(ENERGY_USAGE)
.addWatchedParameter(ENERGY_STORED)
.addParameter(ENERGY_CAPACITY)
.addParameter(NODES)
.build();
private final LazyOptional<INetworkNodeProxy<RootNetworkNode>> networkNodeProxyCap = LazyOptional.of(() -> this); private final LazyOptional<INetworkNodeProxy<RootNetworkNode>> networkNodeProxyCap = LazyOptional.of(() -> this);
private final NetworkType type; private final NetworkType type;
private INetwork removedNetwork; private INetwork removedNetwork;
@@ -44,14 +53,7 @@ public class ControllerBlockEntity extends BaseBlockEntity implements INetworkNo
private final LazyOptional<IEnergyStorage> energyProxyCap = LazyOptional.of(() -> getNetwork().getEnergyStorage()); private final LazyOptional<IEnergyStorage> energyProxyCap = LazyOptional.of(() -> getNetwork().getEnergyStorage());
public ControllerBlockEntity(NetworkType type, BlockPos pos, BlockState state) { public ControllerBlockEntity(NetworkType type, BlockPos pos, BlockState state) {
super(type == NetworkType.CREATIVE ? RSBlockEntities.CREATIVE_CONTROLLER : RSBlockEntities.CONTROLLER, pos, state); super(type == NetworkType.CREATIVE ? RSBlockEntities.CREATIVE_CONTROLLER.get() : RSBlockEntities.CONTROLLER.get(), pos, state, SPEC);
dataManager.addWatchedParameter(REDSTONE_MODE);
dataManager.addWatchedParameter(ENERGY_USAGE);
dataManager.addWatchedParameter(ENERGY_STORED);
dataManager.addParameter(ENERGY_CAPACITY);
dataManager.addParameter(NODES);
this.type = type; this.type = type;
} }

View File

@@ -2,8 +2,9 @@ package com.refinedmods.refinedstorage.blockentity;
import com.refinedmods.refinedstorage.RSBlockEntities; import com.refinedmods.refinedstorage.RSBlockEntities;
import com.refinedmods.refinedstorage.apiimpl.network.node.CrafterNetworkNode; import com.refinedmods.refinedstorage.apiimpl.network.node.CrafterNetworkNode;
import com.refinedmods.refinedstorage.screen.CrafterBlockEntitySynchronizationClientListener;
import com.refinedmods.refinedstorage.blockentity.data.BlockEntitySynchronizationParameter; import com.refinedmods.refinedstorage.blockentity.data.BlockEntitySynchronizationParameter;
import com.refinedmods.refinedstorage.blockentity.data.BlockEntitySynchronizationSpec;
import com.refinedmods.refinedstorage.screen.CrafterBlockEntitySynchronizationClientListener;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.network.syncher.EntityDataSerializers;
@@ -21,13 +22,16 @@ public class CrafterBlockEntity extends NetworkNodeBlockEntity<CrafterNetworkNod
public static final BlockEntitySynchronizationParameter<Integer, CrafterBlockEntity> MODE = new BlockEntitySynchronizationParameter<>(EntityDataSerializers.INT, CrafterNetworkNode.CrafterMode.IGNORE.ordinal(), t -> t.getNode().getMode().ordinal(), (t, v) -> t.getNode().setMode(CrafterNetworkNode.CrafterMode.getById(v))); public static final BlockEntitySynchronizationParameter<Integer, CrafterBlockEntity> MODE = new BlockEntitySynchronizationParameter<>(EntityDataSerializers.INT, CrafterNetworkNode.CrafterMode.IGNORE.ordinal(), t -> t.getNode().getMode().ordinal(), (t, v) -> t.getNode().setMode(CrafterNetworkNode.CrafterMode.getById(v)));
private static final BlockEntitySynchronizationParameter<Boolean, CrafterBlockEntity> HAS_ROOT = new BlockEntitySynchronizationParameter<>(EntityDataSerializers.BOOLEAN, false, t -> t.getNode().getRootContainerNotSelf().isPresent(), null, (t, v) -> new CrafterBlockEntitySynchronizationClientListener().onChanged(t, v)); private static final BlockEntitySynchronizationParameter<Boolean, CrafterBlockEntity> HAS_ROOT = new BlockEntitySynchronizationParameter<>(EntityDataSerializers.BOOLEAN, false, t -> t.getNode().getRootContainerNotSelf().isPresent(), null, (t, v) -> new CrafterBlockEntitySynchronizationClientListener().onChanged(t, v));
public static BlockEntitySynchronizationSpec SPEC = BlockEntitySynchronizationSpec.builder()
.addWatchedParameter(REDSTONE_MODE)
.addWatchedParameter(MODE)
.addParameter(HAS_ROOT)
.build();
private final LazyOptional<IItemHandler> patternsCapability = LazyOptional.of(() -> getNode().getPatternInventory()); private final LazyOptional<IItemHandler> patternsCapability = LazyOptional.of(() -> getNode().getPatternInventory());
public CrafterBlockEntity(BlockPos pos, BlockState state) { public CrafterBlockEntity(BlockPos pos, BlockState state) {
super(RSBlockEntities.CRAFTER, pos, state); super(RSBlockEntities.CRAFTER.get(), pos, state, SPEC);
dataManager.addWatchedParameter(MODE);
dataManager.addParameter(HAS_ROOT);
} }
@Override @Override

View File

@@ -3,38 +3,41 @@ package com.refinedmods.refinedstorage.blockentity;
import com.refinedmods.refinedstorage.RSBlockEntities; import com.refinedmods.refinedstorage.RSBlockEntities;
import com.refinedmods.refinedstorage.api.network.grid.IGrid; import com.refinedmods.refinedstorage.api.network.grid.IGrid;
import com.refinedmods.refinedstorage.apiimpl.network.node.CrafterManagerNetworkNode; import com.refinedmods.refinedstorage.apiimpl.network.node.CrafterManagerNetworkNode;
import com.refinedmods.refinedstorage.blockentity.data.BlockEntitySynchronizationParameter;
import com.refinedmods.refinedstorage.blockentity.data.BlockEntitySynchronizationSpec;
import com.refinedmods.refinedstorage.screen.BaseScreen; import com.refinedmods.refinedstorage.screen.BaseScreen;
import com.refinedmods.refinedstorage.screen.CrafterManagerScreen; import com.refinedmods.refinedstorage.screen.CrafterManagerScreen;
import com.refinedmods.refinedstorage.blockentity.data.BlockEntitySynchronizationParameter;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.network.syncher.EntityDataSerializers;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
public class CrafterManagerBlockEntity extends NetworkNodeBlockEntity<CrafterManagerNetworkNode> { public class CrafterManagerBlockEntity extends NetworkNodeBlockEntity<CrafterManagerNetworkNode> {
public CrafterManagerBlockEntity(BlockPos pos, BlockState state) { public static final BlockEntitySynchronizationParameter<Integer, CrafterManagerBlockEntity> SEARCH_BOX_MODE = new BlockEntitySynchronizationParameter<>(EntityDataSerializers.INT, 0, t -> t.getNode().getSearchBoxMode(), (t, v) -> {
super(RSBlockEntities.CRAFTER_MANAGER, pos, state); if (IGrid.isValidSearchBoxMode(v)) {
t.getNode().setSearchBoxMode(v);
dataManager.addWatchedParameter(SIZE); t.getNode().markDirty();
dataManager.addWatchedParameter(SEARCH_BOX_MODE); }
} public static final BlockEntitySynchronizationParameter<Integer, CrafterManagerBlockEntity> SIZE = new BlockEntitySynchronizationParameter<>(EntityDataSerializers.INT, IGrid.SIZE_STRETCH, t -> t.getNode().getSize(), (t, v) -> { }, (initial, p) -> BaseScreen.executeLater(CrafterManagerScreen.class, crafterManager -> crafterManager.getSearchField().setMode(p)));
public static final BlockEntitySynchronizationParameter<Integer, CrafterManagerBlockEntity> SIZE = new BlockEntitySynchronizationParameter<>(EntityDataSerializers.INT, IGrid.SIZE_STRETCH, t -> t.getNode().getSize(), (t, v) -> {
if (IGrid.isValidSize(v)) { if (IGrid.isValidSize(v)) {
t.getNode().setSize(v); t.getNode().setSize(v);
t.getNode().markDirty(); t.getNode().markDirty();
} }
}, (initial, p) -> BaseScreen.executeLater(CrafterManagerScreen.class, BaseScreen::init)); }, (initial, p) -> BaseScreen.executeLater(CrafterManagerScreen.class, BaseScreen::init));
public static BlockEntitySynchronizationSpec SPEC = BlockEntitySynchronizationSpec.builder()
.addWatchedParameter(REDSTONE_MODE)
.addWatchedParameter(SIZE)
.addWatchedParameter(SEARCH_BOX_MODE)
.build();
public CrafterManagerBlockEntity(BlockPos pos, BlockState state) {
super(RSBlockEntities.CRAFTER_MANAGER.get(), pos, state, SPEC);
}
@Override @Override
public CrafterManagerNetworkNode createNode(Level level, BlockPos pos) { public CrafterManagerNetworkNode createNode(Level level, BlockPos pos) {
return new CrafterManagerNetworkNode(level, pos); return new CrafterManagerNetworkNode(level, pos);
} public static final BlockEntitySynchronizationParameter<Integer, CrafterManagerBlockEntity> SEARCH_BOX_MODE = new BlockEntitySynchronizationParameter<>(EntityDataSerializers.INT, 0, t -> t.getNode().getSearchBoxMode(), (t, v) -> { }
if (IGrid.isValidSearchBoxMode(v)) {
t.getNode().setSearchBoxMode(v);
t.getNode().markDirty();
}
}, (initial, p) -> BaseScreen.executeLater(CrafterManagerScreen.class, crafterManager -> crafterManager.getSearchField().setMode(p)));
} }

View File

@@ -7,14 +7,14 @@ import com.refinedmods.refinedstorage.blockentity.config.IComparable;
import com.refinedmods.refinedstorage.blockentity.config.IType; import com.refinedmods.refinedstorage.blockentity.config.IType;
import com.refinedmods.refinedstorage.blockentity.config.IWhitelistBlacklist; import com.refinedmods.refinedstorage.blockentity.config.IWhitelistBlacklist;
import com.refinedmods.refinedstorage.blockentity.data.BlockEntitySynchronizationParameter; import com.refinedmods.refinedstorage.blockentity.data.BlockEntitySynchronizationParameter;
import com.refinedmods.refinedstorage.blockentity.data.BlockEntitySynchronizationSpec;
import com.refinedmods.refinedstorage.util.LevelUtils; import com.refinedmods.refinedstorage.util.LevelUtils;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.network.syncher.EntityDataSerializers;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.client.model.data.IModelData; import net.minecraftforge.client.model.data.ModelData;
import net.minecraftforge.client.model.data.ModelDataMap;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
@@ -33,14 +33,17 @@ public class DestructorBlockEntity extends NetworkNodeBlockEntity<DestructorNetw
(initial, p) -> { (initial, p) -> {
}); });
public DestructorBlockEntity(BlockPos pos, BlockState state) { public static BlockEntitySynchronizationSpec SPEC = BlockEntitySynchronizationSpec.builder()
super(RSBlockEntities.DESTRUCTOR, pos, state); .addWatchedParameter(REDSTONE_MODE)
.addWatchedParameter(COMPARE)
.addWatchedParameter(WHITELIST_BLACKLIST)
.addWatchedParameter(TYPE)
.addWatchedParameter(PICKUP)
.addWatchedParameter(COVER_MANAGER)
.build();
dataManager.addWatchedParameter(COMPARE); public DestructorBlockEntity(BlockPos pos, BlockState state) {
dataManager.addWatchedParameter(WHITELIST_BLACKLIST); super(RSBlockEntities.DESTRUCTOR.get(), pos, state, SPEC);
dataManager.addWatchedParameter(TYPE);
dataManager.addWatchedParameter(PICKUP);
dataManager.addWatchedParameter(COVER_MANAGER);
} }
@Override @Override
@@ -51,8 +54,8 @@ public class DestructorBlockEntity extends NetworkNodeBlockEntity<DestructorNetw
@Nonnull @Nonnull
@Override @Override
public IModelData getModelData() { public ModelData getModelData() {
return new ModelDataMap.Builder().withInitial(CoverManager.PROPERTY, this.getNode().getCoverManager()).build(); return ModelData.builder().with(CoverManager.PROPERTY, this.getNode().getCoverManager()).build();
} }
@Override @Override

Some files were not shown because too many files have changed in this diff Show More