diff --git a/gradle.properties b/gradle.properties index a2aaed0..081d2cf 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,9 +3,9 @@ org.gradle.jvmargs = -Xmx1G # Fabric Properties # check these on https://fabricmc.net/use - minecraft_version = 20w28a - yarn_build = 20 - fabric_loader_version = 0.8.9+build.203 + minecraft_version = 20w29a + yarn_build = 8 + fabric_loader_version = 0.9.0+build.204 # Mod Properties mod_version = 1.0.0 @@ -13,4 +13,4 @@ org.gradle.jvmargs = -Xmx1G # Dependencies # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api - fabric_api_version = 0.14.5+build.376-1.16 + fabric_api_version = 0.14.6+build.377-1.16 diff --git a/src/main/java/com/thebrokenrail/energonrelics/Config.java b/src/main/java/com/thebrokenrail/energonrelics/Config.java index 8e95e51..e7b3fc1 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/Config.java +++ b/src/main/java/com/thebrokenrail/energonrelics/Config.java @@ -13,6 +13,6 @@ public class Config { public static final int REACTOR_ENERGY_OUTPUT = 250; public static final int DEFENSIVE_LASER_RANGE = 18; - public static final int DEFENSIVE_LASER_IDLE_ENERGY_REQUIRED = 25; + public static final int DEFENSIVE_LASER_IDLE_ENERGY_REQUIRED = 32; public static final int DEFENSIVE_LASER_FIRE_ENERGY_REQUIRED = 64; } diff --git a/src/main/java/com/thebrokenrail/energonrelics/EnergonRelics.java b/src/main/java/com/thebrokenrail/energonrelics/EnergonRelics.java index 179dd65..9888a6a 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/EnergonRelics.java +++ b/src/main/java/com/thebrokenrail/energonrelics/EnergonRelics.java @@ -1,6 +1,7 @@ package com.thebrokenrail.energonrelics; import com.thebrokenrail.energonrelics.block.DefensiveLaserBlock; +import com.thebrokenrail.energonrelics.block.ThermalGlassBlock; import com.thebrokenrail.energonrelics.block.battery.ActiveBatteryControllerBlock; import com.thebrokenrail.energonrelics.block.reactor.ReactorControllerBlock; import com.thebrokenrail.energonrelics.block.reactor.ReactorCoreBlock; @@ -43,6 +44,7 @@ public class EnergonRelics implements ModInitializer { public static final MultimeterItem MULTIMETER_ITEM = new MultimeterItem(); public static final ThermalCasingBlock THERMAL_CASING_BLOCK = new ThermalCasingBlock(); + public static final ThermalGlassBlock THERMAL_GLASS_BLOCK = new ThermalGlassBlock(); public static final BatteryCoreBlock BATTERY_CORE_BLOCk = new BatteryCoreBlock(); public static final PassiveBatteryControllerBlock PASSIVE_BATTERY_CONTROLLER_BLOCk = new PassiveBatteryControllerBlock(); @@ -55,11 +57,11 @@ public class EnergonRelics implements ModInitializer { public static final Item VERIDIUM_INGOT_ITEM = new Item(new Item.Settings().group(ITEM_GROUP)); public static final SimpleBlock VERIDIUM_ORE_BLOCK = new SimpleBlock(FabricBlockSettings.of(Material.STONE).requiresTool().strength(3.0F, 3.0F)); public static final SimpleBlock VERIDIUM_BLOCK_BLOCK = new SimpleBlock(FabricBlockSettings.of(Material.METAL, MaterialColor.GOLD).requiresTool().strength(3.0F, 6.0F).sounds(BlockSoundGroup.METAL)); - public static final ConfiguredFeature VERIDIUM_ORE_FEATURE = Feature.ORE.configure(new OreFeatureConfig(OreFeatureConfig.class_5436.field_25845, EnergonRelics.VERIDIUM_ORE_BLOCK.getDefaultState(), 9)).method_30377(32).method_30371().method_30375(2); + public static final ConfiguredFeature VERIDIUM_ORE_FEATURE = Feature.ORE.configure(new OreFeatureConfig(OreFeatureConfig.class_5436.field_25845, EnergonRelics.VERIDIUM_ORE_BLOCK.getDefaultState(), 9)).method_30377(32).spreadHorizontally().repeat(2); public static final Item CIRCUIT_BOARD_ITEM = new Item(new Item.Settings().group(ITEM_GROUP)); - public static final Item DEFENSIVE_LASER_CORE_ITEM = new Item(new Item.Settings().group(ITEM_GROUP));; + public static final Item DEFENSIVE_LASER_CORE_ITEM = new Item(new Item.Settings().group(ITEM_GROUP)); public static final DefensiveLaserBlock DEFENSIVE_LASER_BLOCK = new DefensiveLaserBlock(); @Override @@ -73,6 +75,7 @@ public class EnergonRelics implements ModInitializer { SWITCH_BLOCk.register("switch"); THERMAL_CASING_BLOCK.register("thermal_casing"); + THERMAL_GLASS_BLOCK.register("thermal_glass"); BATTERY_CORE_BLOCk.register("battery_core"); PASSIVE_BATTERY_CONTROLLER_BLOCk.register("passive_battery_controller"); diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/DefensiveLaserBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/DefensiveLaserBlock.java index e0d7f54..658108a 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/DefensiveLaserBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/DefensiveLaserBlock.java @@ -2,7 +2,7 @@ package com.thebrokenrail.energonrelics.block; import com.thebrokenrail.energonrelics.block.entity.DefensiveLaserBlockEntity; import com.thebrokenrail.energonrelics.block.util.EnergyProviderBlock; -import com.thebrokenrail.energonrelics.client.render.DefensiveLaserBlockEntityRenderer; +import com.thebrokenrail.energonrelics.client.block.entity.render.DefensiveLaserBlockEntityRenderer; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; @@ -26,7 +26,7 @@ public class DefensiveLaserBlock extends EnergyProviderBlock { public static final BooleanProperty POWERED = Properties.POWERED; public DefensiveLaserBlock() { - super(FabricBlockSettings.of(Material.GLASS, MaterialColor.BLACK).requiresTool().strength(50.0F, 1200.0F).nonOpaque().allowsSpawning((state, world, pos, type) -> false).solidBlock((state, world, pos) -> false).suffocates((state, world, pos) -> false)); + super(FabricBlockSettings.of(Material.GLASS, MaterialColor.BLACK).requiresTool().strength(50.0F, 1200.0F)); setDefaultState(getDefaultState().with(POWERED, false)); } diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/ThermalGlassBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/ThermalGlassBlock.java new file mode 100644 index 0000000..7d4f841 --- /dev/null +++ b/src/main/java/com/thebrokenrail/energonrelics/block/ThermalGlassBlock.java @@ -0,0 +1,28 @@ +package com.thebrokenrail.energonrelics.block; + +import com.thebrokenrail.energonrelics.block.util.SimpleBlock; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.BlockState; +import net.minecraft.block.Material; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.BlockView; + +public class ThermalGlassBlock extends SimpleBlock { + public ThermalGlassBlock() { + super(FabricBlockSettings.of(Material.STONE).requiresTool().strength(1.5f, 6.0f).nonOpaque().allowsSpawning((state, world, pos, type) -> false).solidBlock((state, world, pos) -> false).suffocates((state, world, pos) -> false)); + } + + @Override + @SuppressWarnings("deprecation") + @Environment(EnvType.CLIENT) + public float getAmbientOcclusionLightLevel(BlockState state, BlockView world, BlockPos pos) { + return 1.0F; + } + + @Override + public boolean isTranslucent(BlockState state, BlockView world, BlockPos pos) { + return true; + } +} diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/entity/DefensiveLaserBlockEntity.java b/src/main/java/com/thebrokenrail/energonrelics/block/entity/DefensiveLaserBlockEntity.java index cf0ef4d..9ae3d8a 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/entity/DefensiveLaserBlockEntity.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/entity/DefensiveLaserBlockEntity.java @@ -174,7 +174,7 @@ public class DefensiveLaserBlockEntity extends EnergyReceiverBlockEntity { } private List getEntities(Predicate predicate) { - return Objects.requireNonNull(getWorld()).getEntities(LivingEntity.class, new Box(getPos()).expand(Config.DEFENSIVE_LASER_RANGE), predicate); + return Objects.requireNonNull(getWorld()).getEntitiesByClass(LivingEntity.class, new Box(getPos()).expand(Config.DEFENSIVE_LASER_RANGE), predicate); } private Entity getDummyEntity() { @@ -206,7 +206,7 @@ public class DefensiveLaserBlockEntity extends EnergyReceiverBlockEntity { double distance; if (collision != null) { - world.createExplosion(null, collision.getX(), collision.getY(), collision.getZ(), 3, Explosion.DestructionType.NONE); + world.createExplosion(null, collision.getX(), collision.getY(), collision.getZ(), 1, Explosion.DestructionType.NONE); distance = posVec.distanceTo(collision); } else { @@ -217,7 +217,7 @@ public class DefensiveLaserBlockEntity extends EnergyReceiverBlockEntity { distance = distance * multiplier; for (int i = 0; i < distance; i++) { Vec3d vec = rotationVec.multiply(i / multiplier).add(posVec); - ((ServerWorld) world).spawnParticles(ParticleTypes.END_ROD, vec.getX(), vec.getY(), vec.getZ(), 1, 0, 0, 0, 0.25f); + ((ServerWorld) world).spawnParticles(ParticleTypes.END_ROD, vec.getX(), vec.getY(), vec.getZ(), 1, 0, 0, 0, 0.1f); } } diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/entity/battery/PassiveBatteryControllerBlockEntity.java b/src/main/java/com/thebrokenrail/energonrelics/block/entity/battery/PassiveBatteryControllerBlockEntity.java index 85b8917..b5d801d 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/entity/battery/PassiveBatteryControllerBlockEntity.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/entity/battery/PassiveBatteryControllerBlockEntity.java @@ -66,6 +66,10 @@ public class PassiveBatteryControllerBlockEntity extends EnergyReceiverBlockEnti return false; } + public static boolean isInvalidBlock(BlockState block) { + return !block.isOf(EnergonRelics.THERMAL_GLASS_BLOCK) && !block.isOf(EnergonRelics.THERMAL_CASING_BLOCK); + } + @Override public void setEnergy(long value) { BatteryCoreBlockEntity core = getBatteryCore(); @@ -111,7 +115,7 @@ public class PassiveBatteryControllerBlockEntity extends EnergyReceiverBlockEnti for (Direction side : Direction.values()) { if (side != facing) { BlockState state = getWorld().getBlockState(corePos.offset(side)); - if (state == null || state.getBlock() != EnergonRelics.THERMAL_CASING_BLOCK) { + if (state == null || isInvalidBlock(state)) { valid = false; break; } diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/entity/reactor/ReactorControllerBlockEntity.java b/src/main/java/com/thebrokenrail/energonrelics/block/entity/reactor/ReactorControllerBlockEntity.java index 19fef39..d65f5ac 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/entity/reactor/ReactorControllerBlockEntity.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/entity/reactor/ReactorControllerBlockEntity.java @@ -3,6 +3,7 @@ package com.thebrokenrail.energonrelics.block.entity.reactor; import com.thebrokenrail.energonrelics.Config; import com.thebrokenrail.energonrelics.EnergonRelics; import com.thebrokenrail.energonrelics.block.battery.PassiveBatteryControllerBlock; +import com.thebrokenrail.energonrelics.block.entity.battery.PassiveBatteryControllerBlockEntity; import com.thebrokenrail.energonrelics.block.reactor.ReactorControllerBlock; import com.thebrokenrail.energonrelics.energy.helper.EnergyGeneratorBlockEntity; import net.minecraft.block.BlockState; @@ -81,7 +82,7 @@ public class ReactorControllerBlockEntity extends EnergyGeneratorBlockEntity { inputs.add((ReactorInputBlockEntity) potentialInput); } else { BlockState state = getWorld().getBlockState(checkPos); - if (state == null || state.getBlock() != EnergonRelics.THERMAL_CASING_BLOCK) { + if (state == null || PassiveBatteryControllerBlockEntity.isInvalidBlock(state)) { valid = false; break; } diff --git a/src/main/java/com/thebrokenrail/energonrelics/block/util/EnergyProviderBlock.java b/src/main/java/com/thebrokenrail/energonrelics/block/util/EnergyProviderBlock.java index fbba3cb..fb88154 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/block/util/EnergyProviderBlock.java +++ b/src/main/java/com/thebrokenrail/energonrelics/block/util/EnergyProviderBlock.java @@ -1,7 +1,7 @@ package com.thebrokenrail.energonrelics.block.util; import com.thebrokenrail.energonrelics.EnergonRelics; -import com.thebrokenrail.energonrelics.client.render.HighlightBlockEntityRenderer; +import com.thebrokenrail.energonrelics.client.block.entity.render.HighlightBlockEntityRenderer; import com.thebrokenrail.energonrelics.component.NetworkComponent; import com.thebrokenrail.energonrelics.energy.core.EnergyProviderBlockEntity; import net.fabricmc.api.EnvType; diff --git a/src/main/java/com/thebrokenrail/energonrelics/client/EnergonRelicsClient.java b/src/main/java/com/thebrokenrail/energonrelics/client/EnergonRelicsClient.java index bd15761..52c5c11 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/client/EnergonRelicsClient.java +++ b/src/main/java/com/thebrokenrail/energonrelics/client/EnergonRelicsClient.java @@ -13,6 +13,7 @@ public class EnergonRelicsClient implements ClientModInitializer { @Override public void onInitializeClient() { EnergyProviderBlock.initRenderer(); + BlockRenderLayerMap.INSTANCE.putBlock(EnergonRelics.THERMAL_GLASS_BLOCK, RenderLayer.getCutout()); BlockRenderLayerMap.INSTANCE.putBlock(EnergonRelics.DEFENSIVE_LASER_BLOCK, RenderLayer.getCutout()); } } diff --git a/src/main/java/com/thebrokenrail/energonrelics/client/render/DefensiveLaserBlockEntityRenderer.java b/src/main/java/com/thebrokenrail/energonrelics/client/block/entity/render/DefensiveLaserBlockEntityRenderer.java similarity index 96% rename from src/main/java/com/thebrokenrail/energonrelics/client/render/DefensiveLaserBlockEntityRenderer.java rename to src/main/java/com/thebrokenrail/energonrelics/client/block/entity/render/DefensiveLaserBlockEntityRenderer.java index 5e7655d..3b7d04c 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/client/render/DefensiveLaserBlockEntityRenderer.java +++ b/src/main/java/com/thebrokenrail/energonrelics/client/block/entity/render/DefensiveLaserBlockEntityRenderer.java @@ -1,4 +1,4 @@ -package com.thebrokenrail.energonrelics.client.render; +package com.thebrokenrail.energonrelics.client.block.entity.render; import com.thebrokenrail.energonrelics.EnergonRelics; import com.thebrokenrail.energonrelics.block.entity.DefensiveLaserBlockEntity; diff --git a/src/main/java/com/thebrokenrail/energonrelics/client/render/HighlightBlockEntityRenderer.java b/src/main/java/com/thebrokenrail/energonrelics/client/block/entity/render/HighlightBlockEntityRenderer.java similarity index 91% rename from src/main/java/com/thebrokenrail/energonrelics/client/render/HighlightBlockEntityRenderer.java rename to src/main/java/com/thebrokenrail/energonrelics/client/block/entity/render/HighlightBlockEntityRenderer.java index a3dfbd3..0620524 100644 --- a/src/main/java/com/thebrokenrail/energonrelics/client/render/HighlightBlockEntityRenderer.java +++ b/src/main/java/com/thebrokenrail/energonrelics/client/block/entity/render/HighlightBlockEntityRenderer.java @@ -1,4 +1,4 @@ -package com.thebrokenrail.energonrelics.client.render; +package com.thebrokenrail.energonrelics.client.block.entity.render; import com.thebrokenrail.energonrelics.EnergonRelics; import com.thebrokenrail.energonrelics.energy.core.EnergyReceiverBlockEntity; @@ -27,7 +27,7 @@ public class HighlightBlockEntityRenderer extends BlockEntityRenderer