aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/github/technus/tectech/Util.java2
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/SoundLoop.java8
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Centrifuge.java49
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/GT_MetaTileEntity_EM_machine.java14
4 files changed, 45 insertions, 28 deletions
diff --git a/src/main/java/com/github/technus/tectech/Util.java b/src/main/java/com/github/technus/tectech/Util.java
index c699077110..25327e1369 100644
--- a/src/main/java/com/github/technus/tectech/Util.java
+++ b/src/main/java/com/github/technus/tectech/Util.java
@@ -237,7 +237,7 @@ public final class Util {
if (block < ' ') {//Control chars allow skipping
b -= block;
break;
- } else if (block > '@') //characters allow to skip check a-1 skip, b-2 skips etc.
+ } else if (block > '@') //characters allow to skip check A-1 skip, B-2 skips etc.
{
a += block - '@';
}//else if (block < '+')//used to mark THINGS
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/SoundLoop.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/SoundLoop.java
index a0d7b421aa..338af1626e 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/SoundLoop.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/SoundLoop.java
@@ -25,7 +25,7 @@ public class SoundLoop extends MovingSound{
zPosF=base.getZCoord();
worldID=base.getWorld().provider.dimensionId;
repeat=true;
- volume=0.001f;
+ volume=0f;
}
@Override
@@ -40,10 +40,8 @@ public class SoundLoop extends MovingSound{
}else if(volume==0){
donePlaying=true;
}
- }else if(volume<1){
- volume+=0.05f;
- } else {
- volume=1f;
+ }else if(volume<1) {
+ volume += 0.05f;
}
World world=Minecraft.getMinecraft().thePlayer.worldObj;
donePlaying=world.provider.dimensionId!=worldID ||
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Centrifuge.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Centrifuge.java
index c1ca644c56..fe40178e88 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Centrifuge.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Centrifuge.java
@@ -17,15 +17,25 @@ import static com.github.technus.tectech.auxiliary.TecTechConfig.DEBUG_MODE;
* Created by danie_000 on 24.12.2017.
*/
public class Behaviour_Centrifuge implements GT_MetaTileEntity_EM_machine.Behaviour {
- private static final double MAX_RCF = (float) (Math.pow(Math.E, 15) * 12);
- private final float radius, maxRPM, maxForce, maxCapacity;
+ private final float radius, maxRPM, maxRCF, maxForce, maxCapacity;
private final byte tier;
+ private static final double[/*tier+5*/][/*outputHatches+2*/] MIXING_FACTORS =new double[][]{
+ {.45,.85,.95,1,1,},
+ {.4 ,.75,.9,.95,1,},
+ {.35,.45,.75,.9,.95,},
+ {.25,.3,.45,.75,.9,},
+ {.2,.25,.3,.45,.75,},
+ {.1,.15,.2,.3,.45,},
+ {.05,.1,.15,.2,.25,},
+ {.01,.05,.1,.15,.2,},
+ };
+
//6 to 12 recommended
public Behaviour_Centrifuge(int desiredTier) {
tier = (byte) desiredTier;
radius = 0.5f - (12 - tier) / 64f;
- float maxRCF = (float) (Math.pow(Math.E, tier) * 12);
+ maxRCF = (float) (Math.pow(Math.E, tier) * 12);
maxRPM = (float) Math.sqrt(maxRCF / (0.001118 * radius));
float maxSafeMass = dAtomDefinition.getSomethingHeavy().getMass() * (1 << tier);
maxForce = maxSafeMass * maxRCF;// (eV/c^2 * m/s) / g
@@ -45,7 +55,7 @@ public class Behaviour_Centrifuge implements GT_MetaTileEntity_EM_machine.Behavi
if (RPM > maxRPM) {
te.setStatusOfParameterIn(0, 0, GT_MetaTileEntity_MultiblockBase_EM.STATUS_TOO_HIGH);
te.setParameterOut(0, 0, maxRPM);//rpm
- te.setParameterOut(0, 1, getRCF(maxRPM));//rcf
+ te.setParameterOut(0, 1, maxRCF);//rcf
check=false;
} else if (RPM > maxRPM / 3f * 2f) {
te.setStatusOfParameterIn(0, 0, GT_MetaTileEntity_MultiblockBase_EM.STATUS_HIGH);
@@ -87,7 +97,7 @@ public class Behaviour_Centrifuge implements GT_MetaTileEntity_EM_machine.Behavi
}
te.setParameterOut(3,0,(int) (Math.pow(parametersToCheckAndFix[0] / maxRPM, 3f) * V[tier]));//max eut
- te.setParameterOut(3,1,(int) (20 * (MAX_RCF / getRCF(RPM)) * (fractionCount - 1)));//max time
+ te.setParameterOut(3,1,(int) (20 * (fractionCount - 1)));//max time
return check;
}
@@ -128,10 +138,16 @@ public class Behaviour_Centrifuge implements GT_MetaTileEntity_EM_machine.Behavi
outputs[i] = new cElementalInstanceStackMap();
}
+ //mixing factor...
+ double mixingFactor=Math.min(1d-(RCF/maxRCF)*(1d-MIXING_FACTORS[tier-5][fractionCount-2]),1);
+ if(DEBUG_MODE){
+ TecTech.Logger.info("mixingFactor "+mixingFactor);
+ }
+
int mEut = (int) (Math.pow(checkedAndFixedParameters[0] / maxRPM, 3f) * V[tier]);
mEut = Math.max(mEut, 512);
mEut = -mEut;
- int mTicks = (int) (20 * (MAX_RCF / RCF) * (inputMass / maxCapacity) * (fractionCount - 1));
+ int mTicks = (int) (20 * (inputMass / maxCapacity) * (fractionCount - 1));
mTicks=Math.max(mTicks,20);
@@ -151,11 +167,18 @@ public class Behaviour_Centrifuge implements GT_MetaTileEntity_EM_machine.Behavi
double absMassPerOutput = 0;//"volume"
for (cElementalInstanceStack stack : stacks) {
- absMassPerOutput += Math.abs(stack.getMass());
- }
- if(DEBUG_MODE){
- TecTech.Logger.info("absMass "+absMassPerOutput);
+ double tempMass=Math.abs(stack.getMass());
+ if(tempMass!=0) {
+ long amount = stack.amount;
+ stack.amount *= mixingFactor;
+ addRandomly(stack, outputs, fractionCount);
+ stack.amount = amount - stack.amount;
+ absMassPerOutput += tempMass;
+ }
}
+ //if(DEBUG_MODE){
+ // TecTech.Logger.info("absMass "+absMassPerOutput);
+ //}
absMassPerOutput /= fractionCount;
if(DEBUG_MODE){
TecTech.Logger.info("absMassPerOutput "+absMassPerOutput);
@@ -179,13 +202,13 @@ public class Behaviour_Centrifuge implements GT_MetaTileEntity_EM_machine.Behavi
stacks[stackNo] = null;
} else if (amount >= stacks[stackNo].amount) {
remaining -= stackMass;
- outputs[fraction].putReplace(stacks[stackNo]);
+ outputs[fraction].putUnify(stacks[stackNo]);
stacks[stackNo] = null;
} else if (amount > 0) {
remaining -= amount * stacks[stackNo].definition.getMass();
cElementalInstanceStack clone = stacks[stackNo].clone();
clone.amount = amount;
- outputs[fraction].putReplace(clone);
+ outputs[fraction].putUnify(clone);
stacks[stackNo].amount-=amount;
//if(DEBUG_MODE){
// TecTech.Logger.info("remainingAfter "+remaining);
@@ -200,7 +223,7 @@ public class Behaviour_Centrifuge implements GT_MetaTileEntity_EM_machine.Behavi
//add remaining
for (cElementalInstanceStack stack : stacks) {
if (stack != null) {
- outputs[fractionCount - 1].putReplace(stack);
+ outputs[fractionCount - 1].putUnify(stack);
}
}
} else {
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/GT_MetaTileEntity_EM_machine.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/GT_MetaTileEntity_EM_machine.java
index 0936c1ad1e..032d4e48a8 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/GT_MetaTileEntity_EM_machine.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/GT_MetaTileEntity_EM_machine.java
@@ -4,17 +4,13 @@ import com.github.technus.tectech.CommonValues;
import com.github.technus.tectech.TecTech;
import com.github.technus.tectech.Util;
import com.github.technus.tectech.elementalMatter.core.cElementalInstanceStackMap;
-import com.github.technus.tectech.recipe.TT_recipe;
import com.github.technus.tectech.thing.block.QuantumGlassBlock;
import com.github.technus.tectech.thing.block.QuantumStuffBlock;
import com.github.technus.tectech.thing.metaTileEntity.IConstructable;
import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM;
import com.github.technus.tectech.thing.metaTileEntity.multi.base.MultiblockControl;
-import gregtech.api.enums.ItemList;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.objects.GT_ItemStack;
-import gregtech.common.blocks.GT_Block_Machines;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.init.Blocks;
@@ -40,10 +36,10 @@ public class GT_MetaTileEntity_EM_machine extends GT_MetaTileEntity_MultiblockBa
private static final String[][] shape = new String[][]{
{"B0", "A ", "0 - 0", "A ", "B0",},
{"A000", "00000", "00.00", "00000", "A000",},
- {"A121", "1C1", "2C2", "1C1", "A121",},
- {"A131", "1C1", "3C3", "1C1", "A131",},
- {"A121", "1C1", "2C2", "1C1", "A121",},
- {"A000", "00000", "00A00", "00000", "A000",},
+ {"A121", "1---1", "2---2", "1---1", "A121",},
+ {"A131", "1---1", "3-A-3", "1---1", "A131",},
+ {"A121", "1---1", "2---2", "1---1", "A121",},
+ {"A000", "00000", "00-00", "00000", "A000",},
{"B0", "A!!!", "0!!!0", "A!!!", "B0",},};
private static final Block[] blockType = new Block[]{sBlockCasingsTT, QuantumGlassBlock.INSTANCE, sBlockCasingsTT, sBlockCasingsTT};
private static final byte[] blockMeta = new byte[]{4, 0, 5, 6};
@@ -72,7 +68,7 @@ public class GT_MetaTileEntity_EM_machine extends GT_MetaTileEntity_MultiblockBa
@Override
public boolean checkMachine_EM(IGregTechTileEntity iGregTechTileEntity, ItemStack itemStack) {
- return structureCheck_EM(shape, blockType, blockMeta, addingMethods, casingTextures, blockTypeFallback, blockMetaFallback, 2, 2, 1) && eInputHatches.size() == 1 && iGregTechTileEntity.getBlockAtSideAndDistance(iGregTechTileEntity.getBackFacing(), 5) instanceof GT_Block_Machines;
+ return structureCheck_EM(shape, blockType, blockMeta, addingMethods, casingTextures, blockTypeFallback, blockMetaFallback, 2, 2, 1);
}
@Override