diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c12c5019..25bf7d0a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - Security Card - Fallback Security Card +- Security Manager ### Changed @@ -18,7 +19,8 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - The Security Card can be bound to other (currently online) players via its GUI. - The binding of a Security Card can now be cleared. - The Security Card tooltip and GUI now show whether the permission has been touched/changed in any way. -- A global (fallback) permission set for a network can be defined using the Fallback Security Card instead of using an "unbound" Security Card. +- As soon as a Security Manager is placed, the storage network will be locked down by default. Start adding Security Cards to allow or deny specific access to players. +- To not lock the entire network by default for players who do not have a matching Security Card, a Fallback Security Card can be used to configure this behavior. - Smooth scrolling, screen size and max row stretch are no longer Grid-specific settings, but are now global settings. ### Fixed diff --git a/build.gradle b/build.gradle index 54f67457f..e48c4a030 100644 --- a/build.gradle +++ b/build.gradle @@ -22,6 +22,6 @@ enableSonarQube("refinedmods_refinedstorage2") sonarqube { properties { property "sonar.coverage.exclusions", "refinedstorage2-platform-forge/**/*,refinedstorage2-platform-fabric/**/*,refinedstorage2-platform-common/**/*,refinedstorage2-platform-api/**/*" - property "sonar.cpd.exclusions", "refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/integration/recipemod/rei/*,refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/integration/recipemod/rei/*" + property "sonar.cpd.exclusions", "refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/recipemod/rei/*,refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/recipemod/rei/*" } } diff --git a/refinedstorage2-network-api/src/main/java/com/refinedmods/refinedstorage2/api/network/security/SecurityDecisionProvider.java b/refinedstorage2-network-api/src/main/java/com/refinedmods/refinedstorage2/api/network/security/SecurityDecisionProvider.java index effdbe7cc..68add781d 100644 --- a/refinedstorage2-network-api/src/main/java/com/refinedmods/refinedstorage2/api/network/security/SecurityDecisionProvider.java +++ b/refinedstorage2-network-api/src/main/java/com/refinedmods/refinedstorage2/api/network/security/SecurityDecisionProvider.java @@ -6,4 +6,8 @@ @FunctionalInterface public interface SecurityDecisionProvider { SecurityDecision isAllowed(Permission permission, SecurityActor actor); + + default SecurityDecision isAllowed(Permission permission) { + return SecurityDecision.PASS; + } } diff --git a/refinedstorage2-network-api/src/main/java/com/refinedmods/refinedstorage2/api/network/security/SecurityPolicy.java b/refinedstorage2-network-api/src/main/java/com/refinedmods/refinedstorage2/api/network/security/SecurityPolicy.java new file mode 100644 index 000000000..fce560a79 --- /dev/null +++ b/refinedstorage2-network-api/src/main/java/com/refinedmods/refinedstorage2/api/network/security/SecurityPolicy.java @@ -0,0 +1,15 @@ +package com.refinedmods.refinedstorage2.api.network.security; + +import java.util.Collections; +import java.util.Set; + +import org.apiguardian.api.API; + +@API(status = API.Status.STABLE, since = "2.0.0-milestone.3.5") +public record SecurityPolicy(Set allowedPermissions) { + public static final SecurityPolicy EMPTY = new SecurityPolicy(Collections.emptySet()); + + public boolean isAllowed(final Permission permission) { + return allowedPermissions.contains(permission); + } +} diff --git a/refinedstorage2-network/src/main/java/com/refinedmods/refinedstorage2/api/network/impl/node/security/SecurityDecisionProviderProxyNetworkNode.java b/refinedstorage2-network/src/main/java/com/refinedmods/refinedstorage2/api/network/impl/node/security/SecurityDecisionProviderProxyNetworkNode.java new file mode 100644 index 000000000..1ab5c878d --- /dev/null +++ b/refinedstorage2-network/src/main/java/com/refinedmods/refinedstorage2/api/network/impl/node/security/SecurityDecisionProviderProxyNetworkNode.java @@ -0,0 +1,53 @@ +package com.refinedmods.refinedstorage2.api.network.impl.node.security; + +import com.refinedmods.refinedstorage2.api.network.impl.storage.AbstractNetworkNode; +import com.refinedmods.refinedstorage2.api.network.security.Permission; +import com.refinedmods.refinedstorage2.api.network.security.SecurityActor; +import com.refinedmods.refinedstorage2.api.network.security.SecurityDecision; +import com.refinedmods.refinedstorage2.api.network.security.SecurityDecisionProvider; + +import javax.annotation.Nullable; + +public class SecurityDecisionProviderProxyNetworkNode extends AbstractNetworkNode implements SecurityDecisionProvider { + private long energyUsage; + @Nullable + private SecurityDecisionProvider delegate; + + public SecurityDecisionProviderProxyNetworkNode(final long energyUsage) { + this.energyUsage = energyUsage; + } + + public SecurityDecisionProviderProxyNetworkNode(final long energyUsage, final SecurityDecisionProvider delegate) { + this(energyUsage); + this.delegate = delegate; + } + + public void setDelegate(@Nullable final SecurityDecisionProvider delegate) { + this.delegate = delegate; + } + + public void setEnergyUsage(final long energyUsage) { + this.energyUsage = energyUsage; + } + + @Override + public long getEnergyUsage() { + return energyUsage; + } + + @Override + public SecurityDecision isAllowed(final Permission permission, final SecurityActor actor) { + if (delegate == null) { + return SecurityDecision.PASS; + } + return delegate.isAllowed(permission, actor); + } + + @Override + public SecurityDecision isAllowed(final Permission permission) { + if (delegate == null) { + return SecurityDecision.PASS; + } + return delegate.isAllowed(permission); + } +} diff --git a/refinedstorage2-network/src/main/java/com/refinedmods/refinedstorage2/api/network/impl/node/security/package-info.java b/refinedstorage2-network/src/main/java/com/refinedmods/refinedstorage2/api/network/impl/node/security/package-info.java new file mode 100644 index 000000000..777320ebd --- /dev/null +++ b/refinedstorage2-network/src/main/java/com/refinedmods/refinedstorage2/api/network/impl/node/security/package-info.java @@ -0,0 +1,7 @@ +@ParametersAreNonnullByDefault +@FieldsAndMethodsAreNonnullByDefault +package com.refinedmods.refinedstorage2.api.network.impl.node.security; + +import com.refinedmods.refinedstorage2.api.core.FieldsAndMethodsAreNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/refinedstorage2-network/src/main/java/com/refinedmods/refinedstorage2/api/network/impl/security/SecurityDecisionProviderImpl.java b/refinedstorage2-network/src/main/java/com/refinedmods/refinedstorage2/api/network/impl/security/SecurityDecisionProviderImpl.java new file mode 100644 index 000000000..006dc6e91 --- /dev/null +++ b/refinedstorage2-network/src/main/java/com/refinedmods/refinedstorage2/api/network/impl/security/SecurityDecisionProviderImpl.java @@ -0,0 +1,52 @@ +package com.refinedmods.refinedstorage2.api.network.impl.security; + +import com.refinedmods.refinedstorage2.api.network.security.Permission; +import com.refinedmods.refinedstorage2.api.network.security.SecurityActor; +import com.refinedmods.refinedstorage2.api.network.security.SecurityDecision; +import com.refinedmods.refinedstorage2.api.network.security.SecurityDecisionProvider; +import com.refinedmods.refinedstorage2.api.network.security.SecurityPolicy; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Nullable; + +public class SecurityDecisionProviderImpl implements SecurityDecisionProvider { + private final Map policyByActor = new HashMap<>(); + @Nullable + private SecurityPolicy defaultPolicy; + + public SecurityDecisionProviderImpl setPolicy(final SecurityActor actor, final SecurityPolicy policy) { + policyByActor.put(actor, policy); + return this; + } + + public SecurityDecisionProviderImpl setDefaultPolicy(@Nullable final SecurityPolicy policy) { + this.defaultPolicy = policy; + return this; + } + + public void clearPolicies() { + policyByActor.clear(); + } + + @Override + public SecurityDecision isAllowed(final Permission permission, final SecurityActor actor) { + final SecurityPolicy policy = policyByActor.get(actor); + if (policy == null) { + return SecurityDecision.PASS; + } + return allowOrDeny(policy.isAllowed(permission)); + } + + @Override + public SecurityDecision isAllowed(final Permission permission) { + if (defaultPolicy == null) { + return SecurityDecision.PASS; + } + return allowOrDeny(defaultPolicy.isAllowed(permission)); + } + + private static SecurityDecision allowOrDeny(final boolean allowed) { + return allowed ? SecurityDecision.ALLOW : SecurityDecision.DENY; + } +} diff --git a/refinedstorage2-network/src/main/java/com/refinedmods/refinedstorage2/api/network/impl/security/SecurityNetworkComponentImpl.java b/refinedstorage2-network/src/main/java/com/refinedmods/refinedstorage2/api/network/impl/security/SecurityNetworkComponentImpl.java index ea7f962e7..614ce6b9e 100644 --- a/refinedstorage2-network/src/main/java/com/refinedmods/refinedstorage2/api/network/impl/security/SecurityNetworkComponentImpl.java +++ b/refinedstorage2-network/src/main/java/com/refinedmods/refinedstorage2/api/network/impl/security/SecurityNetworkComponentImpl.java @@ -1,42 +1,69 @@ package com.refinedmods.refinedstorage2.api.network.impl.security; +import com.refinedmods.refinedstorage2.api.core.CoreValidations; import com.refinedmods.refinedstorage2.api.network.node.container.NetworkNodeContainer; import com.refinedmods.refinedstorage2.api.network.security.Permission; import com.refinedmods.refinedstorage2.api.network.security.SecurityActor; import com.refinedmods.refinedstorage2.api.network.security.SecurityDecision; import com.refinedmods.refinedstorage2.api.network.security.SecurityDecisionProvider; import com.refinedmods.refinedstorage2.api.network.security.SecurityNetworkComponent; +import com.refinedmods.refinedstorage2.api.network.security.SecurityPolicy; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.Set; +import java.util.stream.Collectors; public class SecurityNetworkComponentImpl implements SecurityNetworkComponent { - private final Set providers = new HashSet<>(); + private final Set providers = new LinkedHashSet<>(); + private final SecurityPolicy defaultPolicy; + + public SecurityNetworkComponentImpl(final SecurityPolicy defaultPolicy) { + this.defaultPolicy = defaultPolicy; + } @Override public void onContainerAdded(final NetworkNodeContainer container) { - if (container instanceof SecurityDecisionProvider provider) { + if (container.getNode() instanceof SecurityDecisionProvider provider) { providers.add(provider); } } @Override public void onContainerRemoved(final NetworkNodeContainer container) { - if (container instanceof SecurityDecisionProvider provider) { + if (container.getNode() instanceof SecurityDecisionProvider provider) { providers.remove(provider); } } @Override public boolean isAllowed(final Permission permission, final SecurityActor actor) { - for (final SecurityDecisionProvider provider : providers) { - final SecurityDecision decision = provider.isAllowed(permission, actor); - if (decision == SecurityDecision.DENY) { - return false; - } else if (decision == SecurityDecision.ALLOW) { - return true; - } + if (providers.isEmpty()) { + return defaultPolicy.isAllowed(permission); + } + final Set decisions = providers.stream().map(provider -> CoreValidations.validateNotNull( + provider.isAllowed(permission, actor), + "Decision cannot be null" + )).collect(Collectors.toSet()); + final boolean anyDenied = decisions.stream().anyMatch(decision -> decision == SecurityDecision.DENY); + if (anyDenied) { + return false; + } + final boolean anyAllowed = decisions.stream().anyMatch(decision -> decision == SecurityDecision.ALLOW); + if (anyAllowed) { + return true; + } + return tryFallback(permission); + } + + private boolean tryFallback(final Permission permission) { + final Set decisions = providers.stream().map(provider -> CoreValidations.validateNotNull( + provider.isAllowed(permission), + "Decision cannot be null" + )).collect(Collectors.toSet()); + final boolean anyDenied = decisions.stream().anyMatch(decision -> decision == SecurityDecision.DENY); + if (anyDenied) { + return false; } - return true; + return decisions.stream().anyMatch(decision -> decision == SecurityDecision.ALLOW); } } diff --git a/refinedstorage2-network/src/test/java/com/refinedmods/refinedstorage2/api/network/impl/security/SecurityNetworkComponentImplTest.java b/refinedstorage2-network/src/test/java/com/refinedmods/refinedstorage2/api/network/impl/security/SecurityNetworkComponentImplTest.java index 198fa3115..519a8f182 100644 --- a/refinedstorage2-network/src/test/java/com/refinedmods/refinedstorage2/api/network/impl/security/SecurityNetworkComponentImplTest.java +++ b/refinedstorage2-network/src/test/java/com/refinedmods/refinedstorage2/api/network/impl/security/SecurityNetworkComponentImplTest.java @@ -1,12 +1,12 @@ package com.refinedmods.refinedstorage2.api.network.impl.security; -import com.refinedmods.refinedstorage2.api.network.node.NetworkNode; -import com.refinedmods.refinedstorage2.api.network.node.container.NetworkNodeContainer; +import com.refinedmods.refinedstorage2.api.network.impl.node.security.SecurityDecisionProviderProxyNetworkNode; import com.refinedmods.refinedstorage2.api.network.security.Permission; import com.refinedmods.refinedstorage2.api.network.security.SecurityActor; -import com.refinedmods.refinedstorage2.api.network.security.SecurityDecision; -import com.refinedmods.refinedstorage2.api.network.security.SecurityDecisionProvider; import com.refinedmods.refinedstorage2.api.network.security.SecurityNetworkComponent; +import com.refinedmods.refinedstorage2.api.network.security.SecurityPolicy; + +import java.util.Set; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -15,38 +15,156 @@ class SecurityNetworkComponentImplTest { SecurityNetworkComponent sut; + SecurityDecisionProviderImpl securityDecisionProvider; @BeforeEach void setUp() { - sut = new SecurityNetworkComponentImpl(); + sut = new SecurityNetworkComponentImpl(policy(TestPermissions.ALLOW_BY_DEFAULT)); + securityDecisionProvider = new SecurityDecisionProviderImpl(); + } + + @Test + void shouldUseDefaultPolicyIfNoSecurityDecisionProvidersArePresent() { + // Act & assert + assertThat(sut.isAllowed(TestPermissions.ALLOW_BY_DEFAULT, TestActors.A)).isTrue(); + assertThat(sut.isAllowed(TestPermissions.OTHER, TestActors.A)).isFalse(); + assertThat(sut.isAllowed(TestPermissions.OTHER2, TestActors.A)).isFalse(); + + assertThat(sut.isAllowed(TestPermissions.ALLOW_BY_DEFAULT, TestActors.B)).isTrue(); + assertThat(sut.isAllowed(TestPermissions.OTHER, TestActors.B)).isFalse(); + assertThat(sut.isAllowed(TestPermissions.OTHER2, TestActors.B)).isFalse(); + } + + @Test + void shouldDenyAllIfAtLeastOneSecurityDecisionProviderIsPresent() { + // Arrange + sut.onContainerAdded(() -> new SecurityDecisionProviderProxyNetworkNode(0, securityDecisionProvider)); + + // Act & assert + assertThat(sut.isAllowed(TestPermissions.ALLOW_BY_DEFAULT, TestActors.A)).isFalse(); + assertThat(sut.isAllowed(TestPermissions.OTHER, TestActors.A)).isFalse(); + assertThat(sut.isAllowed(TestPermissions.OTHER2, TestActors.A)).isFalse(); + + assertThat(sut.isAllowed(TestPermissions.ALLOW_BY_DEFAULT, TestActors.B)).isFalse(); + assertThat(sut.isAllowed(TestPermissions.OTHER, TestActors.B)).isFalse(); + assertThat(sut.isAllowed(TestPermissions.OTHER2, TestActors.B)).isFalse(); + } + + @Test + void shouldAllowOrDeny() { + // Arrange + securityDecisionProvider.setPolicy(TestActors.A, policy(TestPermissions.OTHER)); + sut.onContainerAdded(() -> new SecurityDecisionProviderProxyNetworkNode(0, securityDecisionProvider)); + + // Act & assert + assertThat(sut.isAllowed(TestPermissions.ALLOW_BY_DEFAULT, TestActors.A)).isFalse(); + assertThat(sut.isAllowed(TestPermissions.OTHER, TestActors.A)).isTrue(); + assertThat(sut.isAllowed(TestPermissions.OTHER2, TestActors.A)).isFalse(); + + assertThat(sut.isAllowed(TestPermissions.ALLOW_BY_DEFAULT, TestActors.B)).isFalse(); + assertThat(sut.isAllowed(TestPermissions.OTHER, TestActors.B)).isFalse(); + assertThat(sut.isAllowed(TestPermissions.OTHER2, TestActors.B)).isFalse(); + } + + @Test + void shouldOnlyAllowIfAllSecurityDecisionProvidersAllow() { + // Arrange + sut.onContainerAdded(() -> new SecurityDecisionProviderProxyNetworkNode(0, new SecurityDecisionProviderImpl() + .setPolicy(TestActors.A, policy(TestPermissions.OTHER)) + )); + + sut.onContainerAdded(() -> new SecurityDecisionProviderProxyNetworkNode(0, new SecurityDecisionProviderImpl() + .setPolicy(TestActors.A, policy(TestPermissions.OTHER2)) + )); + + sut.onContainerAdded(() -> new SecurityDecisionProviderProxyNetworkNode(0, new SecurityDecisionProviderImpl() + .setPolicy(TestActors.B, policy(TestPermissions.OTHER)) + )); + + // Act & assert + assertThat(sut.isAllowed(TestPermissions.OTHER, TestActors.A)).isFalse(); + assertThat(sut.isAllowed(TestPermissions.OTHER2, TestActors.A)).isFalse(); + + assertThat(sut.isAllowed(TestPermissions.OTHER, TestActors.B)).isTrue(); + assertThat(sut.isAllowed(TestPermissions.OTHER2, TestActors.B)).isFalse(); + + assertThat(sut.isAllowed(TestPermissions.OTHER, TestActors.C)).isFalse(); + assertThat(sut.isAllowed(TestPermissions.OTHER2, TestActors.C)).isFalse(); } @Test - void everythingIsAllowedByDefault() { + void shouldUseDefaultPolicyOfSecurityDecisionProviderIfAllProvidersPassDecision() { + // Arrange + sut.onContainerAdded(() -> new SecurityDecisionProviderProxyNetworkNode(0, new SecurityDecisionProviderImpl() + .setPolicy(TestActors.A, policy(TestPermissions.OTHER)) + .setDefaultPolicy(policy(TestPermissions.ALLOW_BY_DEFAULT)) + )); + + sut.onContainerAdded(() -> new SecurityDecisionProviderProxyNetworkNode(0, new SecurityDecisionProviderImpl() + .setPolicy(TestActors.A, policy(TestPermissions.OTHER)) + .setDefaultPolicy(policy(TestPermissions.ALLOW_BY_DEFAULT, TestPermissions.OTHER2)) + )); + + sut.onContainerAdded(() -> new SecurityDecisionProviderProxyNetworkNode(0, new SecurityDecisionProviderImpl() + .setPolicy(TestActors.C, policy(TestPermissions.OTHER)) + )); + // Act & assert - sut.onContainerAdded(new TestContainer()); - assertThat(sut.isAllowed(TestPermissions.A, TestActors.X)).isTrue(); - assertThat(sut.isAllowed(TestPermissions.B, TestActors.Y)).isFalse(); - sut.onContainerRemoved(new TestContainer()); + assertThat(sut.isAllowed(TestPermissions.ALLOW_BY_DEFAULT, TestActors.A)).isFalse(); + assertThat(sut.isAllowed(TestPermissions.OTHER, TestActors.A)).isTrue(); + assertThat(sut.isAllowed(TestPermissions.OTHER2, TestActors.A)).isFalse(); + + assertThat(sut.isAllowed(TestPermissions.ALLOW_BY_DEFAULT, TestActors.B)).isTrue(); + assertThat(sut.isAllowed(TestPermissions.OTHER, TestActors.B)).isFalse(); + assertThat(sut.isAllowed(TestPermissions.OTHER2, TestActors.B)).isFalse(); + + assertThat(sut.isAllowed(TestPermissions.ALLOW_BY_DEFAULT, TestActors.C)).isFalse(); + assertThat(sut.isAllowed(TestPermissions.OTHER, TestActors.C)).isTrue(); + assertThat(sut.isAllowed(TestPermissions.OTHER2, TestActors.C)).isFalse(); + } + + @Test + void shouldRemoveContainer() { + // Arrange + sut.onContainerAdded(() -> new SecurityDecisionProviderProxyNetworkNode(0, new SecurityDecisionProviderImpl() + .setDefaultPolicy(policy(TestPermissions.ALLOW_BY_DEFAULT)) + )); + + final var removedNode = new SecurityDecisionProviderProxyNetworkNode(0, new SecurityDecisionProviderImpl() + .setDefaultPolicy(policy(TestPermissions.OTHER))); + sut.onContainerAdded(() -> removedNode); + + // Act + sut.onContainerRemoved(() -> removedNode); + + // Assert + assertThat(sut.isAllowed(TestPermissions.ALLOW_BY_DEFAULT, TestActors.A)).isTrue(); + } + + @Test + void shouldClearPolicies() { + // Arrange + sut.onContainerAdded(() -> new SecurityDecisionProviderProxyNetworkNode(0, securityDecisionProvider)); + securityDecisionProvider.setPolicy(TestActors.A, policy(TestPermissions.OTHER)); + securityDecisionProvider.setDefaultPolicy(policy(TestPermissions.OTHER2)); + + // Act + securityDecisionProvider.clearPolicies(); + + // Assert + assertThat(sut.isAllowed(TestPermissions.OTHER, TestActors.A)).isFalse(); + assertThat(sut.isAllowed(TestPermissions.OTHER2, TestActors.A)).isTrue(); } enum TestPermissions implements Permission { - A, B + ALLOW_BY_DEFAULT, OTHER, OTHER2 } enum TestActors implements SecurityActor { - X, Y + A, B, C } - private static class TestContainer implements SecurityDecisionProvider, NetworkNodeContainer { - @Override - public SecurityDecision isAllowed(final Permission permission, final SecurityActor actor) { - return permission == TestPermissions.A ? SecurityDecision.ALLOW : SecurityDecision.DENY; - } - - @Override - public NetworkNode getNode() { - throw new RuntimeException(); - } + private SecurityPolicy policy(final Permission... permissions) { + return new SecurityPolicy(Set.of(permissions)); } } diff --git a/refinedstorage2-platform-api/src/main/java/com/refinedmods/refinedstorage2/platform/api/PlatformApi.java b/refinedstorage2-platform-api/src/main/java/com/refinedmods/refinedstorage2/platform/api/PlatformApi.java index f75dbef1d..36c2fce65 100644 --- a/refinedstorage2-platform-api/src/main/java/com/refinedmods/refinedstorage2/platform/api/PlatformApi.java +++ b/refinedstorage2-platform-api/src/main/java/com/refinedmods/refinedstorage2/platform/api/PlatformApi.java @@ -4,6 +4,8 @@ import com.refinedmods.refinedstorage2.api.network.Network; import com.refinedmods.refinedstorage2.api.network.NetworkComponent; import com.refinedmods.refinedstorage2.api.network.energy.EnergyStorage; +import com.refinedmods.refinedstorage2.api.network.security.SecurityActor; +import com.refinedmods.refinedstorage2.api.network.security.SecurityPolicy; import com.refinedmods.refinedstorage2.api.resource.ResourceKey; import com.refinedmods.refinedstorage2.platform.api.constructordestructor.ConstructorStrategyFactory; import com.refinedmods.refinedstorage2.platform.api.constructordestructor.DestructorStrategyFactory; @@ -47,6 +49,7 @@ import java.util.Set; import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.InteractionHand; import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.AbstractContainerMenu; @@ -183,4 +186,8 @@ EnergyStorage asBlockItemEnergyStorage( BuiltinPermissions getBuiltinPermissions(); PlatformRegistry getPermissionRegistry(); + + SecurityPolicy createDefaultSecurityPolicy(); + + SecurityActor createPlayerSecurityActor(ServerPlayer player); } diff --git a/refinedstorage2-platform-api/src/main/java/com/refinedmods/refinedstorage2/platform/api/PlatformApiProxy.java b/refinedstorage2-platform-api/src/main/java/com/refinedmods/refinedstorage2/platform/api/PlatformApiProxy.java index 59603d009..f4efc398f 100644 --- a/refinedstorage2-platform-api/src/main/java/com/refinedmods/refinedstorage2/platform/api/PlatformApiProxy.java +++ b/refinedstorage2-platform-api/src/main/java/com/refinedmods/refinedstorage2/platform/api/PlatformApiProxy.java @@ -4,6 +4,8 @@ import com.refinedmods.refinedstorage2.api.network.Network; import com.refinedmods.refinedstorage2.api.network.NetworkComponent; import com.refinedmods.refinedstorage2.api.network.energy.EnergyStorage; +import com.refinedmods.refinedstorage2.api.network.security.SecurityActor; +import com.refinedmods.refinedstorage2.api.network.security.SecurityPolicy; import com.refinedmods.refinedstorage2.api.resource.ResourceKey; import com.refinedmods.refinedstorage2.platform.api.constructordestructor.ConstructorStrategyFactory; import com.refinedmods.refinedstorage2.platform.api.constructordestructor.DestructorStrategyFactory; @@ -48,6 +50,7 @@ import javax.annotation.Nullable; import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.InteractionHand; import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.AbstractContainerMenu; @@ -363,6 +366,16 @@ public PlatformRegistry getPermissionRegistry() { return ensureLoaded().getPermissionRegistry(); } + @Override + public SecurityPolicy createDefaultSecurityPolicy() { + return ensureLoaded().createDefaultSecurityPolicy(); + } + + @Override + public SecurityActor createPlayerSecurityActor(final ServerPlayer player) { + return ensureLoaded().createPlayerSecurityActor(player); + } + private PlatformApi ensureLoaded() { if (delegate == null) { throw new IllegalStateException("Platform API not loaded yet"); diff --git a/refinedstorage2-platform-api/src/main/java/com/refinedmods/refinedstorage2/platform/api/security/PlatformPermission.java b/refinedstorage2-platform-api/src/main/java/com/refinedmods/refinedstorage2/platform/api/security/PlatformPermission.java index d93d77ef0..1f505b106 100644 --- a/refinedstorage2-platform-api/src/main/java/com/refinedmods/refinedstorage2/platform/api/security/PlatformPermission.java +++ b/refinedstorage2-platform-api/src/main/java/com/refinedmods/refinedstorage2/platform/api/security/PlatformPermission.java @@ -7,11 +7,26 @@ @API(status = API.Status.STABLE, since = "2.0.0-milestone.3.5") public interface PlatformPermission extends Permission { + /** + * @return the permission name + */ Component getName(); + /** + * @return a short description of the permission + */ Component getDescription(); + /** + * @return the name of the mod that adds this permission + */ Component getOwnerName(); + /** + * Determines whether this permission is allowed by default, when it is not configured (yet) + * in a Security Card. + * + * @return true if this permission is allowed by default, false otherwise + */ boolean isAllowedByDefault(); } diff --git a/refinedstorage2-platform-api/src/main/java/com/refinedmods/refinedstorage2/platform/api/security/SecurityPolicyContainerItem.java b/refinedstorage2-platform-api/src/main/java/com/refinedmods/refinedstorage2/platform/api/security/SecurityPolicyContainerItem.java new file mode 100644 index 000000000..d7d417076 --- /dev/null +++ b/refinedstorage2-platform-api/src/main/java/com/refinedmods/refinedstorage2/platform/api/security/SecurityPolicyContainerItem.java @@ -0,0 +1,33 @@ +package com.refinedmods.refinedstorage2.platform.api.security; + +import com.refinedmods.refinedstorage2.api.network.security.SecurityActor; +import com.refinedmods.refinedstorage2.api.network.security.SecurityPolicy; + +import java.util.Optional; + +import net.minecraft.world.item.ItemStack; +import org.apiguardian.api.API; + +/** + * Represents an item that can contain a {@link SecurityPolicy}. Typically, a Security Card. + */ +@API(status = API.Status.STABLE, since = "2.0.0-milestone.3.5") +public interface SecurityPolicyContainerItem { + boolean isValid(ItemStack stack); + + Optional getActor(ItemStack stack); + + /** + * Returns a {@link SecurityPolicy} containing all the permissions that this {@link SecurityPolicyContainerItem} + * permits. + * It is important to have all the relevant permissions in the {@link SecurityPolicy}, + * even the ones that are "allowed by default" via {@link PlatformPermission#isAllowedByDefault()}. + * If not, even a permission that is allowed by default will not be allowed. + * + * @param stack the stack + * @return the policy, if present + */ + Optional getPolicy(ItemStack stack); + + long getEnergyUsage(); +} diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/black_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/black_security_manager.json new file mode 100644 index 000000000..5a317adc1 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/black_security_manager.json @@ -0,0 +1,110 @@ +{ + "variants": { + "active=false,direction=down_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": -90 + }, + "active=false,direction=down_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90 + }, + "active=false,direction=down_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 180 + }, + "active=false,direction=down_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 90 + }, + "active=false,direction=east": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 90 + }, + "active=false,direction=north": { + "model": "refinedstorage2:block/security_manager/inactive" + }, + "active=false,direction=south": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 180 + }, + "active=false,direction=up_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": -90 + }, + "active=false,direction=up_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 180 + }, + "active=false,direction=up_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90 + }, + "active=false,direction=up_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 90 + }, + "active=false,direction=west": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 270 + }, + "active=true,direction=down_east": { + "model": "refinedstorage2:block/security_manager/black", + "x": 90, + "y": -90 + }, + "active=true,direction=down_north": { + "model": "refinedstorage2:block/security_manager/black", + "x": 90 + }, + "active=true,direction=down_south": { + "model": "refinedstorage2:block/security_manager/black", + "x": 90, + "y": 180 + }, + "active=true,direction=down_west": { + "model": "refinedstorage2:block/security_manager/black", + "x": 90, + "y": 90 + }, + "active=true,direction=east": { + "model": "refinedstorage2:block/security_manager/black", + "y": 90 + }, + "active=true,direction=north": { + "model": "refinedstorage2:block/security_manager/black" + }, + "active=true,direction=south": { + "model": "refinedstorage2:block/security_manager/black", + "y": 180 + }, + "active=true,direction=up_east": { + "model": "refinedstorage2:block/security_manager/black", + "x": -90, + "y": -90 + }, + "active=true,direction=up_north": { + "model": "refinedstorage2:block/security_manager/black", + "x": -90, + "y": 180 + }, + "active=true,direction=up_south": { + "model": "refinedstorage2:block/security_manager/black", + "x": -90 + }, + "active=true,direction=up_west": { + "model": "refinedstorage2:block/security_manager/black", + "x": -90, + "y": 90 + }, + "active=true,direction=west": { + "model": "refinedstorage2:block/security_manager/black", + "y": 270 + } + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/blue_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/blue_security_manager.json new file mode 100644 index 000000000..e097c4e27 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/blue_security_manager.json @@ -0,0 +1,110 @@ +{ + "variants": { + "active=false,direction=down_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": -90 + }, + "active=false,direction=down_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90 + }, + "active=false,direction=down_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 180 + }, + "active=false,direction=down_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 90 + }, + "active=false,direction=east": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 90 + }, + "active=false,direction=north": { + "model": "refinedstorage2:block/security_manager/inactive" + }, + "active=false,direction=south": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 180 + }, + "active=false,direction=up_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": -90 + }, + "active=false,direction=up_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 180 + }, + "active=false,direction=up_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90 + }, + "active=false,direction=up_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 90 + }, + "active=false,direction=west": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 270 + }, + "active=true,direction=down_east": { + "model": "refinedstorage2:block/security_manager/blue", + "x": 90, + "y": -90 + }, + "active=true,direction=down_north": { + "model": "refinedstorage2:block/security_manager/blue", + "x": 90 + }, + "active=true,direction=down_south": { + "model": "refinedstorage2:block/security_manager/blue", + "x": 90, + "y": 180 + }, + "active=true,direction=down_west": { + "model": "refinedstorage2:block/security_manager/blue", + "x": 90, + "y": 90 + }, + "active=true,direction=east": { + "model": "refinedstorage2:block/security_manager/blue", + "y": 90 + }, + "active=true,direction=north": { + "model": "refinedstorage2:block/security_manager/blue" + }, + "active=true,direction=south": { + "model": "refinedstorage2:block/security_manager/blue", + "y": 180 + }, + "active=true,direction=up_east": { + "model": "refinedstorage2:block/security_manager/blue", + "x": -90, + "y": -90 + }, + "active=true,direction=up_north": { + "model": "refinedstorage2:block/security_manager/blue", + "x": -90, + "y": 180 + }, + "active=true,direction=up_south": { + "model": "refinedstorage2:block/security_manager/blue", + "x": -90 + }, + "active=true,direction=up_west": { + "model": "refinedstorage2:block/security_manager/blue", + "x": -90, + "y": 90 + }, + "active=true,direction=west": { + "model": "refinedstorage2:block/security_manager/blue", + "y": 270 + } + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/brown_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/brown_security_manager.json new file mode 100644 index 000000000..782b43dfa --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/brown_security_manager.json @@ -0,0 +1,110 @@ +{ + "variants": { + "active=false,direction=down_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": -90 + }, + "active=false,direction=down_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90 + }, + "active=false,direction=down_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 180 + }, + "active=false,direction=down_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 90 + }, + "active=false,direction=east": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 90 + }, + "active=false,direction=north": { + "model": "refinedstorage2:block/security_manager/inactive" + }, + "active=false,direction=south": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 180 + }, + "active=false,direction=up_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": -90 + }, + "active=false,direction=up_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 180 + }, + "active=false,direction=up_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90 + }, + "active=false,direction=up_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 90 + }, + "active=false,direction=west": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 270 + }, + "active=true,direction=down_east": { + "model": "refinedstorage2:block/security_manager/brown", + "x": 90, + "y": -90 + }, + "active=true,direction=down_north": { + "model": "refinedstorage2:block/security_manager/brown", + "x": 90 + }, + "active=true,direction=down_south": { + "model": "refinedstorage2:block/security_manager/brown", + "x": 90, + "y": 180 + }, + "active=true,direction=down_west": { + "model": "refinedstorage2:block/security_manager/brown", + "x": 90, + "y": 90 + }, + "active=true,direction=east": { + "model": "refinedstorage2:block/security_manager/brown", + "y": 90 + }, + "active=true,direction=north": { + "model": "refinedstorage2:block/security_manager/brown" + }, + "active=true,direction=south": { + "model": "refinedstorage2:block/security_manager/brown", + "y": 180 + }, + "active=true,direction=up_east": { + "model": "refinedstorage2:block/security_manager/brown", + "x": -90, + "y": -90 + }, + "active=true,direction=up_north": { + "model": "refinedstorage2:block/security_manager/brown", + "x": -90, + "y": 180 + }, + "active=true,direction=up_south": { + "model": "refinedstorage2:block/security_manager/brown", + "x": -90 + }, + "active=true,direction=up_west": { + "model": "refinedstorage2:block/security_manager/brown", + "x": -90, + "y": 90 + }, + "active=true,direction=west": { + "model": "refinedstorage2:block/security_manager/brown", + "y": 270 + } + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/cyan_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/cyan_security_manager.json new file mode 100644 index 000000000..ccbab024f --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/cyan_security_manager.json @@ -0,0 +1,110 @@ +{ + "variants": { + "active=false,direction=down_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": -90 + }, + "active=false,direction=down_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90 + }, + "active=false,direction=down_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 180 + }, + "active=false,direction=down_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 90 + }, + "active=false,direction=east": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 90 + }, + "active=false,direction=north": { + "model": "refinedstorage2:block/security_manager/inactive" + }, + "active=false,direction=south": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 180 + }, + "active=false,direction=up_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": -90 + }, + "active=false,direction=up_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 180 + }, + "active=false,direction=up_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90 + }, + "active=false,direction=up_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 90 + }, + "active=false,direction=west": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 270 + }, + "active=true,direction=down_east": { + "model": "refinedstorage2:block/security_manager/cyan", + "x": 90, + "y": -90 + }, + "active=true,direction=down_north": { + "model": "refinedstorage2:block/security_manager/cyan", + "x": 90 + }, + "active=true,direction=down_south": { + "model": "refinedstorage2:block/security_manager/cyan", + "x": 90, + "y": 180 + }, + "active=true,direction=down_west": { + "model": "refinedstorage2:block/security_manager/cyan", + "x": 90, + "y": 90 + }, + "active=true,direction=east": { + "model": "refinedstorage2:block/security_manager/cyan", + "y": 90 + }, + "active=true,direction=north": { + "model": "refinedstorage2:block/security_manager/cyan" + }, + "active=true,direction=south": { + "model": "refinedstorage2:block/security_manager/cyan", + "y": 180 + }, + "active=true,direction=up_east": { + "model": "refinedstorage2:block/security_manager/cyan", + "x": -90, + "y": -90 + }, + "active=true,direction=up_north": { + "model": "refinedstorage2:block/security_manager/cyan", + "x": -90, + "y": 180 + }, + "active=true,direction=up_south": { + "model": "refinedstorage2:block/security_manager/cyan", + "x": -90 + }, + "active=true,direction=up_west": { + "model": "refinedstorage2:block/security_manager/cyan", + "x": -90, + "y": 90 + }, + "active=true,direction=west": { + "model": "refinedstorage2:block/security_manager/cyan", + "y": 270 + } + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/gray_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/gray_security_manager.json new file mode 100644 index 000000000..0bced5e96 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/gray_security_manager.json @@ -0,0 +1,110 @@ +{ + "variants": { + "active=false,direction=down_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": -90 + }, + "active=false,direction=down_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90 + }, + "active=false,direction=down_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 180 + }, + "active=false,direction=down_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 90 + }, + "active=false,direction=east": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 90 + }, + "active=false,direction=north": { + "model": "refinedstorage2:block/security_manager/inactive" + }, + "active=false,direction=south": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 180 + }, + "active=false,direction=up_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": -90 + }, + "active=false,direction=up_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 180 + }, + "active=false,direction=up_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90 + }, + "active=false,direction=up_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 90 + }, + "active=false,direction=west": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 270 + }, + "active=true,direction=down_east": { + "model": "refinedstorage2:block/security_manager/gray", + "x": 90, + "y": -90 + }, + "active=true,direction=down_north": { + "model": "refinedstorage2:block/security_manager/gray", + "x": 90 + }, + "active=true,direction=down_south": { + "model": "refinedstorage2:block/security_manager/gray", + "x": 90, + "y": 180 + }, + "active=true,direction=down_west": { + "model": "refinedstorage2:block/security_manager/gray", + "x": 90, + "y": 90 + }, + "active=true,direction=east": { + "model": "refinedstorage2:block/security_manager/gray", + "y": 90 + }, + "active=true,direction=north": { + "model": "refinedstorage2:block/security_manager/gray" + }, + "active=true,direction=south": { + "model": "refinedstorage2:block/security_manager/gray", + "y": 180 + }, + "active=true,direction=up_east": { + "model": "refinedstorage2:block/security_manager/gray", + "x": -90, + "y": -90 + }, + "active=true,direction=up_north": { + "model": "refinedstorage2:block/security_manager/gray", + "x": -90, + "y": 180 + }, + "active=true,direction=up_south": { + "model": "refinedstorage2:block/security_manager/gray", + "x": -90 + }, + "active=true,direction=up_west": { + "model": "refinedstorage2:block/security_manager/gray", + "x": -90, + "y": 90 + }, + "active=true,direction=west": { + "model": "refinedstorage2:block/security_manager/gray", + "y": 270 + } + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/green_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/green_security_manager.json new file mode 100644 index 000000000..c0c4b2ee3 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/green_security_manager.json @@ -0,0 +1,110 @@ +{ + "variants": { + "active=false,direction=down_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": -90 + }, + "active=false,direction=down_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90 + }, + "active=false,direction=down_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 180 + }, + "active=false,direction=down_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 90 + }, + "active=false,direction=east": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 90 + }, + "active=false,direction=north": { + "model": "refinedstorage2:block/security_manager/inactive" + }, + "active=false,direction=south": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 180 + }, + "active=false,direction=up_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": -90 + }, + "active=false,direction=up_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 180 + }, + "active=false,direction=up_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90 + }, + "active=false,direction=up_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 90 + }, + "active=false,direction=west": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 270 + }, + "active=true,direction=down_east": { + "model": "refinedstorage2:block/security_manager/green", + "x": 90, + "y": -90 + }, + "active=true,direction=down_north": { + "model": "refinedstorage2:block/security_manager/green", + "x": 90 + }, + "active=true,direction=down_south": { + "model": "refinedstorage2:block/security_manager/green", + "x": 90, + "y": 180 + }, + "active=true,direction=down_west": { + "model": "refinedstorage2:block/security_manager/green", + "x": 90, + "y": 90 + }, + "active=true,direction=east": { + "model": "refinedstorage2:block/security_manager/green", + "y": 90 + }, + "active=true,direction=north": { + "model": "refinedstorage2:block/security_manager/green" + }, + "active=true,direction=south": { + "model": "refinedstorage2:block/security_manager/green", + "y": 180 + }, + "active=true,direction=up_east": { + "model": "refinedstorage2:block/security_manager/green", + "x": -90, + "y": -90 + }, + "active=true,direction=up_north": { + "model": "refinedstorage2:block/security_manager/green", + "x": -90, + "y": 180 + }, + "active=true,direction=up_south": { + "model": "refinedstorage2:block/security_manager/green", + "x": -90 + }, + "active=true,direction=up_west": { + "model": "refinedstorage2:block/security_manager/green", + "x": -90, + "y": 90 + }, + "active=true,direction=west": { + "model": "refinedstorage2:block/security_manager/green", + "y": 270 + } + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/light_gray_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/light_gray_security_manager.json new file mode 100644 index 000000000..54b93ccf8 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/light_gray_security_manager.json @@ -0,0 +1,110 @@ +{ + "variants": { + "active=false,direction=down_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": -90 + }, + "active=false,direction=down_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90 + }, + "active=false,direction=down_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 180 + }, + "active=false,direction=down_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 90 + }, + "active=false,direction=east": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 90 + }, + "active=false,direction=north": { + "model": "refinedstorage2:block/security_manager/inactive" + }, + "active=false,direction=south": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 180 + }, + "active=false,direction=up_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": -90 + }, + "active=false,direction=up_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 180 + }, + "active=false,direction=up_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90 + }, + "active=false,direction=up_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 90 + }, + "active=false,direction=west": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 270 + }, + "active=true,direction=down_east": { + "model": "refinedstorage2:block/security_manager/light_gray", + "x": 90, + "y": -90 + }, + "active=true,direction=down_north": { + "model": "refinedstorage2:block/security_manager/light_gray", + "x": 90 + }, + "active=true,direction=down_south": { + "model": "refinedstorage2:block/security_manager/light_gray", + "x": 90, + "y": 180 + }, + "active=true,direction=down_west": { + "model": "refinedstorage2:block/security_manager/light_gray", + "x": 90, + "y": 90 + }, + "active=true,direction=east": { + "model": "refinedstorage2:block/security_manager/light_gray", + "y": 90 + }, + "active=true,direction=north": { + "model": "refinedstorage2:block/security_manager/light_gray" + }, + "active=true,direction=south": { + "model": "refinedstorage2:block/security_manager/light_gray", + "y": 180 + }, + "active=true,direction=up_east": { + "model": "refinedstorage2:block/security_manager/light_gray", + "x": -90, + "y": -90 + }, + "active=true,direction=up_north": { + "model": "refinedstorage2:block/security_manager/light_gray", + "x": -90, + "y": 180 + }, + "active=true,direction=up_south": { + "model": "refinedstorage2:block/security_manager/light_gray", + "x": -90 + }, + "active=true,direction=up_west": { + "model": "refinedstorage2:block/security_manager/light_gray", + "x": -90, + "y": 90 + }, + "active=true,direction=west": { + "model": "refinedstorage2:block/security_manager/light_gray", + "y": 270 + } + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/lime_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/lime_security_manager.json new file mode 100644 index 000000000..f65e5d902 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/lime_security_manager.json @@ -0,0 +1,110 @@ +{ + "variants": { + "active=false,direction=down_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": -90 + }, + "active=false,direction=down_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90 + }, + "active=false,direction=down_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 180 + }, + "active=false,direction=down_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 90 + }, + "active=false,direction=east": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 90 + }, + "active=false,direction=north": { + "model": "refinedstorage2:block/security_manager/inactive" + }, + "active=false,direction=south": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 180 + }, + "active=false,direction=up_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": -90 + }, + "active=false,direction=up_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 180 + }, + "active=false,direction=up_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90 + }, + "active=false,direction=up_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 90 + }, + "active=false,direction=west": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 270 + }, + "active=true,direction=down_east": { + "model": "refinedstorage2:block/security_manager/lime", + "x": 90, + "y": -90 + }, + "active=true,direction=down_north": { + "model": "refinedstorage2:block/security_manager/lime", + "x": 90 + }, + "active=true,direction=down_south": { + "model": "refinedstorage2:block/security_manager/lime", + "x": 90, + "y": 180 + }, + "active=true,direction=down_west": { + "model": "refinedstorage2:block/security_manager/lime", + "x": 90, + "y": 90 + }, + "active=true,direction=east": { + "model": "refinedstorage2:block/security_manager/lime", + "y": 90 + }, + "active=true,direction=north": { + "model": "refinedstorage2:block/security_manager/lime" + }, + "active=true,direction=south": { + "model": "refinedstorage2:block/security_manager/lime", + "y": 180 + }, + "active=true,direction=up_east": { + "model": "refinedstorage2:block/security_manager/lime", + "x": -90, + "y": -90 + }, + "active=true,direction=up_north": { + "model": "refinedstorage2:block/security_manager/lime", + "x": -90, + "y": 180 + }, + "active=true,direction=up_south": { + "model": "refinedstorage2:block/security_manager/lime", + "x": -90 + }, + "active=true,direction=up_west": { + "model": "refinedstorage2:block/security_manager/lime", + "x": -90, + "y": 90 + }, + "active=true,direction=west": { + "model": "refinedstorage2:block/security_manager/lime", + "y": 270 + } + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/magenta_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/magenta_security_manager.json new file mode 100644 index 000000000..92ad88871 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/magenta_security_manager.json @@ -0,0 +1,110 @@ +{ + "variants": { + "active=false,direction=down_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": -90 + }, + "active=false,direction=down_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90 + }, + "active=false,direction=down_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 180 + }, + "active=false,direction=down_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 90 + }, + "active=false,direction=east": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 90 + }, + "active=false,direction=north": { + "model": "refinedstorage2:block/security_manager/inactive" + }, + "active=false,direction=south": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 180 + }, + "active=false,direction=up_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": -90 + }, + "active=false,direction=up_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 180 + }, + "active=false,direction=up_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90 + }, + "active=false,direction=up_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 90 + }, + "active=false,direction=west": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 270 + }, + "active=true,direction=down_east": { + "model": "refinedstorage2:block/security_manager/magenta", + "x": 90, + "y": -90 + }, + "active=true,direction=down_north": { + "model": "refinedstorage2:block/security_manager/magenta", + "x": 90 + }, + "active=true,direction=down_south": { + "model": "refinedstorage2:block/security_manager/magenta", + "x": 90, + "y": 180 + }, + "active=true,direction=down_west": { + "model": "refinedstorage2:block/security_manager/magenta", + "x": 90, + "y": 90 + }, + "active=true,direction=east": { + "model": "refinedstorage2:block/security_manager/magenta", + "y": 90 + }, + "active=true,direction=north": { + "model": "refinedstorage2:block/security_manager/magenta" + }, + "active=true,direction=south": { + "model": "refinedstorage2:block/security_manager/magenta", + "y": 180 + }, + "active=true,direction=up_east": { + "model": "refinedstorage2:block/security_manager/magenta", + "x": -90, + "y": -90 + }, + "active=true,direction=up_north": { + "model": "refinedstorage2:block/security_manager/magenta", + "x": -90, + "y": 180 + }, + "active=true,direction=up_south": { + "model": "refinedstorage2:block/security_manager/magenta", + "x": -90 + }, + "active=true,direction=up_west": { + "model": "refinedstorage2:block/security_manager/magenta", + "x": -90, + "y": 90 + }, + "active=true,direction=west": { + "model": "refinedstorage2:block/security_manager/magenta", + "y": 270 + } + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/orange_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/orange_security_manager.json new file mode 100644 index 000000000..4450ef516 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/orange_security_manager.json @@ -0,0 +1,110 @@ +{ + "variants": { + "active=false,direction=down_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": -90 + }, + "active=false,direction=down_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90 + }, + "active=false,direction=down_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 180 + }, + "active=false,direction=down_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 90 + }, + "active=false,direction=east": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 90 + }, + "active=false,direction=north": { + "model": "refinedstorage2:block/security_manager/inactive" + }, + "active=false,direction=south": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 180 + }, + "active=false,direction=up_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": -90 + }, + "active=false,direction=up_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 180 + }, + "active=false,direction=up_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90 + }, + "active=false,direction=up_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 90 + }, + "active=false,direction=west": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 270 + }, + "active=true,direction=down_east": { + "model": "refinedstorage2:block/security_manager/orange", + "x": 90, + "y": -90 + }, + "active=true,direction=down_north": { + "model": "refinedstorage2:block/security_manager/orange", + "x": 90 + }, + "active=true,direction=down_south": { + "model": "refinedstorage2:block/security_manager/orange", + "x": 90, + "y": 180 + }, + "active=true,direction=down_west": { + "model": "refinedstorage2:block/security_manager/orange", + "x": 90, + "y": 90 + }, + "active=true,direction=east": { + "model": "refinedstorage2:block/security_manager/orange", + "y": 90 + }, + "active=true,direction=north": { + "model": "refinedstorage2:block/security_manager/orange" + }, + "active=true,direction=south": { + "model": "refinedstorage2:block/security_manager/orange", + "y": 180 + }, + "active=true,direction=up_east": { + "model": "refinedstorage2:block/security_manager/orange", + "x": -90, + "y": -90 + }, + "active=true,direction=up_north": { + "model": "refinedstorage2:block/security_manager/orange", + "x": -90, + "y": 180 + }, + "active=true,direction=up_south": { + "model": "refinedstorage2:block/security_manager/orange", + "x": -90 + }, + "active=true,direction=up_west": { + "model": "refinedstorage2:block/security_manager/orange", + "x": -90, + "y": 90 + }, + "active=true,direction=west": { + "model": "refinedstorage2:block/security_manager/orange", + "y": 270 + } + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/pink_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/pink_security_manager.json new file mode 100644 index 000000000..d33e77fec --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/pink_security_manager.json @@ -0,0 +1,110 @@ +{ + "variants": { + "active=false,direction=down_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": -90 + }, + "active=false,direction=down_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90 + }, + "active=false,direction=down_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 180 + }, + "active=false,direction=down_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 90 + }, + "active=false,direction=east": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 90 + }, + "active=false,direction=north": { + "model": "refinedstorage2:block/security_manager/inactive" + }, + "active=false,direction=south": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 180 + }, + "active=false,direction=up_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": -90 + }, + "active=false,direction=up_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 180 + }, + "active=false,direction=up_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90 + }, + "active=false,direction=up_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 90 + }, + "active=false,direction=west": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 270 + }, + "active=true,direction=down_east": { + "model": "refinedstorage2:block/security_manager/pink", + "x": 90, + "y": -90 + }, + "active=true,direction=down_north": { + "model": "refinedstorage2:block/security_manager/pink", + "x": 90 + }, + "active=true,direction=down_south": { + "model": "refinedstorage2:block/security_manager/pink", + "x": 90, + "y": 180 + }, + "active=true,direction=down_west": { + "model": "refinedstorage2:block/security_manager/pink", + "x": 90, + "y": 90 + }, + "active=true,direction=east": { + "model": "refinedstorage2:block/security_manager/pink", + "y": 90 + }, + "active=true,direction=north": { + "model": "refinedstorage2:block/security_manager/pink" + }, + "active=true,direction=south": { + "model": "refinedstorage2:block/security_manager/pink", + "y": 180 + }, + "active=true,direction=up_east": { + "model": "refinedstorage2:block/security_manager/pink", + "x": -90, + "y": -90 + }, + "active=true,direction=up_north": { + "model": "refinedstorage2:block/security_manager/pink", + "x": -90, + "y": 180 + }, + "active=true,direction=up_south": { + "model": "refinedstorage2:block/security_manager/pink", + "x": -90 + }, + "active=true,direction=up_west": { + "model": "refinedstorage2:block/security_manager/pink", + "x": -90, + "y": 90 + }, + "active=true,direction=west": { + "model": "refinedstorage2:block/security_manager/pink", + "y": 270 + } + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/purple_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/purple_security_manager.json new file mode 100644 index 000000000..bc0e84f00 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/purple_security_manager.json @@ -0,0 +1,110 @@ +{ + "variants": { + "active=false,direction=down_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": -90 + }, + "active=false,direction=down_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90 + }, + "active=false,direction=down_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 180 + }, + "active=false,direction=down_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 90 + }, + "active=false,direction=east": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 90 + }, + "active=false,direction=north": { + "model": "refinedstorage2:block/security_manager/inactive" + }, + "active=false,direction=south": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 180 + }, + "active=false,direction=up_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": -90 + }, + "active=false,direction=up_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 180 + }, + "active=false,direction=up_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90 + }, + "active=false,direction=up_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 90 + }, + "active=false,direction=west": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 270 + }, + "active=true,direction=down_east": { + "model": "refinedstorage2:block/security_manager/purple", + "x": 90, + "y": -90 + }, + "active=true,direction=down_north": { + "model": "refinedstorage2:block/security_manager/purple", + "x": 90 + }, + "active=true,direction=down_south": { + "model": "refinedstorage2:block/security_manager/purple", + "x": 90, + "y": 180 + }, + "active=true,direction=down_west": { + "model": "refinedstorage2:block/security_manager/purple", + "x": 90, + "y": 90 + }, + "active=true,direction=east": { + "model": "refinedstorage2:block/security_manager/purple", + "y": 90 + }, + "active=true,direction=north": { + "model": "refinedstorage2:block/security_manager/purple" + }, + "active=true,direction=south": { + "model": "refinedstorage2:block/security_manager/purple", + "y": 180 + }, + "active=true,direction=up_east": { + "model": "refinedstorage2:block/security_manager/purple", + "x": -90, + "y": -90 + }, + "active=true,direction=up_north": { + "model": "refinedstorage2:block/security_manager/purple", + "x": -90, + "y": 180 + }, + "active=true,direction=up_south": { + "model": "refinedstorage2:block/security_manager/purple", + "x": -90 + }, + "active=true,direction=up_west": { + "model": "refinedstorage2:block/security_manager/purple", + "x": -90, + "y": 90 + }, + "active=true,direction=west": { + "model": "refinedstorage2:block/security_manager/purple", + "y": 270 + } + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/red_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/red_security_manager.json new file mode 100644 index 000000000..724a669a7 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/red_security_manager.json @@ -0,0 +1,110 @@ +{ + "variants": { + "active=false,direction=down_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": -90 + }, + "active=false,direction=down_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90 + }, + "active=false,direction=down_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 180 + }, + "active=false,direction=down_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 90 + }, + "active=false,direction=east": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 90 + }, + "active=false,direction=north": { + "model": "refinedstorage2:block/security_manager/inactive" + }, + "active=false,direction=south": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 180 + }, + "active=false,direction=up_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": -90 + }, + "active=false,direction=up_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 180 + }, + "active=false,direction=up_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90 + }, + "active=false,direction=up_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 90 + }, + "active=false,direction=west": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 270 + }, + "active=true,direction=down_east": { + "model": "refinedstorage2:block/security_manager/red", + "x": 90, + "y": -90 + }, + "active=true,direction=down_north": { + "model": "refinedstorage2:block/security_manager/red", + "x": 90 + }, + "active=true,direction=down_south": { + "model": "refinedstorage2:block/security_manager/red", + "x": 90, + "y": 180 + }, + "active=true,direction=down_west": { + "model": "refinedstorage2:block/security_manager/red", + "x": 90, + "y": 90 + }, + "active=true,direction=east": { + "model": "refinedstorage2:block/security_manager/red", + "y": 90 + }, + "active=true,direction=north": { + "model": "refinedstorage2:block/security_manager/red" + }, + "active=true,direction=south": { + "model": "refinedstorage2:block/security_manager/red", + "y": 180 + }, + "active=true,direction=up_east": { + "model": "refinedstorage2:block/security_manager/red", + "x": -90, + "y": -90 + }, + "active=true,direction=up_north": { + "model": "refinedstorage2:block/security_manager/red", + "x": -90, + "y": 180 + }, + "active=true,direction=up_south": { + "model": "refinedstorage2:block/security_manager/red", + "x": -90 + }, + "active=true,direction=up_west": { + "model": "refinedstorage2:block/security_manager/red", + "x": -90, + "y": 90 + }, + "active=true,direction=west": { + "model": "refinedstorage2:block/security_manager/red", + "y": 270 + } + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/security_manager.json new file mode 100644 index 000000000..8f3d5a73a --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/security_manager.json @@ -0,0 +1,110 @@ +{ + "variants": { + "active=false,direction=down_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": -90 + }, + "active=false,direction=down_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90 + }, + "active=false,direction=down_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 180 + }, + "active=false,direction=down_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 90 + }, + "active=false,direction=east": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 90 + }, + "active=false,direction=north": { + "model": "refinedstorage2:block/security_manager/inactive" + }, + "active=false,direction=south": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 180 + }, + "active=false,direction=up_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": -90 + }, + "active=false,direction=up_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 180 + }, + "active=false,direction=up_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90 + }, + "active=false,direction=up_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 90 + }, + "active=false,direction=west": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 270 + }, + "active=true,direction=down_east": { + "model": "refinedstorage2:block/security_manager/light_blue", + "x": 90, + "y": -90 + }, + "active=true,direction=down_north": { + "model": "refinedstorage2:block/security_manager/light_blue", + "x": 90 + }, + "active=true,direction=down_south": { + "model": "refinedstorage2:block/security_manager/light_blue", + "x": 90, + "y": 180 + }, + "active=true,direction=down_west": { + "model": "refinedstorage2:block/security_manager/light_blue", + "x": 90, + "y": 90 + }, + "active=true,direction=east": { + "model": "refinedstorage2:block/security_manager/light_blue", + "y": 90 + }, + "active=true,direction=north": { + "model": "refinedstorage2:block/security_manager/light_blue" + }, + "active=true,direction=south": { + "model": "refinedstorage2:block/security_manager/light_blue", + "y": 180 + }, + "active=true,direction=up_east": { + "model": "refinedstorage2:block/security_manager/light_blue", + "x": -90, + "y": -90 + }, + "active=true,direction=up_north": { + "model": "refinedstorage2:block/security_manager/light_blue", + "x": -90, + "y": 180 + }, + "active=true,direction=up_south": { + "model": "refinedstorage2:block/security_manager/light_blue", + "x": -90 + }, + "active=true,direction=up_west": { + "model": "refinedstorage2:block/security_manager/light_blue", + "x": -90, + "y": 90 + }, + "active=true,direction=west": { + "model": "refinedstorage2:block/security_manager/light_blue", + "y": 270 + } + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/white_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/white_security_manager.json new file mode 100644 index 000000000..5c1131a54 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/white_security_manager.json @@ -0,0 +1,110 @@ +{ + "variants": { + "active=false,direction=down_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": -90 + }, + "active=false,direction=down_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90 + }, + "active=false,direction=down_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 180 + }, + "active=false,direction=down_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 90 + }, + "active=false,direction=east": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 90 + }, + "active=false,direction=north": { + "model": "refinedstorage2:block/security_manager/inactive" + }, + "active=false,direction=south": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 180 + }, + "active=false,direction=up_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": -90 + }, + "active=false,direction=up_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 180 + }, + "active=false,direction=up_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90 + }, + "active=false,direction=up_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 90 + }, + "active=false,direction=west": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 270 + }, + "active=true,direction=down_east": { + "model": "refinedstorage2:block/security_manager/white", + "x": 90, + "y": -90 + }, + "active=true,direction=down_north": { + "model": "refinedstorage2:block/security_manager/white", + "x": 90 + }, + "active=true,direction=down_south": { + "model": "refinedstorage2:block/security_manager/white", + "x": 90, + "y": 180 + }, + "active=true,direction=down_west": { + "model": "refinedstorage2:block/security_manager/white", + "x": 90, + "y": 90 + }, + "active=true,direction=east": { + "model": "refinedstorage2:block/security_manager/white", + "y": 90 + }, + "active=true,direction=north": { + "model": "refinedstorage2:block/security_manager/white" + }, + "active=true,direction=south": { + "model": "refinedstorage2:block/security_manager/white", + "y": 180 + }, + "active=true,direction=up_east": { + "model": "refinedstorage2:block/security_manager/white", + "x": -90, + "y": -90 + }, + "active=true,direction=up_north": { + "model": "refinedstorage2:block/security_manager/white", + "x": -90, + "y": 180 + }, + "active=true,direction=up_south": { + "model": "refinedstorage2:block/security_manager/white", + "x": -90 + }, + "active=true,direction=up_west": { + "model": "refinedstorage2:block/security_manager/white", + "x": -90, + "y": 90 + }, + "active=true,direction=west": { + "model": "refinedstorage2:block/security_manager/white", + "y": 270 + } + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/yellow_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/yellow_security_manager.json new file mode 100644 index 000000000..47fe1e882 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/blockstates/yellow_security_manager.json @@ -0,0 +1,110 @@ +{ + "variants": { + "active=false,direction=down_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": -90 + }, + "active=false,direction=down_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90 + }, + "active=false,direction=down_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 180 + }, + "active=false,direction=down_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": 90, + "y": 90 + }, + "active=false,direction=east": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 90 + }, + "active=false,direction=north": { + "model": "refinedstorage2:block/security_manager/inactive" + }, + "active=false,direction=south": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 180 + }, + "active=false,direction=up_east": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": -90 + }, + "active=false,direction=up_north": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 180 + }, + "active=false,direction=up_south": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90 + }, + "active=false,direction=up_west": { + "model": "refinedstorage2:block/security_manager/inactive", + "x": -90, + "y": 90 + }, + "active=false,direction=west": { + "model": "refinedstorage2:block/security_manager/inactive", + "y": 270 + }, + "active=true,direction=down_east": { + "model": "refinedstorage2:block/security_manager/yellow", + "x": 90, + "y": -90 + }, + "active=true,direction=down_north": { + "model": "refinedstorage2:block/security_manager/yellow", + "x": 90 + }, + "active=true,direction=down_south": { + "model": "refinedstorage2:block/security_manager/yellow", + "x": 90, + "y": 180 + }, + "active=true,direction=down_west": { + "model": "refinedstorage2:block/security_manager/yellow", + "x": 90, + "y": 90 + }, + "active=true,direction=east": { + "model": "refinedstorage2:block/security_manager/yellow", + "y": 90 + }, + "active=true,direction=north": { + "model": "refinedstorage2:block/security_manager/yellow" + }, + "active=true,direction=south": { + "model": "refinedstorage2:block/security_manager/yellow", + "y": 180 + }, + "active=true,direction=up_east": { + "model": "refinedstorage2:block/security_manager/yellow", + "x": -90, + "y": -90 + }, + "active=true,direction=up_north": { + "model": "refinedstorage2:block/security_manager/yellow", + "x": -90, + "y": 180 + }, + "active=true,direction=up_south": { + "model": "refinedstorage2:block/security_manager/yellow", + "x": -90 + }, + "active=true,direction=up_west": { + "model": "refinedstorage2:block/security_manager/yellow", + "x": -90, + "y": 90 + }, + "active=true,direction=west": { + "model": "refinedstorage2:block/security_manager/yellow", + "y": 270 + } + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/black.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/black.json new file mode 100644 index 000000000..f0e16728a --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/black.json @@ -0,0 +1,18 @@ +{ + "parent": "refinedstorage2:block/emissive_cutout", + "textures": { + "cutout_down": "refinedstorage2:block/bottom", + "cutout_east": "refinedstorage2:block/security_manager/cutouts/right/black", + "cutout_north": "refinedstorage2:block/security_manager/cutouts/front/black", + "cutout_south": "refinedstorage2:block/security_manager/cutouts/back/black", + "cutout_up": "refinedstorage2:block/security_manager/cutouts/top/black", + "cutout_west": "refinedstorage2:block/security_manager/cutouts/left/black", + "down": "refinedstorage2:block/bottom", + "east": "refinedstorage2:block/security_manager/right", + "north": "refinedstorage2:block/security_manager/front", + "particle": "refinedstorage2:block/security_manager/back", + "south": "refinedstorage2:block/security_manager/back", + "up": "refinedstorage2:block/security_manager/top", + "west": "refinedstorage2:block/security_manager/left" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/blue.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/blue.json new file mode 100644 index 000000000..84c0ea549 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/blue.json @@ -0,0 +1,18 @@ +{ + "parent": "refinedstorage2:block/emissive_cutout", + "textures": { + "cutout_down": "refinedstorage2:block/bottom", + "cutout_east": "refinedstorage2:block/security_manager/cutouts/right/blue", + "cutout_north": "refinedstorage2:block/security_manager/cutouts/front/blue", + "cutout_south": "refinedstorage2:block/security_manager/cutouts/back/blue", + "cutout_up": "refinedstorage2:block/security_manager/cutouts/top/blue", + "cutout_west": "refinedstorage2:block/security_manager/cutouts/left/blue", + "down": "refinedstorage2:block/bottom", + "east": "refinedstorage2:block/security_manager/right", + "north": "refinedstorage2:block/security_manager/front", + "particle": "refinedstorage2:block/security_manager/back", + "south": "refinedstorage2:block/security_manager/back", + "up": "refinedstorage2:block/security_manager/top", + "west": "refinedstorage2:block/security_manager/left" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/brown.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/brown.json new file mode 100644 index 000000000..77150c297 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/brown.json @@ -0,0 +1,18 @@ +{ + "parent": "refinedstorage2:block/emissive_cutout", + "textures": { + "cutout_down": "refinedstorage2:block/bottom", + "cutout_east": "refinedstorage2:block/security_manager/cutouts/right/brown", + "cutout_north": "refinedstorage2:block/security_manager/cutouts/front/brown", + "cutout_south": "refinedstorage2:block/security_manager/cutouts/back/brown", + "cutout_up": "refinedstorage2:block/security_manager/cutouts/top/brown", + "cutout_west": "refinedstorage2:block/security_manager/cutouts/left/brown", + "down": "refinedstorage2:block/bottom", + "east": "refinedstorage2:block/security_manager/right", + "north": "refinedstorage2:block/security_manager/front", + "particle": "refinedstorage2:block/security_manager/back", + "south": "refinedstorage2:block/security_manager/back", + "up": "refinedstorage2:block/security_manager/top", + "west": "refinedstorage2:block/security_manager/left" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/cyan.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/cyan.json new file mode 100644 index 000000000..476b8ebc1 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/cyan.json @@ -0,0 +1,18 @@ +{ + "parent": "refinedstorage2:block/emissive_cutout", + "textures": { + "cutout_down": "refinedstorage2:block/bottom", + "cutout_east": "refinedstorage2:block/security_manager/cutouts/right/cyan", + "cutout_north": "refinedstorage2:block/security_manager/cutouts/front/cyan", + "cutout_south": "refinedstorage2:block/security_manager/cutouts/back/cyan", + "cutout_up": "refinedstorage2:block/security_manager/cutouts/top/cyan", + "cutout_west": "refinedstorage2:block/security_manager/cutouts/left/cyan", + "down": "refinedstorage2:block/bottom", + "east": "refinedstorage2:block/security_manager/right", + "north": "refinedstorage2:block/security_manager/front", + "particle": "refinedstorage2:block/security_manager/back", + "south": "refinedstorage2:block/security_manager/back", + "up": "refinedstorage2:block/security_manager/top", + "west": "refinedstorage2:block/security_manager/left" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/gray.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/gray.json new file mode 100644 index 000000000..6d098c4e4 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/gray.json @@ -0,0 +1,18 @@ +{ + "parent": "refinedstorage2:block/emissive_cutout", + "textures": { + "cutout_down": "refinedstorage2:block/bottom", + "cutout_east": "refinedstorage2:block/security_manager/cutouts/right/gray", + "cutout_north": "refinedstorage2:block/security_manager/cutouts/front/gray", + "cutout_south": "refinedstorage2:block/security_manager/cutouts/back/gray", + "cutout_up": "refinedstorage2:block/security_manager/cutouts/top/gray", + "cutout_west": "refinedstorage2:block/security_manager/cutouts/left/gray", + "down": "refinedstorage2:block/bottom", + "east": "refinedstorage2:block/security_manager/right", + "north": "refinedstorage2:block/security_manager/front", + "particle": "refinedstorage2:block/security_manager/back", + "south": "refinedstorage2:block/security_manager/back", + "up": "refinedstorage2:block/security_manager/top", + "west": "refinedstorage2:block/security_manager/left" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/green.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/green.json new file mode 100644 index 000000000..408f308b8 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/green.json @@ -0,0 +1,18 @@ +{ + "parent": "refinedstorage2:block/emissive_cutout", + "textures": { + "cutout_down": "refinedstorage2:block/bottom", + "cutout_east": "refinedstorage2:block/security_manager/cutouts/right/green", + "cutout_north": "refinedstorage2:block/security_manager/cutouts/front/green", + "cutout_south": "refinedstorage2:block/security_manager/cutouts/back/green", + "cutout_up": "refinedstorage2:block/security_manager/cutouts/top/green", + "cutout_west": "refinedstorage2:block/security_manager/cutouts/left/green", + "down": "refinedstorage2:block/bottom", + "east": "refinedstorage2:block/security_manager/right", + "north": "refinedstorage2:block/security_manager/front", + "particle": "refinedstorage2:block/security_manager/back", + "south": "refinedstorage2:block/security_manager/back", + "up": "refinedstorage2:block/security_manager/top", + "west": "refinedstorage2:block/security_manager/left" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/inactive.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/inactive.json new file mode 100644 index 000000000..6ae233e27 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/inactive.json @@ -0,0 +1,18 @@ +{ + "parent": "refinedstorage2:block/cutout", + "textures": { + "cutout_down": "refinedstorage2:block/bottom", + "cutout_east": "refinedstorage2:block/security_manager/cutouts/right/inactive", + "cutout_north": "refinedstorage2:block/security_manager/cutouts/front/inactive", + "cutout_south": "refinedstorage2:block/security_manager/cutouts/back/inactive", + "cutout_up": "refinedstorage2:block/security_manager/cutouts/top/inactive", + "cutout_west": "refinedstorage2:block/security_manager/cutouts/left/inactive", + "down": "refinedstorage2:block/bottom", + "east": "refinedstorage2:block/security_manager/right", + "north": "refinedstorage2:block/security_manager/front", + "particle": "refinedstorage2:block/security_manager/back", + "south": "refinedstorage2:block/security_manager/back", + "up": "refinedstorage2:block/security_manager/top", + "west": "refinedstorage2:block/security_manager/left" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/light_blue.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/light_blue.json new file mode 100644 index 000000000..f8a18ecf9 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/light_blue.json @@ -0,0 +1,18 @@ +{ + "parent": "refinedstorage2:block/emissive_cutout", + "textures": { + "cutout_down": "refinedstorage2:block/bottom", + "cutout_east": "refinedstorage2:block/security_manager/cutouts/right/light_blue", + "cutout_north": "refinedstorage2:block/security_manager/cutouts/front/light_blue", + "cutout_south": "refinedstorage2:block/security_manager/cutouts/back/light_blue", + "cutout_up": "refinedstorage2:block/security_manager/cutouts/top/light_blue", + "cutout_west": "refinedstorage2:block/security_manager/cutouts/left/light_blue", + "down": "refinedstorage2:block/bottom", + "east": "refinedstorage2:block/security_manager/right", + "north": "refinedstorage2:block/security_manager/front", + "particle": "refinedstorage2:block/security_manager/back", + "south": "refinedstorage2:block/security_manager/back", + "up": "refinedstorage2:block/security_manager/top", + "west": "refinedstorage2:block/security_manager/left" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/light_gray.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/light_gray.json new file mode 100644 index 000000000..03840489f --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/light_gray.json @@ -0,0 +1,18 @@ +{ + "parent": "refinedstorage2:block/emissive_cutout", + "textures": { + "cutout_down": "refinedstorage2:block/bottom", + "cutout_east": "refinedstorage2:block/security_manager/cutouts/right/light_gray", + "cutout_north": "refinedstorage2:block/security_manager/cutouts/front/light_gray", + "cutout_south": "refinedstorage2:block/security_manager/cutouts/back/light_gray", + "cutout_up": "refinedstorage2:block/security_manager/cutouts/top/light_gray", + "cutout_west": "refinedstorage2:block/security_manager/cutouts/left/light_gray", + "down": "refinedstorage2:block/bottom", + "east": "refinedstorage2:block/security_manager/right", + "north": "refinedstorage2:block/security_manager/front", + "particle": "refinedstorage2:block/security_manager/back", + "south": "refinedstorage2:block/security_manager/back", + "up": "refinedstorage2:block/security_manager/top", + "west": "refinedstorage2:block/security_manager/left" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/lime.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/lime.json new file mode 100644 index 000000000..dedd0d204 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/lime.json @@ -0,0 +1,18 @@ +{ + "parent": "refinedstorage2:block/emissive_cutout", + "textures": { + "cutout_down": "refinedstorage2:block/bottom", + "cutout_east": "refinedstorage2:block/security_manager/cutouts/right/lime", + "cutout_north": "refinedstorage2:block/security_manager/cutouts/front/lime", + "cutout_south": "refinedstorage2:block/security_manager/cutouts/back/lime", + "cutout_up": "refinedstorage2:block/security_manager/cutouts/top/lime", + "cutout_west": "refinedstorage2:block/security_manager/cutouts/left/lime", + "down": "refinedstorage2:block/bottom", + "east": "refinedstorage2:block/security_manager/right", + "north": "refinedstorage2:block/security_manager/front", + "particle": "refinedstorage2:block/security_manager/back", + "south": "refinedstorage2:block/security_manager/back", + "up": "refinedstorage2:block/security_manager/top", + "west": "refinedstorage2:block/security_manager/left" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/magenta.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/magenta.json new file mode 100644 index 000000000..ed56a5d31 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/magenta.json @@ -0,0 +1,18 @@ +{ + "parent": "refinedstorage2:block/emissive_cutout", + "textures": { + "cutout_down": "refinedstorage2:block/bottom", + "cutout_east": "refinedstorage2:block/security_manager/cutouts/right/magenta", + "cutout_north": "refinedstorage2:block/security_manager/cutouts/front/magenta", + "cutout_south": "refinedstorage2:block/security_manager/cutouts/back/magenta", + "cutout_up": "refinedstorage2:block/security_manager/cutouts/top/magenta", + "cutout_west": "refinedstorage2:block/security_manager/cutouts/left/magenta", + "down": "refinedstorage2:block/bottom", + "east": "refinedstorage2:block/security_manager/right", + "north": "refinedstorage2:block/security_manager/front", + "particle": "refinedstorage2:block/security_manager/back", + "south": "refinedstorage2:block/security_manager/back", + "up": "refinedstorage2:block/security_manager/top", + "west": "refinedstorage2:block/security_manager/left" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/orange.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/orange.json new file mode 100644 index 000000000..42d6d1cb4 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/orange.json @@ -0,0 +1,18 @@ +{ + "parent": "refinedstorage2:block/emissive_cutout", + "textures": { + "cutout_down": "refinedstorage2:block/bottom", + "cutout_east": "refinedstorage2:block/security_manager/cutouts/right/orange", + "cutout_north": "refinedstorage2:block/security_manager/cutouts/front/orange", + "cutout_south": "refinedstorage2:block/security_manager/cutouts/back/orange", + "cutout_up": "refinedstorage2:block/security_manager/cutouts/top/orange", + "cutout_west": "refinedstorage2:block/security_manager/cutouts/left/orange", + "down": "refinedstorage2:block/bottom", + "east": "refinedstorage2:block/security_manager/right", + "north": "refinedstorage2:block/security_manager/front", + "particle": "refinedstorage2:block/security_manager/back", + "south": "refinedstorage2:block/security_manager/back", + "up": "refinedstorage2:block/security_manager/top", + "west": "refinedstorage2:block/security_manager/left" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/pink.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/pink.json new file mode 100644 index 000000000..5b26e7557 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/pink.json @@ -0,0 +1,18 @@ +{ + "parent": "refinedstorage2:block/emissive_cutout", + "textures": { + "cutout_down": "refinedstorage2:block/bottom", + "cutout_east": "refinedstorage2:block/security_manager/cutouts/right/pink", + "cutout_north": "refinedstorage2:block/security_manager/cutouts/front/pink", + "cutout_south": "refinedstorage2:block/security_manager/cutouts/back/pink", + "cutout_up": "refinedstorage2:block/security_manager/cutouts/top/pink", + "cutout_west": "refinedstorage2:block/security_manager/cutouts/left/pink", + "down": "refinedstorage2:block/bottom", + "east": "refinedstorage2:block/security_manager/right", + "north": "refinedstorage2:block/security_manager/front", + "particle": "refinedstorage2:block/security_manager/back", + "south": "refinedstorage2:block/security_manager/back", + "up": "refinedstorage2:block/security_manager/top", + "west": "refinedstorage2:block/security_manager/left" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/purple.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/purple.json new file mode 100644 index 000000000..d079f109b --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/purple.json @@ -0,0 +1,18 @@ +{ + "parent": "refinedstorage2:block/emissive_cutout", + "textures": { + "cutout_down": "refinedstorage2:block/bottom", + "cutout_east": "refinedstorage2:block/security_manager/cutouts/right/purple", + "cutout_north": "refinedstorage2:block/security_manager/cutouts/front/purple", + "cutout_south": "refinedstorage2:block/security_manager/cutouts/back/purple", + "cutout_up": "refinedstorage2:block/security_manager/cutouts/top/purple", + "cutout_west": "refinedstorage2:block/security_manager/cutouts/left/purple", + "down": "refinedstorage2:block/bottom", + "east": "refinedstorage2:block/security_manager/right", + "north": "refinedstorage2:block/security_manager/front", + "particle": "refinedstorage2:block/security_manager/back", + "south": "refinedstorage2:block/security_manager/back", + "up": "refinedstorage2:block/security_manager/top", + "west": "refinedstorage2:block/security_manager/left" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/red.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/red.json new file mode 100644 index 000000000..3eb01cbbc --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/red.json @@ -0,0 +1,18 @@ +{ + "parent": "refinedstorage2:block/emissive_cutout", + "textures": { + "cutout_down": "refinedstorage2:block/bottom", + "cutout_east": "refinedstorage2:block/security_manager/cutouts/right/red", + "cutout_north": "refinedstorage2:block/security_manager/cutouts/front/red", + "cutout_south": "refinedstorage2:block/security_manager/cutouts/back/red", + "cutout_up": "refinedstorage2:block/security_manager/cutouts/top/red", + "cutout_west": "refinedstorage2:block/security_manager/cutouts/left/red", + "down": "refinedstorage2:block/bottom", + "east": "refinedstorage2:block/security_manager/right", + "north": "refinedstorage2:block/security_manager/front", + "particle": "refinedstorage2:block/security_manager/back", + "south": "refinedstorage2:block/security_manager/back", + "up": "refinedstorage2:block/security_manager/top", + "west": "refinedstorage2:block/security_manager/left" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/white.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/white.json new file mode 100644 index 000000000..9db7a41bb --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/white.json @@ -0,0 +1,18 @@ +{ + "parent": "refinedstorage2:block/emissive_cutout", + "textures": { + "cutout_down": "refinedstorage2:block/bottom", + "cutout_east": "refinedstorage2:block/security_manager/cutouts/right/white", + "cutout_north": "refinedstorage2:block/security_manager/cutouts/front/white", + "cutout_south": "refinedstorage2:block/security_manager/cutouts/back/white", + "cutout_up": "refinedstorage2:block/security_manager/cutouts/top/white", + "cutout_west": "refinedstorage2:block/security_manager/cutouts/left/white", + "down": "refinedstorage2:block/bottom", + "east": "refinedstorage2:block/security_manager/right", + "north": "refinedstorage2:block/security_manager/front", + "particle": "refinedstorage2:block/security_manager/back", + "south": "refinedstorage2:block/security_manager/back", + "up": "refinedstorage2:block/security_manager/top", + "west": "refinedstorage2:block/security_manager/left" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/yellow.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/yellow.json new file mode 100644 index 000000000..d82bec405 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/block/security_manager/yellow.json @@ -0,0 +1,18 @@ +{ + "parent": "refinedstorage2:block/emissive_cutout", + "textures": { + "cutout_down": "refinedstorage2:block/bottom", + "cutout_east": "refinedstorage2:block/security_manager/cutouts/right/yellow", + "cutout_north": "refinedstorage2:block/security_manager/cutouts/front/yellow", + "cutout_south": "refinedstorage2:block/security_manager/cutouts/back/yellow", + "cutout_up": "refinedstorage2:block/security_manager/cutouts/top/yellow", + "cutout_west": "refinedstorage2:block/security_manager/cutouts/left/yellow", + "down": "refinedstorage2:block/bottom", + "east": "refinedstorage2:block/security_manager/right", + "north": "refinedstorage2:block/security_manager/front", + "particle": "refinedstorage2:block/security_manager/back", + "south": "refinedstorage2:block/security_manager/back", + "up": "refinedstorage2:block/security_manager/top", + "west": "refinedstorage2:block/security_manager/left" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/black_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/black_security_manager.json new file mode 100644 index 000000000..ee13ead75 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/black_security_manager.json @@ -0,0 +1,3 @@ +{ + "parent": "refinedstorage2:block/security_manager/black" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/blue_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/blue_security_manager.json new file mode 100644 index 000000000..5b2b172fd --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/blue_security_manager.json @@ -0,0 +1,3 @@ +{ + "parent": "refinedstorage2:block/security_manager/blue" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/brown_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/brown_security_manager.json new file mode 100644 index 000000000..e4d259faf --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/brown_security_manager.json @@ -0,0 +1,3 @@ +{ + "parent": "refinedstorage2:block/security_manager/brown" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/cyan_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/cyan_security_manager.json new file mode 100644 index 000000000..d4ac29b94 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/cyan_security_manager.json @@ -0,0 +1,3 @@ +{ + "parent": "refinedstorage2:block/security_manager/cyan" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/gray_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/gray_security_manager.json new file mode 100644 index 000000000..f82d44b8a --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/gray_security_manager.json @@ -0,0 +1,3 @@ +{ + "parent": "refinedstorage2:block/security_manager/gray" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/green_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/green_security_manager.json new file mode 100644 index 000000000..922448244 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/green_security_manager.json @@ -0,0 +1,3 @@ +{ + "parent": "refinedstorage2:block/security_manager/green" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/light_gray_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/light_gray_security_manager.json new file mode 100644 index 000000000..3ca73b68d --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/light_gray_security_manager.json @@ -0,0 +1,3 @@ +{ + "parent": "refinedstorage2:block/security_manager/light_gray" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/lime_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/lime_security_manager.json new file mode 100644 index 000000000..d9a5821ab --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/lime_security_manager.json @@ -0,0 +1,3 @@ +{ + "parent": "refinedstorage2:block/security_manager/lime" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/magenta_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/magenta_security_manager.json new file mode 100644 index 000000000..b3b6dbfc0 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/magenta_security_manager.json @@ -0,0 +1,3 @@ +{ + "parent": "refinedstorage2:block/security_manager/magenta" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/orange_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/orange_security_manager.json new file mode 100644 index 000000000..40e80c498 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/orange_security_manager.json @@ -0,0 +1,3 @@ +{ + "parent": "refinedstorage2:block/security_manager/orange" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/pink_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/pink_security_manager.json new file mode 100644 index 000000000..94f2729d4 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/pink_security_manager.json @@ -0,0 +1,3 @@ +{ + "parent": "refinedstorage2:block/security_manager/pink" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/purple_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/purple_security_manager.json new file mode 100644 index 000000000..d36ab505b --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/purple_security_manager.json @@ -0,0 +1,3 @@ +{ + "parent": "refinedstorage2:block/security_manager/purple" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/red_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/red_security_manager.json new file mode 100644 index 000000000..256ec88fc --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/red_security_manager.json @@ -0,0 +1,3 @@ +{ + "parent": "refinedstorage2:block/security_manager/red" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/security_manager.json new file mode 100644 index 000000000..6d3285847 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/security_manager.json @@ -0,0 +1,3 @@ +{ + "parent": "refinedstorage2:block/security_manager/light_blue" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/white_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/white_security_manager.json new file mode 100644 index 000000000..6edd61a27 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/white_security_manager.json @@ -0,0 +1,3 @@ +{ + "parent": "refinedstorage2:block/security_manager/white" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/yellow_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/yellow_security_manager.json new file mode 100644 index 000000000..e1e4c506f --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/assets/refinedstorage2/models/item/yellow_security_manager.json @@ -0,0 +1,3 @@ +{ + "parent": "refinedstorage2:block/security_manager/yellow" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_cable.json index c2ce00c55..d3db991f0 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_cable.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_cables", - "has_the_recipe" + "has_the_recipe", + "has_cables" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/black_cable" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_constructor.json index 5448c581a..1dd5e8d4b 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_constructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_constructors", - "has_the_recipe" + "has_the_recipe", + "has_constructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/black_constructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_controller.json index 40cc99ade..9c61d03da 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_controller.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_controllers", - "has_the_recipe" + "has_the_recipe", + "has_controllers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/black_controller" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_crafting_grid.json index c249a8d00..f63aa8ac7 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_crafting_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_crafting_grids", - "has_the_recipe" + "has_the_recipe", + "has_crafting_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/black_crafting_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_destructor.json index 7aa16bd69..084f62c1f 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_destructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_destructors", - "has_the_recipe" + "has_the_recipe", + "has_destructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/black_destructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_detector.json index fcd3f2add..647cf0300 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_detector.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_detectors", - "has_the_recipe" + "has_the_recipe", + "has_detectors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/black_detector" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_exporter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_exporter.json index 8cfac38f6..19461a32b 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_exporter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_exporter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_exporters", - "has_the_recipe" + "has_the_recipe", + "has_exporters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/black_exporter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_external_storage.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_external_storage.json index 7a03921a0..b63faf1bc 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_external_storage.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_external_storage.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_external_storages", - "has_the_recipe" + "has_the_recipe", + "has_external_storages" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/black_external_storage" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_grid.json index 626db107e..dc32ec5e7 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_grids", - "has_the_recipe" + "has_the_recipe", + "has_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/black_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_importer.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_importer.json index 1e5a0ac56..e1e5f246c 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_importer.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_importer.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_importers", - "has_the_recipe" + "has_the_recipe", + "has_importers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/black_importer" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_network_receiver.json index c7b33755b..a25c7205b 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_network_receiver.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_receivers", - "has_the_recipe" + "has_the_recipe", + "has_network_receivers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/black_network_receiver" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_network_transmitter.json index d62881c05..b31d9bcc2 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_network_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_network_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/black_network_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_security_manager.json new file mode 100644 index 000000000..1c8eadbfb --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_security_manager.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_security_managers": { + "conditions": { + "items": [ + { + "tag": "refinedstorage2:security_managers" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "refinedstorage2:coloring/black_security_manager" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_security_managers" + ] + ], + "rewards": { + "recipes": [ + "refinedstorage2:coloring/black_security_manager" + ] + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_wireless_transmitter.json index 2f85c7a7c..75467defa 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/black_wireless_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_wireless_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_wireless_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/black_wireless_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_cable.json index da93a6f48..d6ab78505 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_cable.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_cables", - "has_the_recipe" + "has_the_recipe", + "has_cables" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/blue_cable" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_constructor.json index a6e0a1e87..7f14346e2 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_constructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_constructors", - "has_the_recipe" + "has_the_recipe", + "has_constructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/blue_constructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_controller.json index aed107af8..eed4ee1ef 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_controller.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_controllers", - "has_the_recipe" + "has_the_recipe", + "has_controllers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/blue_controller" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_crafting_grid.json index a87c376f0..7d5bc773a 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_crafting_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_crafting_grids", - "has_the_recipe" + "has_the_recipe", + "has_crafting_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/blue_crafting_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_destructor.json index 099e7ab5e..10284b92a 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_destructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_destructors", - "has_the_recipe" + "has_the_recipe", + "has_destructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/blue_destructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_detector.json index 47fd21589..c46103976 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_detector.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_detectors", - "has_the_recipe" + "has_the_recipe", + "has_detectors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/blue_detector" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_exporter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_exporter.json index 5dbb32bca..3293b363d 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_exporter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_exporter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_exporters", - "has_the_recipe" + "has_the_recipe", + "has_exporters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/blue_exporter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_external_storage.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_external_storage.json index 16629ca31..021e6300b 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_external_storage.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_external_storage.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_external_storages", - "has_the_recipe" + "has_the_recipe", + "has_external_storages" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/blue_external_storage" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_grid.json index fcda6e7c9..c43c0b299 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_grids", - "has_the_recipe" + "has_the_recipe", + "has_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/blue_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_importer.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_importer.json index 6abba04c2..6ed2abe77 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_importer.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_importer.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_importers", - "has_the_recipe" + "has_the_recipe", + "has_importers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/blue_importer" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_network_receiver.json index 22f8c8709..79acce956 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_network_receiver.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_receivers", - "has_the_recipe" + "has_the_recipe", + "has_network_receivers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/blue_network_receiver" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_network_transmitter.json index 5fb93f8d0..d692e772c 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_network_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_network_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/blue_network_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_security_manager.json new file mode 100644 index 000000000..160bfa32b --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_security_manager.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_security_managers": { + "conditions": { + "items": [ + { + "tag": "refinedstorage2:security_managers" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "refinedstorage2:coloring/blue_security_manager" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_security_managers" + ] + ], + "rewards": { + "recipes": [ + "refinedstorage2:coloring/blue_security_manager" + ] + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_wireless_transmitter.json index c26a239fa..0297bb91c 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/blue_wireless_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_wireless_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_wireless_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/blue_wireless_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_cable.json index 4bcfb0045..36eb6d6ff 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_cable.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_cables", - "has_the_recipe" + "has_the_recipe", + "has_cables" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/brown_cable" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_constructor.json index 6de0eeaba..1826b2c6d 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_constructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_constructors", - "has_the_recipe" + "has_the_recipe", + "has_constructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/brown_constructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_controller.json index 76c1980e9..153a130df 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_controller.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_controllers", - "has_the_recipe" + "has_the_recipe", + "has_controllers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/brown_controller" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_crafting_grid.json index a6af02fd1..85633ff2d 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_crafting_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_crafting_grids", - "has_the_recipe" + "has_the_recipe", + "has_crafting_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/brown_crafting_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_destructor.json index 0d6e4eb47..23445c672 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_destructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_destructors", - "has_the_recipe" + "has_the_recipe", + "has_destructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/brown_destructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_detector.json index 55c0146d0..a3badbb5e 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_detector.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_detectors", - "has_the_recipe" + "has_the_recipe", + "has_detectors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/brown_detector" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_exporter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_exporter.json index d976e742c..a376591e8 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_exporter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_exporter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_exporters", - "has_the_recipe" + "has_the_recipe", + "has_exporters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/brown_exporter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_external_storage.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_external_storage.json index dafedb20b..f32dd9ca8 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_external_storage.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_external_storage.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_external_storages", - "has_the_recipe" + "has_the_recipe", + "has_external_storages" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/brown_external_storage" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_grid.json index 5efdf67ae..b0030066e 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_grids", - "has_the_recipe" + "has_the_recipe", + "has_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/brown_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_importer.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_importer.json index acc0ad356..4314c14e9 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_importer.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_importer.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_importers", - "has_the_recipe" + "has_the_recipe", + "has_importers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/brown_importer" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_network_receiver.json index 2dcce70a1..194e86e3a 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_network_receiver.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_receivers", - "has_the_recipe" + "has_the_recipe", + "has_network_receivers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/brown_network_receiver" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_network_transmitter.json index f8472f93e..88736f539 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_network_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_network_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/brown_network_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_security_manager.json new file mode 100644 index 000000000..1b680cccb --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_security_manager.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_security_managers": { + "conditions": { + "items": [ + { + "tag": "refinedstorage2:security_managers" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "refinedstorage2:coloring/brown_security_manager" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_security_managers" + ] + ], + "rewards": { + "recipes": [ + "refinedstorage2:coloring/brown_security_manager" + ] + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_wireless_transmitter.json index 9147d3182..163ff2101 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/brown_wireless_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_wireless_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_wireless_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/brown_wireless_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_cable.json index 4b87be60f..0302bfb36 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_cable.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_cables", - "has_the_recipe" + "has_the_recipe", + "has_cables" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/cyan_cable" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_constructor.json index b0f8d2840..d1ae5f9ea 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_constructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_constructors", - "has_the_recipe" + "has_the_recipe", + "has_constructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/cyan_constructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_controller.json index b516088e3..db27f5170 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_controller.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_controllers", - "has_the_recipe" + "has_the_recipe", + "has_controllers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/cyan_controller" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_crafting_grid.json index f418314d8..26cfd294c 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_crafting_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_crafting_grids", - "has_the_recipe" + "has_the_recipe", + "has_crafting_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/cyan_crafting_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_destructor.json index cd9a0d923..6067674d3 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_destructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_destructors", - "has_the_recipe" + "has_the_recipe", + "has_destructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/cyan_destructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_detector.json index c01a89630..1e09263e9 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_detector.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_detectors", - "has_the_recipe" + "has_the_recipe", + "has_detectors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/cyan_detector" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_exporter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_exporter.json index fceb13585..60ab95120 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_exporter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_exporter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_exporters", - "has_the_recipe" + "has_the_recipe", + "has_exporters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/cyan_exporter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_external_storage.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_external_storage.json index 917a4a793..92c1398d8 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_external_storage.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_external_storage.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_external_storages", - "has_the_recipe" + "has_the_recipe", + "has_external_storages" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/cyan_external_storage" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_grid.json index c3e274f6f..b091dacfa 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_grids", - "has_the_recipe" + "has_the_recipe", + "has_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/cyan_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_importer.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_importer.json index 9b7ce2f8c..8878b3d27 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_importer.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_importer.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_importers", - "has_the_recipe" + "has_the_recipe", + "has_importers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/cyan_importer" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_network_receiver.json index 5579db0c2..5816a373b 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_network_receiver.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_receivers", - "has_the_recipe" + "has_the_recipe", + "has_network_receivers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/cyan_network_receiver" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_network_transmitter.json index 212262dfe..1d4f20b4c 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_network_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_network_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/cyan_network_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_security_manager.json new file mode 100644 index 000000000..dc3fa7712 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_security_manager.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_security_managers": { + "conditions": { + "items": [ + { + "tag": "refinedstorage2:security_managers" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "refinedstorage2:coloring/cyan_security_manager" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_security_managers" + ] + ], + "rewards": { + "recipes": [ + "refinedstorage2:coloring/cyan_security_manager" + ] + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_wireless_transmitter.json index 5b6e8dcee..fef581b84 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/cyan_wireless_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_wireless_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_wireless_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/cyan_wireless_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_cable.json index d3eb34203..70d872141 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_cable.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_cables", - "has_the_recipe" + "has_the_recipe", + "has_cables" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/gray_cable" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_constructor.json index 2b48ccf56..1ec85077d 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_constructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_constructors", - "has_the_recipe" + "has_the_recipe", + "has_constructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/gray_constructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_controller.json index 09fed3c44..4239623f9 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_controller.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_controllers", - "has_the_recipe" + "has_the_recipe", + "has_controllers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/gray_controller" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_crafting_grid.json index 42d9c32c7..58e0adb2c 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_crafting_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_crafting_grids", - "has_the_recipe" + "has_the_recipe", + "has_crafting_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/gray_crafting_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_destructor.json index a1395f1fb..74d9347fb 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_destructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_destructors", - "has_the_recipe" + "has_the_recipe", + "has_destructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/gray_destructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_detector.json index 4250150d0..7040db113 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_detector.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_detectors", - "has_the_recipe" + "has_the_recipe", + "has_detectors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/gray_detector" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_exporter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_exporter.json index 97b52adcb..de6223b7d 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_exporter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_exporter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_exporters", - "has_the_recipe" + "has_the_recipe", + "has_exporters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/gray_exporter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_external_storage.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_external_storage.json index c6e82bd27..1050b7fe6 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_external_storage.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_external_storage.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_external_storages", - "has_the_recipe" + "has_the_recipe", + "has_external_storages" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/gray_external_storage" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_grid.json index 56ad56deb..1c5ccba36 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_grids", - "has_the_recipe" + "has_the_recipe", + "has_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/gray_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_importer.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_importer.json index 8650088ef..2c8c3581f 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_importer.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_importer.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_importers", - "has_the_recipe" + "has_the_recipe", + "has_importers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/gray_importer" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_network_receiver.json index f91f93326..0de56015d 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_network_receiver.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_receivers", - "has_the_recipe" + "has_the_recipe", + "has_network_receivers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/gray_network_receiver" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_network_transmitter.json index 003794319..5de9bb735 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_network_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_network_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/gray_network_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_security_manager.json new file mode 100644 index 000000000..8dfa953ea --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_security_manager.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_security_managers": { + "conditions": { + "items": [ + { + "tag": "refinedstorage2:security_managers" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "refinedstorage2:coloring/gray_security_manager" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_security_managers" + ] + ], + "rewards": { + "recipes": [ + "refinedstorage2:coloring/gray_security_manager" + ] + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_wireless_transmitter.json index 81b0f4c6f..2a6d0da6b 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/gray_wireless_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_wireless_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_wireless_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/gray_wireless_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_cable.json index e956c509c..24be1c12e 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_cable.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_cables", - "has_the_recipe" + "has_the_recipe", + "has_cables" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/green_cable" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_constructor.json index e5eec7a04..d3f92385d 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_constructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_constructors", - "has_the_recipe" + "has_the_recipe", + "has_constructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/green_constructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_controller.json index 2a728a3e5..9439a48be 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_controller.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_controllers", - "has_the_recipe" + "has_the_recipe", + "has_controllers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/green_controller" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_crafting_grid.json index 0ab2309dc..691ede3dd 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_crafting_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_crafting_grids", - "has_the_recipe" + "has_the_recipe", + "has_crafting_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/green_crafting_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_destructor.json index 3e1f21c65..82e6917cf 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_destructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_destructors", - "has_the_recipe" + "has_the_recipe", + "has_destructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/green_destructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_detector.json index e4d1d6ec0..c19a599cb 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_detector.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_detectors", - "has_the_recipe" + "has_the_recipe", + "has_detectors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/green_detector" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_exporter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_exporter.json index d0d052e40..3625522a6 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_exporter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_exporter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_exporters", - "has_the_recipe" + "has_the_recipe", + "has_exporters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/green_exporter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_external_storage.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_external_storage.json index e8b90603e..d1f361f81 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_external_storage.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_external_storage.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_external_storages", - "has_the_recipe" + "has_the_recipe", + "has_external_storages" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/green_external_storage" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_grid.json index 11d739cd4..b8f0def56 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_grids", - "has_the_recipe" + "has_the_recipe", + "has_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/green_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_importer.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_importer.json index e1c605460..6c45f05f1 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_importer.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_importer.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_importers", - "has_the_recipe" + "has_the_recipe", + "has_importers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/green_importer" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_network_receiver.json index 4213a221a..0aac86085 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_network_receiver.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_receivers", - "has_the_recipe" + "has_the_recipe", + "has_network_receivers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/green_network_receiver" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_network_transmitter.json index 5944c16a4..e1c1680dc 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_network_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_network_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/green_network_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_security_manager.json new file mode 100644 index 000000000..da323c613 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_security_manager.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_security_managers": { + "conditions": { + "items": [ + { + "tag": "refinedstorage2:security_managers" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "refinedstorage2:coloring/green_security_manager" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_security_managers" + ] + ], + "rewards": { + "recipes": [ + "refinedstorage2:coloring/green_security_manager" + ] + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_wireless_transmitter.json index b4e0ca28e..49164ba8b 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/green_wireless_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_wireless_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_wireless_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/green_wireless_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_cable.json index 8f5bcbcf2..ed91eb4d0 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_cable.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_cables", - "has_the_recipe" + "has_the_recipe", + "has_cables" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/light_blue_cable" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_constructor.json index 540f5e7c3..3396ea2b1 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_constructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_constructors", - "has_the_recipe" + "has_the_recipe", + "has_constructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/light_blue_constructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_controller.json index 57138ee09..afc6b1b15 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_controller.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_controllers", - "has_the_recipe" + "has_the_recipe", + "has_controllers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/light_blue_controller" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_crafting_grid.json index a7fe68329..4d8a692d6 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_crafting_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_crafting_grids", - "has_the_recipe" + "has_the_recipe", + "has_crafting_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/light_blue_crafting_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_destructor.json index ee5d6913a..071729d51 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_destructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_destructors", - "has_the_recipe" + "has_the_recipe", + "has_destructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/light_blue_destructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_detector.json index bda7c908f..3a7b78639 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_detector.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_detectors", - "has_the_recipe" + "has_the_recipe", + "has_detectors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/light_blue_detector" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_exporter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_exporter.json index e458a4fb7..4a255bab4 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_exporter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_exporter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_exporters", - "has_the_recipe" + "has_the_recipe", + "has_exporters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/light_blue_exporter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_external_storage.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_external_storage.json index abc3c0138..49a924928 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_external_storage.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_external_storage.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_external_storages", - "has_the_recipe" + "has_the_recipe", + "has_external_storages" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/light_blue_external_storage" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_grid.json index a545faeb4..610baf8c0 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_grids", - "has_the_recipe" + "has_the_recipe", + "has_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/light_blue_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_importer.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_importer.json index 860b58deb..13a4bc3da 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_importer.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_importer.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_importers", - "has_the_recipe" + "has_the_recipe", + "has_importers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/light_blue_importer" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_network_receiver.json index d1053d126..00638c4ac 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_network_receiver.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_receivers", - "has_the_recipe" + "has_the_recipe", + "has_network_receivers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/light_blue_network_receiver" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_network_transmitter.json index f194d254d..0ba8c5ccb 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_network_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_network_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/light_blue_network_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_security_manager.json new file mode 100644 index 000000000..509373708 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_security_manager.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_security_managers": { + "conditions": { + "items": [ + { + "tag": "refinedstorage2:security_managers" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "refinedstorage2:coloring/light_blue_security_manager" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_security_managers" + ] + ], + "rewards": { + "recipes": [ + "refinedstorage2:coloring/light_blue_security_manager" + ] + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_wireless_transmitter.json index c7b4ed99b..0750362c6 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_blue_wireless_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_wireless_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_wireless_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/light_blue_wireless_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_cable.json index 666af33e4..f2a2ddc6a 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_cable.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_cables", - "has_the_recipe" + "has_the_recipe", + "has_cables" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/light_gray_cable" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_constructor.json index 782ab7ae5..b40e6a001 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_constructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_constructors", - "has_the_recipe" + "has_the_recipe", + "has_constructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/light_gray_constructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_controller.json index 6060e0ed1..2a0344eb4 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_controller.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_controllers", - "has_the_recipe" + "has_the_recipe", + "has_controllers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/light_gray_controller" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_crafting_grid.json index db2fc8eba..1fc9ad612 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_crafting_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_crafting_grids", - "has_the_recipe" + "has_the_recipe", + "has_crafting_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/light_gray_crafting_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_destructor.json index 5d33992c5..f2a798a2d 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_destructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_destructors", - "has_the_recipe" + "has_the_recipe", + "has_destructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/light_gray_destructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_detector.json index be4f81bb3..4d554feca 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_detector.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_detectors", - "has_the_recipe" + "has_the_recipe", + "has_detectors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/light_gray_detector" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_exporter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_exporter.json index e4f023aa1..baa2b23aa 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_exporter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_exporter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_exporters", - "has_the_recipe" + "has_the_recipe", + "has_exporters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/light_gray_exporter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_external_storage.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_external_storage.json index 974296c55..7b9b00cb3 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_external_storage.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_external_storage.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_external_storages", - "has_the_recipe" + "has_the_recipe", + "has_external_storages" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/light_gray_external_storage" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_grid.json index 2dfa51383..8a5d3f4d4 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_grids", - "has_the_recipe" + "has_the_recipe", + "has_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/light_gray_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_importer.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_importer.json index 91cf433aa..1229fb09e 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_importer.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_importer.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_importers", - "has_the_recipe" + "has_the_recipe", + "has_importers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/light_gray_importer" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_network_receiver.json index 3ddba8f5d..edc0cafe1 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_network_receiver.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_receivers", - "has_the_recipe" + "has_the_recipe", + "has_network_receivers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/light_gray_network_receiver" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_network_transmitter.json index 691df5431..81ee89e5f 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_network_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_network_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/light_gray_network_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_security_manager.json new file mode 100644 index 000000000..be6a18ddb --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_security_manager.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_security_managers": { + "conditions": { + "items": [ + { + "tag": "refinedstorage2:security_managers" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "refinedstorage2:coloring/light_gray_security_manager" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_security_managers" + ] + ], + "rewards": { + "recipes": [ + "refinedstorage2:coloring/light_gray_security_manager" + ] + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_wireless_transmitter.json index 5909bc045..bf5c05053 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/light_gray_wireless_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_wireless_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_wireless_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/light_gray_wireless_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_cable.json index c7e42d10f..f036152b7 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_cable.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_cables", - "has_the_recipe" + "has_the_recipe", + "has_cables" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/lime_cable" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_constructor.json index ea634b284..af59234ad 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_constructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_constructors", - "has_the_recipe" + "has_the_recipe", + "has_constructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/lime_constructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_controller.json index 91d54260d..98a0b48c6 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_controller.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_controllers", - "has_the_recipe" + "has_the_recipe", + "has_controllers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/lime_controller" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_crafting_grid.json index 0a081c894..e8d644c80 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_crafting_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_crafting_grids", - "has_the_recipe" + "has_the_recipe", + "has_crafting_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/lime_crafting_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_destructor.json index 0ef8da2b0..7000778a6 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_destructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_destructors", - "has_the_recipe" + "has_the_recipe", + "has_destructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/lime_destructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_detector.json index 588d61bf7..059a9cec8 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_detector.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_detectors", - "has_the_recipe" + "has_the_recipe", + "has_detectors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/lime_detector" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_exporter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_exporter.json index 491635053..3a080ef54 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_exporter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_exporter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_exporters", - "has_the_recipe" + "has_the_recipe", + "has_exporters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/lime_exporter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_external_storage.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_external_storage.json index d6f916e86..5251287c0 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_external_storage.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_external_storage.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_external_storages", - "has_the_recipe" + "has_the_recipe", + "has_external_storages" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/lime_external_storage" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_grid.json index 1af9a55ef..3b644ae8e 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_grids", - "has_the_recipe" + "has_the_recipe", + "has_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/lime_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_importer.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_importer.json index 24b9b3c10..c18d8d042 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_importer.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_importer.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_importers", - "has_the_recipe" + "has_the_recipe", + "has_importers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/lime_importer" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_network_receiver.json index 4304825b5..13226fa91 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_network_receiver.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_receivers", - "has_the_recipe" + "has_the_recipe", + "has_network_receivers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/lime_network_receiver" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_network_transmitter.json index 27e675c29..8186b4d10 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_network_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_network_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/lime_network_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_security_manager.json new file mode 100644 index 000000000..727c71661 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_security_manager.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_security_managers": { + "conditions": { + "items": [ + { + "tag": "refinedstorage2:security_managers" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "refinedstorage2:coloring/lime_security_manager" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_security_managers" + ] + ], + "rewards": { + "recipes": [ + "refinedstorage2:coloring/lime_security_manager" + ] + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_wireless_transmitter.json index 73ca47661..6268dc123 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/lime_wireless_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_wireless_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_wireless_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/lime_wireless_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_cable.json index b94c91b41..fabef1c76 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_cable.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_cables", - "has_the_recipe" + "has_the_recipe", + "has_cables" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/magenta_cable" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_constructor.json index b88bbea84..1303f9eba 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_constructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_constructors", - "has_the_recipe" + "has_the_recipe", + "has_constructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/magenta_constructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_controller.json index 1b91de63e..45b19c436 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_controller.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_controllers", - "has_the_recipe" + "has_the_recipe", + "has_controllers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/magenta_controller" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_crafting_grid.json index 4a3cafa31..e553a097e 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_crafting_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_crafting_grids", - "has_the_recipe" + "has_the_recipe", + "has_crafting_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/magenta_crafting_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_destructor.json index 0b7c84f10..1285cc6ce 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_destructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_destructors", - "has_the_recipe" + "has_the_recipe", + "has_destructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/magenta_destructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_detector.json index b5c9feb2c..62d44798d 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_detector.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_detectors", - "has_the_recipe" + "has_the_recipe", + "has_detectors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/magenta_detector" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_exporter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_exporter.json index ee06fd332..400335a10 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_exporter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_exporter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_exporters", - "has_the_recipe" + "has_the_recipe", + "has_exporters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/magenta_exporter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_external_storage.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_external_storage.json index 87f47602b..19ffa164c 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_external_storage.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_external_storage.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_external_storages", - "has_the_recipe" + "has_the_recipe", + "has_external_storages" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/magenta_external_storage" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_grid.json index 66d028bea..a9e38b2d0 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_grids", - "has_the_recipe" + "has_the_recipe", + "has_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/magenta_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_importer.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_importer.json index 730c32126..bf6e0a693 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_importer.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_importer.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_importers", - "has_the_recipe" + "has_the_recipe", + "has_importers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/magenta_importer" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_network_receiver.json index 6eac125ee..186fdc0e1 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_network_receiver.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_receivers", - "has_the_recipe" + "has_the_recipe", + "has_network_receivers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/magenta_network_receiver" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_network_transmitter.json index 6cdba8303..99be2e932 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_network_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_network_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/magenta_network_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_security_manager.json new file mode 100644 index 000000000..4a1a0ae89 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_security_manager.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_security_managers": { + "conditions": { + "items": [ + { + "tag": "refinedstorage2:security_managers" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "refinedstorage2:coloring/magenta_security_manager" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_security_managers" + ] + ], + "rewards": { + "recipes": [ + "refinedstorage2:coloring/magenta_security_manager" + ] + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_wireless_transmitter.json index c75ed2bcc..fea49c827 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/magenta_wireless_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_wireless_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_wireless_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/magenta_wireless_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_cable.json index 72945e042..0285255cb 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_cable.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_cables", - "has_the_recipe" + "has_the_recipe", + "has_cables" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/orange_cable" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_constructor.json index 61f00552c..32c8ad26c 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_constructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_constructors", - "has_the_recipe" + "has_the_recipe", + "has_constructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/orange_constructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_controller.json index 1263fd5d9..49c981231 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_controller.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_controllers", - "has_the_recipe" + "has_the_recipe", + "has_controllers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/orange_controller" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_crafting_grid.json index fe6ca6b0f..e3539cf72 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_crafting_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_crafting_grids", - "has_the_recipe" + "has_the_recipe", + "has_crafting_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/orange_crafting_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_destructor.json index 6cd444479..f5f2a7aa2 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_destructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_destructors", - "has_the_recipe" + "has_the_recipe", + "has_destructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/orange_destructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_detector.json index 748706779..0e74d3dc6 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_detector.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_detectors", - "has_the_recipe" + "has_the_recipe", + "has_detectors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/orange_detector" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_exporter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_exporter.json index 1a90e567a..b75722db9 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_exporter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_exporter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_exporters", - "has_the_recipe" + "has_the_recipe", + "has_exporters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/orange_exporter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_external_storage.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_external_storage.json index c7d77e64b..231a43c1a 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_external_storage.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_external_storage.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_external_storages", - "has_the_recipe" + "has_the_recipe", + "has_external_storages" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/orange_external_storage" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_grid.json index c0e03af1f..851c33b29 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_grids", - "has_the_recipe" + "has_the_recipe", + "has_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/orange_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_importer.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_importer.json index ae1217e7f..7a61d79f6 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_importer.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_importer.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_importers", - "has_the_recipe" + "has_the_recipe", + "has_importers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/orange_importer" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_network_receiver.json index a68106768..b431a22cb 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_network_receiver.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_receivers", - "has_the_recipe" + "has_the_recipe", + "has_network_receivers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/orange_network_receiver" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_network_transmitter.json index bcf7a5a24..b5c9fee67 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_network_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_network_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/orange_network_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_security_manager.json new file mode 100644 index 000000000..f53c67264 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_security_manager.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_security_managers": { + "conditions": { + "items": [ + { + "tag": "refinedstorage2:security_managers" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "refinedstorage2:coloring/orange_security_manager" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_security_managers" + ] + ], + "rewards": { + "recipes": [ + "refinedstorage2:coloring/orange_security_manager" + ] + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_wireless_transmitter.json index 490111439..cf0d51e26 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/orange_wireless_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_wireless_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_wireless_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/orange_wireless_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_cable.json index d30654bfd..075f77bf9 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_cable.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_cables", - "has_the_recipe" + "has_the_recipe", + "has_cables" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/pink_cable" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_constructor.json index 38a138e1a..77a35f5e0 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_constructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_constructors", - "has_the_recipe" + "has_the_recipe", + "has_constructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/pink_constructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_controller.json index 2f9317058..ddcf2b74b 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_controller.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_controllers", - "has_the_recipe" + "has_the_recipe", + "has_controllers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/pink_controller" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_crafting_grid.json index 0ffcfbb5f..55eafcb5a 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_crafting_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_crafting_grids", - "has_the_recipe" + "has_the_recipe", + "has_crafting_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/pink_crafting_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_destructor.json index 9ff581aab..c0d6b97e1 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_destructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_destructors", - "has_the_recipe" + "has_the_recipe", + "has_destructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/pink_destructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_detector.json index 77f463847..bb09f83da 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_detector.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_detectors", - "has_the_recipe" + "has_the_recipe", + "has_detectors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/pink_detector" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_exporter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_exporter.json index 789ab4f22..9b15831dc 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_exporter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_exporter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_exporters", - "has_the_recipe" + "has_the_recipe", + "has_exporters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/pink_exporter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_external_storage.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_external_storage.json index 99aae73ee..b8992ae5d 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_external_storage.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_external_storage.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_external_storages", - "has_the_recipe" + "has_the_recipe", + "has_external_storages" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/pink_external_storage" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_grid.json index 267a3e7a1..ba5e6b45c 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_grids", - "has_the_recipe" + "has_the_recipe", + "has_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/pink_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_importer.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_importer.json index 88bd9162f..7d6ae0423 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_importer.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_importer.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_importers", - "has_the_recipe" + "has_the_recipe", + "has_importers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/pink_importer" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_network_receiver.json index 3d4551d03..7f409edd2 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_network_receiver.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_receivers", - "has_the_recipe" + "has_the_recipe", + "has_network_receivers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/pink_network_receiver" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_network_transmitter.json index cbb5dbab7..2a182295a 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_network_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_network_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/pink_network_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_security_manager.json new file mode 100644 index 000000000..dc4adf64e --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_security_manager.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_security_managers": { + "conditions": { + "items": [ + { + "tag": "refinedstorage2:security_managers" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "refinedstorage2:coloring/pink_security_manager" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_security_managers" + ] + ], + "rewards": { + "recipes": [ + "refinedstorage2:coloring/pink_security_manager" + ] + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_wireless_transmitter.json index 9b36d5e85..74e50c3f3 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/pink_wireless_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_wireless_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_wireless_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/pink_wireless_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_cable.json index 02a4a193a..c3f5c4b7c 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_cable.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_cables", - "has_the_recipe" + "has_the_recipe", + "has_cables" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/purple_cable" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_constructor.json index b67f655dc..6491e37b5 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_constructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_constructors", - "has_the_recipe" + "has_the_recipe", + "has_constructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/purple_constructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_controller.json index a6117bf26..3b99479f9 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_controller.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_controllers", - "has_the_recipe" + "has_the_recipe", + "has_controllers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/purple_controller" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_crafting_grid.json index 41d2a0d9f..6131d8467 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_crafting_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_crafting_grids", - "has_the_recipe" + "has_the_recipe", + "has_crafting_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/purple_crafting_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_destructor.json index de5af634c..1adb6c96a 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_destructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_destructors", - "has_the_recipe" + "has_the_recipe", + "has_destructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/purple_destructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_detector.json index 64af6ac2e..9bef13044 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_detector.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_detectors", - "has_the_recipe" + "has_the_recipe", + "has_detectors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/purple_detector" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_exporter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_exporter.json index 8f7c72887..97ed5f52b 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_exporter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_exporter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_exporters", - "has_the_recipe" + "has_the_recipe", + "has_exporters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/purple_exporter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_external_storage.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_external_storage.json index 9289c8dfa..5129f4a43 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_external_storage.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_external_storage.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_external_storages", - "has_the_recipe" + "has_the_recipe", + "has_external_storages" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/purple_external_storage" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_grid.json index 4e5ea53f3..0daf73dc0 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_grids", - "has_the_recipe" + "has_the_recipe", + "has_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/purple_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_importer.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_importer.json index 60b172977..32b71ef30 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_importer.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_importer.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_importers", - "has_the_recipe" + "has_the_recipe", + "has_importers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/purple_importer" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_network_receiver.json index cf37cb575..53cb7df95 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_network_receiver.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_receivers", - "has_the_recipe" + "has_the_recipe", + "has_network_receivers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/purple_network_receiver" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_network_transmitter.json index aba85fa45..9babbd664 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_network_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_network_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/purple_network_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_security_manager.json new file mode 100644 index 000000000..8fb8d9831 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_security_manager.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_security_managers": { + "conditions": { + "items": [ + { + "tag": "refinedstorage2:security_managers" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "refinedstorage2:coloring/purple_security_manager" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_security_managers" + ] + ], + "rewards": { + "recipes": [ + "refinedstorage2:coloring/purple_security_manager" + ] + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_wireless_transmitter.json index 7fbd3a1fa..e82d0ed5d 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/purple_wireless_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_wireless_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_wireless_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/purple_wireless_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_cable.json index 5f287b2cc..ebdc8bc40 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_cable.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_cables", - "has_the_recipe" + "has_the_recipe", + "has_cables" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/red_cable" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_constructor.json index ee73bce20..06d07941c 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_constructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_constructors", - "has_the_recipe" + "has_the_recipe", + "has_constructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/red_constructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_controller.json index 5f680cce5..dac1b12d5 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_controller.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_controllers", - "has_the_recipe" + "has_the_recipe", + "has_controllers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/red_controller" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_crafting_grid.json index 0adc4a01e..2de8f3d60 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_crafting_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_crafting_grids", - "has_the_recipe" + "has_the_recipe", + "has_crafting_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/red_crafting_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_destructor.json index 711816674..47d2b537c 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_destructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_destructors", - "has_the_recipe" + "has_the_recipe", + "has_destructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/red_destructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_detector.json index 98253ce6f..88044470f 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_detector.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_detectors", - "has_the_recipe" + "has_the_recipe", + "has_detectors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/red_detector" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_exporter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_exporter.json index 7ae723b27..b1bda95f9 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_exporter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_exporter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_exporters", - "has_the_recipe" + "has_the_recipe", + "has_exporters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/red_exporter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_external_storage.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_external_storage.json index 02809c018..ca6b06064 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_external_storage.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_external_storage.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_external_storages", - "has_the_recipe" + "has_the_recipe", + "has_external_storages" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/red_external_storage" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_grid.json index 86e8e50cb..20c87df16 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_grids", - "has_the_recipe" + "has_the_recipe", + "has_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/red_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_importer.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_importer.json index e32ce9456..34b68501b 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_importer.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_importer.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_importers", - "has_the_recipe" + "has_the_recipe", + "has_importers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/red_importer" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_network_receiver.json index 7a0d917dd..e19c1aca1 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_network_receiver.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_receivers", - "has_the_recipe" + "has_the_recipe", + "has_network_receivers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/red_network_receiver" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_network_transmitter.json index 178e31944..04ca13c8a 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_network_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_network_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/red_network_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_security_manager.json new file mode 100644 index 000000000..91eb31661 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_security_manager.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_security_managers": { + "conditions": { + "items": [ + { + "tag": "refinedstorage2:security_managers" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "refinedstorage2:coloring/red_security_manager" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_security_managers" + ] + ], + "rewards": { + "recipes": [ + "refinedstorage2:coloring/red_security_manager" + ] + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_wireless_transmitter.json index fcd5ba77d..01070f18d 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/red_wireless_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_wireless_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_wireless_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/red_wireless_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_cable.json index 0ba766635..a7b1b118a 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_cable.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_cables", - "has_the_recipe" + "has_the_recipe", + "has_cables" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/white_cable" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_constructor.json index bc6e21f0d..ed20df42f 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_constructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_constructors", - "has_the_recipe" + "has_the_recipe", + "has_constructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/white_constructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_controller.json index 118fd3bf5..4801f1d09 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_controller.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_controllers", - "has_the_recipe" + "has_the_recipe", + "has_controllers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/white_controller" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_crafting_grid.json index 9ecb9b6dd..86d8d6d4f 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_crafting_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_crafting_grids", - "has_the_recipe" + "has_the_recipe", + "has_crafting_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/white_crafting_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_destructor.json index 51ad4bbcf..1b16d153f 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_destructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_destructors", - "has_the_recipe" + "has_the_recipe", + "has_destructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/white_destructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_detector.json index 33a26237b..cbcba7a1d 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_detector.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_detectors", - "has_the_recipe" + "has_the_recipe", + "has_detectors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/white_detector" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_exporter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_exporter.json index 27ed7a5b8..44ced3052 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_exporter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_exporter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_exporters", - "has_the_recipe" + "has_the_recipe", + "has_exporters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/white_exporter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_external_storage.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_external_storage.json index d7243cd7b..ef91d74df 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_external_storage.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_external_storage.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_external_storages", - "has_the_recipe" + "has_the_recipe", + "has_external_storages" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/white_external_storage" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_grid.json index c034d5c54..946abadf9 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_grids", - "has_the_recipe" + "has_the_recipe", + "has_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/white_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_importer.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_importer.json index 33ab1737e..4c4b35fac 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_importer.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_importer.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_importers", - "has_the_recipe" + "has_the_recipe", + "has_importers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/white_importer" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_network_receiver.json index c0d7cf997..d1630ef19 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_network_receiver.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_receivers", - "has_the_recipe" + "has_the_recipe", + "has_network_receivers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/white_network_receiver" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_network_transmitter.json index e173f3582..36b49b2ae 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_network_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_network_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/white_network_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_security_manager.json new file mode 100644 index 000000000..cb8ea3ca4 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_security_manager.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_security_managers": { + "conditions": { + "items": [ + { + "tag": "refinedstorage2:security_managers" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "refinedstorage2:coloring/white_security_manager" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_security_managers" + ] + ], + "rewards": { + "recipes": [ + "refinedstorage2:coloring/white_security_manager" + ] + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_wireless_transmitter.json index dac38efab..0ae9fd1ec 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/white_wireless_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_wireless_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_wireless_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/white_wireless_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_cable.json index dc8637946..f725523f7 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_cable.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_cables", - "has_the_recipe" + "has_the_recipe", + "has_cables" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/yellow_cable" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_constructor.json index 49fad2a85..93ddb72fa 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_constructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_constructors", - "has_the_recipe" + "has_the_recipe", + "has_constructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/yellow_constructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_controller.json index fea864e44..dc7fc6e3f 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_controller.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_controllers", - "has_the_recipe" + "has_the_recipe", + "has_controllers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/yellow_controller" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_crafting_grid.json index 7ad62c552..793f0105a 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_crafting_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_crafting_grids", - "has_the_recipe" + "has_the_recipe", + "has_crafting_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/yellow_crafting_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_destructor.json index e700d3ff1..0a1688f8e 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_destructor.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_destructors", - "has_the_recipe" + "has_the_recipe", + "has_destructors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/yellow_destructor" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_detector.json index 4bce6d300..ea594146f 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_detector.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_detectors", - "has_the_recipe" + "has_the_recipe", + "has_detectors" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/yellow_detector" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_exporter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_exporter.json index aef2ee98d..50b5808ed 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_exporter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_exporter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_exporters", - "has_the_recipe" + "has_the_recipe", + "has_exporters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/yellow_exporter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_external_storage.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_external_storage.json index 57927b01a..fa82da1df 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_external_storage.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_external_storage.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_external_storages", - "has_the_recipe" + "has_the_recipe", + "has_external_storages" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/yellow_external_storage" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_grid.json index 6fae68308..e1ffee07d 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_grid.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_grids", - "has_the_recipe" + "has_the_recipe", + "has_grids" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/yellow_grid" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_importer.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_importer.json index b24d50eeb..38e632731 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_importer.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_importer.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_importers", - "has_the_recipe" + "has_the_recipe", + "has_importers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/yellow_importer" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_network_receiver.json index 28300c863..9ef41ddc1 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_network_receiver.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_receivers", - "has_the_recipe" + "has_the_recipe", + "has_network_receivers" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/yellow_network_receiver" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_network_transmitter.json index 68a1b2078..503197c8b 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_network_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_network_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_network_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/yellow_network_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_security_manager.json new file mode 100644 index 000000000..3a3b93a86 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_security_manager.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_security_managers": { + "conditions": { + "items": [ + { + "tag": "refinedstorage2:security_managers" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "refinedstorage2:coloring/yellow_security_manager" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_security_managers" + ] + ], + "rewards": { + "recipes": [ + "refinedstorage2:coloring/yellow_security_manager" + ] + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_wireless_transmitter.json index 7441aac81..ced350d20 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/advancements/recipes/misc/coloring/yellow_wireless_transmitter.json @@ -20,14 +20,13 @@ }, "requirements": [ [ - "has_wireless_transmitters", - "has_the_recipe" + "has_the_recipe", + "has_wireless_transmitters" ] ], "rewards": { "recipes": [ "refinedstorage2:coloring/yellow_wireless_transmitter" ] - }, - "sends_telemetry_event": false + } } \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_cable.json index e2cfdf303..eff94e73f 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_cable.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_constructor.json index 52234d1e6..753922d66 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_constructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_controller.json index c3b8bf3b0..01bc58310 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "functions": [ { "function": "refinedstorage2:energy" diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_crafting_grid.json index 15dce14b8..4a80bf7d7 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_crafting_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_creative_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_creative_controller.json index 796ee92a0..d43a40079 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_creative_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_creative_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_destructor.json index 2e74ccb8f..3ac5fd96a 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_destructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_detector.json index ec453b08b..55dca85cf 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_detector.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_grid.json index 7b3915599..b74138620 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_network_receiver.json index 0ffff7793..2a5a00d4e 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_network_receiver.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_network_transmitter.json index f925deda4..2ce2581b7 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_network_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_security_manager.json new file mode 100644 index 000000000..4fd9781dd --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_security_manager.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "refinedstorage2:black_security_manager" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "refinedstorage2:blocks/black_security_manager" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_wireless_transmitter.json index aac4414b8..71b4c8adb 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/black_wireless_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_cable.json index 8e60be672..563325194 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_cable.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_constructor.json index 7337fb0ac..388e5bdc0 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_constructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_controller.json index 0bbd4161a..390df51b6 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "functions": [ { "function": "refinedstorage2:energy" diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_crafting_grid.json index 52b199ebb..1750a90b1 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_crafting_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_creative_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_creative_controller.json index f95ab87ed..64cf2a64e 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_creative_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_creative_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_destructor.json index 79f923813..e1005c998 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_destructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_detector.json index ad0a77e16..acef0289b 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_detector.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_grid.json index ec94cd31f..be447f5c9 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_network_receiver.json index dd9a16080..7f7f55aaf 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_network_receiver.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_network_transmitter.json index 44656ecfa..4b6d5871a 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_network_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_security_manager.json new file mode 100644 index 000000000..c6b69b0e3 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_security_manager.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "refinedstorage2:blue_security_manager" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "refinedstorage2:blocks/blue_security_manager" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_wireless_transmitter.json index 700a5b4d5..376e0aa4b 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/blue_wireless_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_cable.json index c0de48a91..0100a7b2c 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_cable.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_constructor.json index cb5beced7..9c07417e5 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_constructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_controller.json index 6f7131de0..b01b69478 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "functions": [ { "function": "refinedstorage2:energy" diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_crafting_grid.json index 544eef0d5..ce03dd013 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_crafting_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_creative_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_creative_controller.json index 7390d4919..06c1cd897 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_creative_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_creative_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_destructor.json index d3f32fd39..28591c9e7 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_destructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_detector.json index 4dcf4fb8f..ceb90498a 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_detector.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_grid.json index 18ad70cc3..a5573be2e 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_network_receiver.json index 126e8020a..4968b9168 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_network_receiver.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_network_transmitter.json index 4e548e328..3196e10e6 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_network_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_security_manager.json new file mode 100644 index 000000000..316fbf1f7 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_security_manager.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "refinedstorage2:brown_security_manager" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "refinedstorage2:blocks/brown_security_manager" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_wireless_transmitter.json index 999709155..e8deea0e8 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/brown_wireless_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cable.json index bc75140b7..b1be9e0da 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cable.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/constructor.json index c828c3788..7c2b6d059 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/constructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/controller.json index af54b8c3a..c90360d3b 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "functions": [ { "function": "refinedstorage2:energy" diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/crafting_grid.json index 64f93b407..c96954927 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/crafting_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/creative_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/creative_controller.json index dd6f3550e..e4657e54b 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/creative_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/creative_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_cable.json index 478b80a7d..339b1c487 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_cable.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_constructor.json index cb8fdf17f..8d0b3bd0a 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_constructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_controller.json index d892078dc..d67a53588 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "functions": [ { "function": "refinedstorage2:energy" diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_crafting_grid.json index e16bfd020..ed3650356 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_crafting_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_creative_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_creative_controller.json index 538f397d0..c67540990 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_creative_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_creative_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_destructor.json index 372aae582..a78b7a597 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_destructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_detector.json index 321be8bf1..aae8bcf1e 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_detector.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_grid.json index 4a05ed59f..f4ef95783 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_network_receiver.json index 09b99f3ff..336cfb96a 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_network_receiver.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_network_transmitter.json index f92f09225..b0ad4ad1f 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_network_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_security_manager.json new file mode 100644 index 000000000..6e3cd9ddf --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_security_manager.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "refinedstorage2:cyan_security_manager" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "refinedstorage2:blocks/cyan_security_manager" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_wireless_transmitter.json index bc519e8f2..ffa5b37d4 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/cyan_wireless_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/destructor.json index 66aea6788..daed8dffa 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/destructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/detector.json index 505644a67..e49d218e0 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/detector.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_controller.json index 56b7bec33..023383749 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "functions": [ { "function": "refinedstorage2:energy" diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_crafting_grid.json index af754251c..ef824f9e8 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_crafting_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_creative_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_creative_controller.json index c905f2260..0efaad58a 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_creative_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_creative_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_detector.json index 066c3ee66..e42e98f0d 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_detector.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_grid.json index 7667ffc26..093482b2c 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_network_receiver.json index 0b6fa43d1..391a6546c 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_network_receiver.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_network_transmitter.json index b4ad2b8f3..496d28ea7 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_network_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_security_manager.json new file mode 100644 index 000000000..d90110b34 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_security_manager.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "refinedstorage2:gray_security_manager" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "refinedstorage2:blocks/gray_security_manager" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_wireless_transmitter.json index 57a970c1b..663c4db65 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/gray_wireless_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_cable.json index cddce171f..1b14dae94 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_cable.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_constructor.json index 73b3c1a9f..1d25fc4b6 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_constructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_controller.json index c09b4bceb..083a51bc7 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "functions": [ { "function": "refinedstorage2:energy" diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_crafting_grid.json index 7386f9e02..a806a35b6 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_crafting_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_creative_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_creative_controller.json index 57082d5a1..a76bf9664 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_creative_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_creative_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_destructor.json index b8761d8ec..cd2d9f2f3 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_destructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_detector.json index ae5a4b356..bc173e80a 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_detector.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_grid.json index c64bc912b..23f41e9cc 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_network_receiver.json index db633f063..439eb4a2d 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_network_receiver.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_network_transmitter.json index 954149bde..8a9a96cdc 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_network_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_security_manager.json new file mode 100644 index 000000000..b63db65e0 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_security_manager.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "refinedstorage2:green_security_manager" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "refinedstorage2:blocks/green_security_manager" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_wireless_transmitter.json index fcdf20e4f..4c1dfaff6 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/green_wireless_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/grid.json index ed2c54f9c..20c0277bb 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_blue_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_blue_cable.json index e938f9347..7491212a7 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_blue_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_blue_cable.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_blue_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_blue_constructor.json index 65c0f40a0..32bbf6e2f 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_blue_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_blue_constructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_blue_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_blue_destructor.json index a0d3a4f89..49af40ee0 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_blue_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_blue_destructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_cable.json index 12085e27a..91b44a8db 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_cable.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_constructor.json index 239a790f8..156bcec4c 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_constructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_controller.json index 516f38265..28742125c 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "functions": [ { "function": "refinedstorage2:energy" diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_crafting_grid.json index 5807a3694..4aad99ac8 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_crafting_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_creative_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_creative_controller.json index 3758999fb..e8b44c91a 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_creative_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_creative_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_destructor.json index a7db33903..72bbe173d 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_destructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_detector.json index 4fe040506..99971e977 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_detector.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_grid.json index 08b41c906..cba39f571 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_network_receiver.json index 3e81cc321..fffe0d175 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_network_receiver.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_network_transmitter.json index 48e4801ea..7c7b2060e 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_network_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_security_manager.json new file mode 100644 index 000000000..ebf2714e3 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_security_manager.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "refinedstorage2:light_gray_security_manager" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "refinedstorage2:blocks/light_gray_security_manager" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_wireless_transmitter.json index 63a18bdc3..05dcfb99a 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/light_gray_wireless_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_cable.json index b801d3d03..e5ba63283 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_cable.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_constructor.json index 6a2ba44be..5cbc5a8bb 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_constructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_controller.json index 5a14808ad..def85bb51 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "functions": [ { "function": "refinedstorage2:energy" diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_crafting_grid.json index 5d9304d3f..3119b1de4 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_crafting_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_creative_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_creative_controller.json index 54c894202..abda659ee 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_creative_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_creative_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_destructor.json index ad178ca74..35204ed7f 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_destructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_detector.json index 808d8d8b0..4ced33fd0 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_detector.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_grid.json index 78b70f199..f617cf60a 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_network_receiver.json index 7e2244265..a77be133b 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_network_receiver.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_network_transmitter.json index eed497cfa..3003ee5ca 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_network_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_security_manager.json new file mode 100644 index 000000000..99a7b4554 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_security_manager.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "refinedstorage2:lime_security_manager" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "refinedstorage2:blocks/lime_security_manager" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_wireless_transmitter.json index 49c297dc6..e661ef3b1 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/lime_wireless_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_cable.json index c17cc4dae..a9925716d 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_cable.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_constructor.json index cf1d4b808..e03d2e406 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_constructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_controller.json index 1e6f015e8..d2d6e9785 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "functions": [ { "function": "refinedstorage2:energy" diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_crafting_grid.json index 5919d0f2a..8ec7cedb1 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_crafting_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_creative_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_creative_controller.json index 29fd85f5b..fb9cfcd94 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_creative_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_creative_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_destructor.json index 6a1aacd9a..8e461396e 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_destructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_detector.json index f1be4a1ab..0dc9901a6 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_detector.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_grid.json index 7a60d4239..2e8e1464d 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_network_receiver.json index eda8e2384..176a955c1 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_network_receiver.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_network_transmitter.json index 15777c802..782b74e49 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_network_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_security_manager.json new file mode 100644 index 000000000..3c90dc9c2 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_security_manager.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "refinedstorage2:magenta_security_manager" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "refinedstorage2:blocks/magenta_security_manager" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_wireless_transmitter.json index 5694135d2..a63f5a601 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/magenta_wireless_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/network_receiver.json index 34a5d8900..47358ed7a 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/network_receiver.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/network_transmitter.json index 80d86c15b..df0825083 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/network_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_cable.json index f8a86ba33..5910707d0 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_cable.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_constructor.json index 054d147b3..22d46c36f 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_constructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_controller.json index af69c7994..48cc35100 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "functions": [ { "function": "refinedstorage2:energy" diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_crafting_grid.json index 185bb57e6..c9321c88d 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_crafting_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_creative_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_creative_controller.json index c3f2ef813..d027af4b9 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_creative_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_creative_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_destructor.json index b11ad2b40..19a0e2596 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_destructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_detector.json index 53503f347..db1e1ed96 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_detector.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_grid.json index 44634b606..b011aaecd 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_network_receiver.json index f61f350bd..98722f49f 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_network_receiver.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_network_transmitter.json index 5bab22f68..4c3beee56 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_network_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_security_manager.json new file mode 100644 index 000000000..326088094 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_security_manager.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "refinedstorage2:orange_security_manager" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "refinedstorage2:blocks/orange_security_manager" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_wireless_transmitter.json index 86becf6e7..e3ef20fc5 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/orange_wireless_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_cable.json index ef42b7fbd..31d0a4961 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_cable.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_constructor.json index 133ee2c9d..690f0268f 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_constructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_controller.json index 4b750c25b..af41cdaa9 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "functions": [ { "function": "refinedstorage2:energy" diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_crafting_grid.json index 6a5a11f7a..703b20845 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_crafting_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_creative_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_creative_controller.json index e8957e2d3..7ab6dbfc7 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_creative_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_creative_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_destructor.json index d0123f4cf..40e00870c 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_destructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_detector.json index ddaffe7b7..895fca408 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_detector.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_grid.json index 7aca478b3..f39fc6644 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_network_receiver.json index 962eea8de..30297ee72 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_network_receiver.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_network_transmitter.json index 70c0580c8..46de8d798 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_network_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_security_manager.json new file mode 100644 index 000000000..e2ff9bf92 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_security_manager.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "refinedstorage2:pink_security_manager" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "refinedstorage2:blocks/pink_security_manager" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_wireless_transmitter.json index 162626eaa..da03da537 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/pink_wireless_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_cable.json index 8eb0d07c2..f96f27896 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_cable.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_constructor.json index 3e3d8d945..322f8ee65 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_constructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_controller.json index cca450e42..8686b8aae 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "functions": [ { "function": "refinedstorage2:energy" diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_crafting_grid.json index a229fb325..e2d0b1a01 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_crafting_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_creative_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_creative_controller.json index d3859283a..dc8360927 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_creative_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_creative_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_destructor.json index 8c39f9ffb..5112e726d 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_destructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_detector.json index 9b1540893..bbaa5a9cc 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_detector.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_grid.json index 3531b1eeb..7107b2627 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_network_receiver.json index 59612d49b..ac5c1f0e2 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_network_receiver.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_network_transmitter.json index 71e632a40..7fb4dd113 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_network_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_security_manager.json new file mode 100644 index 000000000..6975ab4da --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_security_manager.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "refinedstorage2:purple_security_manager" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "refinedstorage2:blocks/purple_security_manager" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_wireless_transmitter.json index a39f427aa..f3674203f 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/purple_wireless_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_cable.json index c47ac0e54..4c23ac676 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_cable.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_constructor.json index 0a103c014..90122e7c5 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_constructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_controller.json index bdd81d2d7..0b9348890 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "functions": [ { "function": "refinedstorage2:energy" diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_crafting_grid.json index 23c3ede51..7246dc446 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_crafting_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_creative_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_creative_controller.json index 1c47f0137..fc039287a 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_creative_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_creative_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_destructor.json index 61642d00e..e4a8e5050 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_destructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_detector.json index 73081eb78..d394bd026 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_detector.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_grid.json index 0457f182a..c894a3ca4 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_network_receiver.json index 9019cb58b..fc732590f 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_network_receiver.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_network_transmitter.json index d891359c3..2d253ea54 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_network_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_security_manager.json new file mode 100644 index 000000000..989b85699 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_security_manager.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "refinedstorage2:red_security_manager" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "refinedstorage2:blocks/red_security_manager" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_wireless_transmitter.json index aaaee6423..a2ebfb507 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/red_wireless_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/security_manager.json new file mode 100644 index 000000000..b98b0b671 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/security_manager.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "refinedstorage2:security_manager" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "refinedstorage2:blocks/security_manager" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_cable.json index a7668c676..a748edeac 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_cable.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_constructor.json index bf11acf4f..5b6a1c86d 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_constructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_controller.json index 682dd8150..04ae38487 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "functions": [ { "function": "refinedstorage2:energy" diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_crafting_grid.json index 7e0b47cec..6ae9c631a 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_crafting_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_creative_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_creative_controller.json index 0950b095b..927a4cd6c 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_creative_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_creative_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_destructor.json index 5f53b01d4..ad803f531 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_destructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_detector.json index 04695cf34..d149876b4 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_detector.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_grid.json index e9e0b79fb..edfd2aba3 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_network_receiver.json index cccc597dc..beab19808 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_network_receiver.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_network_transmitter.json index 4c1bdc48a..b3407b6b8 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_network_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_security_manager.json new file mode 100644 index 000000000..1bb6ac5e7 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_security_manager.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "refinedstorage2:white_security_manager" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "refinedstorage2:blocks/white_security_manager" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_wireless_transmitter.json index 0ef3b6fb2..d3cc6214a 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/white_wireless_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/wireless_transmitter.json index 193747431..f86b96a1a 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/wireless_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_cable.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_cable.json index 6dd9e5b74..ccebb6c10 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_cable.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_cable.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_constructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_constructor.json index 0003bab4f..72570910d 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_constructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_constructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_controller.json index 3497684bf..351b5d8e1 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "functions": [ { "function": "refinedstorage2:energy" diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_crafting_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_crafting_grid.json index 2336129d9..450c5b703 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_crafting_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_crafting_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_creative_controller.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_creative_controller.json index cbd6769a0..2ee3240be 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_creative_controller.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_creative_controller.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_destructor.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_destructor.json index a6fd2e5a3..cc5abe315 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_destructor.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_destructor.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_detector.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_detector.json index c93c8db28..a0cea357f 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_detector.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_detector.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_grid.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_grid.json index 5e966b46e..4a2960442 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_grid.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_grid.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_network_receiver.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_network_receiver.json index 9aa605850..5dd21ad2a 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_network_receiver.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_network_receiver.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_network_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_network_transmitter.json index 14549c329..b92dc2c60 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_network_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_network_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_security_manager.json new file mode 100644 index 000000000..47f43dbc6 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_security_manager.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "refinedstorage2:yellow_security_manager" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "refinedstorage2:blocks/yellow_security_manager" +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_wireless_transmitter.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_wireless_transmitter.json index a977b9fbb..74fe8195b 100644 --- a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_wireless_transmitter.json +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/loot_tables/blocks/yellow_wireless_transmitter.json @@ -1,4 +1,5 @@ { + "type": "minecraft:block", "pools": [ { "bonus_rolls": 0.0, diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/black_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/black_security_manager.json new file mode 100644 index 000000000..82f2b3780 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/black_security_manager.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "tag": "refinedstorage2:security_managers" + }, + { + "item": "minecraft:black_dye" + } + ], + "result": { + "item": "refinedstorage2:black_security_manager" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/blue_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/blue_security_manager.json new file mode 100644 index 000000000..c5416e72f --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/blue_security_manager.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "tag": "refinedstorage2:security_managers" + }, + { + "item": "minecraft:blue_dye" + } + ], + "result": { + "item": "refinedstorage2:blue_security_manager" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/brown_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/brown_security_manager.json new file mode 100644 index 000000000..287036f5a --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/brown_security_manager.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "tag": "refinedstorage2:security_managers" + }, + { + "item": "minecraft:brown_dye" + } + ], + "result": { + "item": "refinedstorage2:brown_security_manager" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/cyan_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/cyan_security_manager.json new file mode 100644 index 000000000..8f3dd7cc5 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/cyan_security_manager.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "tag": "refinedstorage2:security_managers" + }, + { + "item": "minecraft:cyan_dye" + } + ], + "result": { + "item": "refinedstorage2:cyan_security_manager" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/gray_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/gray_security_manager.json new file mode 100644 index 000000000..f5926ad95 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/gray_security_manager.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "tag": "refinedstorage2:security_managers" + }, + { + "item": "minecraft:gray_dye" + } + ], + "result": { + "item": "refinedstorage2:gray_security_manager" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/green_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/green_security_manager.json new file mode 100644 index 000000000..5e9f5db34 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/green_security_manager.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "tag": "refinedstorage2:security_managers" + }, + { + "item": "minecraft:green_dye" + } + ], + "result": { + "item": "refinedstorage2:green_security_manager" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/light_blue_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/light_blue_security_manager.json new file mode 100644 index 000000000..d9026e427 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/light_blue_security_manager.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "tag": "refinedstorage2:security_managers" + }, + { + "item": "minecraft:light_blue_dye" + } + ], + "result": { + "item": "refinedstorage2:security_manager" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/light_gray_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/light_gray_security_manager.json new file mode 100644 index 000000000..8d044e90f --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/light_gray_security_manager.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "tag": "refinedstorage2:security_managers" + }, + { + "item": "minecraft:light_gray_dye" + } + ], + "result": { + "item": "refinedstorage2:light_gray_security_manager" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/lime_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/lime_security_manager.json new file mode 100644 index 000000000..b66210948 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/lime_security_manager.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "tag": "refinedstorage2:security_managers" + }, + { + "item": "minecraft:lime_dye" + } + ], + "result": { + "item": "refinedstorage2:lime_security_manager" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/magenta_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/magenta_security_manager.json new file mode 100644 index 000000000..29a1ef8de --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/magenta_security_manager.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "tag": "refinedstorage2:security_managers" + }, + { + "item": "minecraft:magenta_dye" + } + ], + "result": { + "item": "refinedstorage2:magenta_security_manager" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/orange_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/orange_security_manager.json new file mode 100644 index 000000000..1d1d32708 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/orange_security_manager.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "tag": "refinedstorage2:security_managers" + }, + { + "item": "minecraft:orange_dye" + } + ], + "result": { + "item": "refinedstorage2:orange_security_manager" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/pink_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/pink_security_manager.json new file mode 100644 index 000000000..0730360e5 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/pink_security_manager.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "tag": "refinedstorage2:security_managers" + }, + { + "item": "minecraft:pink_dye" + } + ], + "result": { + "item": "refinedstorage2:pink_security_manager" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/purple_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/purple_security_manager.json new file mode 100644 index 000000000..014bf959a --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/purple_security_manager.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "tag": "refinedstorage2:security_managers" + }, + { + "item": "minecraft:purple_dye" + } + ], + "result": { + "item": "refinedstorage2:purple_security_manager" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/red_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/red_security_manager.json new file mode 100644 index 000000000..5183299ab --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/red_security_manager.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "tag": "refinedstorage2:security_managers" + }, + { + "item": "minecraft:red_dye" + } + ], + "result": { + "item": "refinedstorage2:red_security_manager" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/white_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/white_security_manager.json new file mode 100644 index 000000000..c84fd7abc --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/white_security_manager.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "tag": "refinedstorage2:security_managers" + }, + { + "item": "minecraft:white_dye" + } + ], + "result": { + "item": "refinedstorage2:white_security_manager" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/yellow_security_manager.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/yellow_security_manager.json new file mode 100644 index 000000000..c6a01a55f --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/recipes/coloring/yellow_security_manager.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "tag": "refinedstorage2:security_managers" + }, + { + "item": "minecraft:yellow_dye" + } + ], + "result": { + "item": "refinedstorage2:yellow_security_manager" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/tags/items/security_managers.json b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/tags/items/security_managers.json new file mode 100644 index 000000000..1ad2bddc6 --- /dev/null +++ b/refinedstorage2-platform-common/src/generated/resources/data/refinedstorage2/tags/items/security_managers.json @@ -0,0 +1,20 @@ +{ + "values": [ + "refinedstorage2:white_security_manager", + "refinedstorage2:orange_security_manager", + "refinedstorage2:magenta_security_manager", + "refinedstorage2:security_manager", + "refinedstorage2:yellow_security_manager", + "refinedstorage2:lime_security_manager", + "refinedstorage2:pink_security_manager", + "refinedstorage2:gray_security_manager", + "refinedstorage2:light_gray_security_manager", + "refinedstorage2:cyan_security_manager", + "refinedstorage2:purple_security_manager", + "refinedstorage2:blue_security_manager", + "refinedstorage2:brown_security_manager", + "refinedstorage2:green_security_manager", + "refinedstorage2:red_security_manager", + "refinedstorage2:black_security_manager" + ] +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/AbstractClientModInitializer.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/AbstractClientModInitializer.java index b708c7a0b..8530d48e2 100644 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/AbstractClientModInitializer.java +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/AbstractClientModInitializer.java @@ -20,6 +20,7 @@ import com.refinedmods.refinedstorage2.platform.common.networking.NetworkTransmitterScreen; import com.refinedmods.refinedstorage2.platform.common.security.FallbackSecurityCardScreen; import com.refinedmods.refinedstorage2.platform.common.security.SecurityCardScreen; +import com.refinedmods.refinedstorage2.platform.common.security.SecurityManagerScreen; import com.refinedmods.refinedstorage2.platform.common.storage.FluidStorageType; import com.refinedmods.refinedstorage2.platform.common.storage.ItemStorageType; import com.refinedmods.refinedstorage2.platform.common.storage.diskdrive.DiskDriveScreen; @@ -79,6 +80,7 @@ protected static void registerScreens(final ScreenRegistration registration) { registration.register(Menus.INSTANCE.getPortableGridItem(), PortableGridScreen::new); registration.register(Menus.INSTANCE.getSecurityCard(), SecurityCardScreen::new); registration.register(Menus.INSTANCE.getFallbackSecurityCard(), FallbackSecurityCardScreen::new); + registration.register(Menus.INSTANCE.getSecurityManager(), SecurityManagerScreen::new); } protected static void registerAlternativeGridHints() { diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/AbstractModInitializer.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/AbstractModInitializer.java index b5b1db776..ec59e5ae6 100644 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/AbstractModInitializer.java +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/AbstractModInitializer.java @@ -57,6 +57,8 @@ import com.refinedmods.refinedstorage2.platform.common.security.BuiltinPermission; import com.refinedmods.refinedstorage2.platform.common.security.FallbackSecurityCardContainerMenu; import com.refinedmods.refinedstorage2.platform.common.security.SecurityCardContainerMenu; +import com.refinedmods.refinedstorage2.platform.common.security.SecurityManagerBlockEntity; +import com.refinedmods.refinedstorage2.platform.common.security.SecurityManagerContainerMenu; import com.refinedmods.refinedstorage2.platform.common.storage.FluidStorageType; import com.refinedmods.refinedstorage2.platform.common.storage.ItemStorageType; import com.refinedmods.refinedstorage2.platform.common.storage.StorageTypes; @@ -154,6 +156,7 @@ import static com.refinedmods.refinedstorage2.platform.common.content.ContentIds.QUARTZ_ENRICHED_IRON_BLOCK; import static com.refinedmods.refinedstorage2.platform.common.content.ContentIds.REGULATOR_UPGRADE; import static com.refinedmods.refinedstorage2.platform.common.content.ContentIds.SECURITY_CARD; +import static com.refinedmods.refinedstorage2.platform.common.content.ContentIds.SECURITY_MANAGER; import static com.refinedmods.refinedstorage2.platform.common.content.ContentIds.SILICON; import static com.refinedmods.refinedstorage2.platform.common.content.ContentIds.STORAGE_BLOCK; import static com.refinedmods.refinedstorage2.platform.common.content.ContentIds.STORAGE_HOUSING; @@ -317,6 +320,7 @@ protected final void registerBlocks( PortableGridType.CREATIVE, creativePortableGridBlockEntityFactory ))); + Blocks.INSTANCE.getSecurityManager().registerBlocks(callback); } protected final void registerItems(final RegistryCallback callback) { @@ -335,6 +339,7 @@ protected final void registerItems(final RegistryCallback callback) { Blocks.INSTANCE.getWirelessTransmitter().registerItems(callback, Items.INSTANCE::addWirelessTransmitter); Blocks.INSTANCE.getNetworkReceiver().registerItems(callback, Items.INSTANCE::addNetworkReceiver); Blocks.INSTANCE.getNetworkTransmitter().registerItems(callback, Items.INSTANCE::addNetworkTransmitter); + Blocks.INSTANCE.getSecurityManager().registerItems(callback, Items.INSTANCE::addSecurityManager); registerStorageItems(callback); registerUpgrades(callback); } @@ -623,6 +628,13 @@ protected final void registerBlockEntities( Blocks.INSTANCE.getCreativePortableGrid() ) )); + BlockEntities.INSTANCE.setSecurityManager(callback.register( + SECURITY_MANAGER, + () -> typeFactory.create( + SecurityManagerBlockEntity::new, + Blocks.INSTANCE.getSecurityManager().toArray() + ) + )); } protected final void registerMenus(final RegistryCallback> callback, @@ -715,6 +727,10 @@ protected final void registerMenus(final RegistryCallback> callback, FALLBACK_SECURITY_CARD, () -> menuTypeFactory.create(FallbackSecurityCardContainerMenu::new) )); + Menus.INSTANCE.setSecurityManager(callback.register( + SECURITY_MANAGER, + () -> menuTypeFactory.create(SecurityManagerContainerMenu::new) + )); } protected final void registerLootFunctions(final RegistryCallback callback) { diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/Config.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/Config.java index d8ddad985..0e9068ecf 100644 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/Config.java +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/Config.java @@ -10,6 +10,14 @@ import net.minecraft.resources.ResourceLocation; public interface Config { + ScreenSize getScreenSize(); + + void setScreenSize(ScreenSize size); + + boolean isSmoothScrolling(); + + int getMaxRowsStretch(); + GridEntry getGrid(); CraftingGridEntry getCraftingGrid(); @@ -52,13 +60,11 @@ public interface Config { PortableGridEntry getPortableGrid(); - boolean isSmoothScrolling(); - - ScreenSize getScreenSize(); + SimpleEnergyUsageEntry getSecurityCard(); - void setScreenSize(ScreenSize size); + SimpleEnergyUsageEntry getFallbackSecurityCard(); - int getMaxRowsStretch(); + SimpleEnergyUsageEntry getSecurityManager(); interface SimpleEnergyUsageEntry { long getEnergyUsage(); diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/PlatformApiImpl.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/PlatformApiImpl.java index b0e3a5477..5dabb004e 100644 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/PlatformApiImpl.java +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/PlatformApiImpl.java @@ -7,6 +7,8 @@ import com.refinedmods.refinedstorage2.api.network.energy.EnergyStorage; import com.refinedmods.refinedstorage2.api.network.impl.NetworkBuilderImpl; import com.refinedmods.refinedstorage2.api.network.impl.NetworkFactory; +import com.refinedmods.refinedstorage2.api.network.security.SecurityActor; +import com.refinedmods.refinedstorage2.api.network.security.SecurityPolicy; import com.refinedmods.refinedstorage2.api.resource.ResourceKey; import com.refinedmods.refinedstorage2.platform.api.PlatformApi; import com.refinedmods.refinedstorage2.platform.api.constructordestructor.ConstructorStrategyFactory; @@ -54,6 +56,7 @@ import com.refinedmods.refinedstorage2.platform.common.grid.strategy.CompositeGridScrollingStrategy; import com.refinedmods.refinedstorage2.platform.common.recipemod.CompositeIngredientConverter; import com.refinedmods.refinedstorage2.platform.common.security.BuiltinPermission; +import com.refinedmods.refinedstorage2.platform.common.security.PlayerSecurityActor; import com.refinedmods.refinedstorage2.platform.common.storage.ClientStorageRepository; import com.refinedmods.refinedstorage2.platform.common.storage.StorageContainerItemHelperImpl; import com.refinedmods.refinedstorage2.platform.common.storage.StorageRepositoryImpl; @@ -88,11 +91,13 @@ import java.util.PriorityQueue; import java.util.Queue; import java.util.Set; +import java.util.stream.Collectors; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.InteractionHand; import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.AbstractContainerMenu; @@ -519,4 +524,17 @@ public BuiltinPermissions getBuiltinPermissions() { public PlatformRegistry getPermissionRegistry() { return permissionRegistry; } + + @Override + public SecurityPolicy createDefaultSecurityPolicy() { + return new SecurityPolicy(permissionRegistry.getAll() + .stream() + .filter(PlatformPermission::isAllowedByDefault) + .collect(Collectors.toSet())); + } + + @Override + public SecurityActor createPlayerSecurityActor(final ServerPlayer player) { + return PlayerSecurityActor.of(player); + } } diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/BlockEntities.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/BlockEntities.java index 4fdfd24b0..3868df5bb 100644 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/BlockEntities.java +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/BlockEntities.java @@ -12,6 +12,7 @@ import com.refinedmods.refinedstorage2.platform.common.importer.ImporterBlockEntity; import com.refinedmods.refinedstorage2.platform.common.networking.NetworkReceiverBlockEntity; import com.refinedmods.refinedstorage2.platform.common.networking.NetworkTransmitterBlockEntity; +import com.refinedmods.refinedstorage2.platform.common.security.SecurityManagerBlockEntity; import com.refinedmods.refinedstorage2.platform.common.storage.FluidStorageType; import com.refinedmods.refinedstorage2.platform.common.storage.ItemStorageType; import com.refinedmods.refinedstorage2.platform.common.storage.diskdrive.AbstractDiskDriveBlockEntity; @@ -77,6 +78,8 @@ public final class BlockEntities { private Supplier> portableGrid; @Nullable private Supplier> creativePortableGrid; + @Nullable + private Supplier> securityManager; private BlockEntities() { } @@ -252,4 +255,12 @@ public BlockEntityType getCreativePortableGrid( public void setCreativePortableGrid(final Supplier> supplier) { this.creativePortableGrid = supplier; } + + public BlockEntityType getSecurityManager() { + return requireNonNull(securityManager).get(); + } + + public void setSecurityManager(final Supplier> supplier) { + this.securityManager = supplier; + } } diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/Blocks.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/Blocks.java index b13f8e159..e48858a26 100644 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/Blocks.java +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/Blocks.java @@ -17,6 +17,7 @@ import com.refinedmods.refinedstorage2.platform.common.networking.CableBlock; import com.refinedmods.refinedstorage2.platform.common.networking.NetworkReceiverBlock; import com.refinedmods.refinedstorage2.platform.common.networking.NetworkTransmitterBlock; +import com.refinedmods.refinedstorage2.platform.common.security.SecurityManagerBlock; import com.refinedmods.refinedstorage2.platform.common.storage.FluidStorageType; import com.refinedmods.refinedstorage2.platform.common.storage.ItemStorageType; import com.refinedmods.refinedstorage2.platform.common.storage.diskdrive.DiskDriveBlock; @@ -137,6 +138,12 @@ public final class Blocks { ContentNames.NETWORK_TRANSMITTER, COLOR ); + private final BlockColorMap securityManager = new BlockColorMap<>( + SecurityManagerBlock::new, + ContentIds.SECURITY_MANAGER, + ContentNames.SECURITY_MANAGER, + COLOR + ); @Nullable private Supplier quartzEnrichedIronBlock; @@ -290,4 +297,8 @@ public PortableGridBlock getCreativePortableGrid() { public void setCreativePortableGrid(final Supplier supplier) { this.creativePortableGrid = supplier; } + + public BlockColorMap getSecurityManager() { + return securityManager; + } } diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/ContentIds.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/ContentIds.java index 0955232ba..c1898295d 100644 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/ContentIds.java +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/ContentIds.java @@ -56,6 +56,7 @@ public final class ContentIds { public static final ResourceLocation CREATIVE_PORTABLE_GRID = createIdentifier("creative_portable_grid"); public static final ResourceLocation SECURITY_CARD = createIdentifier("security_card"); public static final ResourceLocation FALLBACK_SECURITY_CARD = createIdentifier("fallback_security_card"); + public static final ResourceLocation SECURITY_MANAGER = createIdentifier("security_manager"); private ContentIds() { } diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/ContentNames.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/ContentNames.java index 7cfa030b9..9a6ea25f5 100644 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/ContentNames.java +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/ContentNames.java @@ -31,6 +31,7 @@ public final class ContentNames { public static final MutableComponent PORTABLE_GRID = name("portable_grid"); public static final MutableComponent SECURITY_CARD = createTranslation("item", "security_card"); public static final MutableComponent FALLBACK_SECURITY_CARD = createTranslation("item", "fallback_security_card"); + public static final MutableComponent SECURITY_MANAGER = name("security_manager"); private ContentNames() { } diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/CreativeModeTabItems.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/CreativeModeTabItems.java index c5bb5336a..fd43e703b 100644 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/CreativeModeTabItems.java +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/CreativeModeTabItems.java @@ -53,6 +53,7 @@ private static void appendBlocks(final Consumer consumer) { itemConsumer.accept(Blocks.INSTANCE.getStorageMonitor()); Items.INSTANCE.getNetworkTransmitters().stream().map(Supplier::get).forEach(itemConsumer); Items.INSTANCE.getNetworkReceivers().stream().map(Supplier::get).forEach(itemConsumer); + Items.INSTANCE.getSecurityManagers().stream().map(Supplier::get).forEach(itemConsumer); } private static void appendBlockColors(final Consumer consumer, final BlockColorMap map) { diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/DefaultEnergyUsage.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/DefaultEnergyUsage.java index bdbd5caf9..d01592d55 100644 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/DefaultEnergyUsage.java +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/DefaultEnergyUsage.java @@ -16,6 +16,7 @@ public final class DefaultEnergyUsage { public static final long STORAGE_MONITOR = 4; public static final long NETWORK_RECEIVER = 8; public static final long NETWORK_TRANSMITTER = 32; + public static final long SECURITY_MANAGER = 16; public static final long CONTROLLER_CAPACITY = 1000; @@ -41,6 +42,8 @@ public final class DefaultEnergyUsage { public static final long RANGE_UPGRADE = 8; public static final long CREATIVE_RANGE_UPGRADE = 0; public static final int RANGE_UPGRADE_RANGE = 8; + public static final long SECURITY_CARD = 2; + public static final long FALLBACK_SECURITY_CARD = 4; public static final long WIRELESS_GRID_CAPACITY = 1000; public static final long WIRELESS_GRID_OPEN = 5; diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/Items.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/Items.java index bd99e3a14..b95e19a91 100644 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/Items.java +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/Items.java @@ -47,6 +47,7 @@ public final class Items { private final List> allWirelessTransmitters = new ArrayList<>(); private final List> allNetworkReceivers = new ArrayList<>(); private final List> allNetworkTransmitters = new ArrayList<>(); + private final List> allSecurityManagers = new ArrayList<>(); @Nullable private Supplier quartzEnrichedIron; @Nullable @@ -398,6 +399,14 @@ public List> getNetworkTransmitters() { return Collections.unmodifiableList(allNetworkTransmitters); } + public void addSecurityManager(final Supplier supplier) { + allSecurityManagers.add(supplier); + } + + public List> getSecurityManagers() { + return Collections.unmodifiableList(allSecurityManagers); + } + public Item getNetworkCard() { return requireNonNull(networkCard).get(); } diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/Menus.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/Menus.java index 45433d8f0..197b59973 100644 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/Menus.java +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/Menus.java @@ -13,6 +13,7 @@ import com.refinedmods.refinedstorage2.platform.common.networking.NetworkTransmitterContainerMenu; import com.refinedmods.refinedstorage2.platform.common.security.FallbackSecurityCardContainerMenu; import com.refinedmods.refinedstorage2.platform.common.security.SecurityCardContainerMenu; +import com.refinedmods.refinedstorage2.platform.common.security.SecurityManagerContainerMenu; import com.refinedmods.refinedstorage2.platform.common.storage.diskdrive.DiskDriveContainerMenu; import com.refinedmods.refinedstorage2.platform.common.storage.externalstorage.ExternalStorageContainerMenu; import com.refinedmods.refinedstorage2.platform.common.storage.portablegrid.PortableGridBlockContainerMenu; @@ -77,6 +78,8 @@ public final class Menus { private Supplier> securityCard; @Nullable private Supplier> fallbackSecurityCard; + @Nullable + private Supplier> securityManager; private Menus() { } @@ -258,4 +261,12 @@ public void setFallbackSecurityCard( ) { this.fallbackSecurityCard = fallbackSecurityCard; } + + public MenuType getSecurityManager() { + return requireNonNull(securityManager).get(); + } + + public void setSecurityManager(final Supplier> securityManager) { + this.securityManager = securityManager; + } } diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/Tags.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/Tags.java index be33cae1e..c46aeeb72 100644 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/Tags.java +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/content/Tags.java @@ -23,6 +23,7 @@ public final class Tags { public static final TagKey WIRELESS_TRANSMITTERS = createTag("wireless_transmitters"); public static final TagKey NETWORK_RECEIVERS = createTag("network_receivers"); public static final TagKey NETWORK_TRANSMITTERS = createTag("network_transmitters"); + public static final TagKey SECURITY_MANAGERS = createTag("security_managers"); private Tags() { } diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/controller/CreativeControllerBlockItem.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/controller/CreativeControllerBlockItem.java index 026576d86..7a8d67dce 100644 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/controller/CreativeControllerBlockItem.java +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/controller/CreativeControllerBlockItem.java @@ -3,13 +3,16 @@ import com.refinedmods.refinedstorage2.platform.common.support.NamedBlockItem; import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.MutableComponent; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; import static com.refinedmods.refinedstorage2.platform.common.util.IdentifierUtil.createTranslation; public class CreativeControllerBlockItem extends NamedBlockItem { + private static final MutableComponent HELP = createTranslation("item", "creative_controller.help"); + CreativeControllerBlockItem(final Block block, final Component name) { - super(block, new Item.Properties().stacksTo(1), name, createTranslation("item", "creative_controller.help")); + super(block, new Item.Properties().stacksTo(1), name, HELP); } } diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/grid/GridBlock.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/grid/GridBlock.java index d33ef786e..d928f622a 100644 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/grid/GridBlock.java +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/grid/GridBlock.java @@ -35,7 +35,6 @@ public GridBlock(final DyeColor color, final MutableComponent name) { super(name, color); } - @Override public BlockColorMap getBlockColorMap() { return Blocks.INSTANCE.getGrid(); diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/AbstractSecurityCardContainerMenu.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/AbstractSecurityCardContainerMenu.java index f9127232f..a99097ed2 100644 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/AbstractSecurityCardContainerMenu.java +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/AbstractSecurityCardContainerMenu.java @@ -48,6 +48,7 @@ protected AbstractSecurityCardContainerMenu(final MenuType menuType, super(menuType, syncId); this.playerInventory = playerInventory; this.disabledSlot = disabledSlot; + onScreenReady(0); } List getPermissions() { @@ -64,13 +65,12 @@ public void setPermission(final ResourceLocation permissionId, final boolean all if (disabledSlot == null) { return; } - disabledSlot.resolve(playerInventory.player).ifPresent(stack -> setPermission(permissionId, allowed, stack)); + disabledSlot.resolve(playerInventory.player).ifPresent(stack -> setPermission(stack, permissionId, allowed)); } - private void setPermission(final ResourceLocation permissionId, final boolean allowed, final ItemStack stack) { - if (stack.getItem() instanceof AbstractSecurityCardItem securityCardItem) { - final SecurityCardModel model = securityCardItem.createModel(stack); - model.setPermission(permissionId, allowed); + private void setPermission(final ItemStack stack, final ResourceLocation permissionId, final boolean allowed) { + if (stack.getItem() instanceof AbstractSecurityCardItem securityCardItem) { + securityCardItem.setPermission(stack, permissionId, allowed); } } @@ -78,13 +78,12 @@ public void resetPermission(final ResourceLocation permissionId) { if (disabledSlot == null) { return; } - disabledSlot.resolve(playerInventory.player).ifPresent(stack -> resetPermission(permissionId, stack)); + disabledSlot.resolve(playerInventory.player).ifPresent(stack -> resetPermission(stack, permissionId)); } - private void resetPermission(final ResourceLocation permissionId, final ItemStack stack) { - if (stack.getItem() instanceof AbstractSecurityCardItem securityCardItem) { - final SecurityCardModel model = securityCardItem.createModel(stack); - model.resetPermission(permissionId); + private void resetPermission(final ItemStack stack, final ResourceLocation permissionId) { + if (stack.getItem() instanceof AbstractSecurityCardItem securityCardItem) { + securityCardItem.resetPermission(stack, permissionId); } } @@ -93,7 +92,7 @@ Permission resetPermission(final PlatformPermission permission) { Platform.INSTANCE.getClientToServerCommunications().sendSecurityCardResetPermission(permission); return updatePermissionLocally(permission, allowed, false); } - + Permission changePermission(final PlatformPermission permission, final boolean selected) { Platform.INSTANCE.getClientToServerCommunications().sendSecurityCardPermission(permission, selected); return updatePermissionLocally(permission, selected, true); diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/AbstractSecurityCardExtendedMenuProvider.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/AbstractSecurityCardExtendedMenuProvider.java index 6b0540a82..92247cfc1 100644 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/AbstractSecurityCardExtendedMenuProvider.java +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/AbstractSecurityCardExtendedMenuProvider.java @@ -1,11 +1,13 @@ package com.refinedmods.refinedstorage2.platform.common.security; +import com.refinedmods.refinedstorage2.api.network.security.SecurityPolicy; import com.refinedmods.refinedstorage2.platform.api.PlatformApi; import com.refinedmods.refinedstorage2.platform.api.security.PlatformPermission; import com.refinedmods.refinedstorage2.platform.api.support.network.bounditem.SlotReference; import com.refinedmods.refinedstorage2.platform.common.support.containermenu.ExtendedMenuProvider; import java.util.List; +import java.util.Set; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.resources.ResourceLocation; @@ -13,24 +15,28 @@ abstract class AbstractSecurityCardExtendedMenuProvider implements ExtendedMenuProvider { private final SlotReference slotReference; - private final SecurityCardModel model; + private final SecurityPolicy securityPolicy; + private final Set dirtyPermissions; - AbstractSecurityCardExtendedMenuProvider(final SlotReference slotReference, final SecurityCardModel model) { + AbstractSecurityCardExtendedMenuProvider(final SlotReference slotReference, + final SecurityPolicy securityPolicy, + final Set dirtyPermissions) { this.slotReference = slotReference; - this.model = model; + this.securityPolicy = securityPolicy; + this.dirtyPermissions = dirtyPermissions; } @Override public void writeScreenOpeningData(final ServerPlayer player, final FriendlyByteBuf buf) { PlatformApi.INSTANCE.writeSlotReference(slotReference, buf); - + final List permissions = PlatformApi.INSTANCE.getPermissionRegistry().getAll(); buf.writeInt(permissions.size()); for (final PlatformPermission permission : permissions) { final ResourceLocation id = PlatformApi.INSTANCE.getPermissionRegistry().getId(permission).orElseThrow(); buf.writeResourceLocation(id); - buf.writeBoolean(model.isAllowed(permission)); - buf.writeBoolean(model.isDirty(permission)); + buf.writeBoolean(securityPolicy.isAllowed(permission)); + buf.writeBoolean(dirtyPermissions.contains(permission)); } } } diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/AbstractSecurityCardItem.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/AbstractSecurityCardItem.java index 509c158b1..beef7bf88 100644 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/AbstractSecurityCardItem.java +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/AbstractSecurityCardItem.java @@ -1,15 +1,26 @@ package com.refinedmods.refinedstorage2.platform.common.security; +import com.refinedmods.refinedstorage2.api.network.security.Permission; +import com.refinedmods.refinedstorage2.api.network.security.SecurityPolicy; import com.refinedmods.refinedstorage2.platform.api.PlatformApi; +import com.refinedmods.refinedstorage2.platform.api.security.PlatformPermission; +import com.refinedmods.refinedstorage2.platform.api.security.SecurityPolicyContainerItem; import com.refinedmods.refinedstorage2.platform.api.support.network.bounditem.SlotReference; import com.refinedmods.refinedstorage2.platform.common.Platform; +import java.util.Collections; +import java.util.HashSet; import java.util.List; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; import javax.annotation.Nullable; import net.minecraft.ChatFormatting; +import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Style; +import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResultHolder; @@ -21,7 +32,9 @@ import static com.refinedmods.refinedstorage2.platform.common.util.IdentifierUtil.createTranslation; -abstract class AbstractSecurityCardItem extends Item { +abstract class AbstractSecurityCardItem extends Item implements SecurityPolicyContainerItem { + private static final String TAG_PERMISSIONS = "permissions"; + protected AbstractSecurityCardItem(final Properties properties) { super(properties); } @@ -32,19 +45,16 @@ public void appendHoverText(final ItemStack stack, final List lines, final TooltipFlag flag) { super.appendHoverText(stack, level, lines, flag); - final T model = createModel(stack); - addTooltip(lines, model); - if (model.isActive()) { - addPermissions(lines, model); - } + getPolicy(stack).ifPresent(policy -> appendHoverText(lines, policy, getDirtyPermissions(stack))); } - abstract void addTooltip(List lines, T model); - - private void addPermissions(final List lines, final SecurityCardModel model) { - PlatformApi.INSTANCE.getPermissionRegistry().getAll().forEach(permission -> { - final boolean allowed = model.isAllowed(permission); - final boolean dirty = model.isDirty(permission); + private void appendHoverText(final List lines, + final SecurityPolicy policy, + final Set dirtyPermissions) { + final List allPermissions = PlatformApi.INSTANCE.getPermissionRegistry().getAll(); + allPermissions.forEach(permission -> { + final boolean allowed = policy.isAllowed(permission); + final boolean dirty = dirtyPermissions.contains(permission); final Style style = Style.EMPTY .withColor(allowed ? ChatFormatting.GREEN : ChatFormatting.RED) .withItalic(dirty); @@ -60,32 +70,89 @@ private void addPermissions(final List lines, final SecurityCardModel public InteractionResultHolder use(final Level level, final Player player, final InteractionHand hand) { final ItemStack stack = player.getItemInHand(hand); if (player instanceof ServerPlayer serverPlayer) { - final T model = createModel(stack); - use(hand, serverPlayer, model); + doUse(hand, serverPlayer, stack); } return InteractionResultHolder.consume(stack); } - private void use(final InteractionHand hand, final ServerPlayer player, final T model) { + private void doUse(final InteractionHand hand, final ServerPlayer player, final ItemStack stack) { if (player.isCrouching()) { - tryClear(player, model); + clearConfiguration(player, stack); return; } - Platform.INSTANCE.getMenuOpener().openMenu(player, createMenuProvider( - PlatformApi.INSTANCE.createInventorySlotReference(player, hand), - model - )); + getPolicy(stack).ifPresent(policy -> { + final Set dirtyPermissions = getDirtyPermissions(stack); + Platform.INSTANCE.getMenuOpener().openMenu(player, createMenuProvider( + PlatformApi.INSTANCE.createInventorySlotReference(player, hand), + policy, + dirtyPermissions, + stack + )); + }); } - void tryClear(final ServerPlayer player, final T model) { - model.clear(); - player.sendSystemMessage(createTranslation("item", "security_card.cleared")); + private void clearConfiguration(final ServerPlayer player, final ItemStack stack) { + stack.setTag(null); + player.sendSystemMessage(createTranslation("item", "security_card.cleared_configuration")); } - abstract T createModel(ItemStack stack); + abstract AbstractSecurityCardExtendedMenuProvider createMenuProvider(SlotReference slotReference, + SecurityPolicy policy, + Set dirtyPermissions, + ItemStack stack); - abstract AbstractSecurityCardExtendedMenuProvider createMenuProvider( - SlotReference slotReference, - T model - ); + @Override + public Optional getPolicy(final ItemStack stack) { + if (!isValid(stack)) { + return Optional.empty(); + } + if (stack.getTag() == null || !stack.getTag().contains(TAG_PERMISSIONS)) { + return Optional.of(PlatformApi.INSTANCE.createDefaultSecurityPolicy()); + } + final CompoundTag permissionsTag = stack.getTag().getCompound(TAG_PERMISSIONS); + return Optional.of(createPolicy(permissionsTag)); + } + + private SecurityPolicy createPolicy(final CompoundTag permissionsTag) { + final Set allowedPermissions = new HashSet<>(); + for (final PlatformPermission permission : PlatformApi.INSTANCE.getPermissionRegistry().getAll()) { + final ResourceLocation permissionId = PlatformApi.INSTANCE.getPermissionRegistry() + .getId(permission) + .orElseThrow(); + final boolean dirty = permissionsTag.contains(permissionId.toString()); + final boolean didExplicitlyAllow = dirty && permissionsTag.getBoolean(permissionId.toString()); + final boolean isAllowedByDefault = !dirty && permission.isAllowedByDefault(); + if (didExplicitlyAllow || isAllowedByDefault) { + allowedPermissions.add(permission); + } + } + return new SecurityPolicy(allowedPermissions); + } + + @Override + public boolean isValid(final ItemStack stack) { + return true; + } + + Set getDirtyPermissions(final ItemStack stack) { + if (stack.getTag() == null || !stack.getTag().contains(TAG_PERMISSIONS)) { + return Collections.emptySet(); + } + final CompoundTag permissionsTag = stack.getTag().getCompound(TAG_PERMISSIONS); + return permissionsTag.getAllKeys() + .stream() + .map(ResourceLocation::new) + .flatMap(id -> PlatformApi.INSTANCE.getPermissionRegistry().get(id).stream()) + .collect(Collectors.toSet()); + } + + void setPermission(final ItemStack stack, final ResourceLocation permissionId, final boolean allowed) { + final CompoundTag permissionsTag = stack.getOrCreateTagElement(TAG_PERMISSIONS); + permissionsTag.putBoolean(permissionId.toString(), allowed); + } + + void resetPermission(final ItemStack stack, final ResourceLocation permissionId) { + final CompoundTag permissionsTag = stack.getOrCreateTagElement(TAG_PERMISSIONS); + permissionsTag.remove(permissionId.toString()); + } } diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/FallbackSecurityCardExtendedMenuProvider.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/FallbackSecurityCardExtendedMenuProvider.java index f631beb08..4d7914689 100644 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/FallbackSecurityCardExtendedMenuProvider.java +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/FallbackSecurityCardExtendedMenuProvider.java @@ -1,8 +1,11 @@ package com.refinedmods.refinedstorage2.platform.common.security; +import com.refinedmods.refinedstorage2.api.network.security.SecurityPolicy; +import com.refinedmods.refinedstorage2.platform.api.security.PlatformPermission; import com.refinedmods.refinedstorage2.platform.api.support.network.bounditem.SlotReference; import com.refinedmods.refinedstorage2.platform.common.content.ContentNames; +import java.util.Set; import javax.annotation.Nullable; import net.minecraft.network.chat.Component; @@ -13,9 +16,12 @@ class FallbackSecurityCardExtendedMenuProvider extends AbstractSecurityCardExtendedMenuProvider { private final SlotReference slotReference; - FallbackSecurityCardExtendedMenuProvider(final SlotReference slotReference, final SecurityCardModel model) { - super(slotReference, model); - this.slotReference = slotReference; + FallbackSecurityCardExtendedMenuProvider(final SlotReference slotReference, + final SecurityPolicy securityPolicy, + final Set dirtyPermissions, + final SlotReference slotReference1) { + super(slotReference, securityPolicy, dirtyPermissions); + this.slotReference = slotReference1; } @Override diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/FallbackSecurityCardItem.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/FallbackSecurityCardItem.java index 4bdd4a680..85e94b6d0 100644 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/FallbackSecurityCardItem.java +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/FallbackSecurityCardItem.java @@ -1,10 +1,14 @@ package com.refinedmods.refinedstorage2.platform.common.security; +import com.refinedmods.refinedstorage2.api.network.security.SecurityActor; +import com.refinedmods.refinedstorage2.api.network.security.SecurityPolicy; +import com.refinedmods.refinedstorage2.platform.api.security.PlatformPermission; import com.refinedmods.refinedstorage2.platform.api.support.HelpTooltipComponent; import com.refinedmods.refinedstorage2.platform.api.support.network.bounditem.SlotReference; +import com.refinedmods.refinedstorage2.platform.common.Platform; -import java.util.List; import java.util.Optional; +import java.util.Set; import net.minecraft.network.chat.Component; import net.minecraft.world.inventory.tooltip.TooltipComponent; @@ -13,7 +17,7 @@ import static com.refinedmods.refinedstorage2.platform.common.util.IdentifierUtil.createTranslation; -public class FallbackSecurityCardItem extends AbstractSecurityCardItem { +public class FallbackSecurityCardItem extends AbstractSecurityCardItem { private static final Component HELP = createTranslation("item", "fallback_security_card.help"); public FallbackSecurityCardItem() { @@ -21,23 +25,25 @@ public FallbackSecurityCardItem() { } @Override - void addTooltip(final List lines, final SecurityCardModel model) { - // no op + AbstractSecurityCardExtendedMenuProvider createMenuProvider(final SlotReference slotReference, + final SecurityPolicy policy, + final Set dirtyPermissions, + final ItemStack stack) { + return new FallbackSecurityCardExtendedMenuProvider(slotReference, policy, dirtyPermissions, slotReference); } @Override - SecurityCardModel createModel(final ItemStack stack) { - return new SecurityCardModel(stack); + public Optional getTooltipImage(final ItemStack stack) { + return Optional.of(new HelpTooltipComponent(HELP)); } @Override - AbstractSecurityCardExtendedMenuProvider createMenuProvider(final SlotReference slotReference, - final SecurityCardModel model) { - return new FallbackSecurityCardExtendedMenuProvider(slotReference, model); + public Optional getActor(final ItemStack stack) { + return Optional.empty(); } @Override - public Optional getTooltipImage(final ItemStack stack) { - return Optional.of(new HelpTooltipComponent(HELP)); + public long getEnergyUsage() { + return Platform.INSTANCE.getConfig().getFallbackSecurityCard().getEnergyUsage(); } } diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/PlayerSecurityActor.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/PlayerSecurityActor.java new file mode 100644 index 000000000..6afe9c920 --- /dev/null +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/PlayerSecurityActor.java @@ -0,0 +1,13 @@ +package com.refinedmods.refinedstorage2.platform.common.security; + +import com.refinedmods.refinedstorage2.api.network.security.SecurityActor; + +import java.util.UUID; + +import net.minecraft.server.level.ServerPlayer; + +public record PlayerSecurityActor(UUID playerId) implements SecurityActor { + public static PlayerSecurityActor of(final ServerPlayer player) { + return new PlayerSecurityActor(player.getGameProfile().getId()); + } +} diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/PlayerSecurityCardModel.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/PlayerSecurityCardModel.java deleted file mode 100644 index 606b3ab7b..000000000 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/PlayerSecurityCardModel.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.refinedmods.refinedstorage2.platform.common.security; - -import java.util.UUID; -import javax.annotation.Nullable; - -import net.minecraft.nbt.CompoundTag; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.item.ItemStack; - -class PlayerSecurityCardModel extends SecurityCardModel { - private static final String TAG_BOUND_PLAYER_ID = "bid"; - private static final String TAG_BOUND_PLAYER_NAME = "bname"; - - PlayerSecurityCardModel(final ItemStack stack) { - super(stack); - } - - @Nullable - UUID getBoundPlayerId() { - return (stack.getTag() == null || !stack.getTag().contains(TAG_BOUND_PLAYER_ID)) - ? null - : stack.getTag().getUUID(TAG_BOUND_PLAYER_ID); - } - - @Nullable - String getBoundPlayerName() { - return (stack.getTag() == null || !stack.getTag().contains(TAG_BOUND_PLAYER_NAME)) - ? null - : stack.getTag().getString(TAG_BOUND_PLAYER_NAME); - } - - void setBoundPlayer(@Nullable final ServerPlayer player) { - final CompoundTag tag = stack.getOrCreateTag(); - if (player == null) { - tag.remove(TAG_BOUND_PLAYER_ID); - tag.remove(TAG_BOUND_PLAYER_NAME); - return; - } - tag.putUUID(TAG_BOUND_PLAYER_ID, player.getGameProfile().getId()); - tag.putString(TAG_BOUND_PLAYER_NAME, player.getGameProfile().getName()); - } - - @Override - boolean isActive() { - return isActive(stack); - } - - static boolean isActive(final ItemStack stack) { - return stack.getTag() != null - && stack.getTag().contains(TAG_BOUND_PLAYER_ID) - && stack.getTag().contains(TAG_BOUND_PLAYER_NAME); - } -} diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityCardContainerMenu.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityCardContainerMenu.java index 9e5177c04..6118bc260 100644 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityCardContainerMenu.java +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityCardContainerMenu.java @@ -8,7 +8,6 @@ import java.util.ArrayList; import java.util.List; import java.util.UUID; -import javax.annotation.Nullable; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.MinecraftServer; @@ -18,17 +17,13 @@ public class SecurityCardContainerMenu extends AbstractSecurityCardContainerMenu implements ScreenSizeListener { private final List players = new ArrayList<>(); - - @Nullable private Player boundTo; public SecurityCardContainerMenu(final int syncId, final Inventory playerInventory, final FriendlyByteBuf buf) { super(Menus.INSTANCE.getSecurityCard(), syncId, playerInventory, buf); - if (buf.readBoolean()) { - this.boundTo = new Player(buf.readUUID(), buf.readUtf()); - } + this.boundTo = new Player(buf.readUUID(), buf.readUtf()); final int amountOfPlayers = buf.readInt(); for (int i = 0; i < amountOfPlayers; ++i) { final UUID id = buf.readUUID(); @@ -39,36 +34,36 @@ public SecurityCardContainerMenu(final int syncId, SecurityCardContainerMenu(final int syncId, final Inventory playerInventory, final SlotReference disabledSlot) { super(Menus.INSTANCE.getSecurityCard(), syncId, playerInventory, disabledSlot); + this.boundTo = new Player(UUID.randomUUID(), ""); } List getPlayers() { return players; } - @Nullable Player getBoundTo() { return boundTo; } - public void setBoundPlayer(final MinecraftServer server, @Nullable final UUID playerId) { + public void setBoundPlayer(final MinecraftServer server, final UUID playerId) { if (disabledSlot == null) { return; } disabledSlot.resolve(playerInventory.player).ifPresent(stack -> setBoundPlayer(server, playerId, stack)); } - private void setBoundPlayer(final MinecraftServer server, @Nullable final UUID playerId, final ItemStack stack) { + private void setBoundPlayer(final MinecraftServer server, final UUID playerId, final ItemStack stack) { if (stack.getItem() instanceof SecurityCardItem securityCardItem) { - final ServerPlayer player = playerId == null ? null : server.getPlayerList().getPlayer(playerId); - final PlayerSecurityCardModel model = securityCardItem.createModel(stack); - model.setBoundPlayer(player); + final ServerPlayer player = server.getPlayerList().getPlayer(playerId); + if (player == null) { + return; + } + securityCardItem.setBoundPlayer(player, stack); } } - void changeBoundPlayer(@Nullable final Player player) { - Platform.INSTANCE.getClientToServerCommunications().sendSecurityCardBoundPlayer( - player == null ? null : player.id() - ); + void changeBoundPlayer(final Player player) { + Platform.INSTANCE.getClientToServerCommunications().sendSecurityCardBoundPlayer(player.id()); this.boundTo = player; } diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityCardExtendedMenuProvider.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityCardExtendedMenuProvider.java index 2c60c85b1..4f5cbc6c2 100644 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityCardExtendedMenuProvider.java +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityCardExtendedMenuProvider.java @@ -1,10 +1,14 @@ package com.refinedmods.refinedstorage2.platform.common.security; +import com.refinedmods.refinedstorage2.api.network.security.SecurityPolicy; +import com.refinedmods.refinedstorage2.platform.api.security.PlatformPermission; import com.refinedmods.refinedstorage2.platform.api.support.network.bounditem.SlotReference; import com.refinedmods.refinedstorage2.platform.common.content.ContentNames; import java.util.Collections; import java.util.List; +import java.util.Set; +import java.util.UUID; import javax.annotation.Nullable; import net.minecraft.network.FriendlyByteBuf; @@ -16,24 +20,26 @@ class SecurityCardExtendedMenuProvider extends AbstractSecurityCardExtendedMenuProvider { private final SlotReference slotReference; - private final PlayerSecurityCardModel playerModel; + private final UUID boundPlayerId; + private final String boundPlayerName; - SecurityCardExtendedMenuProvider(final SlotReference slotReference, final PlayerSecurityCardModel model) { - super(slotReference, model); + SecurityCardExtendedMenuProvider(final SlotReference slotReference, + final SecurityPolicy securityPolicy, + final Set dirtyPermissions, + final UUID boundPlayerId, + final String boundPlayerName) { + super(slotReference, securityPolicy, dirtyPermissions); this.slotReference = slotReference; - this.playerModel = model; + this.boundPlayerId = boundPlayerId; + this.boundPlayerName = boundPlayerName; } @Override public void writeScreenOpeningData(final ServerPlayer player, final FriendlyByteBuf buf) { super.writeScreenOpeningData(player, buf); - final boolean bound = playerModel.getBoundPlayerId() != null && playerModel.getBoundPlayerName() != null; - buf.writeBoolean(bound); - if (bound) { - buf.writeUUID(playerModel.getBoundPlayerId()); - buf.writeUtf(playerModel.getBoundPlayerName()); - } + buf.writeUUID(boundPlayerId); + buf.writeUtf(boundPlayerName); final List players = player.getServer() == null ? Collections.emptyList() diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityCardItem.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityCardItem.java index 3347e5c5a..b3040bb60 100644 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityCardItem.java +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityCardItem.java @@ -1,21 +1,38 @@ package com.refinedmods.refinedstorage2.platform.common.security; +import com.refinedmods.refinedstorage2.api.network.security.SecurityActor; +import com.refinedmods.refinedstorage2.api.network.security.SecurityPolicy; +import com.refinedmods.refinedstorage2.platform.api.security.PlatformPermission; import com.refinedmods.refinedstorage2.platform.api.support.HelpTooltipComponent; import com.refinedmods.refinedstorage2.platform.api.support.network.bounditem.SlotReference; +import com.refinedmods.refinedstorage2.platform.common.Platform; import java.util.List; import java.util.Optional; +import java.util.Set; +import java.util.UUID; +import javax.annotation.Nullable; import net.minecraft.ChatFormatting; +import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.tooltip.TooltipComponent; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.Level; import static com.refinedmods.refinedstorage2.platform.common.util.IdentifierUtil.createTranslation; +import static java.util.Objects.requireNonNull; + +public class SecurityCardItem extends AbstractSecurityCardItem { + private static final String TAG_BOUND_PLAYER_ID = "bid"; + private static final String TAG_BOUND_PLAYER_NAME = "bname"; -public class SecurityCardItem extends AbstractSecurityCardItem { private static final Component UNBOUND_HELP = createTranslation("item", "security_card.unbound.help"); private static final Component BOUND_HELP = createTranslation("item", "security_card.bound.help"); @@ -24,54 +41,89 @@ public SecurityCardItem() { } @Override - void addTooltip(final List lines, final PlayerSecurityCardModel model) { - final String boundPlayerName = model.getBoundPlayerName(); + public void appendHoverText(final ItemStack stack, + @Nullable final Level level, + final List lines, + final TooltipFlag flag) { + final String boundPlayerName = getBoundPlayerName(stack); if (boundPlayerName == null) { lines.add(createTranslation("item", "security_card.unbound").withStyle(ChatFormatting.GRAY)); - return; + } else { + lines.add(createTranslation( + "item", + "security_card.bound", + Component.literal(boundPlayerName).withStyle(ChatFormatting.YELLOW) + ).withStyle(ChatFormatting.GRAY)); } - lines.add(createTranslation( - "item", - "security_card.bound", - Component.literal(boundPlayerName).withStyle(ChatFormatting.YELLOW) - ).withStyle(ChatFormatting.GRAY)); + super.appendHoverText(stack, level, lines, flag); } @Override - void tryClear(final ServerPlayer player, final PlayerSecurityCardModel model) { - if (model.isCleared()) { - bind(player, model); - return; + public InteractionResultHolder use(final Level level, final Player player, final InteractionHand hand) { + final ItemStack stack = player.getItemInHand(hand); + if (player instanceof ServerPlayer serverPlayer && !stack.hasTag()) { + setBoundPlayer(serverPlayer, stack); } - super.tryClear(player, model); + return super.use(level, player, hand); } - private void bind(final ServerPlayer player, final PlayerSecurityCardModel model) { - model.setBoundPlayer(player); - player.sendSystemMessage(createTranslation( - "item", - "security_card.bound", - Component.literal(player.getGameProfile().getName()).withStyle(ChatFormatting.YELLOW) - )); + @Override + public Optional getTooltipImage(final ItemStack stack) { + return Optional.of(new HelpTooltipComponent(isValid(stack) ? BOUND_HELP : UNBOUND_HELP)); } @Override - public Optional getTooltipImage(final ItemStack stack) { - return Optional.of(new HelpTooltipComponent(isActive(stack) ? BOUND_HELP : UNBOUND_HELP)); + AbstractSecurityCardExtendedMenuProvider createMenuProvider(final SlotReference slotReference, + final SecurityPolicy policy, + final Set dirtyPermissions, + final ItemStack stack) { + return new SecurityCardExtendedMenuProvider( + slotReference, + policy, + dirtyPermissions, + requireNonNull(getBoundPlayerId(stack)), + requireNonNull(getBoundPlayerName(stack)) + ); } @Override - PlayerSecurityCardModel createModel(final ItemStack stack) { - return new PlayerSecurityCardModel(stack); + public boolean isValid(final ItemStack stack) { + return stack.getTag() != null + && stack.getTag().contains(TAG_BOUND_PLAYER_ID) + && stack.getTag().contains(TAG_BOUND_PLAYER_NAME); } @Override - AbstractSecurityCardExtendedMenuProvider createMenuProvider(final SlotReference slotReference, - final PlayerSecurityCardModel model) { - return new SecurityCardExtendedMenuProvider(slotReference, model); + public Optional getActor(final ItemStack stack) { + final UUID playerId = getBoundPlayerId(stack); + if (playerId == null) { + return Optional.empty(); + } + return Optional.of(new PlayerSecurityActor(playerId)); + } + + @Override + public long getEnergyUsage() { + return Platform.INSTANCE.getConfig().getSecurityCard().getEnergyUsage(); + } + + @Nullable + UUID getBoundPlayerId(final ItemStack stack) { + return (stack.getTag() == null || !stack.getTag().contains(TAG_BOUND_PLAYER_ID)) + ? null + : stack.getTag().getUUID(TAG_BOUND_PLAYER_ID); + } + + @Nullable + String getBoundPlayerName(final ItemStack stack) { + return (stack.getTag() == null || !stack.getTag().contains(TAG_BOUND_PLAYER_NAME)) + ? null + : stack.getTag().getString(TAG_BOUND_PLAYER_NAME); } - boolean isActive(final ItemStack stack) { - return PlayerSecurityCardModel.isActive(stack); + void setBoundPlayer(final ServerPlayer player, final ItemStack stack) { + final CompoundTag tag = stack.getOrCreateTag(); + tag.putUUID(TAG_BOUND_PLAYER_ID, player.getGameProfile().getId()); + tag.putString(TAG_BOUND_PLAYER_NAME, player.getGameProfile().getName()); } } diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityCardItemPropertyFunction.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityCardItemPropertyFunction.java index 1d36f5a53..1583c2f80 100644 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityCardItemPropertyFunction.java +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityCardItemPropertyFunction.java @@ -17,7 +17,7 @@ public float unclampedCall(final ItemStack itemStack, @Nullable final LivingEntity livingEntity, final int i) { if (itemStack.getItem() instanceof SecurityCardItem cardItem) { - return cardItem.isActive(itemStack) ? 1 : 0; + return cardItem.isValid(itemStack) ? 1 : 0; } return 0; } diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityCardModel.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityCardModel.java deleted file mode 100644 index 37d24223d..000000000 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityCardModel.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.refinedmods.refinedstorage2.platform.common.security; - -import com.refinedmods.refinedstorage2.platform.api.PlatformApi; -import com.refinedmods.refinedstorage2.platform.api.security.PlatformPermission; - -import net.minecraft.nbt.CompoundTag; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.ItemStack; - -class SecurityCardModel { - private static final String TAG_PERMISSIONS = "permissions"; - - protected final ItemStack stack; - - SecurityCardModel(final ItemStack stack) { - this.stack = stack; - } - - boolean isAllowed(final PlatformPermission permission) { - if (stack.getTag() != null && stack.getTag().contains(TAG_PERMISSIONS)) { - final ResourceLocation permissionId = PlatformApi.INSTANCE.getPermissionRegistry() - .getId(permission) - .orElseThrow(); - final CompoundTag permissionsTag = stack.getTag().getCompound(TAG_PERMISSIONS); - final boolean dirty = permissionsTag.contains(permissionId.toString()); - if (dirty) { - return permissionsTag.getBoolean(permissionId.toString()); - } - } - return permission.isAllowedByDefault(); - } - - boolean isDirty(final PlatformPermission permission) { - final ResourceLocation permissionId = PlatformApi.INSTANCE.getPermissionRegistry() - .getId(permission) - .orElseThrow(); - return stack.getTag() != null - && stack.getTag().contains(TAG_PERMISSIONS) - && stack.getTag().getCompound(TAG_PERMISSIONS).contains(permissionId.toString()); - } - - void setPermission(final ResourceLocation permissionId, final boolean allowed) { - final CompoundTag permissionsTag = stack.getOrCreateTagElement(TAG_PERMISSIONS); - permissionsTag.putBoolean(permissionId.toString(), allowed); - } - - void resetPermission(final ResourceLocation permissionId) { - final CompoundTag permissionsTag = stack.getOrCreateTagElement(TAG_PERMISSIONS); - permissionsTag.remove(permissionId.toString()); - } - - boolean isActive() { - return true; - } - - boolean isCleared() { - return stack.getTag() == null; - } - - public void clear() { - stack.setTag(null); - } -} diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityCardScreen.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityCardScreen.java index a0b900925..c44596498 100644 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityCardScreen.java +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityCardScreen.java @@ -1,20 +1,12 @@ package com.refinedmods.refinedstorage2.platform.common.security; -import javax.annotation.Nullable; - import net.minecraft.client.gui.components.Button; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.MutableComponent; import net.minecraft.world.entity.player.Inventory; -import static com.refinedmods.refinedstorage2.platform.common.util.IdentifierUtil.createTranslation; - public class SecurityCardScreen extends AbstractSecurityCardScreen { private static final int BOUND_PLAYER_BUTTON_RIGHT_PADDING = 6; private static final int BOUND_PLAYER_BUTTON_WIDTH = 80; - private static final MutableComponent UNBOUND_TITLE = Component.literal("<") - .append(createTranslation("gui", "security_card.unbound")) - .append(">"); public SecurityCardScreen(final SecurityCardContainerMenu menu, final Inventory playerInventory, @@ -25,9 +17,7 @@ public SecurityCardScreen(final SecurityCardContainerMenu menu, @Override protected void init(final int rows) { super.init(rows); - final Component boundToText = menu.getBoundTo() == null - ? UNBOUND_TITLE - : Component.literal(menu.getBoundTo().name()); + final Component boundToText = Component.literal(menu.getBoundTo().name()); final Button boundPlayerButton = Button.builder(boundToText, this::toggleBoundPlayer) .pos(leftPos + imageWidth - BOUND_PLAYER_BUTTON_RIGHT_PADDING - BOUND_PLAYER_BUTTON_WIDTH, topPos + 4) .size(BOUND_PLAYER_BUTTON_WIDTH, 14) @@ -39,20 +29,11 @@ private void toggleBoundPlayer(final Button button) { if (menu.getPlayers().isEmpty()) { return; } - if (menu.getBoundTo() == null) { - setBoundPlayer(button, menu.getPlayers().get(0)); - return; - } - final int nextIndex = menu.getPlayers().indexOf(menu.getBoundTo()) + 1; - if (nextIndex >= menu.getPlayers().size()) { - setBoundPlayer(button, null); - } else { - setBoundPlayer(button, menu.getPlayers().get(nextIndex)); - } - } - - private void setBoundPlayer(final Button button, @Nullable final SecurityCardContainerMenu.Player player) { - menu.changeBoundPlayer(player); - button.setMessage(player == null ? UNBOUND_TITLE : Component.literal(player.name())); + final SecurityCardContainerMenu.Player currentPlayer = menu.getBoundTo(); + final int index = menu.getPlayers().indexOf(currentPlayer); + final int nextIndex = (index + 1) % menu.getPlayers().size(); + final SecurityCardContainerMenu.Player nextPlayer = menu.getPlayers().get(nextIndex); + menu.changeBoundPlayer(nextPlayer); + button.setMessage(Component.literal(nextPlayer.name())); } } diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityManagerBlock.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityManagerBlock.java new file mode 100644 index 000000000..7fd137575 --- /dev/null +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityManagerBlock.java @@ -0,0 +1,101 @@ +package com.refinedmods.refinedstorage2.platform.common.security; + +import com.refinedmods.refinedstorage2.platform.common.content.BlockColorMap; +import com.refinedmods.refinedstorage2.platform.common.content.BlockConstants; +import com.refinedmods.refinedstorage2.platform.common.content.BlockEntities; +import com.refinedmods.refinedstorage2.platform.common.content.Blocks; +import com.refinedmods.refinedstorage2.platform.common.support.AbstractBlockEntityTicker; +import com.refinedmods.refinedstorage2.platform.common.support.AbstractDirectionalBlock; +import com.refinedmods.refinedstorage2.platform.common.support.BlockItemProvider; +import com.refinedmods.refinedstorage2.platform.common.support.ColorableBlock; +import com.refinedmods.refinedstorage2.platform.common.support.NamedBlockItem; +import com.refinedmods.refinedstorage2.platform.common.support.direction.BiDirection; +import com.refinedmods.refinedstorage2.platform.common.support.direction.BiDirectionType; +import com.refinedmods.refinedstorage2.platform.common.support.direction.DirectionType; +import com.refinedmods.refinedstorage2.platform.common.support.network.NetworkNodeBlockEntityTicker; + +import javax.annotation.Nullable; + +import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.MutableComponent; +import net.minecraft.world.item.DyeColor; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.EntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BooleanProperty; + +import static com.refinedmods.refinedstorage2.platform.common.util.IdentifierUtil.createTranslation; + +public class SecurityManagerBlock extends AbstractDirectionalBlock + implements ColorableBlock, BlockItemProvider, EntityBlock { + public static final BooleanProperty ACTIVE = BooleanProperty.create("active"); + + private static final MutableComponent HELP = createTranslation("block", "security_manager.help"); + private static final AbstractBlockEntityTicker TICKER = + new NetworkNodeBlockEntityTicker<>(BlockEntities.INSTANCE::getSecurityManager, ACTIVE); + + private final DyeColor color; + private final MutableComponent name; + + public SecurityManagerBlock(final DyeColor color, final MutableComponent name) { + super(BlockConstants.PROPERTIES); + this.color = color; + this.name = name; + } + + @Override + protected BlockState getDefaultState() { + return super.getDefaultState().setValue(ACTIVE, false); + } + + @Override + protected void createBlockStateDefinition(final StateDefinition.Builder builder) { + super.createBlockStateDefinition(builder); + builder.add(ACTIVE); + } + + @Override + protected DirectionType getDirectionType() { + return BiDirectionType.INSTANCE; + } + + @Override + public BlockColorMap getBlockColorMap() { + return Blocks.INSTANCE.getSecurityManager(); + } + + @Override + public DyeColor getColor() { + return color; + } + + @Override + public MutableComponent getName() { + return name; + } + + @Override + public NamedBlockItem createBlockItem() { + return new NamedBlockItem(this, new Item.Properties(), getName(), HELP); + } + + @Nullable + @Override + public BlockEntity newBlockEntity(final BlockPos pos, final BlockState state) { + return new SecurityManagerBlockEntity(pos, state); + } + + @Nullable + @Override + public BlockEntityTicker getTicker(final Level level, + final BlockState blockState, + final BlockEntityType type) { + return TICKER.get(level, type); + } +} diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityManagerBlockEntity.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityManagerBlockEntity.java new file mode 100644 index 000000000..d55590a8b --- /dev/null +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityManagerBlockEntity.java @@ -0,0 +1,157 @@ +package com.refinedmods.refinedstorage2.platform.common.security; + +import com.refinedmods.refinedstorage2.api.network.impl.node.security.SecurityDecisionProviderProxyNetworkNode; +import com.refinedmods.refinedstorage2.api.network.impl.security.SecurityDecisionProviderImpl; +import com.refinedmods.refinedstorage2.platform.api.security.SecurityPolicyContainerItem; +import com.refinedmods.refinedstorage2.platform.common.Platform; +import com.refinedmods.refinedstorage2.platform.common.content.BlockEntities; +import com.refinedmods.refinedstorage2.platform.common.content.ContentNames; +import com.refinedmods.refinedstorage2.platform.common.support.BlockEntityWithDrops; +import com.refinedmods.refinedstorage2.platform.common.support.SimpleFilteredContainer; +import com.refinedmods.refinedstorage2.platform.common.support.containermenu.ExtendedMenuProvider; +import com.refinedmods.refinedstorage2.platform.common.support.network.AbstractRedstoneModeNetworkNodeContainerBlockEntity; +import com.refinedmods.refinedstorage2.platform.common.util.ContainerUtil; + +import javax.annotation.Nullable; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.NonNullList; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.SimpleContainer; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.state.BlockState; + +public class SecurityManagerBlockEntity + extends AbstractRedstoneModeNetworkNodeContainerBlockEntity + implements BlockEntityWithDrops, ExtendedMenuProvider { + static final int CARD_AMOUNT = 18; + + private static final String TAG_SECURITY_CARDS = "sc"; + private static final String TAG_FALLBACK_SECURITY_CARD = "fsc"; + + private final SimpleContainer securityCards = new SimpleFilteredContainer( + CARD_AMOUNT, + SecurityManagerBlockEntity::isValidSecurityCard + ); + private final SimpleContainer fallbackSecurityCard = new SimpleFilteredContainer( + 1, + SecurityManagerBlockEntity::isValidFallbackSecurityCard + ); + + private final SecurityDecisionProviderImpl securityDecisionProvider = new SecurityDecisionProviderImpl(); + + public SecurityManagerBlockEntity(final BlockPos pos, final BlockState state) { + super( + BlockEntities.INSTANCE.getSecurityManager(), + pos, + state, + new SecurityDecisionProviderProxyNetworkNode( + Platform.INSTANCE.getConfig().getSecurityManager().getEnergyUsage() + ) + ); + securityCards.addListener(c -> invalidate()); + fallbackSecurityCard.addListener(c -> invalidate()); + getNode().setDelegate(securityDecisionProvider); + } + + private void invalidate() { + if (level != null) { + setChanged(); + } + securityDecisionProvider.clearPolicies(); + long energyUsage = Platform.INSTANCE.getConfig().getSecurityManager().getEnergyUsage(); + for (int i = 0; i < securityCards.getContainerSize(); ++i) { + final ItemStack securityCard = securityCards.getItem(i); + if (!(securityCard.getItem() instanceof SecurityPolicyContainerItem securityPolicyContainerItem)) { + continue; + } + energyUsage += securityPolicyContainerItem.getEnergyUsage(); + securityPolicyContainerItem.getPolicy(securityCard).ifPresent( + policy -> securityPolicyContainerItem.getActor(securityCard).ifPresent( + actor -> securityDecisionProvider.setPolicy(actor, policy))); + } + energyUsage += updateDefaultPolicyAndGetEnergyUsage(); + getNode().setEnergyUsage(energyUsage); + } + + private long updateDefaultPolicyAndGetEnergyUsage() { + final ItemStack fallbackSecurityCardStack = fallbackSecurityCard.getItem(0); + if (fallbackSecurityCardStack.getItem() instanceof SecurityPolicyContainerItem securityPolicyContainerItem) { + securityPolicyContainerItem.getPolicy(fallbackSecurityCardStack).ifPresentOrElse( + securityDecisionProvider::setDefaultPolicy, + () -> securityDecisionProvider.setDefaultPolicy(null) + ); + return securityPolicyContainerItem.getEnergyUsage(); + } + securityDecisionProvider.setDefaultPolicy(null); + return 0; + } + + @Override + public void load(final CompoundTag tag) { + if (tag.contains(TAG_SECURITY_CARDS)) { + ContainerUtil.read(tag.getCompound(TAG_SECURITY_CARDS), securityCards); + } + if (tag.contains(TAG_FALLBACK_SECURITY_CARD)) { + ContainerUtil.read(tag.getCompound(TAG_FALLBACK_SECURITY_CARD), fallbackSecurityCard); + } + super.load(tag); + } + + @Override + public void saveAdditional(final CompoundTag tag) { + super.saveAdditional(tag); + tag.put(TAG_SECURITY_CARDS, ContainerUtil.write(securityCards)); + tag.put(TAG_FALLBACK_SECURITY_CARD, ContainerUtil.write(fallbackSecurityCard)); + } + + @Override + public NonNullList getDrops() { + final NonNullList drops = NonNullList.create(); + for (int i = 0; i < securityCards.getContainerSize(); ++i) { + drops.add(securityCards.getItem(i)); + } + drops.add(fallbackSecurityCard.getItem(0)); + return drops; + } + + SimpleContainer getSecurityCards() { + return securityCards; + } + + SimpleContainer getFallbackSecurityCard() { + return fallbackSecurityCard; + } + + static boolean isValidSecurityCard(final ItemStack stack) { + return stack.getItem() instanceof SecurityPolicyContainerItem securityPolicyContainerItem + && securityPolicyContainerItem.isValid(stack) + && !(stack.getItem() instanceof FallbackSecurityCardItem); + } + + static boolean isValidFallbackSecurityCard(final ItemStack stack) { + return stack.getItem() instanceof FallbackSecurityCardItem; + } + + @Override + public void writeScreenOpeningData(final ServerPlayer player, final FriendlyByteBuf buf) { + // no op + } + + @Override + public Component getDisplayName() { + return ContentNames.SECURITY_MANAGER; + } + + @Nullable + @Override + public AbstractContainerMenu createMenu(final int syncId, final Inventory inventory, final Player player) { + return new SecurityManagerContainerMenu(syncId, inventory, this); + } +} diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityManagerContainerMenu.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityManagerContainerMenu.java new file mode 100644 index 000000000..6fb7bf048 --- /dev/null +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityManagerContainerMenu.java @@ -0,0 +1,72 @@ +package com.refinedmods.refinedstorage2.platform.common.security; + +import com.refinedmods.refinedstorage2.platform.common.content.Menus; +import com.refinedmods.refinedstorage2.platform.common.support.AbstractBaseContainerMenu; +import com.refinedmods.refinedstorage2.platform.common.support.RedstoneMode; +import com.refinedmods.refinedstorage2.platform.common.support.containermenu.ClientProperty; +import com.refinedmods.refinedstorage2.platform.common.support.containermenu.PropertyTypes; +import com.refinedmods.refinedstorage2.platform.common.support.containermenu.ServerProperty; +import com.refinedmods.refinedstorage2.platform.common.support.containermenu.ValidatedSlot; + +import javax.annotation.Nullable; + +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.Container; +import net.minecraft.world.SimpleContainer; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.inventory.Slot; + +import static com.refinedmods.refinedstorage2.platform.common.security.SecurityManagerBlockEntity.CARD_AMOUNT; + +public class SecurityManagerContainerMenu extends AbstractBaseContainerMenu { + @Nullable + private Slot fallbackSecurityCardSlot; + + public SecurityManagerContainerMenu(final int syncId, + final Inventory playerInventory, + final FriendlyByteBuf buf) { + super(Menus.INSTANCE.getSecurityManager(), syncId); + addSlots(playerInventory, new SimpleContainer(CARD_AMOUNT), new SimpleContainer(1)); + registerProperty(new ClientProperty<>(PropertyTypes.REDSTONE_MODE, RedstoneMode.IGNORE)); + } + + SecurityManagerContainerMenu(final int syncId, + final Inventory playerInventory, + final SecurityManagerBlockEntity securityManager) { + super(Menus.INSTANCE.getSecurityManager(), syncId); + addSlots(playerInventory, securityManager.getSecurityCards(), securityManager.getFallbackSecurityCard()); + registerProperty(new ServerProperty<>( + PropertyTypes.REDSTONE_MODE, + securityManager::getRedstoneMode, + securityManager::setRedstoneMode + )); + } + + private void addSlots(final Inventory playerInventory, + final Container securityCards, + final Container fallbackSecurityCard) { + for (int i = 0; i < CARD_AMOUNT; ++i) { + final int column = i % 9; + final int x = 8 + (column * 18); + final int row = i / 9; + final int y = 20 + (row * 18); + addSlot(new ValidatedSlot(securityCards, i, x, y, SecurityManagerBlockEntity::isValidSecurityCard)); + } + fallbackSecurityCardSlot = new ValidatedSlot( + fallbackSecurityCard, + 0, + 174, + 20, + SecurityManagerBlockEntity::isValidFallbackSecurityCard + ); + addSlot(fallbackSecurityCardSlot); + addPlayerInventory(playerInventory, 8, 72); + transferManager.addBiTransfer(playerInventory, securityCards); + transferManager.addBiTransfer(playerInventory, fallbackSecurityCard); + } + + @Nullable + Slot getFallbackSecurityCardSlot() { + return fallbackSecurityCardSlot; + } +} diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityManagerScreen.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityManagerScreen.java new file mode 100644 index 000000000..7a819c1e7 --- /dev/null +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/security/SecurityManagerScreen.java @@ -0,0 +1,61 @@ +package com.refinedmods.refinedstorage2.platform.common.security; + +import com.refinedmods.refinedstorage2.platform.common.Platform; +import com.refinedmods.refinedstorage2.platform.common.support.AbstractBaseScreen; +import com.refinedmods.refinedstorage2.platform.common.support.containermenu.PropertyTypes; +import com.refinedmods.refinedstorage2.platform.common.support.tooltip.HelpClientTooltipComponent; +import com.refinedmods.refinedstorage2.platform.common.support.widget.RedstoneModeSideButtonWidget; + +import java.util.List; + +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Inventory; + +import static com.refinedmods.refinedstorage2.platform.common.util.IdentifierUtil.createIdentifier; +import static com.refinedmods.refinedstorage2.platform.common.util.IdentifierUtil.createTranslation; + +public class SecurityManagerScreen extends AbstractBaseScreen { + private static final ResourceLocation TEXTURE = createIdentifier("textures/gui/security_manager.png"); + + public SecurityManagerScreen(final SecurityManagerContainerMenu menu, + final Inventory playerInventory, + final Component text) { + super(menu, playerInventory, text); + this.inventoryLabelY = 59; + this.imageWidth = 197; + this.imageHeight = 154; + } + + @Override + protected void init() { + super.init(); + addSideButton(new RedstoneModeSideButtonWidget( + getMenu().getProperty(PropertyTypes.REDSTONE_MODE), + createTranslation("gui", "security_manager.redstone_mode_help") + )); + } + + @Override + protected void renderTooltip(final GuiGraphics graphics, final int x, final int y) { + if (hoveredSlot != null && hoveredSlot == menu.getFallbackSecurityCardSlot() && !hoveredSlot.hasItem()) { + Platform.INSTANCE.renderTooltip(graphics, List.of( + ClientTooltipComponent.create( + createTranslation("gui", "security_manager.fallback_security_card_slot_hint").getVisualOrderText() + ), + HelpClientTooltipComponent.create( + createTranslation("gui", "security_manager.no_fallback_security_card_consequence") + ) + ), x, y); + return; + } + super.renderTooltip(graphics, x, y); + } + + @Override + protected ResourceLocation getTexture() { + return TEXTURE; + } +} diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/storage/portablegrid/AbstractPortableGridBlockEntity.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/storage/portablegrid/AbstractPortableGridBlockEntity.java index ab17a63d0..f69d122c3 100644 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/storage/portablegrid/AbstractPortableGridBlockEntity.java +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/storage/portablegrid/AbstractPortableGridBlockEntity.java @@ -66,14 +66,7 @@ protected AbstractPortableGridBlockEntity(final PortableGridType type, final Blo super(getBlockEntityType(type), pos, state); this.diskInventory = new DiskInventory((inventory, slot) -> onDiskChanged(), 1); this.energyStorage = createEnergyStorage(type, this); - this.grid = new PortableGrid(energyStorage, diskInventory, diskStateListener) { - @Override - public boolean isGridActive() { - return super.isGridActive() - && level != null - && redstoneMode.isActive(level.hasNeighborSignal(worldPosition)); - } - }; + this.grid = new InWorldPortableGrid(energyStorage, diskInventory, diskStateListener, this); } static void readDiskInventory(final CompoundTag tag, final DiskInventory diskInventory) { diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/storage/portablegrid/InWorldPortableGrid.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/storage/portablegrid/InWorldPortableGrid.java new file mode 100644 index 000000000..8dfffe5ef --- /dev/null +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/storage/portablegrid/InWorldPortableGrid.java @@ -0,0 +1,29 @@ +package com.refinedmods.refinedstorage2.platform.common.storage.portablegrid; + +import com.refinedmods.refinedstorage2.api.network.energy.EnergyStorage; +import com.refinedmods.refinedstorage2.api.storage.StateTrackedStorage; +import com.refinedmods.refinedstorage2.platform.common.storage.DiskInventory; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.Level; + +class InWorldPortableGrid extends PortableGrid { + private final AbstractPortableGridBlockEntity blockEntity; + + InWorldPortableGrid(final EnergyStorage energyStorage, + final DiskInventory diskInventory, + final StateTrackedStorage.Listener diskListener, + final AbstractPortableGridBlockEntity blockEntity) { + super(energyStorage, diskInventory, diskListener); + this.blockEntity = blockEntity; + } + + @Override + public boolean isGridActive() { + final Level level = blockEntity.getLevel(); + final BlockPos worldPosition = blockEntity.getBlockPos(); + return super.isGridActive() + && level != null + && blockEntity.getRedstoneMode().isActive(level.hasNeighborSignal(worldPosition)); + } +} diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/support/ClientToServerCommunications.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/support/ClientToServerCommunications.java index fd6489b7e..52a867812 100644 --- a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/support/ClientToServerCommunications.java +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/support/ClientToServerCommunications.java @@ -11,7 +11,6 @@ import java.util.List; import java.util.UUID; -import javax.annotation.Nullable; public interface ClientToServerCommunications { void sendGridExtract(PlatformResourceKey resource, GridExtractMode mode, boolean cursor); @@ -42,5 +41,5 @@ public interface ClientToServerCommunications { void sendSecurityCardResetPermission(PlatformPermission permission); - void sendSecurityCardBoundPlayer(@Nullable UUID playerId); + void sendSecurityCardBoundPlayer(UUID playerId); } diff --git a/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/support/SimpleFilteredContainer.java b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/support/SimpleFilteredContainer.java new file mode 100644 index 000000000..13a83635f --- /dev/null +++ b/refinedstorage2-platform-common/src/main/java/com/refinedmods/refinedstorage2/platform/common/support/SimpleFilteredContainer.java @@ -0,0 +1,20 @@ +package com.refinedmods.refinedstorage2.platform.common.support; + +import java.util.function.Predicate; + +import net.minecraft.world.SimpleContainer; +import net.minecraft.world.item.ItemStack; + +public final class SimpleFilteredContainer extends SimpleContainer { + private final Predicate filter; + + public SimpleFilteredContainer(final int size, final Predicate filter) { + super(size); + this.filter = filter; + } + + @Override + public boolean canPlaceItem(final int slot, final ItemStack stack) { + return filter.test(stack); + } +} diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/lang/en_us.json b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/lang/en_us.json index afc6b3d08..590ded8d0 100644 --- a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/lang/en_us.json +++ b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/lang/en_us.json @@ -32,6 +32,8 @@ "block.refinedstorage2.network_transmitter": "Network Transmitter", "block.refinedstorage2.portable_grid": "Portable Grid", "block.refinedstorage2.creative_portable_grid": "Creative Portable Grid", + "block.refinedstorage2.security_manager": "Security Manager", + "block.refinedstorage2.security_manager.help": "When this device is active, will protect the network by default and block all operations. Start adding Security Cards to permit or deny specific operations for a player.", "gui.refinedstorage2.controller.redstone_mode_help": "When this device is inactive, the storage network will not be able to use this device as an energy source.", "gui.refinedstorage2.disk_drive.disks": "Disks", "gui.refinedstorage2.storage.redstone_mode_help": "When this device is inactive, the contained storage will no longer be accessible from within the storage network.", @@ -142,9 +144,11 @@ "gui.refinedstorage2.network_transmitter.status.missing_network_card": "Missing Network Card", "gui.refinedstorage2.network_transmitter.status.transmitting": "%d block(s)", "gui.refinedstorage2.network_transmitter.status.receiver_unreachable": "Unreachable", - "gui.refinedstorage2.security_card.unbound": "Unbound", "gui.refinedstorage2.security_card.permission.reset": "Reset", "gui.refinedstorage2.security_card.permission.modified": "Modified", + "gui.refinedstorage2.security_manager.redstone_mode_help": "When this device is inactive, the network will not be protected.", + "gui.refinedstorage2.security_manager.fallback_security_card_slot_hint": "Slot for a Fallback Security Card.", + "gui.refinedstorage2.security_manager.no_fallback_security_card_consequence": "Add a Fallback Security Card to this slot to set permissions for every player without a Security Card. By default, all actions are denied.", "item.refinedstorage2.controller.help": "Provides the storage network with energy. Multiple are allowed in a single storage network.", "item.refinedstorage2.creative_controller.help": "Provides the storage network with an infinite source of energy.", "item.refinedstorage2.disk_drive.help": "Accepts storage disks to provide the storage network with storage space.", @@ -223,9 +227,9 @@ "item.refinedstorage2.network_card.bound_help": "Insert into a Network Transmitter. Use while crouching to clear binding.", "item.refinedstorage2.network_card.bound": "Bound to %d, %d, %d in %s.", "item.refinedstorage2.security_card": "Security Card", - "item.refinedstorage2.security_card.cleared": "Cleared binding.", + "item.refinedstorage2.security_card.cleared_configuration": "Cleared configuration.", "item.refinedstorage2.security_card.unbound": "Unbound.", - "item.refinedstorage2.security_card.unbound.help": "Right click to configure. Use while crouching to bind to the current player.", + "item.refinedstorage2.security_card.unbound.help": "Right click to configure and bind to the current player.", "item.refinedstorage2.security_card.bound": "Bound to %s.", "item.refinedstorage2.security_card.bound.help": "Right click to configure. Use while crouching to clear configuration and binding.", "item.refinedstorage2.fallback_security_card": "Fallback Security Card", @@ -349,7 +353,13 @@ "text.autoconfig.refinedstorage2.option.portableGrid.openEnergyUsage": "Open energy usage", "text.autoconfig.refinedstorage2.option.portableGrid.insertEnergyUsage": "Insert energy usage", "text.autoconfig.refinedstorage2.option.portableGrid.extractEnergyUsage": "Extract energy usage", - "advancements.refinedstorage2.root.description": "Use one or multiple Controllers in a network to provide your network with energy", + "text.autoconfig.refinedstorage2.option.securityCard": "Security Card", + "text.autoconfig.refinedstorage2.option.securityCard.energyUsage": "Energy usage", + "text.autoconfig.refinedstorage2.option.fallbackSecurityCard": "Fallback Security Card", + "text.autoconfig.refinedstorage2.option.fallbackSecurityCard.energyUsage": "Energy usage", + "text.autoconfig.refinedstorage2.option.securityManager": "Security Manager", + "text.autoconfig.refinedstorage2.option.securityManager.energyUsage": "Energy usage", + "advancements.refinedstorage2.root.description": "Use one or multiple Controllers in a storage network to provide your network with energy", "advancements.refinedstorage2.connecting": "Connecting", "advancements.refinedstorage2.connecting.description": "Use Cable to connect devices with each other, or place devices against each other", "advancements.refinedstorage2.drives": "Drives", @@ -373,17 +383,19 @@ "advancements.refinedstorage2.storing_externally": "Storing externally", "advancements.refinedstorage2.storing_externally.description": "Use an External Storage to provide the network with storage from an external block like a chest", "advancements.refinedstorage2.detecting": "Detecting", - "advancements.refinedstorage2.detecting.description": "Use redstone to check resources stored in the network", + "advancements.refinedstorage2.detecting.description": "Use redstone to check resources stored in the storage network", "advancements.refinedstorage2.construction": "Construction", "advancements.refinedstorage2.construction.description": "Get blocks from the storage network into the world with a Constructor", "advancements.refinedstorage2.destruction": "Destruction", "advancements.refinedstorage2.destruction.description": "Get blocks from in the world into the storage network with a Destructor", "advancements.refinedstorage2.wireless": "Wireless", - "advancements.refinedstorage2.wireless.description": "Access your resources wirelessly with a Wireless Grid.", + "advancements.refinedstorage2.wireless.description": "Access your resources wirelessly with a Wireless Grid", "advancements.refinedstorage2.better_than_a_barrel": "Better than a barrel", "advancements.refinedstorage2.better_than_a_barrel.description": "Craft a Storage Monitor to view, insert or extract resources in a storage network", "advancements.refinedstorage2.no_cables_required": "No cables required", - "advancements.refinedstorage2.no_cables_required.description": "Add extra components to your network without using cables by using a Network Transmitter, Network Receiver and Network Card", + "advancements.refinedstorage2.no_cables_required.description": "Add extra components to your storage network without using cables by using a Network Transmitter, Network Receiver and Network Card", "advancements.refinedstorage2.portable_storage": "Portable storage", - "advancements.refinedstorage2.portable_storage.description": "Craft a Portable Grid to access the content of disks without requiring a storage network" + "advancements.refinedstorage2.portable_storage.description": "Craft a Portable Grid to access the content of disks without requiring a storage network", + "advancements.refinedstorage2.security": "Security", + "advancements.refinedstorage2.security.description": "Secure your storage network with a Security Manager and a Security Card" } diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/models/block/cutout.json b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/models/block/cutout.json new file mode 100644 index 000000000..f6cf9f51a --- /dev/null +++ b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/models/block/cutout.json @@ -0,0 +1,82 @@ +{ + "render_type": "cutout", + "parent": "block/cube", + "elements": [ + { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 16, + 16 + ], + "faces": { + "down": { + "texture": "#down", + "cullface": "down" + }, + "up": { + "texture": "#up", + "cullface": "up" + }, + "north": { + "texture": "#north", + "cullface": "north" + }, + "south": { + "texture": "#south", + "cullface": "south" + }, + "west": { + "texture": "#west", + "cullface": "west" + }, + "east": { + "texture": "#east", + "cullface": "east" + } + } + }, + { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 16, + 16 + ], + "faces": { + "up": { + "texture": "#cutout_up", + "cullface": "up" + }, + "down": { + "texture": "#cutout_down", + "cullface": "down" + }, + "north": { + "texture": "#cutout_north", + "cullface": "north" + }, + "south": { + "texture": "#cutout_south", + "cullface": "south" + }, + "west": { + "texture": "#cutout_west", + "cullface": "west" + }, + "east": { + "texture": "#cutout_east", + "cullface": "east" + } + } + } + ] +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/models/block/emissive_cutout.json b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/models/block/emissive_cutout.json new file mode 100644 index 000000000..418944f69 --- /dev/null +++ b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/models/block/emissive_cutout.json @@ -0,0 +1,106 @@ +{ + "render_type": "cutout", + "parent": "block/cube", + "elements": [ + { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 16, + 16 + ], + "faces": { + "down": { + "texture": "#down", + "cullface": "down" + }, + "up": { + "texture": "#up", + "cullface": "up" + }, + "north": { + "texture": "#north", + "cullface": "north" + }, + "south": { + "texture": "#south", + "cullface": "south" + }, + "west": { + "texture": "#west", + "cullface": "west" + }, + "east": { + "texture": "#east", + "cullface": "east" + } + } + }, + { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 16, + 16 + ], + "faces": { + "up": { + "texture": "#cutout_up", + "cullface": "up", + "neoforge_data": { + "block_light": 15, + "sky_light": 15 + } + }, + "down": { + "texture": "#cutout_down", + "cullface": "down", + "neoforge_data": { + "block_light": 15, + "sky_light": 15 + } + }, + "north": { + "texture": "#cutout_north", + "cullface": "north", + "neoforge_data": { + "block_light": 15, + "sky_light": 15 + } + }, + "south": { + "texture": "#cutout_south", + "cullface": "south", + "neoforge_data": { + "block_light": 15, + "sky_light": 15 + } + }, + "west": { + "texture": "#cutout_west", + "cullface": "west", + "neoforge_data": { + "block_light": 15, + "sky_light": 15 + } + }, + "east": { + "texture": "#cutout_east", + "cullface": "east", + "neoforge_data": { + "block_light": 15, + "sky_light": 15 + } + } + } + } + ] +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/back.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/back.png new file mode 100644 index 000000000..1b87bf05b Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/back.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/black.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/black.png new file mode 100644 index 000000000..7ad301ab6 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/black.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/blue.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/blue.png new file mode 100644 index 000000000..bbcc81641 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/blue.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/brown.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/brown.png new file mode 100644 index 000000000..bfb5241ba Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/brown.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/cyan.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/cyan.png new file mode 100644 index 000000000..95925f4d2 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/cyan.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/gray.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/gray.png new file mode 100644 index 000000000..a45937171 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/gray.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/green.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/green.png new file mode 100644 index 000000000..a864d757a Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/green.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/inactive.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/inactive.png new file mode 100644 index 000000000..bb33dbaa7 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/inactive.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/light_blue.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/light_blue.png new file mode 100644 index 000000000..9327df7da Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/light_blue.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/light_gray.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/light_gray.png new file mode 100644 index 000000000..66d439cb2 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/light_gray.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/lime.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/lime.png new file mode 100644 index 000000000..95b7f6892 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/lime.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/magenta.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/magenta.png new file mode 100644 index 000000000..a6de6b077 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/magenta.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/orange.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/orange.png new file mode 100644 index 000000000..749f7be5e Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/orange.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/pink.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/pink.png new file mode 100644 index 000000000..59b977ef8 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/pink.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/purple.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/purple.png new file mode 100644 index 000000000..41f2a7d49 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/purple.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/red.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/red.png new file mode 100644 index 000000000..b244f44e0 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/red.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/white.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/white.png new file mode 100644 index 000000000..7e600d051 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/white.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/yellow.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/yellow.png new file mode 100644 index 000000000..631071c7d Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/back/yellow.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/black.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/black.png new file mode 100644 index 000000000..4d55ab4fd Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/black.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/blue.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/blue.png new file mode 100644 index 000000000..3be1b6ab9 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/blue.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/brown.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/brown.png new file mode 100644 index 000000000..9d2fc4560 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/brown.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/cyan.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/cyan.png new file mode 100644 index 000000000..bd17fda7e Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/cyan.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/gray.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/gray.png new file mode 100644 index 000000000..6c4dacd08 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/gray.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/green.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/green.png new file mode 100644 index 000000000..565c2f7c2 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/green.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/inactive.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/inactive.png new file mode 100644 index 000000000..9538a69d3 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/inactive.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/light_blue.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/light_blue.png new file mode 100644 index 000000000..f69f2c2e0 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/light_blue.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/light_gray.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/light_gray.png new file mode 100644 index 000000000..3238c7e9f Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/light_gray.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/lime.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/lime.png new file mode 100644 index 000000000..caaa6c2ab Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/lime.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/magenta.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/magenta.png new file mode 100644 index 000000000..9d32b2a13 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/magenta.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/orange.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/orange.png new file mode 100644 index 000000000..f3775ec33 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/orange.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/pink.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/pink.png new file mode 100644 index 000000000..789bf613b Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/pink.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/purple.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/purple.png new file mode 100644 index 000000000..6ceb953fd Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/purple.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/red.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/red.png new file mode 100644 index 000000000..4ed761795 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/red.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/white.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/white.png new file mode 100644 index 000000000..653b30626 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/white.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/yellow.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/yellow.png new file mode 100644 index 000000000..b9e5bd587 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/front/yellow.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/black.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/black.png new file mode 100644 index 000000000..c23465029 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/black.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/blue.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/blue.png new file mode 100644 index 000000000..72d1f0392 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/blue.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/brown.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/brown.png new file mode 100644 index 000000000..d9c27e393 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/brown.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/cyan.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/cyan.png new file mode 100644 index 000000000..520dc0944 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/cyan.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/gray.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/gray.png new file mode 100644 index 000000000..bee22fd56 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/gray.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/green.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/green.png new file mode 100644 index 000000000..6e5e56050 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/green.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/inactive.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/inactive.png new file mode 100644 index 000000000..e8efb48af Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/inactive.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/light_blue.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/light_blue.png new file mode 100644 index 000000000..2716a6245 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/light_blue.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/light_gray.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/light_gray.png new file mode 100644 index 000000000..18906df19 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/light_gray.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/lime.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/lime.png new file mode 100644 index 000000000..a667e1336 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/lime.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/magenta.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/magenta.png new file mode 100644 index 000000000..46a68819c Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/magenta.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/orange.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/orange.png new file mode 100644 index 000000000..55b86c156 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/orange.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/pink.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/pink.png new file mode 100644 index 000000000..6a22034e8 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/pink.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/purple.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/purple.png new file mode 100644 index 000000000..9510daaf3 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/purple.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/red.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/red.png new file mode 100644 index 000000000..e8856b0e7 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/red.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/white.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/white.png new file mode 100644 index 000000000..ed060d2c1 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/white.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/yellow.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/yellow.png new file mode 100644 index 000000000..442bca726 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/left/yellow.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/black.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/black.png new file mode 100644 index 000000000..2b2c70768 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/black.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/blue.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/blue.png new file mode 100644 index 000000000..98c4611b3 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/blue.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/brown.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/brown.png new file mode 100644 index 000000000..20154533b Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/brown.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/cyan.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/cyan.png new file mode 100644 index 000000000..f660428b6 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/cyan.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/gray.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/gray.png new file mode 100644 index 000000000..579398934 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/gray.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/green.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/green.png new file mode 100644 index 000000000..9582dac31 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/green.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/inactive.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/inactive.png new file mode 100644 index 000000000..8648202ac Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/inactive.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/light_blue.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/light_blue.png new file mode 100644 index 000000000..88e6db32c Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/light_blue.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/light_gray.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/light_gray.png new file mode 100644 index 000000000..f574a924e Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/light_gray.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/lime.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/lime.png new file mode 100644 index 000000000..f1fb7ea4b Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/lime.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/magenta.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/magenta.png new file mode 100644 index 000000000..fe70ad63c Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/magenta.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/orange.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/orange.png new file mode 100644 index 000000000..c187b5b00 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/orange.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/pink.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/pink.png new file mode 100644 index 000000000..9dc028eba Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/pink.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/purple.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/purple.png new file mode 100644 index 000000000..28c996269 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/purple.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/red.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/red.png new file mode 100644 index 000000000..754efbd8a Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/red.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/white.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/white.png new file mode 100644 index 000000000..7929cbddc Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/white.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/yellow.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/yellow.png new file mode 100644 index 000000000..e1d4a4539 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/right/yellow.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/black.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/black.png new file mode 100644 index 000000000..8289cb44c Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/black.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/blue.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/blue.png new file mode 100644 index 000000000..d932cea43 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/blue.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/brown.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/brown.png new file mode 100644 index 000000000..b7a8d1560 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/brown.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/cyan.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/cyan.png new file mode 100644 index 000000000..ddee835b7 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/cyan.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/gray.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/gray.png new file mode 100644 index 000000000..9acbaaf81 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/gray.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/green.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/green.png new file mode 100644 index 000000000..1931e49f4 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/green.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/inactive.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/inactive.png new file mode 100644 index 000000000..a3ae9cca5 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/inactive.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/light_blue.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/light_blue.png new file mode 100644 index 000000000..c2e32a0a5 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/light_blue.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/light_gray.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/light_gray.png new file mode 100644 index 000000000..7604f549e Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/light_gray.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/lime.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/lime.png new file mode 100644 index 000000000..6b34177e7 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/lime.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/magenta.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/magenta.png new file mode 100644 index 000000000..6f2bbb319 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/magenta.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/orange.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/orange.png new file mode 100644 index 000000000..9a59570d1 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/orange.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/pink.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/pink.png new file mode 100644 index 000000000..b5d2dbde8 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/pink.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/purple.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/purple.png new file mode 100644 index 000000000..b5c6b313a Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/purple.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/red.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/red.png new file mode 100644 index 000000000..541da8ded Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/red.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/white.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/white.png new file mode 100644 index 000000000..4d070a9bf Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/white.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/yellow.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/yellow.png new file mode 100644 index 000000000..76db07352 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/cutouts/top/yellow.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/front.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/front.png new file mode 100644 index 000000000..019b77189 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/front.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/left.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/left.png new file mode 100644 index 000000000..6cc471736 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/left.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/right.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/right.png new file mode 100644 index 000000000..ec8e1f3be Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/right.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/top.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/top.png new file mode 100644 index 000000000..e3f1124a1 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/block/security_manager/top.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/gui/security_manager.png b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/gui/security_manager.png new file mode 100644 index 000000000..67eb6b970 Binary files /dev/null and b/refinedstorage2-platform-common/src/main/resources/assets/refinedstorage2/textures/gui/security_manager.png differ diff --git a/refinedstorage2-platform-common/src/main/resources/data/refinedstorage2/advancements/root.json b/refinedstorage2-platform-common/src/main/resources/data/refinedstorage2/advancements/root.json index 9241b0fa0..3a930f8ff 100644 --- a/refinedstorage2-platform-common/src/main/resources/data/refinedstorage2/advancements/root.json +++ b/refinedstorage2-platform-common/src/main/resources/data/refinedstorage2/advancements/root.json @@ -4,7 +4,7 @@ "item": "refinedstorage2:creative_controller" }, "title": { - "translate": "itemGroup.refinedstorage2.general" + "translate": "mod.refinedstorage2" }, "description": { "translate": "advancements.refinedstorage2.root.description" diff --git a/refinedstorage2-platform-common/src/main/resources/data/refinedstorage2/advancements/security.json b/refinedstorage2-platform-common/src/main/resources/data/refinedstorage2/advancements/security.json new file mode 100644 index 000000000..c8bc62011 --- /dev/null +++ b/refinedstorage2-platform-common/src/main/resources/data/refinedstorage2/advancements/security.json @@ -0,0 +1,32 @@ +{ + "display": { + "icon": { + "item": "refinedstorage2:security_manager" + }, + "title": { + "translate": "advancements.refinedstorage2.security" + }, + "description": { + "translate": "advancements.refinedstorage2.security.description" + } + }, + "parent": "refinedstorage2:root", + "criteria": { + "security_in_inventory": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "refinedstorage2:security_managers" + }, + { + "items": [ + "refinedstorage2:security_card", + "refinedstorage2:fallback_security_card" + ] + } + ] + } + } + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-common/src/main/resources/data/refinedstorage2/recipes/security_manager.json b/refinedstorage2-platform-common/src/main/resources/data/refinedstorage2/recipes/security_manager.json new file mode 100644 index 000000000..73b19056c --- /dev/null +++ b/refinedstorage2-platform-common/src/main/resources/data/refinedstorage2/recipes/security_manager.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "ECE", + "SMS", + "EFE" + ], + "key": { + "E": { + "item": "refinedstorage2:quartz_enriched_iron" + }, + "C": { + "item": "minecraft:chest" + }, + "S": { + "item": "refinedstorage2:security_card" + }, + "F": { + "item": "refinedstorage2:fallback_security_card" + }, + "M": { + "item": "refinedstorage2:machine_casing" + } + }, + "result": { + "item": "refinedstorage2:security_manager" + } +} \ No newline at end of file diff --git a/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/ClientModInitializerImpl.java b/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/ClientModInitializerImpl.java index a61d27f12..8fdd9ef57 100644 --- a/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/ClientModInitializerImpl.java +++ b/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/ClientModInitializerImpl.java @@ -118,6 +118,7 @@ private void setRenderLayers() { setCutout(Blocks.INSTANCE.getNetworkTransmitter()); setCutout(Blocks.INSTANCE.getPortableGrid()); setCutout(Blocks.INSTANCE.getCreativePortableGrid()); + setCutout(Blocks.INSTANCE.getSecurityManager()); } private void setCutout(final BlockColorMap blockMap) { @@ -160,6 +161,12 @@ private void registerEmissiveModels() { Blocks.INSTANCE.getNetworkTransmitter().forEach( (color, id, block) -> registerEmissiveNetworkTransmitterModels(color, id) ); + Blocks.INSTANCE.getGrid().forEach( + (color, id, block) -> registerEmissiveGridModels(color, id) + ); + Blocks.INSTANCE.getSecurityManager().forEach( + (color, id, block) -> registerEmissiveSecurityManagerModels(color, id) + ); } private void registerEmissiveControllerModels(final DyeColor color) { @@ -269,6 +276,27 @@ private void registerEmissiveNetworkTransmitterModels(final DyeColor color, fina ); } + private void registerEmissiveSecurityManagerModels(final DyeColor color, final ResourceLocation id) { + // Block + EmissiveModelRegistry.INSTANCE.register( + createIdentifier("block/security_manager/" + color.getName()), + createIdentifier("block/security_manager/cutouts/back/" + color.getName()), + createIdentifier("block/security_manager/cutouts/front/" + color.getName()), + createIdentifier("block/security_manager/cutouts/left/" + color.getName()), + createIdentifier("block/security_manager/cutouts/right/" + color.getName()), + createIdentifier("block/security_manager/cutouts/top/" + color.getName()) + ); + // Item + EmissiveModelRegistry.INSTANCE.register( + id, + createIdentifier("block/security_manager/cutouts/back/" + color.getName()), + createIdentifier("block/security_manager/cutouts/front/" + color.getName()), + createIdentifier("block/security_manager/cutouts/left/" + color.getName()), + createIdentifier("block/security_manager/cutouts/right/" + color.getName()), + createIdentifier("block/security_manager/cutouts/top/" + color.getName()) + ); + } + private void registerPackets() { ClientPlayNetworking.registerGlobalReceiver(PacketIds.STORAGE_INFO_RESPONSE, new StorageInfoResponsePacket()); ClientPlayNetworking.registerGlobalReceiver(PacketIds.GRID_UPDATE, new GridUpdatePacket()); diff --git a/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/ConfigImpl.java b/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/ConfigImpl.java index fa56b64fa..ce44228b7 100644 --- a/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/ConfigImpl.java +++ b/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/ConfigImpl.java @@ -17,6 +17,13 @@ @Config(name = IdentifierUtil.MOD_ID) public class ConfigImpl implements ConfigData, com.refinedmods.refinedstorage2.platform.common.Config { + private ScreenSize screenSize = ScreenSize.STRETCH; + + private boolean smoothScrolling = true; + + @ConfigEntry.BoundedDiscrete(min = 3L, max = 256) + private int maxRowsStretch = 256; + @ConfigEntry.Gui.CollapsibleObject private GridEntryImpl grid = new GridEntryImpl(); @@ -88,12 +95,18 @@ public class ConfigImpl implements ConfigData, com.refinedmods.refinedstorage2.p @ConfigEntry.Gui.CollapsibleObject private PortableGridEntryImpl portableGrid = new PortableGridEntryImpl(); - private boolean smoothScrolling = true; - - private ScreenSize screenSize = ScreenSize.STRETCH; + @ConfigEntry.Gui.CollapsibleObject + private SimpleEnergyUsageEntryImpl securityCard = new SimpleEnergyUsageEntryImpl(DefaultEnergyUsage.SECURITY_CARD); - @ConfigEntry.BoundedDiscrete(min = 3L, max = 256) - private int maxRowsStretch = 256; + @ConfigEntry.Gui.CollapsibleObject + private SimpleEnergyUsageEntryImpl fallbackSecurityCard = new SimpleEnergyUsageEntryImpl( + DefaultEnergyUsage.FALLBACK_SECURITY_CARD + ); + + @ConfigEntry.Gui.CollapsibleObject + private SimpleEnergyUsageEntryImpl securityManager = new SimpleEnergyUsageEntryImpl( + DefaultEnergyUsage.SECURITY_MANAGER + ); public static ConfigImpl get() { return AutoConfig.getConfigHolder(ConfigImpl.class).getConfig(); @@ -110,6 +123,11 @@ public void setScreenSize(final ScreenSize screenSize) { AutoConfig.getConfigHolder(ConfigImpl.class).save(); } + @Override + public boolean isSmoothScrolling() { + return smoothScrolling; + } + @Override public int getMaxRowsStretch() { return maxRowsStretch; @@ -221,8 +239,18 @@ public PortableGridEntry getPortableGrid() { } @Override - public boolean isSmoothScrolling() { - return smoothScrolling; + public SimpleEnergyUsageEntry getSecurityCard() { + return securityCard; + } + + @Override + public SimpleEnergyUsageEntry getFallbackSecurityCard() { + return fallbackSecurityCard; + } + + @Override + public SimpleEnergyUsageEntry getSecurityManager() { + return securityManager; } private static class GridEntryImpl implements GridEntry { diff --git a/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/packet/c2s/ClientToServerCommunicationsImpl.java b/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/packet/c2s/ClientToServerCommunicationsImpl.java index 3ba6c6123..3d164f3f7 100644 --- a/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/packet/c2s/ClientToServerCommunicationsImpl.java +++ b/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/packet/c2s/ClientToServerCommunicationsImpl.java @@ -16,7 +16,6 @@ import java.util.List; import java.util.UUID; import java.util.function.Consumer; -import javax.annotation.Nullable; import io.netty.buffer.Unpooled; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; @@ -151,13 +150,8 @@ public void sendSecurityCardResetPermission(final PlatformPermission permission) } @Override - public void sendSecurityCardBoundPlayer(@Nullable final UUID playerId) { - sendToServer(PacketIds.SECURITY_CARD_BOUND_PLAYER, buf -> { - buf.writeBoolean(playerId != null); - if (playerId != null) { - buf.writeUUID(playerId); - } - }); + public void sendSecurityCardBoundPlayer(final UUID playerId) { + sendToServer(PacketIds.SECURITY_CARD_BOUND_PLAYER, buf -> buf.writeUUID(playerId)); } private static void sendToServer(final ResourceLocation id, final Consumer bufConsumer) { diff --git a/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/packet/c2s/SecurityCardBoundPlayerPacket.java b/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/packet/c2s/SecurityCardBoundPlayerPacket.java index ccca1783c..42540536c 100644 --- a/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/packet/c2s/SecurityCardBoundPlayerPacket.java +++ b/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/packet/c2s/SecurityCardBoundPlayerPacket.java @@ -18,8 +18,7 @@ public void receive(final MinecraftServer server, final ServerGamePacketListenerImpl handler, final FriendlyByteBuf buf, final PacketSender responseSender) { - final boolean hasPlayer = buf.readBoolean(); - final UUID playerId = hasPlayer ? buf.readUUID() : null; + final UUID playerId = buf.readUUID(); if (player.containerMenu instanceof SecurityCardContainerMenu securityCardContainerMenu) { server.execute(() -> securityCardContainerMenu.setBoundPlayer(server, playerId)); } diff --git a/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/recipemod/rei/RefinedStorageREIClientPlugin.java b/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/recipemod/rei/RefinedStorageREIClientPlugin.java index 466e8260d..3369fe363 100644 --- a/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/recipemod/rei/RefinedStorageREIClientPlugin.java +++ b/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/recipemod/rei/RefinedStorageREIClientPlugin.java @@ -95,6 +95,12 @@ public void registerCollapsibleEntries(final CollapsibleEntryRegistry registry) ContentIds.NETWORK_TRANSMITTER, Tags.NETWORK_TRANSMITTERS ); + groupItems( + registry, + Blocks.INSTANCE.getSecurityManager(), + ContentIds.SECURITY_MANAGER, + Tags.SECURITY_MANAGERS + ); } @Override diff --git a/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/support/render/EmissiveBakedModel.java b/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/support/render/EmissiveBakedModel.java index ee1845579..4e336d905 100644 --- a/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/support/render/EmissiveBakedModel.java +++ b/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/support/render/EmissiveBakedModel.java @@ -1,5 +1,6 @@ package com.refinedmods.refinedstorage2.platform.fabric.support.render; +import java.util.Set; import java.util.function.Supplier; import net.fabricmc.fabric.api.renderer.v1.model.ForwardingBakedModel; @@ -15,9 +16,9 @@ class EmissiveBakedModel extends ForwardingBakedModel { private final EmissiveTransform transform; - EmissiveBakedModel(final BakedModel wrapped, final ResourceLocation emissiveSprite) { + EmissiveBakedModel(final BakedModel wrapped, final Set emissiveSprites) { this.wrapped = wrapped; - this.transform = new EmissiveTransform(emissiveSprite); + this.transform = new EmissiveTransform(emissiveSprites); } @Override diff --git a/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/support/render/EmissiveModelRegistry.java b/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/support/render/EmissiveModelRegistry.java index 1087b13ae..8350779ba 100644 --- a/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/support/render/EmissiveModelRegistry.java +++ b/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/support/render/EmissiveModelRegistry.java @@ -1,6 +1,8 @@ package com.refinedmods.refinedstorage2.platform.fabric.support.render; +import java.util.Arrays; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; import java.util.function.Function; import javax.annotation.Nullable; @@ -38,7 +40,9 @@ public BakedModel makeEmissive(final ResourceLocation model, final BakedModel ba } public void register(final ResourceLocation location, - final ResourceLocation spriteLocation) { - factories.put(location, bakedModel -> new EmissiveBakedModel(bakedModel, spriteLocation)); + final ResourceLocation... spriteLocations) { + factories.put(location, bakedModel -> new EmissiveBakedModel(bakedModel, new HashSet<>( + Arrays.asList(spriteLocations) + ))); } } diff --git a/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/support/render/EmissiveTransform.java b/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/support/render/EmissiveTransform.java index 69a7cad1e..c87fc09b0 100644 --- a/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/support/render/EmissiveTransform.java +++ b/refinedstorage2-platform-fabric/src/main/java/com/refinedmods/refinedstorage2/platform/fabric/support/render/EmissiveTransform.java @@ -1,5 +1,7 @@ package com.refinedmods.refinedstorage2.platform.fabric.support.render; +import java.util.Set; + import net.fabricmc.fabric.api.renderer.v1.mesh.MutableQuadView; import net.fabricmc.fabric.api.renderer.v1.model.SpriteFinder; import net.fabricmc.fabric.api.renderer.v1.render.RenderContext; @@ -10,10 +12,10 @@ import net.minecraft.resources.ResourceLocation; class EmissiveTransform implements RenderContext.QuadTransform { - private final ResourceLocation emissiveSprite; + private final Set emissiveSprites; - EmissiveTransform(final ResourceLocation emissiveSprite) { - this.emissiveSprite = emissiveSprite; + EmissiveTransform(final Set emissiveSprites) { + this.emissiveSprites = emissiveSprites; } @Override @@ -31,7 +33,7 @@ private void doTransform(final MutableQuadView quad) { if (sprite == null) { return; } - if (!emissiveSprite.equals(sprite.contents().name())) { + if (!emissiveSprites.contains(sprite.contents().name())) { return; } applyLightmap(quad); diff --git a/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/ConfigImpl.java b/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/ConfigImpl.java index 202a56c63..549efa30c 100644 --- a/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/ConfigImpl.java +++ b/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/ConfigImpl.java @@ -19,6 +19,9 @@ public class ConfigImpl implements Config { private final ModConfigSpec.Builder builder = new ModConfigSpec.Builder(); private final ModConfigSpec spec; + private final ModConfigSpec.EnumValue screenSize; + private final ModConfigSpec.BooleanValue smoothScrolling; + private final ModConfigSpec.IntValue maxRowsStretch; private final SimpleEnergyUsageEntry cable; private final ControllerEntry controller; private final DiskDriveEntry diskDrive; @@ -40,11 +43,20 @@ public class ConfigImpl implements Config { private final SimpleEnergyUsageEntry networkReceiver; private final SimpleEnergyUsageEntry networkTransmitter; private final PortableGridEntry portableGrid; - private final ModConfigSpec.BooleanValue smoothScrolling; - private final ModConfigSpec.EnumValue screenSize; - private final ModConfigSpec.IntValue maxRowsStretch; + private final SimpleEnergyUsageEntry securityCard; + private final SimpleEnergyUsageEntry fallbackSecurityCard; + private final SimpleEnergyUsageEntry securityManager; public ConfigImpl() { + screenSize = builder + .comment("The screen size") + .defineEnum("screenSize", ScreenSize.STRETCH); + smoothScrolling = builder + .comment("Whether scrollbars should use smooth scrolling") + .define("smoothScrolling", true); + maxRowsStretch = builder + .comment("The maximum amount of rows that can be displayed when the screen size is stretched") + .defineInRange("maxRowsStretch", 256, 3, 256); cable = new SimpleEnergyUsageEntryImpl("cable", "Cable", DefaultEnergyUsage.CABLE); controller = new ControllerEntryImpl(); diskDrive = new DiskDriveEntryImpl(); @@ -82,15 +94,21 @@ public ConfigImpl() { DefaultEnergyUsage.NETWORK_TRANSMITTER ); portableGrid = new PortableGridEntryImpl(); - smoothScrolling = builder - .comment("Whether scrollbars should use smooth scrolling") - .define("smoothScrolling", true); - screenSize = builder - .comment("The screen size") - .defineEnum("screenSize", ScreenSize.STRETCH); - maxRowsStretch = builder - .comment("The maximum amount of rows that can be displayed when the screen size is stretched") - .defineInRange("maxRowsStretch", 256, 3, 256); + securityCard = new SimpleEnergyUsageEntryImpl( + "securityCard", + "Security Card", + DefaultEnergyUsage.SECURITY_CARD + ); + fallbackSecurityCard = new SimpleEnergyUsageEntryImpl( + "fallbackSecurityCard", + "Fallback Security Card", + DefaultEnergyUsage.FALLBACK_SECURITY_CARD + ); + securityManager = new SimpleEnergyUsageEntryImpl( + "securityManager", + "Security Manager", + DefaultEnergyUsage.SECURITY_MANAGER + ); spec = builder.build(); } @@ -103,6 +121,16 @@ public ScreenSize getScreenSize() { return screenSize.get(); } + @Override + public boolean isSmoothScrolling() { + return smoothScrolling.get(); + } + + @Override + public int getMaxRowsStretch() { + return maxRowsStretch.get(); + } + @Override public void setScreenSize(final ScreenSize screenSize) { this.screenSize.set(screenSize); @@ -214,13 +242,18 @@ public PortableGridEntry getPortableGrid() { } @Override - public boolean isSmoothScrolling() { - return smoothScrolling.get(); + public SimpleEnergyUsageEntry getSecurityCard() { + return securityCard; } @Override - public int getMaxRowsStretch() { - return maxRowsStretch.get(); + public SimpleEnergyUsageEntry getFallbackSecurityCard() { + return fallbackSecurityCard; + } + + @Override + public SimpleEnergyUsageEntry getSecurityManager() { + return securityManager; } private class SimpleEnergyUsageEntryImpl implements SimpleEnergyUsageEntry { diff --git a/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/BlockModelProviderImpl.java b/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/BlockModelProviderImpl.java index b9cffaf10..fbea17c15 100644 --- a/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/BlockModelProviderImpl.java +++ b/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/BlockModelProviderImpl.java @@ -17,10 +17,15 @@ public class BlockModelProviderImpl extends BlockModelProvider { private static final String CUTOUT_TEXTURE = "cutout"; private static final String BLOCK_PREFIX = "block"; + private static final ResourceLocation EMISSIVE_CUTOUT = createIdentifier("block/emissive_cutout"); private static final ResourceLocation EMISSIVE_ALL_CUTOUT = createIdentifier("block/emissive_all_cutout"); private static final ResourceLocation EMISSIVE_NORTH_CUTOUT = createIdentifier("block/emissive_north_cutout"); - private static final ResourceLocation NORTH_CUTOUT = createIdentifier("block/north_cutout"); + + private static final ResourceLocation CUTOUT = createIdentifier("block/cutout"); private static final ResourceLocation ALL_CUTOUT = createIdentifier("block/all_cutout"); + private static final ResourceLocation NORTH_CUTOUT = createIdentifier("block/north_cutout"); + + private static final ResourceLocation BOTTOM_TEXTURE = createIdentifier("block/bottom"); public BlockModelProviderImpl(final PackOutput output, final ExistingFileHelper existingFileHelper) { super(output, MOD_ID, existingFileHelper); @@ -36,6 +41,7 @@ protected void registerModels() { registerWirelessTransmitters(); registerNetworkReceivers(); registerNetworkTransmitters(); + registerSecurityManagers(); } private void registerCables() { @@ -82,7 +88,6 @@ private void registerGrids(final String name, final ResourceLocation back = createIdentifier(BLOCK_PREFIX + "/" + name + "/back"); final ResourceLocation front = createIdentifier(BLOCK_PREFIX + "/" + name + "/front"); final ResourceLocation top = createIdentifier(BLOCK_PREFIX + "/" + name + "/top"); - final ResourceLocation bottom = createIdentifier("block/bottom"); withExistingParent(BLOCK_PREFIX + "/" + name + "/" + variantName, baseModel) .texture(PARTICLE_TEXTURE, right) .texture("north", front) @@ -90,7 +95,7 @@ private void registerGrids(final String name, .texture("south", back) .texture("west", left) .texture("up", top) - .texture("down", bottom) + .texture("down", BOTTOM_TEXTURE) .texture(CUTOUT_TEXTURE, cutout); } @@ -155,4 +160,62 @@ private void registerNetworkTransmitters() { .texture("all", baseTexture) .texture(CUTOUT_TEXTURE, createIdentifier("block/network_transmitter/cutouts/error")); } + + private void registerSecurityManagers() { + final ResourceLocation back = createIdentifier("block/security_manager/back"); + final ResourceLocation front = createIdentifier("block/security_manager/front"); + final ResourceLocation left = createIdentifier("block/security_manager/left"); + final ResourceLocation right = createIdentifier("block/security_manager/right"); + final ResourceLocation top = createIdentifier("block/security_manager/top"); + Blocks.INSTANCE.getNetworkTransmitter().forEach((color, id, receiver) -> { + final ResourceLocation cutoutBack = createIdentifier( + "block/security_manager/cutouts/back/" + color.getName() + ); + final ResourceLocation cutoutFront = createIdentifier( + "block/security_manager/cutouts/front/" + color.getName() + ); + final ResourceLocation cutoutLeft = createIdentifier( + "block/security_manager/cutouts/left/" + color.getName() + ); + final ResourceLocation cutoutRight = createIdentifier( + "block/security_manager/cutouts/right/" + color.getName() + ); + final ResourceLocation cutoutTop = createIdentifier( + "block/security_manager/cutouts/top/" + color.getName() + ); + withExistingParent("block/security_manager/" + color.getName(), EMISSIVE_CUTOUT) + .texture(PARTICLE_TEXTURE, back) + .texture("north", front) + .texture("east", right) + .texture("south", back) + .texture("west", left) + .texture("up", top) + .texture("down", BOTTOM_TEXTURE) + .texture("cutout_north", cutoutFront) + .texture("cutout_east", cutoutRight) + .texture("cutout_south", cutoutBack) + .texture("cutout_west", cutoutLeft) + .texture("cutout_up", cutoutTop) + .texture("cutout_down", BOTTOM_TEXTURE); + }); + final ResourceLocation cutoutBack = createIdentifier("block/security_manager/cutouts/back/inactive"); + final ResourceLocation cutoutFront = createIdentifier("block/security_manager/cutouts/front/inactive"); + final ResourceLocation cutoutLeft = createIdentifier("block/security_manager/cutouts/left/inactive"); + final ResourceLocation cutoutRight = createIdentifier("block/security_manager/cutouts/right/inactive"); + final ResourceLocation cutoutTop = createIdentifier("block/security_manager/cutouts/top/inactive"); + withExistingParent("block/security_manager/inactive", CUTOUT) + .texture(PARTICLE_TEXTURE, back) + .texture("north", front) + .texture("east", right) + .texture("south", back) + .texture("west", left) + .texture("up", top) + .texture("down", BOTTOM_TEXTURE) + .texture("cutout_north", cutoutFront) + .texture("cutout_east", cutoutRight) + .texture("cutout_south", cutoutBack) + .texture("cutout_west", cutoutLeft) + .texture("cutout_up", cutoutTop) + .texture("cutout_down", BOTTOM_TEXTURE); + } } diff --git a/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/BlockStateProviderImpl.java b/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/BlockStateProviderImpl.java index 100f823a4..f9ed517ce 100644 --- a/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/BlockStateProviderImpl.java +++ b/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/BlockStateProviderImpl.java @@ -9,6 +9,7 @@ import com.refinedmods.refinedstorage2.platform.common.grid.AbstractGridBlock; import com.refinedmods.refinedstorage2.platform.common.networking.NetworkReceiverBlock; import com.refinedmods.refinedstorage2.platform.common.networking.NetworkTransmitterBlock; +import com.refinedmods.refinedstorage2.platform.common.security.SecurityManagerBlock; import com.refinedmods.refinedstorage2.platform.common.support.CableBlockSupport; import com.refinedmods.refinedstorage2.platform.common.support.direction.BiDirection; import com.refinedmods.refinedstorage2.platform.common.support.direction.BiDirectionType; @@ -68,6 +69,7 @@ protected void registerStatesAndModels() { registerConstructorDestructors(Blocks.INSTANCE.getDestructor(), "destructor"); registerNetworkReceivers(); registerNetworkTransmitters(); + registerSecurityManagers(); } private void registerCables() { @@ -301,6 +303,24 @@ private void registerNetworkTransmitters() { }); } + private void registerSecurityManagers() { + final ModelFile inactive = modelFile(createIdentifier("block/security_manager/inactive")); + Blocks.INSTANCE.getSecurityManager().forEach((color, id, block) -> { + final ModelFile active = modelFile(createIdentifier("block/security_manager/" + color.getName())); + final var builder = getVariantBuilder(block.get()); + builder.forAllStates(blockState -> { + final ConfiguredModel.Builder model = ConfiguredModel.builder(); + if (Boolean.TRUE.equals(blockState.getValue(SecurityManagerBlock.ACTIVE))) { + model.modelFile(active); + } else { + model.modelFile(inactive); + } + addRotation(model, blockState.getValue(BiDirectionType.INSTANCE.getProperty())); + return model.build(); + }); + }); + } + private void addRotation(final ConfiguredModel.Builder model, final Direction direction) { final int rotationX; if (direction.getAxis() == Direction.Axis.Y) { diff --git a/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/ItemModelProviderImpl.java b/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/ItemModelProviderImpl.java index 0b0c4cc54..07fc36159 100644 --- a/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/ItemModelProviderImpl.java +++ b/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/ItemModelProviderImpl.java @@ -46,6 +46,7 @@ protected void registerModels() { registerWirelessTransmitters(); registerNetworkReceivers(); registerNetworkTransmitters(); + registerSecurityManagers(); } private void registerCables() { @@ -177,6 +178,14 @@ private void registerNetworkTransmitters() { )); } + private void registerSecurityManagers() { + final var blocks = Blocks.INSTANCE.getSecurityManager(); + blocks.forEach((color, id, block) -> withExistingParent( + id.getPath(), + createIdentifier("block/security_manager/" + color.getName()) + )); + } + private ModelFile modelFile(final ResourceLocation location) { return new ModelFile.ExistingModelFile(location, existingFileHelper); } diff --git a/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/loot/BlockDropProvider.java b/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/loot/BlockDropProvider.java index f561592a7..b0a25b484 100644 --- a/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/loot/BlockDropProvider.java +++ b/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/loot/BlockDropProvider.java @@ -32,6 +32,7 @@ protected void generate() { Blocks.INSTANCE.getWirelessTransmitter().forEach((color, id, block) -> dropSelf(block.get())); Blocks.INSTANCE.getNetworkReceiver().forEach((color, id, block) -> dropSelf(block.get())); Blocks.INSTANCE.getNetworkTransmitter().forEach((color, id, block) -> dropSelf(block.get())); + Blocks.INSTANCE.getSecurityManager().forEach((color, id, block) -> dropSelf(block.get())); } @Override @@ -48,6 +49,7 @@ protected Iterable getKnownBlocks() { blocks.addAll(Blocks.INSTANCE.getWirelessTransmitter().values()); blocks.addAll(Blocks.INSTANCE.getNetworkReceiver().values()); blocks.addAll(Blocks.INSTANCE.getNetworkTransmitter().values()); + blocks.addAll(Blocks.INSTANCE.getSecurityManager().values()); return blocks; } } diff --git a/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/loot/LootTableProviderImpl.java b/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/loot/LootTableProviderImpl.java index b7ad4842d..6db6ee1c8 100644 --- a/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/loot/LootTableProviderImpl.java +++ b/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/loot/LootTableProviderImpl.java @@ -5,15 +5,13 @@ import net.minecraft.data.PackOutput; import net.minecraft.data.loot.LootTableProvider; -import net.minecraft.world.level.storage.loot.parameters.LootContextParamSet; - -import static net.minecraft.world.level.storage.loot.parameters.LootContextParams.EXPLOSION_RADIUS; +import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets; public class LootTableProviderImpl extends LootTableProvider { public LootTableProviderImpl(final PackOutput output) { super(output, Set.of(), List.of(new SubProviderEntry( BlockDropProvider::new, - LootContextParamSet.builder().required(EXPLOSION_RADIUS).build()) - )); + LootContextParamSets.BLOCK + ))); } } diff --git a/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/recipe/RecoloringRecipeProvider.java b/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/recipe/RecoloringRecipeProvider.java index 60ca48254..65e8bbb32 100644 --- a/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/recipe/RecoloringRecipeProvider.java +++ b/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/recipe/RecoloringRecipeProvider.java @@ -62,6 +62,9 @@ protected void buildRecipes(final RecipeOutput output) { Blocks.INSTANCE.getNetworkTransmitter().forEach((color, id, block) -> recipe(Tags.NETWORK_TRANSMITTERS, block.get().asItem(), color) .save(output, recipeId(color, "network_transmitter"))); + Blocks.INSTANCE.getSecurityManager().forEach((color, id, block) -> + recipe(Tags.SECURITY_MANAGERS, block.get().asItem(), color) + .save(output, recipeId(color, "security_manager"))); } private ResourceLocation recipeId(final DyeColor color, final String suffix) { diff --git a/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/tag/ItemTagsProviderImpl.java b/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/tag/ItemTagsProviderImpl.java index aec3ad664..d3df12ac6 100644 --- a/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/tag/ItemTagsProviderImpl.java +++ b/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/datagen/tag/ItemTagsProviderImpl.java @@ -34,6 +34,7 @@ import static com.refinedmods.refinedstorage2.platform.common.content.Tags.IMPORTERS; import static com.refinedmods.refinedstorage2.platform.common.content.Tags.NETWORK_RECEIVERS; import static com.refinedmods.refinedstorage2.platform.common.content.Tags.NETWORK_TRANSMITTERS; +import static com.refinedmods.refinedstorage2.platform.common.content.Tags.SECURITY_MANAGERS; import static com.refinedmods.refinedstorage2.platform.common.content.Tags.STORAGE_DISKS; import static com.refinedmods.refinedstorage2.platform.common.content.Tags.WIRELESS_TRANSMITTERS; import static com.refinedmods.refinedstorage2.platform.common.util.IdentifierUtil.MOD_ID; @@ -110,6 +111,10 @@ protected void addTags(final HolderLookup.Provider provider) { Blocks.INSTANCE.getNetworkTransmitter().values().stream() .map(block -> (Supplier) block::asItem) .toList()); + addAllToTag(SECURITY_MANAGERS, + Blocks.INSTANCE.getSecurityManager().values().stream() + .map(block -> (Supplier) block::asItem) + .toList()); } private void addAllToTag(final TagKey t, final Collection> items) { diff --git a/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/recipemod/rei/RefinedStorageREIClientPlugin.java b/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/recipemod/rei/RefinedStorageREIClientPlugin.java index 1e73e5325..37064bfa7 100644 --- a/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/recipemod/rei/RefinedStorageREIClientPlugin.java +++ b/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/recipemod/rei/RefinedStorageREIClientPlugin.java @@ -93,6 +93,12 @@ public void registerCollapsibleEntries(final CollapsibleEntryRegistry registry) ContentIds.NETWORK_TRANSMITTER, Tags.NETWORK_TRANSMITTERS ); + groupItems( + registry, + Blocks.INSTANCE.getSecurityManager(), + ContentIds.SECURITY_MANAGER, + Tags.SECURITY_MANAGERS + ); } @Override diff --git a/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/support/packet/c2s/ClientToServerCommunicationsImpl.java b/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/support/packet/c2s/ClientToServerCommunicationsImpl.java index 35b2f8b7c..d5944e233 100644 --- a/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/support/packet/c2s/ClientToServerCommunicationsImpl.java +++ b/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/support/packet/c2s/ClientToServerCommunicationsImpl.java @@ -14,7 +14,6 @@ import java.util.List; import java.util.UUID; -import javax.annotation.Nullable; import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.neoforged.neoforge.network.PacketDistributor; @@ -112,7 +111,7 @@ public void sendSecurityCardResetPermission(final PlatformPermission permission) } @Override - public void sendSecurityCardBoundPlayer(@Nullable final UUID playerId) { + public void sendSecurityCardBoundPlayer(final UUID playerId) { sendToServer(new SecurityCardBoundPlayerPacket(playerId)); } } diff --git a/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/support/packet/c2s/SecurityCardBoundPlayerPacket.java b/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/support/packet/c2s/SecurityCardBoundPlayerPacket.java index 465576003..686cec4c5 100644 --- a/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/support/packet/c2s/SecurityCardBoundPlayerPacket.java +++ b/refinedstorage2-platform-forge/src/main/java/com/refinedmods/refinedstorage2/platform/forge/support/packet/c2s/SecurityCardBoundPlayerPacket.java @@ -4,16 +4,15 @@ import com.refinedmods.refinedstorage2.platform.common.support.packet.PacketIds; import java.util.UUID; -import javax.annotation.Nullable; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.resources.ResourceLocation; import net.neoforged.neoforge.network.handling.PlayPayloadContext; -public record SecurityCardBoundPlayerPacket(@Nullable UUID playerId) implements CustomPacketPayload { +public record SecurityCardBoundPlayerPacket(UUID playerId) implements CustomPacketPayload { public static SecurityCardBoundPlayerPacket decode(final FriendlyByteBuf buf) { - return new SecurityCardBoundPlayerPacket(buf.readBoolean() ? buf.readUUID() : null); + return new SecurityCardBoundPlayerPacket(buf.readUUID()); } public static void handle(final SecurityCardBoundPlayerPacket packet, final PlayPayloadContext ctx) { @@ -29,10 +28,7 @@ public static void handle(final SecurityCardBoundPlayerPacket packet, final Play @Override public void write(final FriendlyByteBuf buf) { - buf.writeBoolean(playerId != null); - if (playerId != null) { - buf.writeUUID(playerId); - } + buf.writeUUID(playerId); } @Override