boingus
@ -20,6 +20,11 @@
|
|||||||
* The maximum per tick is a 1000 RAD/s increase to prevent world-destroying radiation levels from annihilating demon cores
|
* The maximum per tick is a 1000 RAD/s increase to prevent world-destroying radiation levels from annihilating demon cores
|
||||||
* The water door now has a skin that isn't rusted with less contrast
|
* The water door now has a skin that isn't rusted with less contrast
|
||||||
* The containment door now has a lead-colored skin with a trefoil on it
|
* The containment door now has a lead-colored skin with a trefoil on it
|
||||||
|
* Using a screwdriver on a beamline now toggles a window which flashes if a particle passes
|
||||||
|
* Particles now start slowly and accelerate, instead of passing a fixed 10 components per tick, particles only do 1 component per tick, which increases by 1 every 1,000 momentum
|
||||||
|
* RBMK absorber columns now heat up when exposed to neutrons
|
||||||
|
* The type of neutron does not matter, only the quantity
|
||||||
|
* 20 flux equals 1°C heatup
|
||||||
|
|
||||||
## Fixed
|
## Fixed
|
||||||
* Fixed NBTStack serialization omitting the stack size most of the time, preventing deserialization (mainly in the precision assembler config)
|
* Fixed NBTStack serialization omitting the stack size most of the time, preventing deserialization (mainly in the precision assembler config)
|
||||||
|
|||||||
@ -8,13 +8,14 @@ import com.hbm.lib.RefStrings;
|
|||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
import com.hbm.tileentity.machine.albion.TileEntityPABeamline;
|
import com.hbm.tileentity.machine.albion.TileEntityPABeamline;
|
||||||
|
|
||||||
|
import api.hbm.block.IToolable;
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class BlockPABeamline extends BlockDummyable implements ITooltipProvider {
|
public class BlockPABeamline extends BlockDummyable implements ITooltipProvider, IToolable {
|
||||||
|
|
||||||
public BlockPABeamline() {
|
public BlockPABeamline() {
|
||||||
super(Material.iron);
|
super(Material.iron);
|
||||||
@ -35,4 +36,19 @@ public class BlockPABeamline extends BlockDummyable implements ITooltipProvider
|
|||||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
||||||
addStandardInfo(stack, player, list, ext);
|
addStandardInfo(stack, player, list, ext);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) {
|
||||||
|
if(tool != ToolType.SCREWDRIVER) return false;
|
||||||
|
if(world.isRemote) return true;
|
||||||
|
|
||||||
|
int[] pos = this.findCore(world, x, y, z);
|
||||||
|
if(pos != null) {
|
||||||
|
TileEntityPABeamline tile = (TileEntityPABeamline) world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||||
|
tile.window = !tile.window;
|
||||||
|
tile.markDirty();
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -355,6 +355,8 @@ public class RBMKNeutronHandler {
|
|||||||
((TileEntityRBMKRod) originTE).receiveFlux(this);
|
((TileEntityRBMKRod) originTE).receiveFlux(this);
|
||||||
return;
|
return;
|
||||||
} else if(type == RBMKType.ABSORBER) {
|
} else if(type == RBMKType.ABSORBER) {
|
||||||
|
((TileEntityRBMKAbsorber) nodeTE).heat += RBMKDials.getAbsorberHeatConversion(worldObj) * this.fluxQuantity;
|
||||||
|
|
||||||
if(absorberEfficiency == 1)
|
if(absorberEfficiency == 1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import org.lwjgl.opengl.GL11;
|
|||||||
import com.hbm.blocks.BlockDummyable;
|
import com.hbm.blocks.BlockDummyable;
|
||||||
import com.hbm.blocks.ModBlocks;
|
import com.hbm.blocks.ModBlocks;
|
||||||
import com.hbm.blocks.machine.rbmk.RBMKBase;
|
import com.hbm.blocks.machine.rbmk.RBMKBase;
|
||||||
|
import com.hbm.blocks.machine.rbmk.RBMKPipedBase;
|
||||||
import com.hbm.main.ResourceManager;
|
import com.hbm.main.ResourceManager;
|
||||||
import com.hbm.render.util.ObjUtil;
|
import com.hbm.render.util.ObjUtil;
|
||||||
|
|
||||||
@ -46,6 +47,7 @@ public class RenderRBMKControl implements ISimpleBlockRenderingHandler {
|
|||||||
if(i < 3) GL11.glTranslated(0, 1, 0);
|
if(i < 3) GL11.glTranslated(0, 1, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RBMKPipedBase.renderPipes = true;
|
||||||
tessellator.startDrawingQuads();
|
tessellator.startDrawingQuads();
|
||||||
renderer.setRenderBounds(0.0625, 0, 0.0625, 0.4375, 0.125, 0.4375);
|
renderer.setRenderBounds(0.0625, 0, 0.0625, 0.4375, 0.125, 0.4375);
|
||||||
tessellator.setNormal(0F, 1F, 0F); renderer.renderFaceYPos(block, -0.5, 1, -0.5, block.getIcon(ForgeDirection.UP.ordinal(), 0));
|
tessellator.setNormal(0F, 1F, 0F); renderer.renderFaceYPos(block, -0.5, 1, -0.5, block.getIcon(ForgeDirection.UP.ordinal(), 0));
|
||||||
@ -72,6 +74,7 @@ public class RenderRBMKControl implements ISimpleBlockRenderingHandler {
|
|||||||
tessellator.setNormal(0F, 0F, 1F); renderer.renderFaceZPos(block, -0.5, 1, -0.5, block.getIcon(ForgeDirection.EAST.ordinal(), 0));
|
tessellator.setNormal(0F, 0F, 1F); renderer.renderFaceZPos(block, -0.5, 1, -0.5, block.getIcon(ForgeDirection.EAST.ordinal(), 0));
|
||||||
tessellator.setNormal(0F, 0F, -1F); renderer.renderFaceZNeg(block, -0.5, 1, -0.5, block.getIcon(ForgeDirection.WEST.ordinal(), 0));
|
tessellator.setNormal(0F, 0F, -1F); renderer.renderFaceZNeg(block, -0.5, 1, -0.5, block.getIcon(ForgeDirection.WEST.ordinal(), 0));
|
||||||
tessellator.draw();
|
tessellator.draw();
|
||||||
|
RBMKPipedBase.renderPipes = false;
|
||||||
|
|
||||||
if(block != ModBlocks.rbmk_boiler && block != ModBlocks.rbmk_heater) {
|
if(block != ModBlocks.rbmk_boiler && block != ModBlocks.rbmk_heater) {
|
||||||
tessellator.startDrawingQuads();
|
tessellator.startDrawingQuads();
|
||||||
@ -113,6 +116,7 @@ public class RenderRBMKControl implements ISimpleBlockRenderingHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!hasLid) {
|
if(!hasLid) {
|
||||||
|
RBMKPipedBase.renderPipes = true;
|
||||||
renderer.setRenderBounds(0.0625, 0, 0.0625, 0.4375, 0.125, 0.4375);
|
renderer.setRenderBounds(0.0625, 0, 0.0625, 0.4375, 0.125, 0.4375);
|
||||||
renderer.renderStandardBlock(block, x, y + 1, z);
|
renderer.renderStandardBlock(block, x, y + 1, z);
|
||||||
renderer.setRenderBounds(0.0625, 0, 0.5625, 0.4375, 0.125, 0.9375);
|
renderer.setRenderBounds(0.0625, 0, 0.5625, 0.4375, 0.125, 0.9375);
|
||||||
@ -121,6 +125,7 @@ public class RenderRBMKControl implements ISimpleBlockRenderingHandler {
|
|||||||
renderer.renderStandardBlock(block, x, y + 1, z);
|
renderer.renderStandardBlock(block, x, y + 1, z);
|
||||||
renderer.setRenderBounds(0.5625, 0, 0.0625, 0.9375, 0.125, 0.4375);
|
renderer.setRenderBounds(0.5625, 0, 0.0625, 0.9375, 0.125, 0.4375);
|
||||||
renderer.renderStandardBlock(block, x, y + 1, z);
|
renderer.renderStandardBlock(block, x, y + 1, z);
|
||||||
|
RBMKPipedBase.renderPipes = false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
}
|
}
|
||||||
|
|||||||
@ -40,14 +40,15 @@ public class RenderRBMKRod implements ISimpleBlockRenderingHandler {
|
|||||||
tessellator.startDrawingQuads();
|
tessellator.startDrawingQuads();
|
||||||
ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.rbmk_element, "Inner", rod.inner, tessellator, 0, false);
|
ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.rbmk_element, "Inner", rod.inner, tessellator, 0, false);
|
||||||
ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.rbmk_element, "Cap", iicon, tessellator, 0, false);
|
ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.rbmk_element, "Cap", iicon, tessellator, 0, false);
|
||||||
tessellator.setColorOpaque_I(0x304825);
|
|
||||||
ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.rbmk_element_rods, "Rods", rod.fuel, tessellator, 0, false);
|
|
||||||
tessellator.setColorOpaque_I(0xFFFFFF);
|
|
||||||
tessellator.setNormal(-1F, 0F, 0F); renderer.renderFaceXNeg(block, -0.5, 0, -0.5, sideIcon);
|
tessellator.setNormal(-1F, 0F, 0F); renderer.renderFaceXNeg(block, -0.5, 0, -0.5, sideIcon);
|
||||||
tessellator.setNormal(1F, 0F, 0F); renderer.renderFaceXPos(block, -0.5, 0, -0.5, sideIcon);
|
tessellator.setNormal(1F, 0F, 0F); renderer.renderFaceXPos(block, -0.5, 0, -0.5, sideIcon);
|
||||||
tessellator.setNormal(0F, 0F, -1F); renderer.renderFaceZNeg(block, -0.5, 0, -0.5, sideIcon);
|
tessellator.setNormal(0F, 0F, -1F); renderer.renderFaceZNeg(block, -0.5, 0, -0.5, sideIcon);
|
||||||
tessellator.setNormal(0F, 0F, 1F); renderer.renderFaceZPos(block, -0.5, 0, -0.5, sideIcon);
|
tessellator.setNormal(0F, 0F, 1F); renderer.renderFaceZPos(block, -0.5, 0, -0.5, sideIcon);
|
||||||
tessellator.draw();
|
tessellator.draw();
|
||||||
|
tessellator.startDrawingQuads();
|
||||||
|
tessellator.setColorOpaque_I(0x304825);
|
||||||
|
ObjUtil.renderPartWithIcon((HFRWavefrontObject) ResourceManager.rbmk_element_rods, "Rods", rod.fuel, tessellator, 0, false);
|
||||||
|
tessellator.draw();
|
||||||
GL11.glTranslated(0, 1, 0);
|
GL11.glTranslated(0, 1, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import com.hbm.blocks.BlockDummyable;
|
|||||||
import com.hbm.blocks.ModBlocks;
|
import com.hbm.blocks.ModBlocks;
|
||||||
import com.hbm.main.ResourceManager;
|
import com.hbm.main.ResourceManager;
|
||||||
import com.hbm.render.item.ItemRenderBase;
|
import com.hbm.render.item.ItemRenderBase;
|
||||||
|
import com.hbm.tileentity.machine.albion.TileEntityPABeamline;
|
||||||
|
|
||||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
@ -29,9 +30,25 @@ public class RenderPABeamline extends TileEntitySpecialRenderer implements IItem
|
|||||||
case 2: GL11.glRotatef(90, 0F, 1F, 0F); break;
|
case 2: GL11.glRotatef(90, 0F, 1F, 0F); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TileEntityPABeamline beamline = (TileEntityPABeamline) tile;
|
||||||
|
|
||||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||||
bindTexture(ResourceManager.pa_beamline_tex);
|
bindTexture(ResourceManager.pa_beamline_tex);
|
||||||
ResourceManager.pa_beamline.renderAll();
|
|
||||||
|
if(!beamline.window) {
|
||||||
|
ResourceManager.pa_beamline.renderPart("Beamline");
|
||||||
|
} else {
|
||||||
|
ResourceManager.pa_beamline.renderPart("BeamlineWindow");
|
||||||
|
|
||||||
|
float flash = beamline.prevLight + (beamline.light - beamline.prevLight) * f;
|
||||||
|
GL11.glColor3f(0.9F * flash, 0.9F * flash, 1.0F * flash);
|
||||||
|
GL11.glDisable(GL11.GL_TEXTURE_2D);
|
||||||
|
RenderArcFurnace.fullbright(true);
|
||||||
|
ResourceManager.pa_beamline.renderPart("BeamlineGlass");
|
||||||
|
RenderArcFurnace.fullbright(false);
|
||||||
|
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||||
|
GL11.glColor3f(1F, 1F, 1F);
|
||||||
|
}
|
||||||
GL11.glShadeModel(GL11.GL_FLAT);
|
GL11.glShadeModel(GL11.GL_FLAT);
|
||||||
|
|
||||||
GL11.glPopMatrix();
|
GL11.glPopMatrix();
|
||||||
@ -53,7 +70,7 @@ public class RenderPABeamline extends TileEntitySpecialRenderer implements IItem
|
|||||||
GL11.glRotated(90, 0, 1, 0);
|
GL11.glRotated(90, 0, 1, 0);
|
||||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||||
bindTexture(ResourceManager.pa_beamline_tex);
|
bindTexture(ResourceManager.pa_beamline_tex);
|
||||||
ResourceManager.pa_beamline.renderAll();
|
ResourceManager.pa_beamline.renderPart("Beamline");
|
||||||
GL11.glShadeModel(GL11.GL_FLAT);
|
GL11.glShadeModel(GL11.GL_FLAT);
|
||||||
}};
|
}};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,15 +1,65 @@
|
|||||||
package com.hbm.tileentity.machine.albion;
|
package com.hbm.tileentity.machine.albion;
|
||||||
|
|
||||||
|
import com.hbm.tileentity.TileEntityLoadedBase;
|
||||||
import com.hbm.tileentity.machine.albion.TileEntityPASource.Particle;
|
import com.hbm.tileentity.machine.albion.TileEntityPASource.Particle;
|
||||||
import com.hbm.util.fauxpointtwelve.BlockPos;
|
import com.hbm.util.fauxpointtwelve.BlockPos;
|
||||||
|
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import io.netty.buffer.ByteBuf;
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.util.AxisAlignedBB;
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityPABeamline extends TileEntity implements IParticleUser {
|
public class TileEntityPABeamline extends TileEntityLoadedBase implements IParticleUser {
|
||||||
|
|
||||||
|
public boolean window = false;
|
||||||
|
public boolean didPass = false;
|
||||||
|
public float light;
|
||||||
|
public float prevLight;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateEntity() {
|
||||||
|
|
||||||
|
if(worldObj.isRemote) {
|
||||||
|
|
||||||
|
this.prevLight = this.light;
|
||||||
|
if(this.light > 0) this.light -= 0.25F;
|
||||||
|
|
||||||
|
if(this.light > this.prevLight) this.prevLight = this.light;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.networkPackNT(150);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void serialize(ByteBuf buf) {
|
||||||
|
super.serialize(buf);
|
||||||
|
buf.writeBoolean(window);
|
||||||
|
buf.writeBoolean(didPass);
|
||||||
|
didPass = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deserialize(ByteBuf buf) {
|
||||||
|
super.deserialize(buf);
|
||||||
|
this.window = buf.readBoolean();
|
||||||
|
this.didPass = buf.readBoolean();
|
||||||
|
if(didPass) light = 2F;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void readFromNBT(NBTTagCompound nbt) {
|
||||||
|
super.readFromNBT(nbt);
|
||||||
|
this.window = nbt.getBoolean("window");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeToNBT(NBTTagCompound nbt) {
|
||||||
|
super.writeToNBT(nbt);
|
||||||
|
nbt.setBoolean("window", window);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canParticleEnter(Particle particle, ForgeDirection dir, int x, int y, int z) {
|
public boolean canParticleEnter(Particle particle, ForgeDirection dir, int x, int y, int z) {
|
||||||
@ -21,6 +71,7 @@ public class TileEntityPABeamline extends TileEntity implements IParticleUser {
|
|||||||
@Override
|
@Override
|
||||||
public void onEnter(Particle particle, ForgeDirection dir) {
|
public void onEnter(Particle particle, ForgeDirection dir) {
|
||||||
particle.addDistance(3);
|
particle.addDistance(3);
|
||||||
|
this.didPass = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -27,6 +27,7 @@ import net.minecraft.item.ItemStack;
|
|||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.AxisAlignedBB;
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
|
import net.minecraft.util.MathHelper;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
@ -78,7 +79,10 @@ public class TileEntityPASource extends TileEntityCooledBase implements IGUIProv
|
|||||||
if(!worldObj.isRemote) {
|
if(!worldObj.isRemote) {
|
||||||
this.power = Library.chargeTEFromItems(slots, 0, power, this.getMaxPower());
|
this.power = Library.chargeTEFromItems(slots, 0, power, this.getMaxPower());
|
||||||
|
|
||||||
for(int i = 0; i < 10; i++) {
|
int steps = 1;
|
||||||
|
if(this.particle != null) steps = 1 + MathHelper.clamp_int(this.particle.momentum / 1_000, 0, 9);
|
||||||
|
|
||||||
|
for(int i = 0; i < steps; i++) {
|
||||||
if(particle != null) {
|
if(particle != null) {
|
||||||
this.state = PAState.RUNNING;
|
this.state = PAState.RUNNING;
|
||||||
steppy();
|
steppy();
|
||||||
|
|||||||
@ -39,7 +39,8 @@ public class RBMKDials {
|
|||||||
KEY_ABSORBER_EFFICIENCY("dialAbsorberEfficiency", 1.0),
|
KEY_ABSORBER_EFFICIENCY("dialAbsorberEfficiency", 1.0),
|
||||||
KEY_REFLECTOR_EFFICIENCY("dialReflectorEfficiency", 1.0),
|
KEY_REFLECTOR_EFFICIENCY("dialReflectorEfficiency", 1.0),
|
||||||
KEY_DISABLE_DEPLETION("dialDisableDepletion", false),
|
KEY_DISABLE_DEPLETION("dialDisableDepletion", false),
|
||||||
KEY_DISABLE_XENON("dialDisableXenon", false);
|
KEY_DISABLE_XENON("dialDisableXenon", false),
|
||||||
|
KEY_ABSORBER_HEAT_CONVERSION("dialAbsorberHeatConversion", 0.05);
|
||||||
|
|
||||||
public final String keyString;
|
public final String keyString;
|
||||||
public final Object defValue;
|
public final Object defValue;
|
||||||
@ -109,6 +110,7 @@ public class RBMKDials {
|
|||||||
gameRules.get(RBMKKeys.KEY_ENABLE_MELTDOWN_OVERPRESSURE).add(new Tuple.Pair<>(world, world.getGameRules().getGameRuleBooleanValue(RBMKKeys.KEY_ENABLE_MELTDOWN_OVERPRESSURE.keyString)));
|
gameRules.get(RBMKKeys.KEY_ENABLE_MELTDOWN_OVERPRESSURE).add(new Tuple.Pair<>(world, world.getGameRules().getGameRuleBooleanValue(RBMKKeys.KEY_ENABLE_MELTDOWN_OVERPRESSURE.keyString)));
|
||||||
gameRules.get(RBMKKeys.KEY_MODERATOR_EFFICIENCY).add(new Tuple.Pair<>(world, GameRuleHelper.getClampedDouble(world, RBMKKeys.KEY_MODERATOR_EFFICIENCY, 0.0D, 1.0D)));
|
gameRules.get(RBMKKeys.KEY_MODERATOR_EFFICIENCY).add(new Tuple.Pair<>(world, GameRuleHelper.getClampedDouble(world, RBMKKeys.KEY_MODERATOR_EFFICIENCY, 0.0D, 1.0D)));
|
||||||
gameRules.get(RBMKKeys.KEY_ABSORBER_EFFICIENCY).add(new Tuple.Pair<>(world, GameRuleHelper.getClampedDouble(world, RBMKKeys.KEY_ABSORBER_EFFICIENCY, 0.0D, 1.0D)));
|
gameRules.get(RBMKKeys.KEY_ABSORBER_EFFICIENCY).add(new Tuple.Pair<>(world, GameRuleHelper.getClampedDouble(world, RBMKKeys.KEY_ABSORBER_EFFICIENCY, 0.0D, 1.0D)));
|
||||||
|
gameRules.get(RBMKKeys.KEY_ABSORBER_HEAT_CONVERSION).add(new Tuple.Pair<>(world, GameRuleHelper.getClampedDouble(world, RBMKKeys.KEY_ABSORBER_HEAT_CONVERSION, 0.0D, 1.0D)));
|
||||||
gameRules.get(RBMKKeys.KEY_REFLECTOR_EFFICIENCY).add(new Tuple.Pair<>(world, GameRuleHelper.getClampedDouble(world, RBMKKeys.KEY_REFLECTOR_EFFICIENCY, 0.0D, 1.0D)));
|
gameRules.get(RBMKKeys.KEY_REFLECTOR_EFFICIENCY).add(new Tuple.Pair<>(world, GameRuleHelper.getClampedDouble(world, RBMKKeys.KEY_REFLECTOR_EFFICIENCY, 0.0D, 1.0D)));
|
||||||
gameRules.get(RBMKKeys.KEY_DISABLE_DEPLETION).add(new Tuple.Pair<>(world, world.getGameRules().getGameRuleBooleanValue(RBMKKeys.KEY_DISABLE_DEPLETION.keyString)));
|
gameRules.get(RBMKKeys.KEY_DISABLE_DEPLETION).add(new Tuple.Pair<>(world, world.getGameRules().getGameRuleBooleanValue(RBMKKeys.KEY_DISABLE_DEPLETION.keyString)));
|
||||||
gameRules.get(RBMKKeys.KEY_DISABLE_XENON).add(new Tuple.Pair<>(world, world.getGameRules().getGameRuleBooleanValue(RBMKKeys.KEY_DISABLE_XENON.keyString)));
|
gameRules.get(RBMKKeys.KEY_DISABLE_XENON).add(new Tuple.Pair<>(world, world.getGameRules().getGameRuleBooleanValue(RBMKKeys.KEY_DISABLE_XENON.keyString)));
|
||||||
@ -347,6 +349,15 @@ public class RBMKDials {
|
|||||||
return (double) getGameRule(world, RBMKKeys.KEY_ABSORBER_EFFICIENCY);
|
return (double) getGameRule(world, RBMKKeys.KEY_ABSORBER_EFFICIENCY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* How many °C are generated per one flux that hits an absorber.
|
||||||
|
* @param world
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static double getAbsorberHeatConversion(World world) {
|
||||||
|
return (double) getGameRule(world, RBMKKeys.KEY_ABSORBER_HEAT_CONVERSION);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The percentage of neutron to reflect when a stream hits a reflector column.
|
* The percentage of neutron to reflect when a stream hits a reflector column.
|
||||||
* @param world
|
* @param world
|
||||||
|
|||||||
@ -1,6 +1,146 @@
|
|||||||
# Blender v2.79 (sub 0) OBJ File: 'beamline.blend'
|
# Blender v2.79 (sub 0) OBJ File: 'beamline.blend'
|
||||||
# www.blender.org
|
# www.blender.org
|
||||||
o Cube_Cube.001
|
o BeamlineGlass
|
||||||
|
v 0.375000 0.750000 -1.000000
|
||||||
|
v 0.375000 0.250000 -1.000000
|
||||||
|
v 0.375000 0.250000 1.000000
|
||||||
|
v 0.375000 0.750000 1.000000
|
||||||
|
v -0.375000 0.250000 -1.000000
|
||||||
|
v -0.375000 0.250000 1.000000
|
||||||
|
v -0.375000 0.750000 1.000000
|
||||||
|
v -0.375000 0.750000 -1.000000
|
||||||
|
vt 0.700000 0.437500
|
||||||
|
vt 0.300000 0.312500
|
||||||
|
vt 0.700000 0.312500
|
||||||
|
vt 0.300000 0.812427
|
||||||
|
vt 0.700000 0.937597
|
||||||
|
vt 0.300000 0.937427
|
||||||
|
vt 0.300000 0.437500
|
||||||
|
vt 0.700000 0.812597
|
||||||
|
vn 1.0000 0.0000 0.0000
|
||||||
|
vn -1.0000 0.0000 0.0000
|
||||||
|
s off
|
||||||
|
f 1/1/1 3/2/1 2/3/1
|
||||||
|
f 7/4/2 5/5/2 6/6/2
|
||||||
|
f 1/1/1 4/7/1 3/2/1
|
||||||
|
f 7/4/2 8/8/2 5/5/2
|
||||||
|
o BeamlineWindow
|
||||||
|
v -0.500000 0.250000 1.000000
|
||||||
|
v -0.500000 0.750000 1.000000
|
||||||
|
v -0.500000 0.250000 -1.000000
|
||||||
|
v -0.500000 0.750000 -1.000000
|
||||||
|
v 0.500000 0.250000 1.000000
|
||||||
|
v 0.500000 0.750000 1.000000
|
||||||
|
v 0.500000 0.250000 -1.000000
|
||||||
|
v 0.500000 0.750000 -1.000000
|
||||||
|
v 0.500000 1.000000 -1.500000
|
||||||
|
v 0.500000 0.000000 -1.500000
|
||||||
|
v 0.500000 0.000000 1.500000
|
||||||
|
v 0.500000 1.000000 1.500000
|
||||||
|
v 0.375000 0.750000 -1.000000
|
||||||
|
v 0.375000 0.250000 -1.000000
|
||||||
|
v 0.375000 0.250000 1.000000
|
||||||
|
v 0.375000 0.750000 1.000000
|
||||||
|
v -0.500000 0.000000 -1.500000
|
||||||
|
v -0.500000 0.000000 1.500000
|
||||||
|
v -0.500000 1.000000 1.500000
|
||||||
|
v -0.500000 1.000000 -1.500000
|
||||||
|
v -0.375000 0.250000 -1.000000
|
||||||
|
v -0.375000 0.250000 1.000000
|
||||||
|
v -0.375000 0.750000 1.000000
|
||||||
|
v -0.375000 0.750000 -1.000000
|
||||||
|
vt 0.700000 0.812597
|
||||||
|
vt 0.300000 0.843677
|
||||||
|
vt 0.300000 0.812427
|
||||||
|
vt 0.800000 0.500000
|
||||||
|
vt 1.000000 0.250000
|
||||||
|
vt 1.000000 0.500000
|
||||||
|
vt 0.300000 0.312469
|
||||||
|
vt 0.325000 0.437500
|
||||||
|
vt 0.300000 0.437469
|
||||||
|
vt 0.200000 0.250000
|
||||||
|
vt 0.000000 0.500000
|
||||||
|
vt 0.000000 0.250000
|
||||||
|
vt 0.800000 0.250000
|
||||||
|
vt 0.200000 0.000000
|
||||||
|
vt 0.800000 0.000000
|
||||||
|
vt 0.800000 0.750000
|
||||||
|
vt 0.200000 0.500000
|
||||||
|
vt 0.800000 0.500000
|
||||||
|
vt 0.700000 0.312500
|
||||||
|
vt 0.700000 0.437500
|
||||||
|
vt 0.200000 0.250000
|
||||||
|
vt 0.300000 0.343750
|
||||||
|
vt 0.700000 0.406250
|
||||||
|
vt 0.675000 0.312492
|
||||||
|
vt 0.700000 0.937597
|
||||||
|
vt 0.200000 1.000000
|
||||||
|
vt 0.300000 0.937427
|
||||||
|
vt 0.300000 0.937458
|
||||||
|
vt 0.200000 0.750000
|
||||||
|
vt 0.300000 0.812458
|
||||||
|
vt 0.800000 1.000000
|
||||||
|
vt 0.700000 0.906347
|
||||||
|
vt 0.675000 0.812597
|
||||||
|
vt 0.325000 0.937427
|
||||||
|
vt 0.700000 0.843847
|
||||||
|
vt 0.800000 0.250000
|
||||||
|
vt 0.325000 0.312500
|
||||||
|
vt 0.200000 0.500000
|
||||||
|
vt 0.700000 0.343750
|
||||||
|
vt 0.300000 0.406250
|
||||||
|
vt 0.675000 0.437492
|
||||||
|
vt 0.300000 0.906177
|
||||||
|
vt 0.675000 0.937597
|
||||||
|
vt 0.325000 0.812427
|
||||||
|
vn 0.0000 -1.0000 0.0000
|
||||||
|
vn 0.0000 0.0000 -1.0000
|
||||||
|
vn 0.0000 0.0000 1.0000
|
||||||
|
vn 0.0000 1.0000 0.0000
|
||||||
|
vn 1.0000 0.0000 0.0000
|
||||||
|
vn -1.0000 0.0000 0.0000
|
||||||
|
s off
|
||||||
|
f 12/9/3 31/10/3 10/11/3
|
||||||
|
f 28/12/4 18/13/4 25/14/4
|
||||||
|
f 13/15/4 24/16/4 14/17/4
|
||||||
|
f 20/18/5 26/19/5 19/20/5
|
||||||
|
f 18/21/3 26/22/3 25/23/3
|
||||||
|
f 28/24/6 20/25/6 17/26/6
|
||||||
|
f 15/27/7 17/26/7 16/28/7
|
||||||
|
f 13/15/7 18/21/7 15/27/7
|
||||||
|
f 16/28/7 20/25/7 14/17/7
|
||||||
|
f 14/17/7 19/29/7 13/15/7
|
||||||
|
f 15/27/6 23/30/6 13/15/6
|
||||||
|
f 14/17/3 21/31/3 16/28/3
|
||||||
|
f 16/28/5 22/32/5 15/27/5
|
||||||
|
f 11/33/8 26/34/8 9/35/8
|
||||||
|
f 9/36/8 27/37/8 10/38/8
|
||||||
|
f 10/11/8 28/24/8 12/9/8
|
||||||
|
f 12/9/8 25/39/8 11/33/8
|
||||||
|
f 9/35/6 29/40/6 11/33/6
|
||||||
|
f 11/33/5 32/41/5 12/9/5
|
||||||
|
f 10/38/4 30/42/4 9/36/4
|
||||||
|
f 12/9/3 32/43/3 31/10/3
|
||||||
|
f 28/12/4 17/44/4 18/13/4
|
||||||
|
f 13/15/4 23/45/4 24/16/4
|
||||||
|
f 20/18/5 27/46/5 26/19/5
|
||||||
|
f 18/21/3 19/29/3 26/22/3
|
||||||
|
f 28/24/6 27/37/6 20/25/6
|
||||||
|
f 15/27/7 18/21/7 17/26/7
|
||||||
|
f 13/15/7 19/29/7 18/21/7
|
||||||
|
f 16/28/7 17/26/7 20/25/7
|
||||||
|
f 14/17/7 20/25/7 19/29/7
|
||||||
|
f 15/27/6 22/47/6 23/30/6
|
||||||
|
f 14/17/3 24/48/3 21/31/3
|
||||||
|
f 16/28/5 21/49/5 22/32/5
|
||||||
|
f 11/33/8 25/39/8 26/34/8
|
||||||
|
f 9/36/8 26/34/8 27/37/8
|
||||||
|
f 10/11/8 27/37/8 28/24/8
|
||||||
|
f 12/9/8 28/24/8 25/39/8
|
||||||
|
f 9/35/6 30/50/6 29/40/6
|
||||||
|
f 11/33/5 29/51/5 32/41/5
|
||||||
|
f 10/38/4 31/52/4 30/42/4
|
||||||
|
o Beamline
|
||||||
v -0.500000 0.000000 1.500000
|
v -0.500000 0.000000 1.500000
|
||||||
v -0.500000 1.000000 1.500000
|
v -0.500000 1.000000 1.500000
|
||||||
v -0.500000 0.000000 -1.500000
|
v -0.500000 0.000000 -1.500000
|
||||||
@ -30,15 +170,15 @@ vn 0.0000 0.0000 1.0000
|
|||||||
vn 0.0000 -1.0000 0.0000
|
vn 0.0000 -1.0000 0.0000
|
||||||
vn 0.0000 1.0000 0.0000
|
vn 0.0000 1.0000 0.0000
|
||||||
s off
|
s off
|
||||||
f 2/1/1 3/2/1 1/3/1
|
f 34/53/9 35/54/9 33/55/9
|
||||||
f 4/4/2 7/5/2 3/6/2
|
f 36/56/10 39/57/10 35/58/10
|
||||||
f 8/7/3 5/8/3 7/9/3
|
f 40/59/11 37/60/11 39/61/11
|
||||||
f 6/10/4 1/11/4 5/12/4
|
f 38/62/12 33/63/12 37/64/12
|
||||||
f 7/13/5 1/3/5 3/2/5
|
f 39/65/13 33/55/13 35/54/13
|
||||||
f 4/4/6 6/10/6 8/7/6
|
f 36/56/14 38/62/14 40/59/14
|
||||||
f 2/1/1 4/4/1 3/2/1
|
f 34/53/9 36/56/9 35/54/9
|
||||||
f 4/4/2 8/7/2 7/5/2
|
f 36/56/10 40/59/10 39/57/10
|
||||||
f 8/7/3 6/10/3 5/8/3
|
f 40/59/11 38/62/11 37/60/11
|
||||||
f 6/10/4 2/1/4 1/11/4
|
f 38/62/12 34/53/12 33/63/12
|
||||||
f 7/13/5 5/14/5 1/3/5
|
f 39/65/13 37/66/13 33/55/13
|
||||||
f 4/4/6 2/1/6 6/10/6
|
f 36/56/14 34/53/14 38/62/14
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 204 B After Width: | Height: | Size: 188 B |
|
Before Width: | Height: | Size: 307 B After Width: | Height: | Size: 285 B |
|
Before Width: | Height: | Size: 188 B After Width: | Height: | Size: 204 B |
|
Before Width: | Height: | Size: 285 B After Width: | Height: | Size: 307 B |
|
Before Width: | Height: | Size: 370 B After Width: | Height: | Size: 360 B |
|
Before Width: | Height: | Size: 410 B After Width: | Height: | Size: 486 B |
|
Before Width: | Height: | Size: 204 B After Width: | Height: | Size: 188 B |
|
Before Width: | Height: | Size: 307 B After Width: | Height: | Size: 285 B |