Build 1.6-20

Fix some Marx crashes on dedicated servers
Fix wires attached to MG's sometimes not rendering
Fix issues with tinnitus when setting volume to 0
This commit is contained in:
malte0811 2017-09-15 19:36:14 +02:00
parent 67562ef296
commit e9449440fd
10 changed files with 39 additions and 17 deletions

View file

@ -1,5 +1,5 @@
def mainVersion = "1.5"
def buildNumber = "15"
def mainVersion = "1.6"
def buildNumber = "20"
// For those who want the bleeding edge
buildscript {
@ -30,7 +30,7 @@ sourceCompatibility = 1.8
targetCompatibility = 1.8
minecraft {
version = "14.22.0.2463"
version = "14.22.1.2479"
runDir = "run"
replace '${version}', project.version

View file

@ -1,4 +1,12 @@
#####Version 1.5-20 (UNRELEASED)
#####Version 1.6-20
- Added the Marx Generator, an alternative ore processing method
- Hearing protection absolutely required!
- You may need to do some math and measurements for ore processing to work. It will kill entites just fine without any science
- IC2 is no longer a hard dependency. The wires and converters will obviously be disabled without it
- Vastly improved snapping in the panel creator
- Added some Mirage (Albedo) compat
- IW is signed now!
- Analog panel components can interact with 2 channels now, rough and fine control
- Fixed GUI background and item tooltips
- Fixed some components resetting when the chunk is unloaded
- Chunks with control panels properly unload now

View file

@ -40,6 +40,7 @@ public class IWPotions {
setIconIndex(0, 0);
this.setRegistryName(new ResourceLocation(IndustrialWires.MODID, "tinnitus"));
ForgeRegistries.POTIONS.register(this);
this.setPotionName("potion."+ IndustrialWires.MODID+"." + getRegistryName().getResourcePath());
}
@Override

View file

@ -48,7 +48,6 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.fml.common.Loader;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
@ -67,7 +66,7 @@ import org.apache.logging.log4j.Logger;
import java.util.ArrayList;
import java.util.List;
//TODO require IE 0.12-72
@Mod(modid = IndustrialWires.MODID, version = IndustrialWires.VERSION, dependencies = "required-after:immersiveengineering@[0.10-58,);after:ic2",
@Mod(modid = IndustrialWires.MODID, version = IndustrialWires.VERSION, dependencies = "required-after:immersiveengineering@[0.12-72,);after:ic2",
certificateFingerprint = "7e11c175d1e24007afec7498a1616bef0000027d")
@Mod.EventBusSubscriber
public class IndustrialWires {
@ -199,6 +198,7 @@ public class IndustrialWires {
NetworkRegistry.INSTANCE.registerGuiHandler(instance, proxy);
IWPotions.init();
Compat.init();
MarxOreHandler.init();
}
@EventHandler

View file

@ -30,6 +30,7 @@ import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.BlockRenderLayer;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess;
@ -52,7 +53,13 @@ public class BlockHVMultiblocks extends BlockIWMultiblock implements IMetaEnum {
// No MB's in the creative inventory!
}
@Override
public boolean canRenderInLayer(IBlockState state, BlockRenderLayer layer) {
if (state.getValue(IWProperties.MARX_TYPE)!= IWProperties.MarxType.CONNECTOR)
return super.canRenderInLayer(state, layer);
else
return layer==BlockRenderLayer.TRANSLUCENT||layer==BlockRenderLayer.SOLID;
}
@Override
protected IProperty[] getProperties() {

View file

@ -67,8 +67,6 @@ import net.minecraft.world.World;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Optional;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
@ -109,7 +107,6 @@ public class TileEntityMarx extends TileEntityIWMultiblock implements ITickable,
public IWProperties.MarxType type = IWProperties.MarxType.NO_MODEL;
private int stageCount = 0;
public FiringState state = FiringState.CHARGING;
@SideOnly(Side.CLIENT)
public Discharge dischargeData;
// Voltage=100*storedEU
private DualEnergyStorage storage = new DualEnergyStorage(50_000, 32_000);
@ -345,7 +342,7 @@ public class TileEntityMarx extends TileEntityIWMultiblock implements ITickable,
private void handleEntities(double energyStored) {
Vec3d v0 = getMiddle();
AxisAlignedBB aabb = new AxisAlignedBB(v0, v0);
AxisAlignedBB aabb = new AxisAlignedBB(v0.x, v0.y, v0.z, v0.x, v0.y, v0.z);
aabb = aabb.grow(0, stageCount/2-1,0);
final double sqrtStages = Math.sqrt(stageCount);
aabb = aabb.grow(5*sqrtStages);
@ -701,7 +698,7 @@ public class TileEntityMarx extends TileEntityIWMultiblock implements ITickable,
@SubscribeEvent
public static void gatherLights(GatherLightsEvent event) {
for (TileEntityMarx te:FIRING_GENERATORS) {
Vec3d origin = te.getMiddle().subtract(0, .5*te.stageCount+1,0);
Vec3d origin = te.getMiddle().subtract(0, .5*te.stageCount-1,0);
Light.Builder builder = Light.builder()
.color(1, 1, 1)
.radius(5);

View file

@ -280,7 +280,7 @@ public class ClientProxy extends CommonProxy {
@Override
public void startTinnitus() {
final Minecraft mc = Minecraft.getMinecraft();
if (playingTinnitus==null) {
if (playingTinnitus==null||!mc.getSoundHandler().isSoundPlaying(playingTinnitus)) {
playingTinnitus = getTinnitus();
mc.getSoundHandler().playSound(playingTinnitus);
}
@ -299,7 +299,7 @@ public class ClientProxy extends CommonProxy {
@Override
public float getVolume() {
return 1F;
return .5F;
}
@Override
@ -396,4 +396,4 @@ public class ClientProxy extends CommonProxy {
}
return null;
}
}
}

View file

@ -59,7 +59,15 @@ public class MarxOreHandler {
putOre("ore" + ore, .75, 4, "dust" + ore, "nugget" + ore);
}
putOre("oreUranium", 1.25, 4,
IndustrialWires.hasIC2?"crushedUranium":"ingotUranium", "nuggetUranium");
IndustrialWires.hasIC2?"crushedUranium":"dustUranium", "nuggetUranium");
}
public static void init() {
oreData.removeIf(
(info)->
info.exampleInput.isEmpty()||info.exampleInput.stream().allMatch(ItemStack::isEmpty)
||info.output.get().isEmpty()
);
}
public static void putOre(String oreName, double avgEnergy, double maxYield, String oreOut) {

View file

@ -305,7 +305,6 @@ public class MultiblockMarx implements IMultiblock {
continue mirrorLoop;
}
}
IndustrialWires.logger.info(facing);
//REPLACE STRUCTURE
if (!world.isRemote) {
IBlockState noModel = IndustrialWires.hvMultiblocks.getDefaultState().withProperty(FACING_HORIZONTAL, facing).withProperty(BlockHVMultiblocks.type, MARX)

View file

@ -43,6 +43,8 @@ item.industrialwires.key.key_named.name=Key for
item.industrialwires.key.blank_key.name=Blank Key
item.industrialwires.key.key_ring.name=Key Ring
potion.industrialwires.tinnitus=Tinnitus
industrialwires.subtitle.tinnitus=You have a tinnitus
industrialwires.subtitle.jacobs_ladder=Jacob's ladder hums
industrialwires.subtitle.marx_bang=Marx generator discharges