Compare commits
No commits in common. "ec4ad536127893b84cc49b6e57bc1e1ad8f935af" and "91a6e2d9b31a0c54e5665b41b7997e2c6c167f7c" have entirely different histories.
ec4ad53612
...
91a6e2d9b3
|
@ -1,32 +1,3 @@
|
|||
v2o.2.0
|
||||
|
||||
+ Added Molten Salt Reactors!
|
||||
* Interact with vessels and heaters using their respective filtered ports
|
||||
* Heaters will not block flux, but contribute none themselves and have zero moderator efficiency
|
||||
* Remove excess heat from the casing of a heat-positive MSR using emergency coolant via vents
|
||||
|
||||
+ Added Quantum Computers!
|
||||
* Simulate real quantum algorithms using many types of quantum gate on a configurable number of qubits
|
||||
* Do be careful when using more than five qubits - the memory cost can become large!
|
||||
|
||||
+ Batteries and RTGs now form multiblocks
|
||||
|
||||
* Moderator lines of zero flux now contribute zero efficiency
|
||||
* Fixed fission shield managers occasionally not remembering their connected shields
|
||||
* Vents can now be toggled between input and output mode
|
||||
* Moved various reactor properties such as heat buffers into logic classes
|
||||
|
||||
* Reorganised a huge number of configs
|
||||
|
||||
+ Finally added explicit server proxy
|
||||
|
||||
* Fixed blindness radiation debuff flickering
|
||||
|
||||
* Cleaned up many unnecessary method calls on block updates
|
||||
* Various other minor fixes, changes and refactors
|
||||
* Possible other things that I have forgotten
|
||||
- Removed Paulobrine and Herobrian
|
||||
|
||||
v2o.1.2
|
||||
|
||||
+ Added fission neutron shields and shield managers to turn reactors off!
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
mc_version=1.12.2
|
||||
forge_version=14.23.5.2838
|
||||
mapping_version=stable_39
|
||||
mod_version=2o.2.0
|
||||
mod_version=2o.1.3
|
||||
|
||||
ic2_version=2.8.197-ex112
|
||||
jei_version=4.15.0.293
|
||||
ic2_version=2.8.170-ex112
|
||||
jei_version=4.15.0.+
|
||||
crafttweaker_version=1.12-4.1.19.+
|
||||
mantle_version=1.12-1.3.3.55
|
||||
tic_version=1.12.2-2.13.0.184
|
||||
oc_version=MC1.12.2-1.7.5.198
|
||||
cofh_core_version=1.12.2-4.6.3.27
|
||||
common_capabilities_version=2.4.6-328
|
||||
gamestages_version=2.0.119
|
||||
tic_version=1.12.2-2.12.0.157
|
||||
oc_version=MC1.12.2-1.7.4.+
|
||||
cofh_core_version=1.12.2-4.6.3.+
|
||||
common_capabilities_version=2.4.4-309
|
||||
gamestages_version=2.0.+
|
||||
|
||||
baubles_version=1.12:1.5.2
|
||||
conarm_version=1.12.2:1.2.5.4
|
||||
gregtech_version=1.12.2:1.9.0.481
|
||||
mekanism_version=1.12.2:9.8.3.390
|
||||
conarm_version=1.12.2:1.2.4
|
||||
gregtech_version=1.12.2:1.8.4.419
|
||||
mekanism_version=1.12.2:9.8.0.381
|
||||
projecte_version=1.12.2:PE1.4.1
|
||||
|
||||
org.gradle.jvmargs=-Xmx4G
|
||||
|
|
|
@ -7,7 +7,7 @@ public class FluidLiquid extends NCFluid {
|
|||
}
|
||||
|
||||
public FluidLiquid(String fluidName, Boolean opaque, Integer color, Integer density, Integer temperature, Integer viscosity, Integer luminosity) {
|
||||
super(fluidName, true, opaque == null ? fluidName : (opaque ? "liquid_opaque" : "liquid"), color);
|
||||
super(fluidName, true, opaque ? "liquid_opaque" : "liquid", color);
|
||||
setDensity(density);
|
||||
setTemperature(temperature);
|
||||
setViscosity(viscosity);
|
||||
|
|
|
@ -115,7 +115,7 @@ public class NCFluids {
|
|||
addFluidPair(FluidType.SUGAR, "gelatin", 0xDDD09C);
|
||||
addFluidPair(FluidType.SUGAR, "hydrated_gelatin", waterBlend(0xDDD09C, 0.8F));
|
||||
addFluidPair(FluidType.CHOCOLATE, "marshmallow", 0xE1E1E3);
|
||||
addFluidPair(FluidType.LIQUID, "milk");
|
||||
addFluidPair(FluidType.LIQUID, "milk", true, 0xDEDBCF, 1100, 300, 1000, 0);
|
||||
|
||||
addFluidPair(FluidType.MOLTEN, "lif", 0xCDCDCB);
|
||||
addFluidPair(FluidType.MOLTEN, "bef2", 0xBEC6AA);
|
||||
|
@ -140,7 +140,7 @@ public class NCFluids {
|
|||
addFluidPair(FluidType.COOLANT, "nak", 0xFFE5BC);
|
||||
addFluidPair(FluidType.HOT_COOLANT, "nak_hot", 0xFFD5AC);
|
||||
addFluidPair(FluidType.LIQUID, "emergency_coolant", true, 0x6DD0E7, 2000, 100, 2000, 3);
|
||||
addFluidPair(FluidType.LIQUID, "emergency_coolant_heated", true, 0xCDBEE7, 2000, 300, 1500, 9);
|
||||
addFluidPair(FluidType.LIQUID, "emergency_coolant_heated", true, 0x6D93E7, 2000, 300, 1500, 9);
|
||||
|
||||
addFluidPair(FluidType.HOT_GAS, "arsenic", 0x818475);
|
||||
addFluidPair(FluidType.MOLTEN, "bas", 0x9B9B89);
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
package nc.multiblock.fission.block;
|
||||
|
||||
import static nc.block.property.BlockProperties.ACTIVE;
|
||||
import static nc.block.property.BlockProperties.FACING_ALL;
|
||||
|
||||
import nc.multiblock.fission.tile.TileFissionVent;
|
||||
import nc.util.BlockHelper;
|
||||
|
||||
import static nc.block.property.BlockProperties.FACING_ALL;
|
||||
|
||||
import net.minecraft.block.state.BlockStateContainer;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
|
@ -19,25 +19,22 @@ public class BlockFissionVent extends BlockFissionPart {
|
|||
|
||||
public BlockFissionVent() {
|
||||
super();
|
||||
setDefaultState(blockState.getBaseState().withProperty(FACING_ALL, EnumFacing.NORTH).withProperty(ACTIVE, Boolean.valueOf(false)));
|
||||
setDefaultState(blockState.getBaseState().withProperty(FACING_ALL, EnumFacing.NORTH));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected BlockStateContainer createBlockState() {
|
||||
return new BlockStateContainer(this, FACING_ALL, ACTIVE);
|
||||
return new BlockStateContainer(this, FACING_ALL);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBlockState getStateFromMeta(int meta) {
|
||||
EnumFacing enumfacing = EnumFacing.byIndex(meta & 7);
|
||||
return getDefaultState().withProperty(FACING_ALL, enumfacing).withProperty(ACTIVE, Boolean.valueOf((meta & 8) > 0));
|
||||
return getDefaultState().withProperty(FACING_ALL, EnumFacing.byIndex(meta));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMetaFromState(IBlockState state) {
|
||||
int i = state.getValue(FACING_ALL).getIndex();
|
||||
if (state.getValue(ACTIVE).booleanValue()) i |= 8;
|
||||
return i;
|
||||
return state.getValue(FACING_ALL).getIndex();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -47,7 +44,7 @@ public class BlockFissionVent extends BlockFissionPart {
|
|||
|
||||
@Override
|
||||
public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer) {
|
||||
return getDefaultState().withProperty(FACING_ALL, EnumFacing.getDirectionFromEntityLiving(pos, placer)).withProperty(ACTIVE, Boolean.valueOf(false));
|
||||
return getDefaultState().withProperty(FACING_ALL, EnumFacing.getDirectionFromEntityLiving(pos, placer));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -62,15 +59,4 @@ public class BlockFissionVent extends BlockFissionPart {
|
|||
if (hand != EnumHand.MAIN_HAND || player.isSneaking()) return false;
|
||||
return rightClickOnPart(world, pos, player, hand, facing);
|
||||
}
|
||||
|
||||
public void setState(boolean isActive, TileEntity tile) {
|
||||
World world = tile.getWorld();
|
||||
BlockPos pos = tile.getPos();
|
||||
IBlockState state = world.getBlockState(pos);
|
||||
if (!world.isRemote && state.getBlock() instanceof BlockFissionVent) {
|
||||
if (isActive != state.getValue(ACTIVE)) {
|
||||
world.setBlockState(pos, state.withProperty(ACTIVE, isActive), 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,7 +14,6 @@ import nc.ModCheck;
|
|||
import nc.config.NCConfig;
|
||||
import nc.multiblock.cuboidal.CuboidalPartPositionType;
|
||||
import nc.multiblock.fission.FissionReactor;
|
||||
import nc.multiblock.fission.block.BlockFissionVent;
|
||||
import nc.tile.fluid.ITileFluid;
|
||||
import nc.tile.internal.fluid.FluidConnection;
|
||||
import nc.tile.internal.fluid.FluidTileWrapper;
|
||||
|
@ -24,16 +23,11 @@ import nc.tile.internal.fluid.TankOutputSetting;
|
|||
import nc.tile.internal.fluid.TankSorption;
|
||||
import nc.tile.passive.ITilePassive;
|
||||
import nc.util.GasHelper;
|
||||
import nc.util.Lang;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.text.TextComponentString;
|
||||
import net.minecraft.util.text.TextFormatting;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.capabilities.Capability;
|
||||
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
|
||||
|
@ -43,7 +37,7 @@ public class TileFissionVent extends TileFissionPart implements ITileFluid {
|
|||
|
||||
private final @Nonnull List<Tank> backupTanks = Lists.newArrayList(new Tank(1, new ArrayList<>()), new Tank(1, new ArrayList<>()));
|
||||
|
||||
private @Nonnull FluidConnection[] fluidConnections = ITileFluid.fluidConnectionAll(Lists.newArrayList(TankSorption.IN, TankSorption.NON));
|
||||
private @Nonnull FluidConnection[] fluidConnections = ITileFluid.fluidConnectionAll(Lists.newArrayList(TankSorption.IN, TankSorption.OUT));
|
||||
|
||||
private @Nonnull FluidTileWrapper[] fluidSides;
|
||||
|
||||
|
@ -71,13 +65,6 @@ public class TileFissionVent extends TileFissionPart implements ITileFluid {
|
|||
//getWorld().setBlockState(getPos(), getWorld().getBlockState(getPos()), 2);
|
||||
}
|
||||
|
||||
public void updateBlockState(boolean isActive) {
|
||||
if (getBlockType() instanceof BlockFissionVent) {
|
||||
((BlockFissionVent)getBlockType()).setState(isActive, this);
|
||||
//world.notifyNeighborsOfStateChange(pos, getBlockType(), true);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldRefresh(World world, BlockPos pos, IBlockState oldState, IBlockState newState) {
|
||||
return oldState.getBlock() != newState.getBlock();
|
||||
|
@ -86,10 +73,9 @@ public class TileFissionVent extends TileFissionPart implements ITileFluid {
|
|||
@Override
|
||||
public void update() {
|
||||
super.update();
|
||||
EnumFacing facing = getPartPosition().getFacing();
|
||||
if (!world.isRemote && !getTanks().get(1).isEmpty() && facing != null && getTankSorption(facing, 1).canDrain()) {
|
||||
pushFluidToSide(facing);
|
||||
}
|
||||
/*if (!world.isRemote && getPartPosition().getFacing() != null && !getTanks().get(1).isEmpty()) {
|
||||
pushFluidToSide(getPartPosition().getFacing());
|
||||
}*/
|
||||
}
|
||||
|
||||
// Fluids
|
||||
|
@ -162,38 +148,6 @@ public class TileFissionVent extends TileFissionPart implements ITileFluid {
|
|||
@Override
|
||||
public void setTankOutputSetting(int tankNumber, TankOutputSetting setting) {}
|
||||
|
||||
@Override
|
||||
public boolean hasConfigurableFluidConnections() {
|
||||
return true;
|
||||
}
|
||||
|
||||
//IMultitoolLogic
|
||||
|
||||
@Override
|
||||
public boolean onUseMultitool(ItemStack multitoolStack, EntityPlayer player, World world, EnumFacing facing, float hitX, float hitY, float hitZ) {
|
||||
if (getMultiblock() != null) {
|
||||
if (getTankSorption(facing, 0) != TankSorption.IN) {
|
||||
for (EnumFacing side : EnumFacing.VALUES) {
|
||||
setTankSorption(side, 0, TankSorption.IN);
|
||||
setTankSorption(side, 1, TankSorption.NON);
|
||||
}
|
||||
updateBlockState(false);
|
||||
player.sendMessage(new TextComponentString(Lang.localise("nc.block.vent_toggle") + " " + TextFormatting.DARK_AQUA + Lang.localise("nc.block.fission_vent_mode.input") + " " + TextFormatting.WHITE + Lang.localise("nc.block.vent_toggle.mode")));
|
||||
}
|
||||
else {
|
||||
for (EnumFacing side : EnumFacing.VALUES) {
|
||||
setTankSorption(side, 0, TankSorption.NON);
|
||||
setTankSorption(side, 1, TankSorption.OUT);
|
||||
}
|
||||
updateBlockState(true);
|
||||
player.sendMessage(new TextComponentString(Lang.localise("nc.block.vent_toggle") + " " + TextFormatting.GOLD + Lang.localise("nc.block.fission_vent_mode.output") + " " + TextFormatting.WHITE + Lang.localise("nc.block.vent_toggle.mode")));
|
||||
}
|
||||
markDirtyAndNotify();
|
||||
return true;
|
||||
}
|
||||
return super.onUseMultitool(multitoolStack, player, world, facing, hitX, hitY, hitZ);
|
||||
}
|
||||
|
||||
// NBT
|
||||
|
||||
@Override
|
||||
|
|
|
@ -116,12 +116,6 @@ public abstract class TileFissionManager<MANAGER extends TileFissionManager<MANA
|
|||
posCacheArrayY.add(listenerPos.getY());
|
||||
posCacheArrayZ.add(listenerPos.getZ());
|
||||
}
|
||||
for (long posLong : listenerPosCache) {
|
||||
BlockPos pos = BlockPos.fromLong(posLong);
|
||||
posCacheArrayX.add(pos.getX());
|
||||
posCacheArrayY.add(pos.getY());
|
||||
posCacheArrayZ.add(pos.getZ());
|
||||
}
|
||||
nbt.setIntArray("listenerPosCacheX", posCacheArrayX.toIntArray());
|
||||
nbt.setIntArray("listenerPosCacheY", posCacheArrayY.toIntArray());
|
||||
nbt.setIntArray("listenerPosCacheZ", posCacheArrayZ.toIntArray());
|
||||
|
|
|
@ -95,9 +95,6 @@ public class RadPotionEffects {
|
|||
else if (potionName.equals("poison") || potionName.equals("minecraft:poison")) {
|
||||
return Math.max(effectTime, 25 >> amplifier);
|
||||
}
|
||||
else if (potionName.equals("blindness") || potionName.equals("minecraft:blindness")) {
|
||||
return Math.max(effectTime, 25);
|
||||
}
|
||||
else return effectTime;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,21 +4,13 @@
|
|||
"model": "nuclearcraft:wall_part",
|
||||
"textures": {
|
||||
"in": "nuclearcraft:blocks/fission/vent_in",
|
||||
"out": "nuclearcraft:blocks/fission/vent_out_input",
|
||||
"out": "nuclearcraft:blocks/fission/vent_out",
|
||||
"side": "nuclearcraft:blocks/fission/vent_side",
|
||||
"top": "nuclearcraft:blocks/fission/vent_side"
|
||||
}
|
||||
},
|
||||
"variants": {
|
||||
"inventory": [{}],
|
||||
"active": {
|
||||
"false": {},
|
||||
"true": {
|
||||
"textures": {
|
||||
"out": "nuclearcraft:blocks/fission/vent_out_output"
|
||||
}
|
||||
}
|
||||
},
|
||||
"facing": {
|
||||
"down": {"x": 90},
|
||||
"up": {"x": 270},
|
||||
|
|
|
@ -275,7 +275,7 @@ tile.nuclearcraft.solid_fission_sink2.cryotheum.desc=Must be adjacent to at leas
|
|||
|
||||
tile.nuclearcraft.solid_fission_sink.cooling_rate=Cooling Rate:
|
||||
|
||||
tile.nuclearcraft.salt_fission_controller.name=Molten Salt Fission Controller
|
||||
tile.nuclearcraft.salt_fission_controller.name=Molten Salt Fission Controller (WIP)
|
||||
tile.nuclearcraft.salt_fission_vessel.name=Fission Fuel Vessel
|
||||
# tile.nuclearcraft.salt_fission_vessel.desc=Where the molten salt nuclear fuel fissions and depletes. Place against another vessel while sneaking to copy across its side configuration.
|
||||
tile.nuclearcraft.salt_fission_heater.standard.name=Standard Fission Coolant Heater
|
||||
|
@ -2978,11 +2978,6 @@ zerocore.api.nc.multiblock.validation.invalid_part_for_sides=Block at %1$d, %2$d
|
|||
zerocore.api.nc.multiblock.validation.invalid_part_for_interior=Block at %1$d, %2$d, %3$d is not valid for use in the machine's interior
|
||||
zerocore.api.nc.multiblock.validation.invalid_logic=This multiblock doesn't show in the archive maps - lost a logic core, you have... how embarassing... how embarassing! Gather round the GitHub repository, clear your mind, and find your missing logic we will.
|
||||
|
||||
nc.block.vent_toggle=Toggled vent to
|
||||
nc.block.fission_vent_mode.input=INPUT
|
||||
nc.block.fission_vent_mode.output=OUTPUT
|
||||
nc.block.vent_toggle.mode=mode!
|
||||
|
||||
nc.block.fluid_toggle=Toggled side to
|
||||
nc.block.fluid_toggle_opposite=Toggled opposite side to
|
||||
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 491 B |
Binary file not shown.
Before Width: | Height: | Size: 482 B |
Binary file not shown.
Before Width: | Height: | Size: 487 B |
Binary file not shown.
Before Width: | Height: | Size: 14 KiB |
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"animation": {}
|
||||
}
|
Binary file not shown.
Before Width: | Height: | Size: 9.1 KiB |
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"animation": {
|
||||
"frametime": 2
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue