Crashes fixed

This commit is contained in:
Anuken
2018-08-17 11:32:12 -04:00
parent 6d7941fba4
commit 0f7799422e
5 changed files with 10 additions and 12 deletions

View File

@@ -26,7 +26,7 @@ allprojects {
appName = 'Mindustry' appName = 'Mindustry'
gdxVersion = '1.9.8' gdxVersion = '1.9.8'
roboVMVersion = '2.3.0' roboVMVersion = '2.3.0'
uCoreVersion = 'c28462b127' uCoreVersion = '1d353d76e9'
getVersionString = { getVersionString = {
String buildVersion = getBuildVersion() String buildVersion = getBuildVersion()

View File

@@ -33,17 +33,11 @@ import static io.anuke.mindustry.Vars.state;
import static io.anuke.mindustry.Vars.world; import static io.anuke.mindustry.Vars.world;
public abstract class Unit extends DestructibleEntity implements SaveTrait, TargetTrait, SyncTrait, DrawTrait, TeamTrait, CarriableTrait, InventoryTrait{ public abstract class Unit extends DestructibleEntity implements SaveTrait, TargetTrait, SyncTrait, DrawTrait, TeamTrait, CarriableTrait, InventoryTrait{
/** /**Total duration of hit flash effect*/
* total duration of hit flash effect
*/
public static final float hitDuration = 9f; public static final float hitDuration = 9f;
/** /**Percision divisor of velocity, used when writing. For example a value of '2' would mean the percision is 1/2 = 0.5-size chunks.*/
* Percision divisor of velocity, used when writing. For example a value of '2' would mean the percision is 1/2 = 0.5-size chunks.
*/
public static final float velocityPercision = 8f; public static final float velocityPercision = 8f;
/** /**Maximum absolute value of a velocity vector component.*/
* Maximum absolute value of a velocity vector component.
*/
public static final float maxAbsVelocity = 127f / velocityPercision; public static final float maxAbsVelocity = 127f / velocityPercision;
private static final Vector2 moveVector = new Vector2(); private static final Vector2 moveVector = new Vector2();

View File

@@ -3,6 +3,7 @@ package io.anuke.mindustry.entities.units;
import io.anuke.mindustry.Vars; import io.anuke.mindustry.Vars;
import io.anuke.mindustry.content.Items; import io.anuke.mindustry.content.Items;
import io.anuke.mindustry.entities.effect.ItemDrop; import io.anuke.mindustry.entities.effect.ItemDrop;
import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.Item;
import io.anuke.ucore.util.Mathf; import io.anuke.ucore.util.Mathf;
@@ -11,7 +12,7 @@ public class UnitDrops{
private static Item[] dropTable; private static Item[] dropTable;
public static void dropItems(BaseUnit unit){ public static void dropItems(BaseUnit unit){
if(Vars.itemGroup.size() > maxItems){ if(Vars.itemGroup.size() > maxItems || unit.getTeam() != Team.red){
return; return;
} }

View File

@@ -217,6 +217,9 @@ public class BuildBlock extends Block{
if(recipe != null){ if(recipe != null){
ItemStack[] requirements = recipe.requirements; ItemStack[] requirements = recipe.requirements;
if(requirements.length != accumulator.length || totalAccumulator.length != requirements.length){
setDeconstruct(previous);
}
for(int i = 0; i < requirements.length; i++){ for(int i = 0; i < requirements.length; i++){
accumulator[i] += Math.min(requirements[i].amount * amount / 2f, requirements[i].amount/2f - totalAccumulator[i]); //add scaled amount progressed to the accumulator accumulator[i] += Math.min(requirements[i].amount * amount / 2f, requirements[i].amount/2f - totalAccumulator[i]); //add scaled amount progressed to the accumulator

View File

@@ -227,7 +227,7 @@ public class PowerNode extends PowerBlock{
} }
protected boolean shouldDistribute(Tile tile, Tile other){ protected boolean shouldDistribute(Tile tile, Tile other){
return other != null && other.getTeamID() == tile.getTeamID() && other.entity.power.amount / other.block().powerCapacity <= tile.entity.power.amount / powerCapacity && return other != null && other.entity != null && other.block().hasPower && other.getTeamID() == tile.getTeamID() && other.entity.power.amount / other.block().powerCapacity <= tile.entity.power.amount / powerCapacity &&
!(other.block() instanceof PowerGenerator); //do not distribute to power generators !(other.block() instanceof PowerGenerator); //do not distribute to power generators
} }