Merge remote-tracking branch 'origin/master' into fabric-1.16
# Conflicts: # build.gradle # core/src/main/java/appeng/block/AEBaseBlock.java # core/src/main/java/appeng/block/misc/TinyTNTBlock.java # core/src/main/java/appeng/entity/TinyTNTPrimedRenderer.java # core/src/main/java/appeng/fluids/util/AEFluidStack.java # src/main/java/appeng/core/AEConfig.java # src/main/java/appeng/core/api/definitions/ApiItems.java # src/main/java/appeng/debug/EnergyGeneratorBlockEntity.java # src/main/java/appeng/entity/TinyTNTPrimedEntity.java # src/main/java/appeng/tile/storage/DriveBlockEntity.java
This commit is contained in:
@@ -27,3 +27,4 @@ jobs:
|
|||||||
run: ./gradlew runData --no-daemon
|
run: ./gradlew runData --no-daemon
|
||||||
- name: Build with Gradle
|
- name: Build with Gradle
|
||||||
run: ./gradlew build --no-daemon
|
run: ./gradlew build --no-daemon
|
||||||
|
|
||||||
@@ -11,8 +11,16 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Validate semver
|
- name: Validate semver
|
||||||
env:
|
env:
|
||||||
RELEASE: ${{ github.event.release.tag_name }}
|
TAG: ${{ github.event.release.tag_name }}
|
||||||
run: echo $RELEASE | grep -oP '^v(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$'
|
run: |
|
||||||
|
echo $TAG | grep -oP '^v(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$'
|
||||||
|
echo "::set-env name=RELEASE::${TAG:1}"
|
||||||
|
- name: Export keystore
|
||||||
|
env:
|
||||||
|
KEY_STORE: ${{ secrets.KEY_STORE }}
|
||||||
|
run: |
|
||||||
|
echo $KEY_STORE | base64 -d > $HOME/keystore.jks
|
||||||
|
echo "::set-env name=KEY_STORE_FILE::$HOME/keystore.jks"
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Set up JDK 1.8
|
- name: Set up JDK 1.8
|
||||||
uses: actions/setup-java@v1
|
uses: actions/setup-java@v1
|
||||||
@@ -20,23 +28,28 @@ jobs:
|
|||||||
java-version: 1.8
|
java-version: 1.8
|
||||||
- name: Grant execute permission for gradlew
|
- name: Grant execute permission for gradlew
|
||||||
run: chmod +x gradlew
|
run: chmod +x gradlew
|
||||||
- name: Use gradle cache for faster builds
|
|
||||||
uses: actions/cache@v1
|
|
||||||
with:
|
|
||||||
path: ~/.gradle/caches
|
|
||||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
|
|
||||||
- name: Generate assets
|
- name: Generate assets
|
||||||
uses: GabrielBB/xvfb-action@v1.2
|
uses: GabrielBB/xvfb-action@v1.2
|
||||||
env:
|
|
||||||
RELEASE: ${{ github.event.release.tag_name }}
|
|
||||||
with:
|
with:
|
||||||
run: ./gradlew runData --no-daemon
|
run: ./gradlew runData --no-daemon
|
||||||
- name: Build with Gradle
|
- name: Build, sign, and publish with Gradle
|
||||||
env:
|
env:
|
||||||
RELEASE: ${{ github.event.release.tag_name }}
|
KEY_STORE_PASS: ${{ secrets.KEY_STORE_PASS }}
|
||||||
run: ./gradlew build --no-daemon
|
KEY_STORE_ALIAS: ${{ secrets.KEY_STORE_ALIAS }}
|
||||||
- name: Publish package
|
KEY_STORE_KEY_PASS: ${{ secrets.KEY_STORE_KEY_PASS }}
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
run: ./gradlew build publish --no-daemon
|
||||||
|
- name: Prepare artifact metadata
|
||||||
|
id: prepare_artifact_metadata
|
||||||
|
run: |
|
||||||
|
echo ::set-output name=ARTIFACT_PATH::./build/libs/appliedenergistics2-${RELEASE}.jar
|
||||||
|
echo ::set-output name=ARTIFACT_NAME::appliedenergistics2-${RELEASE}.jar
|
||||||
|
- name: Upload Release Artifact
|
||||||
|
uses: actions/upload-release-asset@v1.0.1
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
RELEASE: ${{ github.event.release.tag_name }}
|
with:
|
||||||
run: ./gradlew publish --no-daemon
|
upload_url: ${{ github.event.release.upload_url }}
|
||||||
|
asset_path: ${{ steps.prepare_artifact_metadata.outputs.ARTIFACT_PATH }}
|
||||||
|
asset_name: ${{ steps.prepare_artifact_metadata.outputs.ARTIFACT_NAME }}
|
||||||
|
asset_content_type: application/zip
|
||||||
|
|||||||
+1
-1
@@ -43,7 +43,7 @@ allprojects {
|
|||||||
|
|
||||||
ext.release = System.getenv('RELEASE') ?: ""
|
ext.release = System.getenv('RELEASE') ?: ""
|
||||||
if (ext.release) {
|
if (ext.release) {
|
||||||
version = ext.release.substring(1)
|
version = ext.release
|
||||||
}
|
}
|
||||||
|
|
||||||
// Avoid build-directories for each subproject
|
// Avoid build-directories for each subproject
|
||||||
|
|||||||
@@ -124,11 +124,6 @@ public abstract class AEBaseBlock extends Block {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ActionResult onActivated(final World w, final BlockPos pos, final PlayerEntity player, final Hand hand,
|
|
||||||
final @Nullable ItemStack heldItem, final BlockHitResult hit) {
|
|
||||||
return ActionResult.PASS;
|
|
||||||
}
|
|
||||||
|
|
||||||
public final Direction mapRotation(final IOrientable ori, final Direction dir) {
|
public final Direction mapRotation(final IOrientable ori, final Direction dir) {
|
||||||
// case DOWN: return bottomIcon;
|
// case DOWN: return bottomIcon;
|
||||||
// case UP: return blockIcon;
|
// case UP: return blockIcon;
|
||||||
|
|||||||
@@ -267,6 +267,11 @@ public abstract class AEBaseTileBlock<T extends AEBaseBlockEntity> extends AEBas
|
|||||||
return this.onActivated(world, pos, player, hand, player.getStackInHand(hand), hit);
|
return this.onActivated(world, pos, player, hand, player.getStackInHand(hand), hit);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ActionResult onActivated(final World w, final BlockPos pos, final PlayerEntity player, final Hand hand,
|
||||||
|
final @Nullable ItemStack heldItem, final BlockHitResult hit) {
|
||||||
|
return ActionResult.PASS;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IOrientable getOrientable(final BlockView w, final BlockPos pos) {
|
public IOrientable getOrientable(final BlockView w, final BlockPos pos) {
|
||||||
return this.getBlockEntity(w, pos);
|
return this.getBlockEntity(w, pos);
|
||||||
|
|||||||
@@ -65,9 +65,10 @@ public class TinyTNTBlock extends AEBaseBlock {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ActionResult onActivated(final World w, final BlockPos pos, final PlayerEntity player, final Hand hand,
|
public ActionResult onUse(BlockState state, World w, BlockPos pos, PlayerEntity player, Hand hand,
|
||||||
final @Nullable ItemStack heldItem, final BlockHitResult hit) {
|
final BlockHitResult hit) {
|
||||||
if (heldItem != null && heldItem.getItem() == Items.FLINT_AND_STEEL) {
|
ItemStack heldItem = player.getStackInHand(hand);
|
||||||
|
if (heldItem.getItem() == Items.FLINT_AND_STEEL) {
|
||||||
this.startFuse(w, pos, player);
|
this.startFuse(w, pos, player);
|
||||||
w.removeBlock(pos, false);
|
w.removeBlock(pos, false);
|
||||||
heldItem.damage(1, player, p -> {
|
heldItem.damage(1, player, p -> {
|
||||||
@@ -75,7 +76,7 @@ public class TinyTNTBlock extends AEBaseBlock {
|
|||||||
}); // FIXME Check if onBroken is equivalent
|
}); // FIXME Check if onBroken is equivalent
|
||||||
return ActionResult.SUCCESS;
|
return ActionResult.SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
return super.onActivated(w, pos, player, hand, heldItem, hit);
|
return super.onUse(state, w, pos, player, hand, hit);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -187,7 +187,7 @@ public final class AEConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isFeatureEnabled(final AEFeature f) {
|
public boolean isFeatureEnabled(final AEFeature f) {
|
||||||
return this.featureFlags.contains(f);
|
return (!f.isConfig() && f.isEnabled()) || this.featureFlags.contains(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean areFeaturesEnabled(Collection<AEFeature> features) {
|
public boolean areFeaturesEnabled(Collection<AEFeature> features) {
|
||||||
|
|||||||
@@ -22,6 +22,9 @@ import appeng.api.definitions.IItemDefinition;
|
|||||||
import appeng.api.definitions.IItems;
|
import appeng.api.definitions.IItems;
|
||||||
import appeng.api.util.AEColoredItemDefinition;
|
import appeng.api.util.AEColoredItemDefinition;
|
||||||
import appeng.bootstrap.FeatureFactory;
|
import appeng.bootstrap.FeatureFactory;
|
||||||
|
import appeng.bootstrap.IItemRendering;
|
||||||
|
import appeng.bootstrap.ItemRenderingCustomizer;
|
||||||
|
import appeng.fluids.items.FluidDummyItem;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Internal implementation for the API items
|
* Internal implementation for the API items
|
||||||
@@ -253,7 +256,14 @@ public final class ApiItems implements IItems {
|
|||||||
// debugTools.item("debug_part_placer", DebugPartPlacerItem::new).build();
|
// debugTools.item("debug_part_placer", DebugPartPlacerItem::new).build();
|
||||||
//
|
//
|
||||||
// this.dummyFluidItem = registry.item("dummy_fluid_item", FluidDummyItem::new)
|
// this.dummyFluidItem = registry.item("dummy_fluid_item", FluidDummyItem::new)
|
||||||
// .rendering(new FluidDummyItemRendering()).build();
|
// .rendering(new ItemRenderingCustomizer() {
|
||||||
|
// @Override
|
||||||
|
// @Environment(Dist.CLIENT)
|
||||||
|
// public void customize(IItemRendering rendering) {
|
||||||
|
// rendering.color(new FluidDummyItemColor());
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// .build();
|
||||||
}
|
}
|
||||||
|
|
||||||
// private static AEColoredItemDefinition createPaintBalls(FeatureFactory registry, String idSuffix, boolean lumen) {
|
// private static AEColoredItemDefinition createPaintBalls(FeatureFactory registry, String idSuffix, boolean lumen) {
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import net.minecraft.block.BlockState;
|
|||||||
import net.minecraft.block.Material;
|
import net.minecraft.block.Material;
|
||||||
import net.minecraft.entity.*;
|
import net.minecraft.entity.*;
|
||||||
import net.minecraft.entity.damage.DamageSource;
|
import net.minecraft.entity.damage.DamageSource;
|
||||||
|
import net.minecraft.network.Packet;
|
||||||
import net.minecraft.particle.ParticleTypes;
|
import net.minecraft.particle.ParticleTypes;
|
||||||
import net.minecraft.sound.SoundCategory;
|
import net.minecraft.sound.SoundCategory;
|
||||||
import net.minecraft.sound.SoundEvents;
|
import net.minecraft.sound.SoundEvents;
|
||||||
@@ -35,20 +36,37 @@ import net.minecraft.util.math.Box;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraft.world.explosion.Explosion;
|
import net.minecraft.world.explosion.Explosion;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public final class TinyTNTPrimedEntity extends TntEntity {
|
public final class TinyTNTPrimedEntity extends TntEntity {
|
||||||
|
|
||||||
public static EntityType<TinyTNTPrimedEntity> TYPE;
|
public static EntityType<TinyTNTPrimedEntity> TYPE;
|
||||||
|
|
||||||
|
private LivingEntity causingEntity;
|
||||||
|
|
||||||
public TinyTNTPrimedEntity(EntityType<? extends TinyTNTPrimedEntity> type, World worldIn) {
|
public TinyTNTPrimedEntity(EntityType<? extends TinyTNTPrimedEntity> type, World worldIn) {
|
||||||
super(type, worldIn);
|
super(type, worldIn);
|
||||||
this.inanimate = true;
|
this.inanimate = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TinyTNTPrimedEntity(final World w, final double x, final double y, final double z,
|
public TinyTNTPrimedEntity(final World world, final double x, final double y, final double z,
|
||||||
final LivingEntity igniter) {
|
final LivingEntity igniter) {
|
||||||
super(w, x, y, z, igniter);
|
this(TYPE, world);
|
||||||
|
this.updatePosition(x, y, z);
|
||||||
|
double d = world.random.nextDouble() * 6.2831854820251465D;
|
||||||
|
this.setVelocity(-Math.sin(d) * 0.02D, 0.20000000298023224D, -Math.cos(d) * 0.02D);
|
||||||
|
this.setFuse(80);
|
||||||
|
this.prevX = x;
|
||||||
|
this.prevY = y;
|
||||||
|
this.prevZ = z;
|
||||||
|
this.causingEntity = igniter;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@Override
|
||||||
|
public LivingEntity getCausingEntity() {
|
||||||
|
return causingEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -159,4 +177,10 @@ public final class TinyTNTPrimedEntity extends TntEntity {
|
|||||||
// new MockExplosionPacket(this.getX(), this.getY(), this.getZ()));
|
// new MockExplosionPacket(this.getX(), this.getY(), this.getZ()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Packet<?> createSpawnPacket() {
|
||||||
|
// FIXME FABRIC
|
||||||
|
throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ public class TinyTNTPrimedRenderer extends EntityRenderer<TinyTNTPrimedEntity> {
|
|||||||
|
|
||||||
public TinyTNTPrimedRenderer(final EntityRenderDispatcher manager) {
|
public TinyTNTPrimedRenderer(final EntityRenderDispatcher manager) {
|
||||||
super(manager);
|
super(manager);
|
||||||
this.shadowRadius = 0.5F;
|
this.shadowRadius = 0.25F;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+176
-36
@@ -14,10 +14,23 @@
|
|||||||
"from": [0, 1, 0],
|
"from": [0, 1, 0],
|
||||||
"to": [1, 15, 16],
|
"to": [1, 15, 16],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "uv": [15, 1, 16, 15], "texture": "#front" },
|
"north": {
|
||||||
"east": { "uv": [0, 0, 16, 16], "rotation": 180, "texture": "#inside" },
|
"uv": [15, 1, 16, 15],
|
||||||
"south": { "uv": [0, 1, 1, 15], "texture": "#side" },
|
"texture": "#front",
|
||||||
"west": { "uv": [0, 1, 16, 15], "texture": "#side" }
|
"cullface": "north"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0, 0, 16, 16],
|
||||||
|
"rotation": 180,
|
||||||
|
"texture": "#inside",
|
||||||
|
"cullface": "north"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0, 1, 1, 15],
|
||||||
|
"texture": "#side",
|
||||||
|
"cullface": "south"
|
||||||
|
},
|
||||||
|
"west": { "uv": [0, 1, 16, 15], "texture": "#side", "cullface": "west" }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -25,10 +38,26 @@
|
|||||||
"from": [15, 1, 0],
|
"from": [15, 1, 0],
|
||||||
"to": [16, 15, 16],
|
"to": [16, 15, 16],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "uv": [0, 1, 1, 15], "texture": "#front" },
|
"north": {
|
||||||
"east": { "uv": [0, 1, 16, 15], "texture": "#side" },
|
"uv": [0, 1, 1, 15],
|
||||||
"south": { "uv": [15, 1, 16, 15], "texture": "#side" },
|
"texture": "#front",
|
||||||
"west": { "uv": [0, 0, 16, 16], "texture": "#inside" }
|
"cullface": "north"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0, 1, 16, 15],
|
||||||
|
"texture": "#side",
|
||||||
|
"cullface": "east"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [15, 1, 16, 15],
|
||||||
|
"texture": "#side",
|
||||||
|
"cullface": "south"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0, 0, 16, 16],
|
||||||
|
"texture": "#inside",
|
||||||
|
"cullface": "north"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -38,7 +67,11 @@
|
|||||||
"rotation": { "angle": 0, "axis": "y", "origin": [8, 8, 9] },
|
"rotation": { "angle": 0, "axis": "y", "origin": [8, 8, 9] },
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "uv": [15, 1, 16, 15], "texture": "#inside" },
|
"north": { "uv": [15, 1, 16, 15], "texture": "#inside" },
|
||||||
"south": { "uv": [1, 1, 15, 15], "texture": "#side" }
|
"south": {
|
||||||
|
"uv": [1, 1, 15, 15],
|
||||||
|
"texture": "#side",
|
||||||
|
"cullface": "south"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -46,12 +79,37 @@
|
|||||||
"from": [0, 0, 0],
|
"from": [0, 0, 0],
|
||||||
"to": [16, 1, 16],
|
"to": [16, 1, 16],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "uv": [0, 15, 16, 16], "texture": "#front" },
|
"north": {
|
||||||
"east": { "uv": [0, 15, 16, 16], "texture": "#side" },
|
"uv": [0, 15, 16, 16],
|
||||||
"south": { "uv": [0, 15, 16, 16], "texture": "#side" },
|
"texture": "#front",
|
||||||
"west": { "uv": [0, 15, 16, 16], "texture": "#side" },
|
"cullface": "north"
|
||||||
"up": { "uv": [0, 0, 16, 16], "rotation": 90, "texture": "#inside" },
|
},
|
||||||
"down": { "uv": [0, 0, 16, 16], "texture": "#bottom" }
|
"east": {
|
||||||
|
"uv": [0, 15, 16, 16],
|
||||||
|
"texture": "#side",
|
||||||
|
"cullface": "east"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0, 15, 16, 16],
|
||||||
|
"texture": "#side",
|
||||||
|
"cullface": "south"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0, 15, 16, 16],
|
||||||
|
"texture": "#side",
|
||||||
|
"cullface": "west"
|
||||||
|
},
|
||||||
|
"up": {
|
||||||
|
"uv": [0, 0, 16, 16],
|
||||||
|
"rotation": 90,
|
||||||
|
"texture": "#inside",
|
||||||
|
"cullface": "north"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0, 0, 16, 16],
|
||||||
|
"texture": "#bottom",
|
||||||
|
"cullface": "down"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -59,12 +117,25 @@
|
|||||||
"from": [0, 15, 0],
|
"from": [0, 15, 0],
|
||||||
"to": [16, 16, 16],
|
"to": [16, 16, 16],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "uv": [0, 0, 16, 1], "texture": "#front" },
|
"north": {
|
||||||
"east": { "uv": [0, 0, 16, 1], "texture": "#side" },
|
"uv": [0, 0, 16, 1],
|
||||||
"south": { "uv": [0, 0, 16, 1], "texture": "#side" },
|
"texture": "#front",
|
||||||
"west": { "uv": [0, 0, 16, 1], "texture": "#side" },
|
"cullface": "north"
|
||||||
"up": { "uv": [0, 0, 16, 16], "texture": "#top" },
|
},
|
||||||
"down": { "uv": [0, 0, 16, 16], "rotation": 270, "texture": "#inside" }
|
"east": { "uv": [0, 0, 16, 1], "texture": "#side", "cullface": "east" },
|
||||||
|
"south": {
|
||||||
|
"uv": [0, 0, 16, 1],
|
||||||
|
"texture": "#side",
|
||||||
|
"cullface": "south"
|
||||||
|
},
|
||||||
|
"west": { "uv": [0, 0, 16, 1], "texture": "#side", "cullface": "west" },
|
||||||
|
"up": { "uv": [0, 0, 16, 16], "texture": "#top", "cullface": "up" },
|
||||||
|
"down": {
|
||||||
|
"uv": [0, 0, 16, 16],
|
||||||
|
"rotation": 270,
|
||||||
|
"texture": "#inside",
|
||||||
|
"cullface": "north"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -72,9 +143,22 @@
|
|||||||
"from": [7, 1, 1],
|
"from": [7, 1, 1],
|
||||||
"to": [9, 15, 7],
|
"to": [9, 15, 7],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "uv": [7, 1, 9, 15], "texture": "#front" },
|
"north": {
|
||||||
"east": { "uv": [1, 1, 7, 15], "rotation": 180, "texture": "#inside" },
|
"uv": [7, 1, 9, 15],
|
||||||
"west": { "uv": [1, 1, 7, 15], "texture": "#inside" }
|
"texture": "#front",
|
||||||
|
"cullface": "north"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [1, 1, 7, 15],
|
||||||
|
"rotation": 180,
|
||||||
|
"texture": "#inside",
|
||||||
|
"cullface": "north"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [1, 1, 7, 15],
|
||||||
|
"texture": "#inside",
|
||||||
|
"cullface": "north"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -82,9 +166,23 @@
|
|||||||
"from": [1, 3, 2],
|
"from": [1, 3, 2],
|
||||||
"to": [15, 4, 7],
|
"to": [15, 4, 7],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "uv": [1, 12, 15, 13], "texture": "#front" },
|
"north": {
|
||||||
"up": { "uv": [2, 1, 7, 15], "rotation": 90, "texture": "#inside" },
|
"uv": [1, 12, 15, 13],
|
||||||
"down": { "uv": [2, 1, 7, 15], "rotation": 270, "texture": "#inside" }
|
"texture": "#front",
|
||||||
|
"cullface": "north"
|
||||||
|
},
|
||||||
|
"up": {
|
||||||
|
"uv": [2, 1, 7, 15],
|
||||||
|
"rotation": 90,
|
||||||
|
"texture": "#inside",
|
||||||
|
"cullface": "north"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [2, 1, 7, 15],
|
||||||
|
"rotation": 270,
|
||||||
|
"texture": "#inside",
|
||||||
|
"cullface": "north"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -92,9 +190,23 @@
|
|||||||
"from": [1, 6, 2],
|
"from": [1, 6, 2],
|
||||||
"to": [15, 7, 7],
|
"to": [15, 7, 7],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "uv": [1, 9, 15, 10], "texture": "#front" },
|
"north": {
|
||||||
"up": { "uv": [2, 1, 7, 15], "rotation": 90, "texture": "#inside" },
|
"uv": [1, 9, 15, 10],
|
||||||
"down": { "uv": [2, 1, 7, 15], "rotation": 270, "texture": "#inside" }
|
"texture": "#front",
|
||||||
|
"cullface": "north"
|
||||||
|
},
|
||||||
|
"up": {
|
||||||
|
"uv": [2, 1, 7, 15],
|
||||||
|
"rotation": 90,
|
||||||
|
"texture": "#inside",
|
||||||
|
"cullface": "north"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [2, 1, 7, 15],
|
||||||
|
"rotation": 270,
|
||||||
|
"texture": "#inside",
|
||||||
|
"cullface": "north"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -102,9 +214,23 @@
|
|||||||
"from": [1, 9, 2],
|
"from": [1, 9, 2],
|
||||||
"to": [15, 10, 7],
|
"to": [15, 10, 7],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "uv": [1, 6, 15, 7], "texture": "#front" },
|
"north": {
|
||||||
"up": { "uv": [2, 1, 7, 15], "rotation": 90, "texture": "#inside" },
|
"uv": [1, 6, 15, 7],
|
||||||
"down": { "uv": [2, 1, 7, 15], "rotation": 270, "texture": "#inside" }
|
"texture": "#front",
|
||||||
|
"cullface": "north"
|
||||||
|
},
|
||||||
|
"up": {
|
||||||
|
"uv": [2, 1, 7, 15],
|
||||||
|
"rotation": 90,
|
||||||
|
"texture": "#inside",
|
||||||
|
"cullface": "north"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [2, 1, 7, 15],
|
||||||
|
"rotation": 270,
|
||||||
|
"texture": "#inside",
|
||||||
|
"cullface": "north"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -112,9 +238,23 @@
|
|||||||
"from": [1, 12, 2],
|
"from": [1, 12, 2],
|
||||||
"to": [15, 13, 7],
|
"to": [15, 13, 7],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "uv": [1, 3, 15, 4], "texture": "#front" },
|
"north": {
|
||||||
"up": { "uv": [2, 1, 7, 15], "rotation": 90, "texture": "#inside" },
|
"uv": [1, 3, 15, 4],
|
||||||
"down": { "uv": [2, 1, 7, 15], "rotation": 270, "texture": "#inside" }
|
"texture": "#front",
|
||||||
|
"cullface": "north"
|
||||||
|
},
|
||||||
|
"up": {
|
||||||
|
"uv": [2, 1, 7, 15],
|
||||||
|
"rotation": 90,
|
||||||
|
"texture": "#inside",
|
||||||
|
"cullface": "north"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [2, 1, 7, 15],
|
||||||
|
"rotation": 270,
|
||||||
|
"texture": "#inside",
|
||||||
|
"cullface": "north"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -21,6 +21,9 @@ processResources {
|
|||||||
}
|
}
|
||||||
|
|
||||||
jar {
|
jar {
|
||||||
|
finalizedBy 'reobfJar'
|
||||||
|
finalizedBy 'signJar'
|
||||||
|
|
||||||
from sourceSets.main.output.classesDirs
|
from sourceSets.main.output.classesDirs
|
||||||
from sourceSets.api.output.classesDirs
|
from sourceSets.api.output.classesDirs
|
||||||
from sourceSets.main.output.resourcesDir
|
from sourceSets.main.output.resourcesDir
|
||||||
|
|||||||
@@ -125,6 +125,10 @@ public class DriveLedTileEntityRenderer extends BlockEntityRenderer<DriveBlockEn
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!drive.isPowered()) {
|
||||||
|
return STATE_COLORS.get(DriveSlotState.OFFLINE);
|
||||||
|
}
|
||||||
|
|
||||||
Vector3f col = STATE_COLORS.get(state);
|
Vector3f col = STATE_COLORS.get(state);
|
||||||
if (drive.isCellBlinking(slot)) {
|
if (drive.isCellBlinking(slot)) {
|
||||||
// 200 ms interval (100ms to get to red, then 100ms back)
|
// 200 ms interval (100ms to get to red, then 100ms back)
|
||||||
|
|||||||
@@ -127,15 +127,6 @@ public class CellWorkbenchContainer extends UpgradeableContainer {
|
|||||||
upgradeInventory, this, iSLot, 187 + zz * 18, 8 + 18 * z, iSLot, this.getPlayerInventory()));
|
upgradeInventory, this, iSLot, 187 + zz * 18, 8 + 18 * z, iSLot, this.getPlayerInventory()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
* if ( supportCapacity() ) { for (int w = 0; w < 2; w++) for (int z = 0; z < 9;
|
|
||||||
* z++) addSlotToContainer( new OptionalSlotFakeTypeOnly( inv, this, offset++,
|
|
||||||
* x, y, z, w, 1 ) ); for (int w = 0; w < 2; w++) for (int z = 0; z < 9; z++)
|
|
||||||
* addSlotToContainer( new OptionalSlotFakeTypeOnly( inv, this, offset++, x, y,
|
|
||||||
* z, w + 2, 2 ) ); for (int w = 0; w < 2; w++) for (int z = 0; z < 9; z++)
|
|
||||||
* addSlotToContainer( new OptionalSlotFakeTypeOnly( inv, this, offset++, x, y,
|
|
||||||
* z, w + 4, 3 ) ); }
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -285,8 +285,7 @@ final class Registration {
|
|||||||
|
|
||||||
FacadeItem facadeItem = (FacadeItem) Api.INSTANCE.definitions().items().facade().item();
|
FacadeItem facadeItem = (FacadeItem) Api.INSTANCE.definitions().items().facade().item();
|
||||||
r.registerAll(DisassembleRecipe.SERIALIZER, GrinderRecipeSerializer.INSTANCE,
|
r.registerAll(DisassembleRecipe.SERIALIZER, GrinderRecipeSerializer.INSTANCE,
|
||||||
InscriberRecipeSerializer.INSTANCE, FacadeRecipe.getSerializer(facadeItem),
|
InscriberRecipeSerializer.INSTANCE, FacadeRecipe.getSerializer(facadeItem));
|
||||||
DisassembleRecipe.SERIALIZER);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME LATER
|
// FIXME LATER
|
||||||
|
|||||||
@@ -65,6 +65,9 @@ public class EnergyGeneratorBlockEntity extends AEBaseBlockEntity implements Tic
|
|||||||
|
|
||||||
for (Direction facing : Direction.values()) {
|
for (Direction facing : Direction.values()) {
|
||||||
final BlockEntity te = this.getWorld().getBlockEntity(this.getPos().offset(facing));
|
final BlockEntity te = this.getWorld().getBlockEntity(this.getPos().offset(facing));
|
||||||
|
if (te == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
final LazyOptional<IEnergyStorage> cap = te.getCapability(CapabilityEnergy.ENERGY, facing.getOpposite());
|
final LazyOptional<IEnergyStorage> cap = te.getCapability(CapabilityEnergy.ENERGY, facing.getOpposite());
|
||||||
|
|
||||||
cap.ifPresent(consumer -> {
|
cap.ifPresent(consumer -> {
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package appeng.fluids.items;
|
||||||
|
|
||||||
|
import net.minecraft.client.renderer.color.IItemColor;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
|
import net.minecraftforge.fluids.FluidStack;
|
||||||
|
|
||||||
|
@OnlyIn(Dist.CLIENT)
|
||||||
|
public class FluidDummyItemColor implements IItemColor {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getColor(ItemStack stack, int tintIndex) {
|
||||||
|
|
||||||
|
Item item = stack.getItem();
|
||||||
|
if (!(item instanceof FluidDummyItem)) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
FluidDummyItem fluidItem = (FluidDummyItem) item;
|
||||||
|
FluidStack fluidStack = fluidItem.getFluidStack(stack);
|
||||||
|
|
||||||
|
return fluidStack.getFluid().getAttributes().getColor(fluidStack);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of Applied Energistics 2.
|
|
||||||
* Copyright (c) 2013 - 2018, AlgorithmX2, All rights reserved.
|
|
||||||
*
|
|
||||||
* Applied Energistics 2 is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Applied Energistics 2 is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with Applied Energistics 2. If not, see <http://www.gnu.org/licenses/lgpl>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package appeng.fluids.items;
|
|
||||||
|
|
||||||
import appeng.bootstrap.IItemRendering;
|
|
||||||
import appeng.bootstrap.ItemRenderingCustomizer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author DrummerMC
|
|
||||||
* @version rv6 - 2018-01-22
|
|
||||||
* @since rv6 2018-01-22
|
|
||||||
*/
|
|
||||||
public class FluidDummyItemRendering extends ItemRenderingCustomizer {
|
|
||||||
@Override
|
|
||||||
public void customize(IItemRendering rendering) {
|
|
||||||
// FIXME rendering.builtInModel( "models/item/dummy_fluid_item", new
|
|
||||||
// DummyFluidItemModel() );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+1
-10
@@ -95,16 +95,7 @@ public class PathGridCache implements IPathingGrid {
|
|||||||
this.updateNetwork = false;
|
this.updateNetwork = false;
|
||||||
this.setChannelsInUse(0);
|
this.setChannelsInUse(0);
|
||||||
|
|
||||||
if (!AEConfig.instance().isFeatureEnabled(AEFeature.CHANNELS)) {
|
if (this.controllerState == ControllerState.NO_CONTROLLER) {
|
||||||
final int used = this.calculateRequiredChannels();
|
|
||||||
|
|
||||||
final int nodes = this.myGrid.getNodes().size();
|
|
||||||
this.ticksUntilReady = 20 + Math.max(0, nodes / 100 - 20);
|
|
||||||
this.setChannelsByBlocks(nodes * used);
|
|
||||||
this.setChannelPowerUsage(this.getChannelsByBlocks() / 128.0);
|
|
||||||
|
|
||||||
this.myGrid.getPivot().beginVisit(new AdHocChannelUpdater(used));
|
|
||||||
} else if (this.controllerState == ControllerState.NO_CONTROLLER) {
|
|
||||||
final int requiredChannels = this.calculateRequiredChannels();
|
final int requiredChannels = this.calculateRequiredChannels();
|
||||||
int used = requiredChannels;
|
int used = requiredChannels;
|
||||||
if (requiredChannels > 8) {
|
if (requiredChannels > 8) {
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import java.io.IOException;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.EnumSet;
|
||||||
import java.util.IdentityHashMap;
|
import java.util.IdentityHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -36,8 +37,8 @@ import net.minecraft.item.Item;
|
|||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.network.PacketByteBuf;
|
import net.minecraft.network.PacketByteBuf;
|
||||||
|
import net.minecraft.util.Direction;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
|
|
||||||
import net.minecraftforge.registries.ForgeRegistries;
|
import net.minecraftforge.registries.ForgeRegistries;
|
||||||
|
|
||||||
import appeng.api.AEApi;
|
import appeng.api.AEApi;
|
||||||
@@ -111,6 +112,12 @@ public class DriveBlockEntity extends AENetworkInvBlockEntity implements IChestO
|
|||||||
this.inventoryHandlers = new IdentityHashMap<>();
|
this.inventoryHandlers = new IdentityHashMap<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setOrientation(Direction inForward, Direction inUp) {
|
||||||
|
super.setOrientation(inForward, inUp);
|
||||||
|
this.getProxy().setValidSides(EnumSet.complementOf(EnumSet.of(inForward)));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void writeToStream(final PacketByteBuf data) throws IOException {
|
protected void writeToStream(final PacketByteBuf data) throws IOException {
|
||||||
super.writeToStream(data);
|
super.writeToStream(data);
|
||||||
|
|||||||
@@ -13,9 +13,16 @@ version="${file.jarVersion}"
|
|||||||
displayName="Applied Energistics 2"
|
displayName="Applied Energistics 2"
|
||||||
description="A Mod about Matter, Energy and using them to conquer the world.."
|
description="A Mod about Matter, Energy and using them to conquer the world.."
|
||||||
|
|
||||||
[[dependencies.jei]]
|
[[dependencies.appliedenergistics2]]
|
||||||
modId="forge"
|
modId="forge"
|
||||||
mandatory=true
|
mandatory=true
|
||||||
versionRange="[31.0.0,)"
|
versionRange="[31.0.0,)"
|
||||||
ordering="NONE"
|
ordering="NONE"
|
||||||
side="BOTH"
|
side="BOTH"
|
||||||
|
|
||||||
|
[[dependencies.appliedenergistics2]]
|
||||||
|
modId="minecraft"
|
||||||
|
mandatory=true
|
||||||
|
versionRange="[1.15.2]"
|
||||||
|
ordering="NONE"
|
||||||
|
side="BOTH"
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"loader": "appliedenergistics2:dummy_fluid_item"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user