Blazier Reworks

- Integrated new Blaze Burner assets by Kryppers
- Blaze burners now render independently when on a contraption
This commit is contained in:
simibubi 2022-05-30 18:43:30 +02:00
parent 79b16d6d26
commit c7b6be2e81
51 changed files with 2446 additions and 738 deletions

View file

@ -6,7 +6,6 @@ import java.util.Map;
import com.jozufozu.flywheel.core.PartialModel; import com.jozufozu.flywheel.core.PartialModel;
import com.simibubi.create.content.contraptions.fluids.FluidTransportBehaviour; import com.simibubi.create.content.contraptions.fluids.FluidTransportBehaviour;
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock;
import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.Iterate;
import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.Lang;
@ -137,6 +136,13 @@ public class AllBlockPartials {
SIGNAL_RED = block("track_signal/red_tube"), SIGNAL_YELLOW_CUBE = block("track_signal/yellow_cube"), SIGNAL_RED = block("track_signal/red_tube"), SIGNAL_YELLOW_CUBE = block("track_signal/yellow_cube"),
SIGNAL_YELLOW_GLOW = block("track_signal/yellow_glow"), SIGNAL_YELLOW = block("track_signal/yellow_tube"), SIGNAL_YELLOW_GLOW = block("track_signal/yellow_glow"), SIGNAL_YELLOW = block("track_signal/yellow_tube"),
BLAZE_GOGGLES = block("blaze_burner/goggles"),
BLAZE_IDLE = block("blaze_burner/blaze/idle"), BLAZE_ACTIVE = block("blaze_burner/blaze/active"),
BLAZE_SUPER = block("blaze_burner/blaze/super"), BLAZE_BURNER_FLAME = block("blaze_burner/flame"),
BLAZE_BURNER_RODS = block("blaze_burner/rods_small"), BLAZE_BURNER_RODS_2 = block("blaze_burner/rods_large"),
BLAZE_BURNER_SUPER_RODS = block("blaze_burner/superheated_rods_small"),
BLAZE_BURNER_SUPER_RODS_2 = block("blaze_burner/superheated_rods_large"),
WHISTLE_MOUTH_LARGE = block("steam_whistle/large_mouth"), WHISTLE_MOUTH_LARGE = block("steam_whistle/large_mouth"),
WHISTLE_MOUTH_MEDIUM = block("steam_whistle/medium_mouth"), WHISTLE_MOUTH_MEDIUM = block("steam_whistle/medium_mouth"),
WHISTLE_MOUTH_SMALL = block("steam_whistle/small_mouth"), WHISTLE_MOUTH_SMALL = block("steam_whistle/small_mouth"),
@ -155,8 +161,6 @@ public class AllBlockPartials {
public static final Map<FluidTransportBehaviour.AttachmentTypes, Map<Direction, PartialModel>> PIPE_ATTACHMENTS = public static final Map<FluidTransportBehaviour.AttachmentTypes, Map<Direction, PartialModel>> PIPE_ATTACHMENTS =
new EnumMap<>(FluidTransportBehaviour.AttachmentTypes.class); new EnumMap<>(FluidTransportBehaviour.AttachmentTypes.class);
public static final Map<BlazeBurnerBlock.HeatLevel, PartialModel> BLAZES =
new EnumMap<>(BlazeBurnerBlock.HeatLevel.class);
public static final Map<Direction, PartialModel> METAL_GIRDER_BRACKETS = new EnumMap<>(Direction.class); public static final Map<Direction, PartialModel> METAL_GIRDER_BRACKETS = new EnumMap<>(Direction.class);
public static final Map<DyeColor, PartialModel> TOOLBOX_LIDS = new EnumMap<>(DyeColor.class); public static final Map<DyeColor, PartialModel> TOOLBOX_LIDS = new EnumMap<>(DyeColor.class);
@ -171,11 +175,6 @@ public class AllBlockPartials {
} }
PIPE_ATTACHMENTS.put(type, map); PIPE_ATTACHMENTS.put(type, map);
} }
for (BlazeBurnerBlock.HeatLevel heat : BlazeBurnerBlock.HeatLevel.values()) {
if (heat == BlazeBurnerBlock.HeatLevel.NONE)
continue;
BLAZES.put(heat, block("blaze_burner/blaze/" + heat.getSerializedName()));
}
for (DyeColor color : DyeColor.values()) for (DyeColor color : DyeColor.values())
TOOLBOX_LIDS.put(color, block("toolbox/lid/" + Lang.asId(color.name()))); TOOLBOX_LIDS.put(color, block("toolbox/lid/" + Lang.asId(color.name())));
for (Direction d : Iterate.horizontalDirections) for (Direction d : Iterate.horizontalDirections)

View file

@ -104,6 +104,7 @@ import com.simibubi.create.content.contraptions.processing.BasinMovementBehaviou
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock; import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock;
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlockItem; import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlockItem;
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerInteractionBehaviour; import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerInteractionBehaviour;
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerMovementBehaviour;
import com.simibubi.create.content.contraptions.processing.burner.LitBlazeBurnerBlock; import com.simibubi.create.content.contraptions.processing.burner.LitBlazeBurnerBlock;
import com.simibubi.create.content.contraptions.relays.advanced.GantryShaftBlock; import com.simibubi.create.content.contraptions.relays.advanced.GantryShaftBlock;
import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerBlock; import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerBlock;
@ -632,6 +633,7 @@ public class AllBlocks {
.tag(AllBlockTags.FAN_TRANSPARENT.tag, AllBlockTags.FAN_HEATERS.tag) .tag(AllBlockTags.FAN_TRANSPARENT.tag, AllBlockTags.FAN_HEATERS.tag)
.loot((lt, block) -> lt.add(block, BlazeBurnerBlock.buildLootTable())) .loot((lt, block) -> lt.add(block, BlazeBurnerBlock.buildLootTable()))
.blockstate((c, p) -> p.simpleBlock(c.getEntry(), AssetLookup.partialBaseModel(c, p))) .blockstate((c, p) -> p.simpleBlock(c.getEntry(), AssetLookup.partialBaseModel(c, p)))
.onRegister(addMovementBehaviour(new BlazeBurnerMovementBehaviour()))
.onRegister(addInteractionBehaviour(new BlazeBurnerInteractionBehaviour())) .onRegister(addInteractionBehaviour(new BlazeBurnerInteractionBehaviour()))
.item(BlazeBurnerBlockItem::withBlaze) .item(BlazeBurnerBlockItem::withBlaze)
.model(AssetLookup.<BlazeBurnerBlockItem>customBlockItemModel("blaze_burner", "block_with_blaze")) .model(AssetLookup.<BlazeBurnerBlockItem>customBlockItemModel("blaze_burner", "block_with_blaze"))

View file

@ -205,8 +205,7 @@ public class AllShapes {
SPEED_CONTROLLER = shape(0, 0, 0, 16, 4, 16).add(1, 1, 1, 15, 13, 15) SPEED_CONTROLLER = shape(0, 0, 0, 16, 4, 16).add(1, 1, 1, 15, 13, 15)
.add(0, 8, 0, 16, 14, 16) .add(0, 8, 0, 16, 14, 16)
.build(), .build(),
HEATER_BLOCK_SHAPE = shape(2, 0, 2, 14, 14, 14).add(0, 0, 0, 16, 4, 16) HEATER_BLOCK_SHAPE = shape(1, 0, 1, 15, 14, 15).build(),
.build(),
HEATER_BLOCK_SPECIAL_COLLISION_SHAPE = shape(0, 0, 0, 16, 4, 16).build(), HEATER_BLOCK_SPECIAL_COLLISION_SHAPE = shape(0, 0, 0, 16, 4, 16).build(),
CRUSHING_WHEEL_COLLISION_SHAPE = cuboid(0, 0, 0, 16, 16, 16), SEAT = cuboid(0, 0, 0, 16, 8, 16), CRUSHING_WHEEL_COLLISION_SHAPE = cuboid(0, 0, 0, 16, 16, 16), SEAT = cuboid(0, 0, 0, 16, 8, 16),
SEAT_COLLISION = cuboid(0, 0, 0, 16, 6, 16), SEAT_COLLISION = cuboid(0, 0, 0, 16, 6, 16),

View file

@ -25,6 +25,11 @@ public class AllSpriteShifts {
public static final Map<DyeColor, SpriteShiftEntry> DYED_BELTS = new IdentityHashMap<>(), public static final Map<DyeColor, SpriteShiftEntry> DYED_BELTS = new IdentityHashMap<>(),
DYED_OFFSET_BELTS = new IdentityHashMap<>(), DYED_DIAGONAL_BELTS = new IdentityHashMap<>(); DYED_OFFSET_BELTS = new IdentityHashMap<>(), DYED_DIAGONAL_BELTS = new IdentityHashMap<>();
public static final SpriteShiftEntry BURNER_FLAME =
SpriteShifter.get("block/blaze_burner_flame", "block/blaze_burner_flame_scroll"),
SUPER_BURNER_FLAME =
SpriteShifter.get("block/blaze_burner_flame", "block/blaze_burner_flame_superheated_scroll");
public static final CTSpriteShiftEntry FRAMED_GLASS = public static final CTSpriteShiftEntry FRAMED_GLASS =
getCT(OMNIDIRECTIONAL, "palettes/framed_glass", "palettes/framed_glass"), getCT(OMNIDIRECTIONAL, "palettes/framed_glass", "palettes/framed_glass"),
HORIZONTAL_FRAMED_GLASS = HORIZONTAL_FRAMED_GLASS =
@ -51,8 +56,7 @@ public class AllSpriteShifts {
CHASSIS_STICKY = omni("linear_chassis_end_sticky"); CHASSIS_STICKY = omni("linear_chassis_end_sticky");
public static final CTSpriteShiftEntry BRASS_TUNNEL_TOP = vertical("brass_tunnel_top"), public static final CTSpriteShiftEntry BRASS_TUNNEL_TOP = vertical("brass_tunnel_top"),
FLUID_TANK = getCT(CTType.RECTANGLE, "fluid_tank"), FLUID_TANK = getCT(CTType.RECTANGLE, "fluid_tank"), FLUID_TANK_TOP = getCT(CTType.RECTANGLE, "fluid_tank_top"),
FLUID_TANK_TOP = getCT(CTType.RECTANGLE, "fluid_tank_top"),
CREATIVE_FLUID_TANK = getCT(CTType.CROSS, "creative_fluid_tank"); CREATIVE_FLUID_TANK = getCT(CTType.CROSS, "creative_fluid_tank");
public static final Couple<CTSpriteShiftEntry> VAULT_TOP = vault("top"), VAULT_FRONT = vault("front"), public static final Couple<CTSpriteShiftEntry> VAULT_TOP = vault("top"), VAULT_FRONT = vault("front"),

View file

@ -2,13 +2,22 @@ package com.simibubi.create.compat.jei.category.animations;
import com.jozufozu.flywheel.core.PartialModel; import com.jozufozu.flywheel.core.PartialModel;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Vector3f; import com.mojang.math.Vector3f;
import com.simibubi.create.AllBlockPartials; import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.AllBlocks; import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllSpriteShifts;
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock.HeatLevel; import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock.HeatLevel;
import com.simibubi.create.foundation.block.render.SpriteShiftEntry;
import com.simibubi.create.foundation.render.CachedBufferer;
import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.AnimationTickHolder;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.LightTexture;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraft.world.level.block.Blocks;
public class AnimatedBlazeBurner extends AnimatedKinetics { public class AnimatedBlazeBurner extends AnimatedKinetics {
@ -26,19 +35,61 @@ public class AnimatedBlazeBurner extends AnimatedKinetics {
matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f)); matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f));
int scale = 23; int scale = 23;
blockElement(AllBlocks.BLAZE_BURNER.getDefaultState()) float offset = (Mth.sin(AnimationTickHolder.getRenderTime() / 16f) + 0.5f) / 16f;
.atLocal(0, 1.65, 0)
blockElement(AllBlocks.BLAZE_BURNER.getDefaultState()).atLocal(0, 1.65, 0)
.scale(scale) .scale(scale)
.render(matrixStack); .render(matrixStack);
float offset = (Mth.sin(AnimationTickHolder.getRenderTime() / 16f) + 0.5f) / 16f; PartialModel blaze =
PartialModel blaze = AllBlockPartials.BLAZES.get(heatLevel); heatLevel == HeatLevel.SEETHING ? AllBlockPartials.BLAZE_SUPER : AllBlockPartials.BLAZE_ACTIVE;
blockElement(blaze) PartialModel rods2 = heatLevel == HeatLevel.SEETHING ? AllBlockPartials.BLAZE_BURNER_SUPER_RODS_2
.atLocal(1, 1.65 + offset, 1) : AllBlockPartials.BLAZE_BURNER_RODS_2;
blockElement(blaze).atLocal(1, 1.8, 1)
.rotate(0, 180, 0)
.scale(scale)
.render(matrixStack);
blockElement(rods2).atLocal(1, 1.7 + offset, 1)
.rotate(0, 180, 0) .rotate(0, 180, 0)
.scale(scale) .scale(scale)
.render(matrixStack); .render(matrixStack);
matrixStack.scale(scale, -scale, scale);
matrixStack.translate(0, -1.8, 0);
SpriteShiftEntry spriteShift =
heatLevel == HeatLevel.SEETHING ? AllSpriteShifts.SUPER_BURNER_FLAME : AllSpriteShifts.BURNER_FLAME;
float spriteWidth = spriteShift.getTarget()
.getU1()
- spriteShift.getTarget()
.getU0();
float spriteHeight = spriteShift.getTarget()
.getV1()
- spriteShift.getTarget()
.getV0();
float time = AnimationTickHolder.getRenderTime(Minecraft.getInstance().level);
float speed = 1 / 32f + 1 / 64f * heatLevel.ordinal();
double vScroll = speed * time;
vScroll = vScroll - Math.floor(vScroll);
vScroll = vScroll * spriteHeight / 2;
double uScroll = speed * time / 2;
uScroll = uScroll - Math.floor(uScroll);
uScroll = uScroll * spriteWidth / 2;
Minecraft mc = Minecraft.getInstance();
MultiBufferSource.BufferSource buffer = mc.renderBuffers()
.bufferSource();
VertexConsumer vb = buffer.getBuffer(RenderType.cutoutMipped());
CachedBufferer.partial(AllBlockPartials.BLAZE_BURNER_FLAME, Blocks.AIR.defaultBlockState())
.shiftUVScrolling(spriteShift, (float) uScroll, (float) vScroll)
.light(LightTexture.FULL_BRIGHT)
.renderInto(matrixStack, vb);
matrixStack.popPose(); matrixStack.popPose();
} }

View file

@ -35,6 +35,7 @@ import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.ItemLike;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
@ -57,7 +58,7 @@ import net.minecraftforge.common.util.FakePlayer;
@MethodsReturnNonnullByDefault @MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault @ParametersAreNonnullByDefault
public class BlazeBurnerBlock extends Block implements ITE<BlazeBurnerTileEntity>, IWrenchable { public class BlazeBurnerBlock extends HorizontalDirectionalBlock implements ITE<BlazeBurnerTileEntity>, IWrenchable {
public static final EnumProperty<HeatLevel> HEAT_LEVEL = EnumProperty.create("blaze", HeatLevel.class); public static final EnumProperty<HeatLevel> HEAT_LEVEL = EnumProperty.create("blaze", HeatLevel.class);
@ -69,7 +70,7 @@ public class BlazeBurnerBlock extends Block implements ITE<BlazeBurnerTileEntity
@Override @Override
protected void createBlockStateDefinition(Builder<Block, BlockState> builder) { protected void createBlockStateDefinition(Builder<Block, BlockState> builder) {
super.createBlockStateDefinition(builder); super.createBlockStateDefinition(builder);
builder.add(HEAT_LEVEL); builder.add(HEAT_LEVEL, FACING);
} }
@Override @Override
@ -111,8 +112,27 @@ public class BlazeBurnerBlock extends Block implements ITE<BlazeBurnerTileEntity
public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand,
BlockHitResult blockRayTraceResult) { BlockHitResult blockRayTraceResult) {
ItemStack heldItem = player.getItemInHand(hand); ItemStack heldItem = player.getItemInHand(hand);
HeatLevel heat = state.getValue(HEAT_LEVEL);
if (state.getValue(HEAT_LEVEL) == HeatLevel.NONE) { if (AllItems.GOGGLES.isIn(heldItem) && heat != HeatLevel.NONE)
return onTileEntityUse(world, pos, bbte -> {
if (bbte.goggles)
return InteractionResult.PASS;
bbte.goggles = true;
bbte.notifyUpdate();
return InteractionResult.SUCCESS;
});
if (heldItem.isEmpty() && heat != HeatLevel.NONE)
return onTileEntityUse(world, pos, bbte -> {
if (!bbte.goggles)
return InteractionResult.PASS;
bbte.goggles = false;
bbte.notifyUpdate();
return InteractionResult.SUCCESS;
});
if (heat == HeatLevel.NONE) {
if (heldItem.getItem() instanceof FlintAndSteelItem) { if (heldItem.getItem() instanceof FlintAndSteelItem) {
world.playSound(player, pos, SoundEvents.FLINTANDSTEEL_USE, SoundSource.BLOCKS, 1.0F, world.playSound(player, pos, SoundEvents.FLINTANDSTEEL_USE, SoundSource.BLOCKS, 1.0F,
world.random.nextFloat() * 0.4F + 0.8F); world.random.nextFloat() * 0.4F + 0.8F);
@ -180,7 +200,9 @@ public class BlazeBurnerBlock extends Block implements ITE<BlazeBurnerTileEntity
return defaultState; return defaultState;
HeatLevel initialHeat = HeatLevel initialHeat =
((BlazeBurnerBlockItem) item).hasCapturedBlaze() ? HeatLevel.SMOULDERING : HeatLevel.NONE; ((BlazeBurnerBlockItem) item).hasCapturedBlaze() ? HeatLevel.SMOULDERING : HeatLevel.NONE;
return defaultState.setValue(HEAT_LEVEL, initialHeat); return defaultState.setValue(HEAT_LEVEL, initialHeat)
.setValue(FACING, context.getHorizontalDirection()
.getOpposite());
} }
@Override @Override

View file

@ -0,0 +1,125 @@
package com.simibubi.create.content.contraptions.processing.burner;
import java.util.Random;
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
import com.simibubi.create.content.contraptions.components.structureMovement.Contraption;
import com.simibubi.create.content.contraptions.components.structureMovement.MovementBehaviour;
import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext;
import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionMatrices;
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock.HeatLevel;
import com.simibubi.create.content.logistics.trains.entity.CarriageContraption;
import com.simibubi.create.content.logistics.trains.entity.CarriageContraptionEntity;
import com.simibubi.create.foundation.utility.AngleHelper;
import com.simibubi.create.foundation.utility.Iterate;
import com.simibubi.create.foundation.utility.VecHelper;
import com.simibubi.create.foundation.utility.animation.LerpedFloat;
import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.core.Direction;
import net.minecraft.core.Direction.Axis;
import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
public class BlazeBurnerMovementBehaviour implements MovementBehaviour {
@Override
public boolean renderAsNormalTileEntity() {
return false;
}
@Override
public void tick(MovementContext context) {
if (!context.world.isClientSide())
return;
if (!shouldRender(context))
return;
Random r = context.world.getRandom();
Vec3 c = context.position;
Vec3 v = c.add(VecHelper.offsetRandomly(Vec3.ZERO, r, .125f)
.multiply(1, 0, 1));
if (r.nextInt(3) == 0)
context.world.addParticle(ParticleTypes.LARGE_SMOKE, v.x, v.y, v.z, 0, 0, 0);
LerpedFloat headAngle = getHeadAngle(context);
boolean quickTurn = shouldRenderHat(context) && !Mth.equal(context.relativeMotion.length(), 0);
headAngle.chase(
headAngle.getValue() + AngleHelper.getShortestAngleDiff(headAngle.getValue(), getTargetAngle(context)), .5f,
quickTurn ? Chaser.EXP : Chaser.exp(5));
headAngle.tickChaser();
}
public void invalidate(MovementContext context) {
context.data.remove("Conductor");
}
private boolean shouldRender(MovementContext context) {
return context.state.getOptionalValue(BlazeBurnerBlock.HEAT_LEVEL)
.orElse(HeatLevel.NONE) != HeatLevel.NONE;
}
private LerpedFloat getHeadAngle(MovementContext context) {
if (!(context.temporaryData instanceof LerpedFloat))
context.temporaryData = LerpedFloat.angular()
.startWithValue(getTargetAngle(context));
return (LerpedFloat) context.temporaryData;
}
private float getTargetAngle(MovementContext context) {
if (shouldRenderHat(context) && !Mth.equal(context.relativeMotion.length(), 0)
&& context.contraption.entity instanceof CarriageContraptionEntity cce) {
float angle = AngleHelper.deg(-Mth.atan2(context.relativeMotion.x, context.relativeMotion.z));
return cce.getInitialOrientation()
.getAxis() == Axis.X ? angle + 180 : angle;
}
Entity player = Minecraft.getInstance().cameraEntity;
if (player != null) {
Vec3 applyRotation = context.contraption.entity.reverseRotation(player.position()
.subtract(context.position), 1);
double dx = applyRotation.x;
double dz = applyRotation.z;
return AngleHelper.deg(-Mth.atan2(dz, dx)) - 90;
}
return 0;
}
private boolean shouldRenderHat(MovementContext context) {
CompoundTag data = context.data;
if (!data.contains("Conductor"))
data.putBoolean("Conductor", determineIfConducting(context));
return data.getBoolean("Conductor") && (context.contraption.entity instanceof CarriageContraptionEntity cce)
&& cce.hasSchedule();
}
private boolean determineIfConducting(MovementContext context) {
Contraption contraption = context.contraption;
if (!(contraption instanceof CarriageContraption carriageContraption))
return false;
Direction assemblyDirection = carriageContraption.getAssemblyDirection();
for (Direction direction : Iterate.directionsInAxis(assemblyDirection.getAxis()))
if (carriageContraption.inControl(context.localPos, direction))
return true;
return false;
}
@Override
@OnlyIn(Dist.CLIENT)
public void renderInContraption(MovementContext context, VirtualRenderWorld renderWorld,
ContraptionMatrices matrices, MultiBufferSource buffer) {
if (!shouldRender(context))
return;
BlazeBurnerRenderer.renderInContraption(context, renderWorld, matrices, buffer, getHeadAngle(context),
shouldRenderHat(context));
}
}

View file

@ -1,14 +1,23 @@
package com.simibubi.create.content.contraptions.processing.burner; package com.simibubi.create.content.contraptions.processing.burner;
import javax.annotation.Nullable;
import com.jozufozu.flywheel.core.PartialModel; import com.jozufozu.flywheel.core.PartialModel;
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.simibubi.create.AllBlockPartials; import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.AllSpriteShifts;
import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext;
import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionMatrices;
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock.HeatLevel; import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock.HeatLevel;
import com.simibubi.create.foundation.block.render.SpriteShiftEntry;
import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.CachedBufferer;
import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.render.SuperByteBuffer;
import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer;
import com.simibubi.create.foundation.utility.AngleHelper; import com.simibubi.create.foundation.utility.AngleHelper;
import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.AnimationTickHolder;
import com.simibubi.create.foundation.utility.animation.LerpedFloat;
import net.minecraft.client.renderer.LightTexture; import net.minecraft.client.renderer.LightTexture;
import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.MultiBufferSource;
@ -16,11 +25,12 @@ import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.state.BlockState;
public class BlazeBurnerRenderer extends SafeTileEntityRenderer<BlazeBurnerTileEntity> { public class BlazeBurnerRenderer extends SafeTileEntityRenderer<BlazeBurnerTileEntity> {
public BlazeBurnerRenderer(BlockEntityRendererProvider.Context context) { public BlazeBurnerRenderer(BlockEntityRendererProvider.Context context) {}
}
@Override @Override
protected void renderSafe(BlazeBurnerTileEntity te, float partialTicks, PoseStack ms, MultiBufferSource buffer, protected void renderSafe(BlazeBurnerTileEntity te, float partialTicks, PoseStack ms, MultiBufferSource buffer,
@ -29,14 +39,112 @@ public class BlazeBurnerRenderer extends SafeTileEntityRenderer<BlazeBurnerTileE
if (heatLevel == HeatLevel.NONE) if (heatLevel == HeatLevel.NONE)
return; return;
float renderTick = AnimationTickHolder.getRenderTime(te.getLevel()) + (te.hashCode() % 13) * 16f; float horizontalAngle = AngleHelper.rad(te.headAngle.getValue(partialTicks));
float offset = (Mth.sin((float) ((renderTick / 16f) % (2 * Math.PI))) + .5f) / 16f; Level level = te.getLevel();
int hashCode = te.hashCode();
float animation = te.headAnimation.getValue(partialTicks) * .175f;
BlockState blockState = te.getBlockState();
boolean drawGoggles = te.goggles;
boolean drawHat = false;
PartialModel blazeModel = AllBlockPartials.BLAZES.get(heatLevel); renderShared(level, buffer, null, ms, blockState, horizontalAngle, animation, drawGoggles, drawHat, hashCode);
SuperByteBuffer blazeBuffer = CachedBufferer.partial(blazeModel, te.getBlockState()); }
blazeBuffer.rotateCentered(Direction.UP, AngleHelper.rad(te.headAngle.getValue(partialTicks)));
blazeBuffer.translate(0, offset, 0); public static void renderInContraption(MovementContext context, VirtualRenderWorld renderWorld,
blazeBuffer.light(LightTexture.FULL_BRIGHT) ContraptionMatrices matrices, MultiBufferSource buffer, LerpedFloat headAngle, boolean conductor) {
.renderInto(ms, buffer.getBuffer(RenderType.solid())); BlockState state = context.state;
if (BlazeBurnerBlock.getHeatLevelOf(state) == HeatLevel.KINDLED)
state = state.setValue(BlazeBurnerBlock.HEAT_LEVEL, HeatLevel.FADING);
float value = AngleHelper.rad(headAngle.getValue(AnimationTickHolder.getPartialTicks(context.world)));
renderShared(context.world, buffer, matrices.getModel(), matrices.getViewProjection(), state, value, 0,
context.tileData.contains("Goggles"), conductor, context.hashCode());
}
private static void renderShared(Level level, MultiBufferSource buffer, @Nullable PoseStack modelTransform,
PoseStack ms, BlockState blockState, float horizontalAngle, float animation, boolean drawGoggles,
boolean drawHat, int hashCode) {
HeatLevel heatLevel = BlazeBurnerBlock.getHeatLevelOf(blockState);
float time = AnimationTickHolder.getRenderTime(level);
float renderTick = time + (hashCode % 13) * 16f;
float offsetMult = heatLevel.isAtLeast(HeatLevel.FADING) ? 64 : 16;
float offset = Mth.sin((float) ((renderTick / 16f) % (2 * Math.PI))) / offsetMult;
float offset1 = Mth.sin((float) ((renderTick / 16f + Math.PI) % (2 * Math.PI))) / offsetMult;
float offset2 = Mth.sin((float) ((renderTick / 16f + Math.PI / 2) % (2 * Math.PI))) / offsetMult;
VertexConsumer solid = buffer.getBuffer(RenderType.solid());
VertexConsumer cutout = buffer.getBuffer(RenderType.cutoutMipped());
ms.pushPose();
if (modelTransform == null && heatLevel.isAtLeast(HeatLevel.FADING)) {
SpriteShiftEntry spriteShift =
heatLevel == HeatLevel.SEETHING ? AllSpriteShifts.SUPER_BURNER_FLAME : AllSpriteShifts.BURNER_FLAME;
float spriteWidth = spriteShift.getTarget()
.getU1()
- spriteShift.getTarget()
.getU0();
float spriteHeight = spriteShift.getTarget()
.getV1()
- spriteShift.getTarget()
.getV0();
float speed = 1 / 32f + 1 / 64f * heatLevel.ordinal();
double vScroll = speed * time;
vScroll = vScroll - Math.floor(vScroll);
vScroll = vScroll * spriteHeight / 2;
double uScroll = speed * time / 2;
uScroll = uScroll - Math.floor(uScroll);
uScroll = uScroll * spriteWidth / 2;
draw(CachedBufferer.partial(AllBlockPartials.BLAZE_BURNER_FLAME, blockState)
.shiftUVScrolling(spriteShift, (float) uScroll, (float) vScroll), horizontalAngle, modelTransform, ms,
cutout);
}
PartialModel blazeModel = heatLevel == HeatLevel.SEETHING ? AllBlockPartials.BLAZE_SUPER
: heatLevel == HeatLevel.KINDLED ? AllBlockPartials.BLAZE_ACTIVE : AllBlockPartials.BLAZE_IDLE;
PartialModel rods = heatLevel == HeatLevel.SEETHING ? AllBlockPartials.BLAZE_BURNER_SUPER_RODS
: AllBlockPartials.BLAZE_BURNER_RODS;
PartialModel rods2 = heatLevel == HeatLevel.SEETHING ? AllBlockPartials.BLAZE_BURNER_SUPER_RODS_2
: AllBlockPartials.BLAZE_BURNER_RODS_2;
float headY = offset - (animation * .75f);
draw(CachedBufferer.partial(blazeModel, blockState)
.translate(0, headY, 0), horizontalAngle, modelTransform, ms, solid);
if (drawGoggles)
draw(CachedBufferer.partial(AllBlockPartials.BLAZE_GOGGLES, blockState)
.translate(0, headY + 8 / 16f, 0), horizontalAngle, modelTransform, ms, solid);
if (drawHat && modelTransform != null)
CachedBufferer.partial(AllBlockPartials.TRAIN_HAT, blockState)
.transform(modelTransform)
.translate(0, headY + 0.75f, 0)
.rotateCentered(Direction.UP, horizontalAngle + Mth.PI)
.translate(0.5f, 0, 0.5f)
.light(LightTexture.FULL_BRIGHT)
.renderInto(ms, solid);
draw(CachedBufferer.partial(rods, blockState)
.translate(0, offset1 + animation, 0), 0, modelTransform, ms, solid);
draw(CachedBufferer.partial(rods2, blockState)
.translate(0, offset2 + animation - .25f, 0), 0, modelTransform, ms, solid);
ms.popPose();
}
private static void draw(SuperByteBuffer blazeBuffer, float horizontalAngle, @Nullable PoseStack modelTransform,
PoseStack ms, VertexConsumer vb) {
if (modelTransform != null)
blazeBuffer.transform(modelTransform);
blazeBuffer.rotateCentered(Direction.UP, horizontalAngle)
.light(LightTexture.FULL_BRIGHT)
.renderInto(ms, vb);
} }
} }

View file

@ -5,18 +5,19 @@ import java.util.Random;
import com.simibubi.create.AllItems; import com.simibubi.create.AllItems;
import com.simibubi.create.AllTags.AllItemTags; import com.simibubi.create.AllTags.AllItemTags;
import com.simibubi.create.content.contraptions.particle.CubeParticleData;
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock.HeatLevel; import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock.HeatLevel;
import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.SmartTileEntity;
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
import com.simibubi.create.foundation.utility.AngleHelper; import com.simibubi.create.foundation.utility.AngleHelper;
import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.VecHelper;
import com.simibubi.create.foundation.utility.animation.LerpedFloat; import com.simibubi.create.foundation.utility.animation.LerpedFloat;
import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.player.LocalPlayer; import net.minecraft.client.player.LocalPlayer;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundSource; import net.minecraft.sounds.SoundSource;
@ -24,37 +25,33 @@ import net.minecraft.util.Mth;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.common.ForgeHooks; import net.minecraftforge.common.ForgeHooks;
public class BlazeBurnerTileEntity extends SmartTileEntity { public class BlazeBurnerTileEntity extends SmartTileEntity {
public static final int MAX_HEAT_CAPACITY = 10000; public static final int MAX_HEAT_CAPACITY = 10000;
private final static Color[][] PARTICLE_COLORS = {
{ },
{ new Color(0x3B141A), new Color(0x47141A), new Color(0x7A3B24), new Color(0x854D26) },
{ new Color(0x2A0103), new Color(0x741B0A), new Color(0xC38246), new Color(0xCCBD78) },
{ new Color(0x630B03), new Color(0x8B3503), new Color(0xBC8200), new Color(0xCCC849) },
{ new Color(0x1C6378), new Color(0x4798B5), new Color(0x4DA6C0), new Color(0xBAC8CE) }
};
private final static Color[] CREATIVE_PARTICLE_COLORS = {
new Color(0x54295D),
new Color(0x6E3C76),
new Color(0xA5479F),
new Color(0x85157C)
};
protected FuelType activeFuel; protected FuelType activeFuel;
protected int remainingBurnTime; protected int remainingBurnTime;
protected LerpedFloat headAnimation;
protected LerpedFloat headAngle; protected LerpedFloat headAngle;
protected boolean isCreative; protected boolean isCreative;
protected boolean goggles;
public BlazeBurnerTileEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) { public BlazeBurnerTileEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
super(type, pos, state); super(type, pos, state);
activeFuel = FuelType.NONE; activeFuel = FuelType.NONE;
remainingBurnTime = 0; remainingBurnTime = 0;
headAnimation = LerpedFloat.linear();
headAngle = LerpedFloat.angular(); headAngle = LerpedFloat.angular();
isCreative = false; isCreative = false;
goggles = false;
headAngle.startWithValue((AngleHelper.horizontalAngle(state.getOptionalValue(BlazeBurnerBlock.FACING)
.orElse(Direction.SOUTH)) + 180) % 360);
} }
public FuelType getActiveFuel() { public FuelType getActiveFuel() {
@ -74,7 +71,7 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
super.tick(); super.tick();
if (level.isClientSide) { if (level.isClientSide) {
tickRotation(); tickAnimation();
spawnParticles(getHeatLevelFromBlock(), 1); spawnParticles(getHeatLevelFromBlock(), 1);
return; return;
} }
@ -99,26 +96,38 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
updateBlockState(); updateBlockState();
} }
private void tickRotation() { @OnlyIn(Dist.CLIENT)
float target = 0; private void tickAnimation() {
LocalPlayer player = Minecraft.getInstance().player; boolean active = getHeatLevelFromBlock().isAtLeast(HeatLevel.FADING);
if (player != null) {
double x; if (!active) {
double z; float target = 0;
if (isVirtual()) { LocalPlayer player = Minecraft.getInstance().player;
x = -4; if (player != null) {
z = -10; double x;
} else { double z;
x = player.getX(); if (isVirtual()) {
z = player.getZ(); x = -4;
z = -10;
} else {
x = player.getX();
z = player.getZ();
}
double dx = x - (getBlockPos().getX() + 0.5);
double dz = z - (getBlockPos().getZ() + 0.5);
target = AngleHelper.deg(-Mth.atan2(dz, dx)) - 90;
} }
double dx = x - (getBlockPos().getX() + 0.5); target = headAngle.getValue() + AngleHelper.getShortestAngleDiff(headAngle.getValue(), target);
double dz = z - (getBlockPos().getZ() + 0.5); headAngle.chase(target, .25f, Chaser.exp(5));
target = AngleHelper.deg(-Mth.atan2(dz, dx)) - 90; headAngle.tickChaser();
} else {
headAngle.chase((AngleHelper.horizontalAngle(getBlockState().getOptionalValue(BlazeBurnerBlock.FACING)
.orElse(Direction.SOUTH)) + 180) % 360, .125f, Chaser.EXP);
headAngle.tickChaser();
} }
target = headAngle.getValue() + AngleHelper.getShortestAngleDiff(headAngle.getValue(), target);
headAngle.chase(target, .25f, Chaser.exp(5)); headAnimation.chase(active ? 1 : 0, .25f, Chaser.exp(.25f));
headAngle.tickChaser(); headAnimation.tickChaser();
} }
@Override @Override
@ -129,9 +138,10 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
if (!isCreative) { if (!isCreative) {
compound.putInt("fuelLevel", activeFuel.ordinal()); compound.putInt("fuelLevel", activeFuel.ordinal());
compound.putInt("burnTimeRemaining", remainingBurnTime); compound.putInt("burnTimeRemaining", remainingBurnTime);
} else { } else
compound.putBoolean("isCreative", true); compound.putBoolean("isCreative", true);
} if (goggles)
compound.putBoolean("Goggles", true);
super.write(compound, clientPacket); super.write(compound, clientPacket);
} }
@ -140,6 +150,7 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
activeFuel = FuelType.values()[compound.getInt("fuelLevel")]; activeFuel = FuelType.values()[compound.getInt("fuelLevel")];
remainingBurnTime = compound.getInt("burnTimeRemaining"); remainingBurnTime = compound.getInt("burnTimeRemaining");
isCreative = compound.getBoolean("isCreative"); isCreative = compound.getBoolean("isCreative");
goggles = compound.contains("Goggles");
super.read(compound, clientPacket); super.read(compound, clientPacket);
} }
@ -203,34 +214,37 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
remainingBurnTime = newBurnTime; remainingBurnTime = newBurnTime;
if (level.isClientSide) { if (level.isClientSide) {
HeatLevel level = getHeatLevelFromFuelType(activeFuel); spawnParticleBurst(activeFuel == FuelType.SPECIAL);
for (int i = 0; i < 20; i++) return true;
spawnParticles(level, 1 + (.25 * (i / 4)));
} else {
playSound();
updateBlockState();
} }
HeatLevel prev = getHeatLevelFromBlock();
playSound();
updateBlockState();
if (prev != getHeatLevelFromBlock())
level.playSound(null, worldPosition, SoundEvents.BLAZE_AMBIENT, SoundSource.BLOCKS,
.125f + level.random.nextFloat() * .125f, 1.15f - level.random.nextFloat() * .25f);
return true; return true;
} }
protected void applyCreativeFuel() { protected void applyCreativeFuel() {
boolean wasCreative = isCreative;
activeFuel = FuelType.NONE; activeFuel = FuelType.NONE;
remainingBurnTime = 0; remainingBurnTime = 0;
isCreative = true; isCreative = true;
HeatLevel next = getHeatLevelFromBlock().nextActiveLevel();
if (level.isClientSide) { if (level.isClientSide) {
for (int i = 0; i < 30; i++) { spawnParticleBurst(next.isAtLeast(HeatLevel.SEETHING));
double burstMult = 1 + (.25 * (i / 4)); return;
spawnParticle(CREATIVE_PARTICLE_COLORS, 0.04F, 35, false, 0.03 * burstMult, 0.15 * burstMult);
}
} else {
playSound();
if (wasCreative)
setBlockHeat(getHeatLevelFromBlock().nextActiveLevel());
} }
playSound();
if (next == HeatLevel.FADING)
next = next.nextActiveLevel();
setBlockHeat(next);
} }
public boolean isCreativeFuel(ItemStack stack) { public boolean isCreativeFuel(ItemStack stack) {
@ -266,50 +280,49 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
return; return;
Random r = level.getRandom(); Random r = level.getRandom();
switch (heatLevel) {
case SMOULDERING:
if (r.nextDouble() > 0.25)
return;
spawnParticle(heatLevel, 0.03F, 15, false, 0.015 * burstMult, 0.1 * burstMult);
break;
case FADING:
if (r.nextDouble() > 0.5)
return;
spawnParticle(heatLevel, 0.035F, 18, false, 0.03 * burstMult, 0.15 * burstMult);
break;
case KINDLED:
spawnParticle(heatLevel, 0.04F, 35, true, 0.05 * burstMult, 0.2 * burstMult);
break;
case SEETHING:
for (int i = 0; i < 2; i++) {
if (r.nextDouble() > 0.6)
return;
spawnParticle(heatLevel, 0.045F, 35, true, 0.06 * burstMult, 0.22 * burstMult);
}
break;
default:
break;
}
}
protected void spawnParticle(Color color, float scale, int avgAge, boolean hot, double speed, double spread) { Vec3 c = VecHelper.getCenterOf(worldPosition);
Random random = level.getRandom(); Vec3 v = c.add(VecHelper.offsetRandomly(Vec3.ZERO, r, .125f)
level.addAlwaysVisibleParticle( .multiply(1, 0, 1));
new CubeParticleData(color.getRedAsFloat(), color.getGreenAsFloat(), color.getBlueAsFloat(), scale, avgAge, hot),
(double) worldPosition.getX() + 0.5D + (random.nextDouble() * 2.0 - 1D) * spread,
(double) worldPosition.getY() + 0.6D + (random.nextDouble() / 4.0),
(double) worldPosition.getZ() + 0.5D + (random.nextDouble() * 2.0 - 1D) * spread, 0.0D, speed, 0.0D);
}
protected void spawnParticle(Color[] colors, float scale, int avgAge, boolean hot, double speed, double spread) { if (r.nextInt(3) == 0)
if (colors.length == 0) level.addParticle(ParticleTypes.LARGE_SMOKE, v.x, v.y, v.z, 0, 0, 0);
if (r.nextInt(2) != 0)
return; return;
spawnParticle(colors[(int) (Math.random() * colors.length)], scale, avgAge, hot, speed, spread); boolean empty = level.getBlockState(worldPosition.above())
.getCollisionShape(level, worldPosition.above())
.isEmpty();
double yMotion = empty ? .0625f : r.nextDouble() * .0125f;
Vec3 v2 = c.add(VecHelper.offsetRandomly(Vec3.ZERO, r, .5f)
.multiply(1, .25f, 1)
.normalize()
.scale((empty ? .25f : .5) + r.nextDouble() * .125f))
.add(0, .5, 0);
if (heatLevel.isAtLeast(HeatLevel.SEETHING)) {
level.addParticle(ParticleTypes.SOUL_FIRE_FLAME, v2.x, v2.y, v2.z, 0, yMotion, 0);
} else if (heatLevel.isAtLeast(HeatLevel.FADING)) {
level.addParticle(ParticleTypes.FLAME, v2.x, v2.y, v2.z, 0, yMotion, 0);
}
return;
} }
protected void spawnParticle(HeatLevel heatLevel, float scale, int avgAge, boolean hot, double speed, double spread) { public void spawnParticleBurst(boolean soulFlame) {
spawnParticle(PARTICLE_COLORS[heatLevel.ordinal()], scale, avgAge, hot, speed, spread); Vec3 c = VecHelper.getCenterOf(worldPosition);
Random r = level.random;
for (int i = 0; i < 20; i++) {
Vec3 offset = VecHelper.offsetRandomly(Vec3.ZERO, r, .5f)
.multiply(1, .25f, 1)
.normalize();
Vec3 v = c.add(offset.scale(.5 + r.nextDouble() * .125f))
.add(0, .125, 0);
Vec3 m = offset.scale(1 / 32f);
level.addParticle(soulFlame ? ParticleTypes.SOUL_FIRE_FLAME : ParticleTypes.FLAME, v.x, v.y, v.z, m.x, m.y,
m.z);
}
} }
public enum FuelType { public enum FuelType {

View file

@ -130,7 +130,7 @@ public class TrackGraphSync {
Couple<Integer> key = Couple.create(node.getNetId(), node2.getNetId()); Couple<Integer> key = Couple.create(node.getNetId(), node2.getNetId());
currentPacket.addedEdges.add(Pair.of(key, edge.getTurn())); currentPacket.addedEdges.add(Pair.of(key, edge.getTurn()));
currentPacket.syncEdgeData(node, node2, edge); currentPacket.syncEdgeData(node, node2, edge);
}); });//FIXME these edges will have missing nodes
if (sent++ < 1000) if (sent++ < 1000)
continue; continue;

View file

@ -153,6 +153,7 @@ public class BuilderTransformers {
public static <B extends CasingBlock> NonNullUnaryOperator<BlockBuilder<B, CreateRegistrate>> casing( public static <B extends CasingBlock> NonNullUnaryOperator<BlockBuilder<B, CreateRegistrate>> casing(
Supplier<CTSpriteShiftEntry> ct) { Supplier<CTSpriteShiftEntry> ct) {
return b -> b.initialProperties(SharedProperties::stone) return b -> b.initialProperties(SharedProperties::stone)
.properties(p -> p.sound(SoundType.WOOD))
.transform(axeOrPickaxe()) .transform(axeOrPickaxe())
.blockstate((c, p) -> p.simpleBlock(c.get())) .blockstate((c, p) -> p.simpleBlock(c.get()))
.onRegister(connectedTextures(() -> new EncasedCTBehaviour(ct.get()))) .onRegister(connectedTextures(() -> new EncasedCTBehaviour(ct.get())))

View file

@ -85,19 +85,24 @@ public class SuperByteBuffer implements Transform<SuperByteBuffer>, TStack<Super
return; return;
Matrix4f modelMat = input.last() Matrix4f modelMat = input.last()
.pose() .pose()
.copy(); .copy();
Matrix4f localTransforms = transforms.last() Matrix4f localTransforms = transforms.last()
.pose(); .pose();
modelMat.multiply(localTransforms); modelMat.multiply(localTransforms);
Matrix3f normalMat; Matrix3f normalMat;
if (fullNormalTransform) { if (fullNormalTransform) {
normalMat = input.last().normal().copy(); normalMat = input.last()
Matrix3f localNormalTransforms = transforms.last().normal(); .normal()
.copy();
Matrix3f localNormalTransforms = transforms.last()
.normal();
normalMat.mul(localNormalTransforms); normalMat.mul(localNormalTransforms);
} else { } else {
normalMat = transforms.last().normal().copy(); normalMat = transforms.last()
.normal()
.copy();
} }
if (useWorldLight) { if (useWorldLight) {
@ -109,7 +114,8 @@ public class SuperByteBuffer implements Transform<SuperByteBuffer>, TStack<Super
final Vector4f lightPos = new Vector4f(); final Vector4f lightPos = new Vector4f();
DiffuseLightCalculator diffuseCalculator = ForcedDiffuseState.getForcedCalculator(); DiffuseLightCalculator diffuseCalculator = ForcedDiffuseState.getForcedCalculator();
final boolean disableDiffuseMult = this.disableDiffuseMult || (OptifineHandler.isUsingShaders() && diffuseCalculator == null); final boolean disableDiffuseMult =
this.disableDiffuseMult || (OptifineHandler.isUsingShaders() && diffuseCalculator == null);
if (diffuseCalculator == null) { if (diffuseCalculator == null) {
diffuseCalculator = this.diffuseCalculator; diffuseCalculator = this.diffuseCalculator;
if (diffuseCalculator == null) { if (diffuseCalculator == null) {
@ -268,16 +274,16 @@ public class SuperByteBuffer implements Transform<SuperByteBuffer>, TStack<Super
@Override @Override
public SuperByteBuffer mulPose(Matrix4f pose) { public SuperByteBuffer mulPose(Matrix4f pose) {
transforms.last() transforms.last()
.pose() .pose()
.multiply(pose); .multiply(pose);
return this; return this;
} }
@Override @Override
public SuperByteBuffer mulNormal(Matrix3f normal) { public SuperByteBuffer mulNormal(Matrix3f normal) {
transforms.last() transforms.last()
.normal() .normal()
.mul(normal); .mul(normal);
return this; return this;
} }
@ -328,8 +334,9 @@ public class SuperByteBuffer implements Transform<SuperByteBuffer>, TStack<Super
} }
/** /**
* Prevents vertex colors from being multiplied by the diffuse value calculated from the final transformed normal vector. * Prevents vertex colors from being multiplied by the diffuse value calculated
* Useful for entity rendering, when diffuse is applied automatically later. * from the final transformed normal vector. Useful for entity rendering, when
* diffuse is applied automatically later.
*/ */
public SuperByteBuffer disableDiffuseMult() { public SuperByteBuffer disableDiffuseMult() {
disableDiffuseMult = true; disableDiffuseMult = true;
@ -353,10 +360,15 @@ public class SuperByteBuffer implements Transform<SuperByteBuffer>, TStack<Super
} }
public SuperByteBuffer shiftUVScrolling(SpriteShiftEntry entry, float scrollV) { public SuperByteBuffer shiftUVScrolling(SpriteShiftEntry entry, float scrollV) {
return this.shiftUVScrolling(entry, 0, scrollV);
}
public SuperByteBuffer shiftUVScrolling(SpriteShiftEntry entry, float scrollU, float scrollV) {
this.spriteShiftFunc = (builder, u, v) -> { this.spriteShiftFunc = (builder, u, v) -> {
float targetU = u - entry.getOriginal() float targetU = u - entry.getOriginal()
.getU0() + entry.getTarget() .getU0() + entry.getTarget()
.getU0(); .getU0()
+ scrollU;
float targetV = v - entry.getOriginal() float targetV = v - entry.getOriginal()
.getV0() + entry.getTarget() .getV0() + entry.getTarget()
.getV0() .getV0()
@ -412,8 +424,9 @@ public class SuperByteBuffer implements Transform<SuperByteBuffer>, TStack<Super
} }
/** /**
* Uses max light from calculated light (world light or custom light) and vertex light for the final light value. * Uses max light from calculated light (world light or custom light) and vertex
* Ineffective if any other light method was not called. * light for the final light value. Ineffective if any other light method was
* not called.
*/ */
public SuperByteBuffer hybridLight() { public SuperByteBuffer hybridLight() {
hybridLight = true; hybridLight = true;
@ -421,7 +434,8 @@ public class SuperByteBuffer implements Transform<SuperByteBuffer>, TStack<Super
} }
/** /**
* Transforms normals not only by the local matrix stack, but also by the passed matrix stack. * Transforms normals not only by the local matrix stack, but also by the passed
* matrix stack.
*/ */
public SuperByteBuffer fullNormalTransform() { public SuperByteBuffer fullNormalTransform() {
fullNormalTransform = true; fullNormalTransform = true;

View file

@ -1,8 +1,8 @@
{ {
"credit": "Made with Blockbench", "credit": "Made with Blockbench",
"textures": { "textures": {
"2": "create:block/blaze_kindled", "2": "create:block/blaze_active",
"particle": "create:block/blaze_kindled" "particle": "create:block/blaze_active"
}, },
"elements": [ "elements": [
{ {

View file

@ -1,23 +0,0 @@
{
"credit": "Made with Blockbench",
"textures": {
"2": "create:block/blaze_smouldering",
"particle": "create:block/blaze_smouldering"
},
"elements": [
{
"name": "Blaze 3",
"from": [5, 6, 5],
"to": [11, 12, 11],
"rotation": {"angle": 0, "axis": "y", "origin": [7, 7, 7]},
"faces": {
"north": {"uv": [6, 0, 12, 6], "texture": "#2"},
"east": {"uv": [0, 0, 6, 6], "texture": "#2"},
"south": {"uv": [0, 0, 6, 6], "texture": "#2"},
"west": {"uv": [0, 0, 6, 6], "texture": "#2"},
"up": {"uv": [0, 6, 6, 12], "texture": "#2"},
"down": {"uv": [6, 6, 12, 12], "texture": "#2"}
}
}
]
}

View file

@ -0,0 +1,23 @@
{
"credit": "Made with Blockbench",
"textures": {
"2": "create:block/blaze_idle",
"particle": "create:block/blaze_idle"
},
"elements": [
{
"name": "Blaze 4",
"from": [4, 6, 4],
"to": [12, 14, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [6, 6, 6]},
"faces": {
"north": {"uv": [8, 0, 16, 8], "texture": "#2"},
"east": {"uv": [0, 0, 8, 8], "texture": "#2"},
"south": {"uv": [0, 0, 8, 8], "texture": "#2"},
"west": {"uv": [0, 0, 8, 8], "texture": "#2"},
"up": {"uv": [0, 8, 8, 16], "texture": "#2"},
"down": {"uv": [8, 8, 16, 16], "texture": "#2"}
}
}
]
}

View file

@ -1,22 +0,0 @@
{
"credit": "Made with Blockbench",
"textures": {
"2": "create:block/blaze_smouldering",
"particle": "create:block/blaze_smouldering"
},
"elements": [
{
"name": "Blaze",
"from": [6, 6, 6],
"to": [10, 10, 10],
"faces": {
"north": {"uv": [0, 12, 4, 16], "texture": "#2"},
"east": {"uv": [8, 12, 4, 16], "texture": "#2"},
"south": {"uv": [4, 12, 8, 16], "texture": "#2"},
"west": {"uv": [4, 12, 8, 16], "texture": "#2"},
"up": {"uv": [8, 12, 12, 16], "texture": "#2"},
"down": {"uv": [12, 12, 16, 16], "texture": "#2"}
}
}
]
}

View file

@ -1,7 +1,7 @@
{ {
"credit": "Made with Blockbench", "credit": "Made with Blockbench",
"textures": { "textures": {
"1": "create:block/blaze_seething" "1": "create:block/blaze_super"
}, },
"elements": [ "elements": [
{ {

View file

@ -0,0 +1,14 @@
# Blender MTL File: 'Burner V3blend.blend'
# Material Count: 1
newmtl m_0
Ns 250.000000
Ka 1.000000 1.000000 1.000000
Kd 0.800000 0.800000 0.800000
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2
map_Kd #0
map_d #0

View file

@ -0,0 +1,300 @@
# Blender v3.1.2 OBJ File: 'Burner V3blend.blend'
# www.blender.org
mtllib blaze_cage.mtl
o cube
v 0.125000 0.000000 0.875000
v 0.125000 0.250000 0.875000
v 0.125000 0.000000 0.125000
v 0.125000 0.250000 0.125000
v 0.875000 0.000000 0.875000
v 0.875000 0.250000 0.875000
v 0.875000 0.000000 0.125000
v 0.875000 0.250000 0.125000
v 0.062500 0.312500 0.937500
v 0.062500 0.875000 0.937500
v 0.937500 0.312500 0.937500
v 0.937500 0.875000 0.937500
v 0.062500 0.250000 0.875000
v 0.937500 0.250000 0.875000
v 0.062500 0.937500 1.000000
v 0.937500 0.937500 1.000000
v 0.937500 0.312500 0.937500
v 0.937500 0.875000 0.937500
v 0.937500 0.312500 0.062500
v 0.937500 0.875000 0.062500
v 0.875000 0.250000 0.937500
v 0.875000 0.250000 0.062500
v 1.000000 0.937500 0.937500
v 1.000000 0.937500 0.062500
v 0.937500 0.312500 0.062500
v 0.937500 0.875000 0.062500
v 0.062500 0.312500 0.062500
v 0.062500 0.875000 0.062500
v 0.937500 0.250000 0.125000
v 0.062500 0.250000 0.125000
v 0.937500 0.937500 0.000000
v 0.062500 0.937500 0.000000
v 0.062500 0.312500 0.062500
v 0.062500 0.875000 0.062500
v 0.062500 0.312500 0.937500
v 0.062500 0.875000 0.937500
v 0.125000 0.250000 0.062500
v 0.125000 0.250000 0.937500
v 0.000000 0.937500 0.062500
v 0.000000 0.937500 0.937500
v 0.875000 0.000000 0.875000
v 1.000000 0.000000 1.000000
v 0.875000 0.312500 0.875000
v 1.000000 0.312500 1.000000
v 0.875000 0.000000 0.125000
v 1.000000 0.000000 0.000000
v 0.875000 0.312500 0.125000
v 1.000000 0.312500 0.000000
v 0.125000 0.000000 0.125000
v 0.000000 0.000000 0.000000
v 0.125000 0.312500 0.125000
v 0.000000 0.312500 0.000000
v 0.125000 0.000000 0.875000
v 0.000000 0.000000 1.000000
v 0.125000 0.312500 0.875000
v 0.000000 0.312500 1.000000
v 0.062500 0.312500 0.937500
v 0.062500 0.875000 0.937500
v 0.937500 0.312500 0.937500
v 0.937500 0.875000 0.937500
v 0.062500 0.250000 0.875000
v 0.937500 0.250000 0.875000
v 0.062500 0.937500 1.000000
v 0.937500 0.937500 1.000000
v 0.937500 0.312500 0.937500
v 0.937500 0.875000 0.937500
v 0.937500 0.312500 0.062500
v 0.937500 0.875000 0.062500
v 0.875000 0.250000 0.937500
v 0.875000 0.250000 0.062500
v 1.000000 0.937500 0.937500
v 1.000000 0.937500 0.062500
v 0.937500 0.312500 0.062500
v 0.937500 0.875000 0.062500
v 0.062500 0.312500 0.062500
v 0.062500 0.875000 0.062500
v 0.937500 0.250000 0.125000
v 0.062500 0.250000 0.125000
v 0.937500 0.937500 0.000000
v 0.062500 0.937500 0.000000
v 0.062500 0.312500 0.062500
v 0.062500 0.875000 0.062500
v 0.062500 0.312500 0.937500
v 0.062500 0.875000 0.937500
v 0.125000 0.250000 0.062500
v 0.125000 0.250000 0.937500
v 0.000000 0.937500 0.062500
v 0.000000 0.937500 0.937500
v 0.875000 0.000000 0.875000
v 1.000000 0.000000 1.000000
v 0.875000 0.312500 0.875000
v 1.000000 0.312500 1.000000
v 0.875000 0.000000 0.125000
v 1.000000 0.000000 0.000000
v 0.875000 0.312500 0.125000
v 1.000000 0.312500 0.000000
v 0.125000 0.000000 0.125000
v 0.000000 0.000000 0.000000
v 0.125000 0.312500 0.125000
v 0.000000 0.312500 0.000000
v 0.125000 0.000000 0.875000
v 0.000000 0.000000 1.000000
v 0.125000 0.312500 0.875000
v 0.000000 0.312500 1.000000
vt 0.937500 0.375000
vt 0.937500 0.500000
vt 0.562500 0.500000
vt 0.562500 0.375000
vt 0.937500 0.375000
vt 0.937500 0.500000
vt 0.562500 0.500000
vt 0.562500 0.375000
vt 0.937500 0.375000
vt 0.937500 0.500000
vt 0.562500 0.500000
vt 0.562500 0.375000
vt 0.937500 0.375000
vt 0.937500 0.500000
vt 0.562500 0.500000
vt 0.562500 0.375000
vt 0.562500 0.000000
vt 0.937500 0.000000
vt 0.562500 0.562500
vt 0.937500 0.562500
vt 0.937500 0.937500
vt 0.562500 0.937500
vt 0.468750 0.531250
vt 0.468750 0.812500
vt 0.031250 0.812500
vt 0.031250 0.531250
vt 0.031250 0.500000
vt 0.468750 0.500000
vt 0.468750 0.531250
vt 0.031250 0.531250
vt 0.468750 0.843750
vt 0.031250 0.843750
vt 0.468750 0.531250
vt 0.468750 0.812500
vt 0.031250 0.812500
vt 0.031250 0.531250
vt 0.031250 0.500000
vt 0.468750 0.500000
vt 0.468750 0.531250
vt 0.031250 0.531250
vt 0.468750 0.843750
vt 0.031250 0.843750
vt 0.468750 0.531250
vt 0.468750 0.812500
vt 0.031250 0.812500
vt 0.031250 0.531250
vt 0.031250 0.500000
vt 0.468750 0.500000
vt 0.468750 0.531250
vt 0.031250 0.531250
vt 0.468750 0.843750
vt 0.031250 0.843750
vt 0.468750 0.531250
vt 0.468750 0.812500
vt 0.031250 0.812500
vt 0.031250 0.531250
vt 0.031250 0.500000
vt 0.468750 0.500000
vt 0.468750 0.531250
vt 0.031250 0.531250
vt 0.468750 0.843750
vt 0.031250 0.843750
vt 0.906250 0.343750
vt 1.000000 0.343750
vt 1.000000 0.500000
vt 0.906250 0.500000
vt 0.906250 0.343750
vt 1.000000 0.343750
vt 1.000000 0.500000
vt 0.906250 0.500000
vt 0.906250 0.343750
vt 1.000000 0.343750
vt 1.000000 0.500000
vt 0.906250 0.500000
vt 0.906250 0.343750
vt 1.000000 0.343750
vt 1.000000 0.500000
vt 0.906250 0.500000
vt 0.468750 0.531250
vt 0.031250 0.531250
vt 0.031250 0.812500
vt 0.468750 0.812500
vt 0.031250 0.500000
vt 0.031250 0.531250
vt 0.468750 0.531250
vt 0.468750 0.500000
vt 0.031250 0.843750
vt 0.468750 0.843750
vt 0.468750 0.531250
vt 0.031250 0.531250
vt 0.031250 0.812500
vt 0.468750 0.812500
vt 0.031250 0.500000
vt 0.031250 0.531250
vt 0.468750 0.531250
vt 0.468750 0.500000
vt 0.031250 0.843750
vt 0.468750 0.843750
vt 0.468750 0.531250
vt 0.031250 0.531250
vt 0.031250 0.812500
vt 0.468750 0.812500
vt 0.031250 0.500000
vt 0.031250 0.531250
vt 0.468750 0.531250
vt 0.468750 0.500000
vt 0.031250 0.843750
vt 0.468750 0.843750
vt 0.468750 0.531250
vt 0.031250 0.531250
vt 0.031250 0.812500
vt 0.468750 0.812500
vt 0.031250 0.500000
vt 0.031250 0.531250
vt 0.468750 0.531250
vt 0.468750 0.500000
vt 0.031250 0.843750
vt 0.468750 0.843750
vt 0.906250 0.343750
vt 0.906250 0.500000
vt 1.000000 0.500000
vt 1.000000 0.343750
vt 0.906250 0.343750
vt 0.906250 0.500000
vt 1.000000 0.500000
vt 1.000000 0.343750
vt 0.906250 0.343750
vt 0.906250 0.500000
vt 1.000000 0.500000
vt 1.000000 0.343750
vt 0.906250 0.343750
vt 0.906250 0.500000
vt 1.000000 0.500000
vt 1.000000 0.343750
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
vn 0.0000 -0.7071 0.7071
vn 0.7071 -0.7071 -0.0000
vn -0.0000 -0.7071 -0.7071
vn -0.7071 -0.7071 0.0000
vn -0.7071 0.0000 0.7071
vn 0.7071 0.0000 0.7071
vn 0.7071 0.0000 -0.7071
vn -0.7071 0.0000 -0.7071
vn 0.0000 0.7071 -0.7071
vn -0.7071 0.7071 0.0000
vn 0.0000 0.7071 0.7071
vn 0.7071 0.7071 -0.0000
usemtl m_0
s off
f 1/1/1 2/2/1 4/3/1 3/4/1
f 3/5/2 4/6/2 8/7/2 7/8/2
f 7/9/3 8/10/3 6/11/3 5/12/3
f 5/13/4 6/14/4 2/15/4 1/16/4
f 3/17/5 7/18/5 5/13/5 1/16/5
f 8/19/6 4/20/6 2/21/6 6/22/6
f 11/23/4 12/24/4 10/25/4 9/26/4
f 11/27/7 9/28/7 13/29/7 14/30/7
f 10/25/7 12/24/7 16/31/7 15/32/7
f 19/33/3 20/34/3 18/35/3 17/36/3
f 19/37/8 17/38/8 21/39/8 22/40/8
f 18/35/8 20/34/8 24/41/8 23/42/8
f 27/43/2 28/44/2 26/45/2 25/46/2
f 27/47/9 25/48/9 29/49/9 30/50/9
f 26/45/9 28/44/9 32/51/9 31/52/9
f 35/53/1 36/54/1 34/55/1 33/56/1
f 35/57/10 33/58/10 37/59/10 38/60/10
f 34/55/10 36/54/10 40/61/10 39/62/10
f 41/63/11 42/64/11 44/65/11 43/66/11
f 45/67/12 46/68/12 48/69/12 47/70/12
f 49/71/13 50/72/13 52/73/13 51/74/13
f 53/75/14 54/76/14 56/77/14 55/78/14
f 59/79/2 57/80/2 58/81/2 60/82/2
f 59/83/15 62/84/15 61/85/15 57/86/15
f 58/81/15 63/87/15 64/88/15 60/82/15
f 67/89/1 65/90/1 66/91/1 68/92/1
f 67/93/16 70/94/16 69/95/16 65/96/16
f 66/91/16 71/97/16 72/98/16 68/92/16
f 75/99/4 73/100/4 74/101/4 76/102/4
f 75/103/17 78/104/17 77/105/17 73/106/17
f 74/101/17 79/107/17 80/108/17 76/102/17
f 83/109/3 81/110/3 82/111/3 84/112/3
f 83/113/18 86/114/18 85/115/18 81/116/18
f 82/111/18 87/117/18 88/118/18 84/112/18
f 89/119/13 91/120/13 92/121/13 90/122/13
f 93/123/14 95/124/14 96/125/14 94/126/14
f 97/127/11 99/128/11 100/129/11 98/130/11
f 101/131/12 103/132/12 104/133/12 102/134/12

View file

@ -0,0 +1,13 @@
# Blender MTL File: 'Burner V3blend.blend'
# Material Count: 1
newmtl m_0
Ns 250.000000
Ka 1.000000 1.000000 1.000000
Kd 0.800000 0.800000 0.800000
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2
map_Kd #0

View file

@ -0,0 +1,170 @@
# Blender v3.1.2 OBJ File: 'Burner V3blend.blend'
# www.blender.org
mtllib blaze_flame.mtl
o cube
v 0.125000 1.000000 0.875000
v 0.875000 1.000000 0.875000
v 0.187500 0.937500 0.812500
v 0.812500 0.937500 0.812500
v 0.187500 0.375000 0.812500
v 0.812500 0.375000 0.812500
v 0.312500 0.250000 0.687500
v 0.687500 0.250000 0.687500
v 0.875000 1.000000 0.875000
v 0.875000 1.000000 0.125000
v 0.812500 0.937500 0.812500
v 0.812500 0.937500 0.187500
v 0.812500 0.375000 0.812500
v 0.812500 0.375000 0.187500
v 0.687500 0.250000 0.687500
v 0.687500 0.250000 0.312500
v 0.875000 1.000000 0.125000
v 0.125000 1.000000 0.125000
v 0.812500 0.937500 0.187500
v 0.187500 0.937500 0.187500
v 0.812500 0.375000 0.187500
v 0.187500 0.375000 0.187500
v 0.687500 0.250000 0.312500
v 0.312500 0.250000 0.312500
v 0.125000 1.000000 0.125000
v 0.125000 1.000000 0.875000
v 0.187500 0.937500 0.187500
v 0.187500 0.937500 0.812500
v 0.187500 0.375000 0.187500
v 0.187500 0.375000 0.812500
v 0.312500 0.250000 0.312500
v 0.312500 0.250000 0.687500
v 0.125000 1.000000 0.875000
v 0.875000 1.000000 0.875000
v 0.187500 0.937500 0.812500
v 0.812500 0.937500 0.812500
v 0.187500 0.375000 0.812500
v 0.812500 0.375000 0.812500
v 0.312500 0.250000 0.687500
v 0.687500 0.250000 0.687500
v 0.875000 1.000000 0.875000
v 0.875000 1.000000 0.125000
v 0.812500 0.937500 0.812500
v 0.812500 0.937500 0.187500
v 0.812500 0.375000 0.812500
v 0.812500 0.375000 0.187500
v 0.687500 0.250000 0.687500
v 0.687500 0.250000 0.312500
v 0.875000 1.000000 0.125000
v 0.125000 1.000000 0.125000
v 0.812500 0.937500 0.187500
v 0.187500 0.937500 0.187500
v 0.812500 0.375000 0.187500
v 0.187500 0.375000 0.187500
v 0.687500 0.250000 0.312500
v 0.312500 0.250000 0.312500
v 0.125000 1.000000 0.125000
v 0.125000 1.000000 0.875000
v 0.187500 0.937500 0.187500
v 0.187500 0.937500 0.812500
v 0.187500 0.375000 0.187500
v 0.187500 0.375000 0.812500
v 0.312500 0.250000 0.312500
v 0.312500 0.250000 0.687500
vt 0.937500 1.000000
vt 0.062500 1.000000
vt 0.125000 0.937500
vt 0.875000 0.937500
vt 0.125000 0.250000
vt 0.875000 0.250000
vt 0.250000 -0.000000
vt 0.750000 -0.000000
vt 0.937500 1.000000
vt 0.062500 1.000000
vt 0.125000 0.937500
vt 0.875000 0.937500
vt 0.125000 0.250000
vt 0.875000 0.250000
vt 0.250000 -0.000000
vt 0.750000 -0.000000
vt 0.937500 1.000000
vt 0.062500 1.000000
vt 0.125000 0.937500
vt 0.875000 0.937500
vt 0.125000 0.250000
vt 0.875000 0.250000
vt 0.250000 -0.000000
vt 0.750000 -0.000000
vt 0.937500 1.000000
vt 0.062500 1.000000
vt 0.125000 0.937500
vt 0.875000 0.937500
vt 0.125000 0.250000
vt 0.875000 0.250000
vt 0.250000 -0.000000
vt 0.750000 -0.000000
vt 0.937500 1.000000
vt 0.875000 0.937500
vt 0.125000 0.937500
vt 0.062500 1.000000
vt 0.875000 0.250000
vt 0.125000 0.250000
vt 0.750000 -0.000000
vt 0.250000 -0.000000
vt 0.937500 1.000000
vt 0.875000 0.937500
vt 0.125000 0.937500
vt 0.062500 1.000000
vt 0.875000 0.250000
vt 0.125000 0.250000
vt 0.750000 -0.000000
vt 0.250000 -0.000000
vt 0.937500 1.000000
vt 0.875000 0.937500
vt 0.125000 0.937500
vt 0.062500 1.000000
vt 0.875000 0.250000
vt 0.125000 0.250000
vt 0.750000 -0.000000
vt 0.250000 -0.000000
vt 0.937500 1.000000
vt 0.875000 0.937500
vt 0.125000 0.937500
vt 0.062500 1.000000
vt 0.875000 0.250000
vt 0.125000 0.250000
vt 0.750000 -0.000000
vt 0.250000 -0.000000
vn 0.0000 0.7071 -0.7071
vn 0.0000 0.0000 -1.0000
vn -0.7071 0.7071 0.0000
vn -1.0000 0.0000 0.0000
vn 0.0000 0.7071 0.7071
vn 0.0000 0.0000 1.0000
vn 0.7071 0.7071 -0.0000
vn 1.0000 0.0000 -0.0000
vn 0.0000 -0.7071 0.7071
vn 0.7071 -0.7071 0.0000
vn -0.0000 -0.7071 -0.7071
vn -0.7071 -0.7071 0.0000
usemtl m_0
s off
f 1/1/1 2/2/1 4/3/1 3/4/1
f 3/4/2 4/3/2 6/5/2 5/6/2
f 5/6/1 6/5/1 8/7/1 7/8/1
f 9/9/3 10/10/3 12/11/3 11/12/3
f 11/12/4 12/11/4 14/13/4 13/14/4
f 13/14/3 14/13/3 16/15/3 15/16/3
f 17/17/5 18/18/5 20/19/5 19/20/5
f 19/20/6 20/19/6 22/21/6 21/22/6
f 21/22/5 22/21/5 24/23/5 23/24/5
f 25/25/7 26/26/7 28/27/7 27/28/7
f 27/28/8 28/27/8 30/29/8 29/30/8
f 29/30/7 30/29/7 32/31/7 31/32/7
f 33/33/9 35/34/9 36/35/9 34/36/9
f 35/34/6 37/37/6 38/38/6 36/35/6
f 37/37/9 39/39/9 40/40/9 38/38/9
f 41/41/10 43/42/10 44/43/10 42/44/10
f 43/42/8 45/45/8 46/46/8 44/43/8
f 45/45/10 47/47/10 48/48/10 46/46/10
f 49/49/11 51/50/11 52/51/11 50/52/11
f 51/50/2 53/53/2 54/54/2 52/51/2
f 53/53/11 55/55/11 56/56/11 54/54/11
f 57/57/12 59/58/12 60/59/12 58/60/12
f 59/58/4 61/61/4 62/62/4 60/59/4
f 61/61/12 63/63/12 64/64/12 62/62/12

View file

@ -0,0 +1,14 @@
# Blender MTL File: 'Burner V3blend.blend'
# Material Count: 1
newmtl m_0
Ns 0.000000
Ka 1.000000 1.000000 1.000000
Kd 0.800000 0.800000 0.800000
Ks 0.000000 0.000000 0.000000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 1
map_Kd #0
map_d #0

View file

@ -0,0 +1,148 @@
# Blender v3.1.2 OBJ File: 'Burner V3blend.blend'
# www.blender.org
mtllib blaze_rods.mtl
o cube
v 0.093750 0.500000 0.218750
v 0.093750 1.000000 0.218750
v 0.093750 0.500000 0.093750
v 0.093750 1.000000 0.093750
v 0.218750 0.500000 0.218750
v 0.218750 1.000000 0.218750
v 0.218750 0.500000 0.093750
v 0.218750 1.000000 0.093750
v 0.218750 0.500000 0.906250
v 0.218750 1.000000 0.906250
v 0.093750 0.500000 0.906250
v 0.093750 1.000000 0.906250
v 0.218750 0.500000 0.781250
v 0.218750 1.000000 0.781250
v 0.093750 0.500000 0.781250
v 0.093750 1.000000 0.781250
v 0.906250 0.500000 0.781250
v 0.906250 1.000000 0.781250
v 0.906250 0.500000 0.906250
v 0.906250 1.000000 0.906250
v 0.781250 0.500000 0.781250
v 0.781250 1.000000 0.781250
v 0.781250 0.500000 0.906250
v 0.781250 1.000000 0.906250
v 0.781250 0.500000 0.093750
v 0.781250 1.000000 0.093750
v 0.906250 0.500000 0.093750
v 0.906250 1.000000 0.093750
v 0.781250 0.500000 0.218750
v 0.781250 1.000000 0.218750
v 0.906250 0.500000 0.218750
v 0.906250 1.000000 0.218750
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.625000
vt 0.000000 0.625000
vt -0.000000 0.875000
vt 0.125000 0.875000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.625000
vt 0.000000 0.625000
vt -0.000000 0.875000
vt 0.125000 0.875000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.625000
vt 0.000000 0.625000
vt -0.000000 0.875000
vt 0.125000 0.875000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.625000
vt 0.000000 0.625000
vt -0.000000 0.875000
vt 0.125000 0.875000
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
usemtl m_0
s off
f 1/1/1 2/2/1 4/3/1 3/4/1
f 3/5/2 4/6/2 8/7/2 7/8/2
f 7/9/3 8/10/3 6/11/3 5/12/3
f 5/13/4 6/14/4 2/15/4 1/16/4
f 3/4/5 7/9/5 5/17/5 1/18/5
f 8/19/6 4/20/6 2/2/6 6/11/6
f 9/21/4 10/22/4 12/23/4 11/24/4
f 11/25/1 12/26/1 16/27/1 15/28/1
f 15/29/2 16/30/2 14/31/2 13/32/2
f 13/33/3 14/34/3 10/35/3 9/36/3
f 11/24/5 15/29/5 13/37/5 9/38/5
f 16/39/6 12/40/6 10/22/6 14/31/6
f 17/41/3 18/42/3 20/43/3 19/44/3
f 19/45/4 20/46/4 24/47/4 23/48/4
f 23/49/1 24/50/1 22/51/1 21/52/1
f 21/53/2 22/54/2 18/55/2 17/56/2
f 19/44/5 23/49/5 21/57/5 17/58/5
f 24/59/6 20/60/6 18/42/6 22/51/6
f 25/61/2 26/62/2 28/63/2 27/64/2
f 27/65/3 28/66/3 32/67/3 31/68/3
f 31/69/4 32/70/4 30/71/4 29/72/4
f 29/73/1 30/74/1 26/75/1 25/76/1
f 27/64/5 31/69/5 29/77/5 25/78/5
f 32/79/6 28/80/6 26/62/6 30/71/6

View file

@ -0,0 +1,148 @@
# Blender v3.1.2 OBJ File: 'Burner V3blend.blend'
# www.blender.org
mtllib blaze_rods.mtl
o cube
v 0.093750 0.281250 0.437500
v 0.093750 0.531250 0.437500
v 0.093750 0.281250 0.312500
v 0.093750 0.531250 0.312500
v 0.218750 0.281250 0.437500
v 0.218750 0.531250 0.437500
v 0.218750 0.281250 0.312500
v 0.218750 0.531250 0.312500
v 0.437500 0.281250 0.906250
v 0.437500 0.531250 0.906250
v 0.312500 0.281250 0.906250
v 0.312500 0.531250 0.906250
v 0.437500 0.281250 0.781250
v 0.437500 0.531250 0.781250
v 0.312500 0.281250 0.781250
v 0.312500 0.531250 0.781250
v 0.906250 0.281250 0.562500
v 0.906250 0.531250 0.562500
v 0.906250 0.281250 0.687500
v 0.906250 0.531250 0.687500
v 0.781250 0.281250 0.562500
v 0.781250 0.531250 0.562500
v 0.781250 0.281250 0.687500
v 0.781250 0.531250 0.687500
v 0.562500 0.281250 0.093750
v 0.562500 0.531250 0.093750
v 0.687500 0.281250 0.093750
v 0.687500 0.531250 0.093750
v 0.562500 0.281250 0.218750
v 0.562500 0.531250 0.218750
v 0.687500 0.281250 0.218750
v 0.687500 0.531250 0.218750
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt -0.000000 1.000000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt -0.000000 1.000000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt -0.000000 1.000000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt -0.000000 1.000000
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
usemtl m_0
s off
f 1/1/1 2/2/1 4/3/1 3/4/1
f 3/5/2 4/6/2 8/7/2 7/8/2
f 7/9/3 8/10/3 6/11/3 5/12/3
f 5/13/4 6/14/4 2/15/4 1/16/4
f 3/17/5 7/18/5 5/13/5 1/16/5
f 8/7/6 4/6/6 2/19/6 6/20/6
f 9/21/4 10/22/4 12/23/4 11/24/4
f 11/25/1 12/26/1 16/27/1 15/28/1
f 15/29/2 16/30/2 14/31/2 13/32/2
f 13/33/3 14/34/3 10/35/3 9/36/3
f 11/37/5 15/38/5 13/33/5 9/36/5
f 16/27/6 12/26/6 10/39/6 14/40/6
f 17/41/3 18/42/3 20/43/3 19/44/3
f 19/45/4 20/46/4 24/47/4 23/48/4
f 23/49/1 24/50/1 22/51/1 21/52/1
f 21/53/2 22/54/2 18/55/2 17/56/2
f 19/57/5 23/58/5 21/53/5 17/56/5
f 24/47/6 20/46/6 18/59/6 22/60/6
f 25/61/2 26/62/2 28/63/2 27/64/2
f 27/65/3 28/66/3 32/67/3 31/68/3
f 31/69/4 32/70/4 30/71/4 29/72/4
f 29/73/1 30/74/1 26/75/1 25/76/1
f 27/77/5 31/78/5 29/73/5 25/76/5
f 32/67/6 28/66/6 26/79/6 30/80/6

View file

@ -1,171 +1,20 @@
{ {
"credit": "Made with Blockbench",
"parent": "block/block", "parent": "block/block",
"loader": "forge:obj",
"flip-v": true,
"model": "create:models/block/blaze_burner/blaze_cage.obj",
"textures": { "textures": {
"1": "create:block/blaze_burner_inner", "0": "create:block/blaze_heater_brazier",
"2": "create:block/blaze_burner_side",
"3": "create:block/dark_metal_block",
"particle": "create:block/dark_metal_block" "particle": "create:block/dark_metal_block"
}, },
"elements": [ "display": {
{ "gui": {
"name": "Brazier Sides 1", "rotation": [30, 225, 0],
"from": [2, 5, 2], "scale": [0.7, 0.7, 0.7]
"to": [14, 14, 14],
"faces": {
"north": {"uv": [0, 6, 12, 15], "texture": "#2"},
"east": {"uv": [0, 6, 12, 15], "texture": "#2"},
"south": {"uv": [0, 6, 12, 15], "texture": "#2"},
"west": {"uv": [0, 6, 12, 15], "texture": "#2"}
}
}, },
{ "fixed": {
"name": "Brazier Sides 2", "rotation": [0, 0, 0],
"from": [2, 5, 14], "scale": [0.5, 0.5, 0.5]
"to": [14, 14, 15],
"faces": {
"north": {"uv": [12, 6, 0, 15], "texture": "#2"}
}
},
{
"name": "Brazier Sides 3",
"from": [1, 5, 2],
"to": [2, 14, 14],
"faces": {
"east": {"uv": [12, 6, 0, 15], "texture": "#2"}
}
},
{
"name": "Brazier Sides 4",
"from": [2, 5, 1],
"to": [14, 14, 2],
"faces": {
"south": {"uv": [12, 6, 0, 15], "texture": "#2"}
}
},
{
"name": "Brazier Sides 5",
"from": [14, 5, 2],
"to": [15, 14, 14],
"faces": {
"west": {"uv": [12, 6, 0, 15], "texture": "#2"}
}
},
{
"name": "Brazier Spikes 1",
"from": [2, 14, 13],
"to": [14, 17, 14],
"rotation": {"angle": 45, "axis": "x", "origin": [8, 14, 14]},
"faces": {
"south": {"uv": [0, 3, 12, 6], "texture": "#2"}
}
},
{
"name": "Brazier Spikes 2",
"from": [2, 14, 2],
"to": [3, 17, 14],
"rotation": {"angle": 45, "axis": "z", "origin": [2, 14, 8]},
"faces": {
"west": {"uv": [0, 3, 12, 6], "texture": "#2"}
}
},
{
"name": "Brazier Spikes 3",
"from": [2, 14, 2],
"to": [14, 17, 3],
"rotation": {"angle": -45, "axis": "x", "origin": [8, 14, 2]},
"faces": {
"north": {"uv": [0, 3, 12, 6], "texture": "#2"}
}
},
{
"name": "Brazier Spikes 4",
"from": [13, 14, 2],
"to": [14, 17, 14],
"rotation": {"angle": -45, "axis": "z", "origin": [14, 14, 8]},
"faces": {
"east": {"uv": [0, 3, 12, 6], "texture": "#2"}
}
},
{
"name": "Brazier Spikes 1b",
"from": [2, 14, 14],
"to": [14, 17, 15],
"rotation": {"angle": 45, "axis": "x", "origin": [8, 14, 14]},
"faces": {
"north": {"uv": [12, 3, 0, 6], "texture": "#2"}
}
},
{
"name": "Brazier Spikes 1b",
"from": [1, 14, 2],
"to": [2, 17, 14],
"rotation": {"angle": 45, "axis": "z", "origin": [2, 14, 8]},
"faces": {
"east": {"uv": [12, 3, 0, 6], "texture": "#2"}
}
},
{
"name": "Brazier Spikes 1b",
"from": [2, 14, 1],
"to": [14, 17, 2],
"rotation": {"angle": -45, "axis": "x", "origin": [8, 14, 2]},
"faces": {
"south": {"uv": [12, 3, 0, 6], "texture": "#2"}
}
},
{
"name": "Brazier Spikes 1b",
"from": [14, 14, 2],
"to": [15, 17, 14],
"rotation": {"angle": -45, "axis": "z", "origin": [14, 14, 8]},
"faces": {
"west": {"uv": [12, 3, 0, 6], "texture": "#2"}
}
},
{
"name": "Base",
"from": [0, 0, 0],
"to": [16, 4, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [0.5, 8, 0.5]},
"faces": {
"north": {"uv": [12, 0, 16, 16], "rotation": 90, "texture": "#2"},
"east": {"uv": [12, 0, 16, 16], "rotation": 90, "texture": "#2"},
"south": {"uv": [12, 0, 16, 16], "rotation": 90, "texture": "#2"},
"west": {"uv": [12, 0, 16, 16], "rotation": 90, "texture": "#2"},
"up": {"uv": [0, 0, 16, 16], "texture": "#1"},
"down": {"uv": [0, 0, 16, 16], "texture": "#3", "cullface": "down"}
}
},
{
"name": "Brazier bottom",
"from": [2, 4, 2],
"to": [14, 5, 14],
"rotation": {"angle": 0, "axis": "y", "origin": [2.5, 8, 2.5]},
"faces": {
"north": {"uv": [0, 15, 12, 16], "texture": "#2"},
"east": {"uv": [0, 15, 12, 16], "texture": "#2"},
"south": {"uv": [0, 15, 12, 16], "texture": "#2"},
"west": {"uv": [0, 15, 12, 16], "texture": "#2"},
"up": {"uv": [2, 2, 14, 14], "texture": "#1"}
}
} }
], }
"groups": [
{
"name": "Brazier",
"origin": [0.5, 0.5, 0.5],
"children": [
{
"name": "Brazier Sides",
"origin": [0.5, 0.5, 0.5],
"children": [0, 1, 2, 3, 4]
},
{
"name": "Brazier Spikes",
"origin": [0.5, 0.5, 0.5],
"children": [5, 6, 7, 8, 9, 10, 11, 12]
}, 13, 14]
}
]
} }

View file

@ -1,191 +1,21 @@
{ {
"credit": "Made with Blockbench",
"parent": "block/block", "parent": "block/block",
"loader": "forge:obj",
"flip-v": true,
"model": "create:models/block/blaze_burner/item.obj",
"textures": { "textures": {
"1": "create:block/blaze_burner_inner", "0": "create:block/blaze_heater_brazier",
"2": "create:block/blaze_burner_side", "1": "create:block/blaze_idle",
"3": "create:block/dark_metal_block", "particle": "create:block/dark_metal_block"
"particle": "create:block/dark_metal_block",
"2_2": "create:block/blaze_kindled"
}, },
"elements": [ "display": {
{ "gui": {
"name": "Brazier Sides 1", "rotation": [30, 315, 0],
"from": [2, 5, 2], "scale": [0.7, 0.7, 0.7]
"to": [14, 14, 14],
"faces": {
"north": {"uv": [0, 6, 12, 15], "texture": "#2"},
"east": {"uv": [0, 6, 12, 15], "texture": "#2"},
"south": {"uv": [0, 6, 12, 15], "texture": "#2"},
"west": {"uv": [0, 6, 12, 15], "texture": "#2"}
}
}, },
{ "fixed": {
"name": "Brazier Sides 2", "rotation": [0, 180, 0],
"from": [2, 5, 14], "scale": [0.5, 0.5, 0.5]
"to": [14, 14, 15],
"faces": {
"north": {"uv": [12, 6, 0, 15], "texture": "#2"}
}
},
{
"name": "Brazier Sides 3",
"from": [1, 5, 2],
"to": [2, 14, 14],
"faces": {
"east": {"uv": [12, 6, 0, 15], "texture": "#2"}
}
},
{
"name": "Brazier Sides 4",
"from": [2, 5, 1],
"to": [14, 14, 2],
"faces": {
"south": {"uv": [12, 6, 0, 15], "texture": "#2"}
}
},
{
"name": "Brazier Sides 5",
"from": [14, 5, 2],
"to": [15, 14, 14],
"faces": {
"west": {"uv": [12, 6, 0, 15], "texture": "#2"}
}
},
{
"name": "Brazier Spikes 1",
"from": [2, 14, 13],
"to": [14, 17, 14],
"rotation": {"angle": 45, "axis": "x", "origin": [8, 14, 14]},
"faces": {
"south": {"uv": [0, 3, 12, 6], "texture": "#2"}
}
},
{
"name": "Brazier Spikes 2",
"from": [2, 14, 2],
"to": [3, 17, 14],
"rotation": {"angle": 45, "axis": "z", "origin": [2, 14, 8]},
"faces": {
"west": {"uv": [0, 3, 12, 6], "texture": "#2"}
}
},
{
"name": "Brazier Spikes 3",
"from": [2, 14, 2],
"to": [14, 17, 3],
"rotation": {"angle": -45, "axis": "x", "origin": [8, 14, 2]},
"faces": {
"north": {"uv": [0, 3, 12, 6], "texture": "#2"}
}
},
{
"name": "Brazier Spikes 4",
"from": [13, 14, 2],
"to": [14, 17, 14],
"rotation": {"angle": -45, "axis": "z", "origin": [14, 14, 8]},
"faces": {
"east": {"uv": [0, 3, 12, 6], "texture": "#2"}
}
},
{
"name": "Brazier Spikes 1b",
"from": [2, 14, 14],
"to": [14, 17, 15],
"rotation": {"angle": 45, "axis": "x", "origin": [8, 14, 14]},
"faces": {
"north": {"uv": [12, 3, 0, 6], "texture": "#2"}
}
},
{
"name": "Brazier Spikes 1b",
"from": [1, 14, 2],
"to": [2, 17, 14],
"rotation": {"angle": 45, "axis": "z", "origin": [2, 14, 8]},
"faces": {
"east": {"uv": [12, 3, 0, 6], "texture": "#2"}
}
},
{
"name": "Brazier Spikes 1b",
"from": [2, 14, 1],
"to": [14, 17, 2],
"rotation": {"angle": -45, "axis": "x", "origin": [8, 14, 2]},
"faces": {
"south": {"uv": [12, 3, 0, 6], "texture": "#2"}
}
},
{
"name": "Brazier Spikes 1b",
"from": [14, 14, 2],
"to": [15, 17, 14],
"rotation": {"angle": -45, "axis": "z", "origin": [14, 14, 8]},
"faces": {
"west": {"uv": [12, 3, 0, 6], "texture": "#2"}
}
},
{
"name": "Base",
"from": [0, 0, 0],
"to": [16, 4, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [0.5, 8, 0.5]},
"faces": {
"north": {"uv": [12, 0, 16, 16], "rotation": 90, "texture": "#2", "cullface": "west"},
"east": {"uv": [12, 0, 16, 16], "rotation": 90, "texture": "#2", "cullface": "west"},
"south": {"uv": [12, 0, 16, 16], "rotation": 90, "texture": "#2", "cullface": "west"},
"west": {"uv": [12, 0, 16, 16], "rotation": 90, "texture": "#2", "cullface": "west"},
"up": {"uv": [0, 0, 16, 16], "texture": "#1"},
"down": {"uv": [0, 0, 16, 16], "texture": "#3", "cullface": "down"}
}
},
{
"name": "Brazier bottom",
"from": [2, 4, 2],
"to": [14, 5, 14],
"rotation": {"angle": 0, "axis": "y", "origin": [2.5, 8, 2.5]},
"faces": {
"north": {"uv": [0, 15, 12, 16], "texture": "#2"},
"east": {"uv": [0, 15, 12, 16], "texture": "#2"},
"south": {"uv": [0, 15, 12, 16], "texture": "#2"},
"west": {"uv": [0, 15, 12, 16], "texture": "#2"},
"up": {"uv": [2, 2, 14, 14], "texture": "#1"}
}
},
{
"name": "Blaze 4",
"from": [4, 6, 4],
"to": [12, 14, 12],
"rotation": {"angle": -22.5, "axis": "y", "origin": [8, 8, 8]},
"faces": {
"north": {"uv": [8, 0, 16, 8], "texture": "#2_2"},
"east": {"uv": [0, 0, 8, 8], "texture": "#2_2"},
"south": {"uv": [0, 0, 8, 8], "texture": "#2_2"},
"west": {"uv": [0, 0, 8, 8], "texture": "#2_2"},
"up": {"uv": [0, 8, 8, 16], "texture": "#2_2"},
"down": {"uv": [8, 8, 16, 16], "texture": "#2_2"}
}
} }
], }
"groups": [
{
"name": "Brazier",
"origin": [0.5, 0.5, 0.5],
"children": [
{
"name": "Brazier Sides",
"origin": [0.5, 0.5, 0.5],
"children": [0, 1, 2, 3, 4]
},
{
"name": "Brazier Spikes",
"origin": [0.5, 0.5, 0.5],
"children": [5, 6, 7, 8, 9, 10, 11, 12]
}, 13, 14]
},
{
"name": "kindled",
"origin": [8, 8, 8],
"children": [15]
}
]
} }

View file

@ -1,202 +1,11 @@
{ {
"credit": "Made with Blockbench",
"parent": "block/block", "parent": "block/block",
"loader": "forge:obj",
"flip-v": true,
"model": "create:models/block/blaze_burner/campfire.obj",
"textures": { "textures": {
"1": "create:block/blaze_burner_inner", "0": "create:block/blaze_heater_brazier",
"2": "create:block/blaze_burner_side", "1": "block/campfire_fire",
"3": "create:block/dark_metal_block", "particle": "create:block/dark_metal_block"
"particle": "create:block/dark_metal_block", }
"fire": "block/campfire_fire"
},
"elements": [
{
"name": "Brazier Sides 1",
"from": [2, 5, 2],
"to": [14, 14, 14],
"faces": {
"north": {"uv": [0, 6, 12, 15], "texture": "#2"},
"east": {"uv": [0, 6, 12, 15], "texture": "#2"},
"south": {"uv": [0, 6, 12, 15], "texture": "#2"},
"west": {"uv": [0, 6, 12, 15], "texture": "#2"}
}
},
{
"name": "Brazier Sides 2",
"from": [2, 5, 14],
"to": [14, 14, 15],
"faces": {
"north": {"uv": [12, 6, 0, 15], "texture": "#2"}
}
},
{
"name": "Brazier Sides 3",
"from": [1, 5, 2],
"to": [2, 14, 14],
"faces": {
"east": {"uv": [12, 6, 0, 15], "texture": "#2"}
}
},
{
"name": "Brazier Sides 4",
"from": [2, 5, 1],
"to": [14, 14, 2],
"faces": {
"south": {"uv": [12, 6, 0, 15], "texture": "#2"}
}
},
{
"name": "Brazier Sides 5",
"from": [14, 5, 2],
"to": [15, 14, 14],
"faces": {
"west": {"uv": [12, 6, 0, 15], "texture": "#2"}
}
},
{
"name": "Brazier Spikes 1",
"from": [2, 14, 13],
"to": [14, 17, 14],
"rotation": {"angle": 45, "axis": "x", "origin": [8, 14, 14]},
"faces": {
"south": {"uv": [0, 3, 12, 6], "texture": "#2"}
}
},
{
"name": "Brazier Spikes 2",
"from": [2, 14, 2],
"to": [3, 17, 14],
"rotation": {"angle": 45, "axis": "z", "origin": [2, 14, 8]},
"faces": {
"west": {"uv": [0, 3, 12, 6], "texture": "#2"}
}
},
{
"name": "Brazier Spikes 3",
"from": [2, 14, 2],
"to": [14, 17, 3],
"rotation": {"angle": -45, "axis": "x", "origin": [8, 14, 2]},
"faces": {
"north": {"uv": [0, 3, 12, 6], "texture": "#2"}
}
},
{
"name": "Brazier Spikes 4",
"from": [13, 14, 2],
"to": [14, 17, 14],
"rotation": {"angle": -45, "axis": "z", "origin": [14, 14, 8]},
"faces": {
"east": {"uv": [0, 3, 12, 6], "texture": "#2"}
}
},
{
"name": "Brazier Spikes 1b",
"from": [2, 14, 14],
"to": [14, 17, 15],
"rotation": {"angle": 45, "axis": "x", "origin": [8, 14, 14]},
"faces": {
"north": {"uv": [12, 3, 0, 6], "texture": "#2"}
}
},
{
"name": "Brazier Spikes 1b",
"from": [1, 14, 2],
"to": [2, 17, 14],
"rotation": {"angle": 45, "axis": "z", "origin": [2, 14, 8]},
"faces": {
"east": {"uv": [12, 3, 0, 6], "texture": "#2"}
}
},
{
"name": "Brazier Spikes 1b",
"from": [2, 14, 1],
"to": [14, 17, 2],
"rotation": {"angle": -45, "axis": "x", "origin": [8, 14, 2]},
"faces": {
"south": {"uv": [12, 3, 0, 6], "texture": "#2"}
}
},
{
"name": "Brazier Spikes 1b",
"from": [14, 14, 2],
"to": [15, 17, 14],
"rotation": {"angle": -45, "axis": "z", "origin": [14, 14, 8]},
"faces": {
"west": {"uv": [12, 3, 0, 6], "texture": "#2"}
}
},
{
"name": "Base",
"from": [0, 0, 0],
"to": [16, 4, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [0.5, 8, 0.5]},
"faces": {
"north": {"uv": [12, 0, 16, 16], "rotation": 90, "texture": "#2"},
"east": {"uv": [12, 0, 16, 16], "rotation": 90, "texture": "#2"},
"south": {"uv": [12, 0, 16, 16], "rotation": 90, "texture": "#2"},
"west": {"uv": [12, 0, 16, 16], "rotation": 90, "texture": "#2"},
"up": {"uv": [0, 0, 16, 16], "texture": "#1"},
"down": {"uv": [0, 0, 16, 16], "texture": "#3", "cullface": "down"}
}
},
{
"name": "Brazier bottom",
"from": [2, 4, 2],
"to": [14, 5, 14],
"rotation": {"angle": 0, "axis": "y", "origin": [2.5, 8, 2.5]},
"faces": {
"north": {"uv": [0, 15, 12, 16], "texture": "#2"},
"east": {"uv": [0, 15, 12, 16], "texture": "#2"},
"south": {"uv": [0, 15, 12, 16], "texture": "#2"},
"west": {"uv": [0, 15, 12, 16], "texture": "#2"},
"up": {"uv": [2, 2, 14, 14], "texture": "#1"}
}
},
{
"from": [0.8, 1, 8],
"to": [15.2, 17, 8],
"shade": false,
"rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8], "rescale": true},
"faces": {
"north": {"uv": [0, 0, 16, 16], "texture": "#fire"},
"south": {"uv": [0, 0, 16, 16], "texture": "#fire"}
}
},
{
"from": [8, 1, 0.8],
"to": [8, 17, 15.2],
"shade": false,
"rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8], "rescale": true},
"faces": {
"east": {"uv": [0, 0, 16, 16], "texture": "#fire"},
"west": {"uv": [0, 0, 16, 16], "texture": "#fire"}
}
}
],
"display": {
"head": {
"translation": [0, 10.5, 0]
}
},
"groups": [
{
"name": "Brazier",
"origin": [0.5, 0.5, 0.5],
"children": [
{
"name": "Brazier Sides",
"origin": [0.5, 0.5, 0.5],
"children": [0, 1, 2, 3, 4]
},
{
"name": "Brazier Spikes",
"origin": [0.5, 0.5, 0.5],
"children": [5, 6, 7, 8, 9, 10, 11, 12]
}, 13, 14]
},
{
"name": "campfire",
"origin": [8, 8, 8],
"children": [15, 16]
}
]
} }

View file

@ -1,6 +1,11 @@
{ {
"parent": "create:block/blaze_burner/block_with_fire", "parent": "block/block",
"loader": "forge:obj",
"flip-v": true,
"model": "create:models/block/blaze_burner/campfire.obj",
"textures": { "textures": {
"fire": "block/soul_campfire_fire" "0": "create:block/blaze_heater_brazier_soul",
"1": "block/soul_campfire_fire",
"particle": "create:block/dark_metal_block"
} }
} }

View file

@ -0,0 +1,25 @@
# Blender MTL File: 'Burner V3blend.blend'
# Material Count: 2
newmtl Blazier
Ns 250.000000
Ka 1.000000 1.000000 1.000000
Kd 0.800000 0.800000 0.800000
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2
map_Kd #0
map_d #0
newmtl Campfire
Ns 250.000000
Ka 1.000000 1.000000 1.000000
Kd 0.800000 0.800000 0.800000
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2
map_Kd #1

View file

@ -0,0 +1,343 @@
# Blender v3.1.2 OBJ File: 'Burner V3blend.blend'
# www.blender.org
mtllib campfire.mtl
o Plane
v 0.146445 1.250000 0.853550
v 0.146445 0.250000 0.146444
v 0.853552 0.250000 0.853550
v 0.853552 0.250000 0.146443
v 0.853552 1.250000 0.853551
v 0.146445 1.250000 0.146444
v 0.146445 0.250000 0.853551
v 0.146445 1.250000 0.853550
v 0.853552 1.250000 0.146444
v 0.853552 1.250000 0.853550
v 0.853552 0.250000 0.146444
v 0.146445 0.250000 0.853551
v 0.146445 1.250000 0.146444
v 0.853552 1.250000 0.146444
v 0.146445 0.250000 0.146444
v 0.853552 0.250000 0.853551
vt 1.000000 1.000000
vt 0.000000 1.000000
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
vt 0.000000 0.000000
vt 1.000000 0.000000
vn -0.7071 -0.0000 -0.7071
vn -0.7071 0.0000 0.7071
vn 0.7071 0.0000 -0.7071
vn 0.7071 -0.0000 0.7071
usemtl Campfire
s off
f 1/1/1 9/2/1 11/3/1 12/4/1
f 5/5/2 6/6/2 15/7/2 16/8/2
f 13/9/3 10/10/3 3/11/3 2/12/3
f 14/13/4 8/14/4 7/15/4 4/16/4
o cube
v 0.125000 0.000000 0.875000
v 0.125000 0.250000 0.875000
v 0.125000 0.000000 0.125000
v 0.125000 0.250000 0.125000
v 0.875000 0.000000 0.875000
v 0.875000 0.250000 0.875000
v 0.875000 0.000000 0.125000
v 0.875000 0.250000 0.125000
v 0.062500 0.312500 0.937500
v 0.062500 0.875000 0.937500
v 0.937500 0.312500 0.937500
v 0.937500 0.875000 0.937500
v 0.062500 0.250000 0.875000
v 0.937500 0.250000 0.875000
v 0.062500 0.937500 1.000000
v 0.937500 0.937500 1.000000
v 0.937500 0.312500 0.937500
v 0.937500 0.875000 0.937500
v 0.937500 0.312500 0.062500
v 0.937500 0.875000 0.062500
v 0.875000 0.250000 0.937500
v 0.875000 0.250000 0.062500
v 1.000000 0.937500 0.937500
v 1.000000 0.937500 0.062500
v 0.937500 0.312500 0.062500
v 0.937500 0.875000 0.062500
v 0.062500 0.312500 0.062500
v 0.062500 0.875000 0.062500
v 0.937500 0.250000 0.125000
v 0.062500 0.250000 0.125000
v 0.937500 0.937500 0.000000
v 0.062500 0.937500 0.000000
v 0.062500 0.312500 0.062500
v 0.062500 0.875000 0.062500
v 0.062500 0.312500 0.937500
v 0.062500 0.875000 0.937500
v 0.125000 0.250000 0.062500
v 0.125000 0.250000 0.937500
v 0.000000 0.937500 0.062500
v 0.000000 0.937500 0.937500
v 0.875000 0.000000 0.875000
v 1.000000 0.000000 1.000000
v 0.875000 0.312500 0.875000
v 1.000000 0.312500 1.000000
v 0.875000 0.000000 0.125000
v 1.000000 0.000000 0.000000
v 0.875000 0.312500 0.125000
v 1.000000 0.312500 0.000000
v 0.125000 0.000000 0.125000
v 0.000000 0.000000 0.000000
v 0.125000 0.312500 0.125000
v 0.000000 0.312500 0.000000
v 0.125000 0.000000 0.875000
v 0.000000 0.000000 1.000000
v 0.125000 0.312500 0.875000
v 0.000000 0.312500 1.000000
v 0.062500 0.312500 0.937500
v 0.062500 0.875000 0.937500
v 0.937500 0.312500 0.937500
v 0.937500 0.875000 0.937500
v 0.062500 0.250000 0.875000
v 0.937500 0.250000 0.875000
v 0.062500 0.937500 1.000000
v 0.937500 0.937500 1.000000
v 0.937500 0.312500 0.937500
v 0.937500 0.875000 0.937500
v 0.937500 0.312500 0.062500
v 0.937500 0.875000 0.062500
v 0.875000 0.250000 0.937500
v 0.875000 0.250000 0.062500
v 1.000000 0.937500 0.937500
v 1.000000 0.937500 0.062500
v 0.937500 0.312500 0.062500
v 0.937500 0.875000 0.062500
v 0.062500 0.312500 0.062500
v 0.062500 0.875000 0.062500
v 0.937500 0.250000 0.125000
v 0.062500 0.250000 0.125000
v 0.937500 0.937500 0.000000
v 0.062500 0.937500 0.000000
v 0.062500 0.312500 0.062500
v 0.062500 0.875000 0.062500
v 0.062500 0.312500 0.937500
v 0.062500 0.875000 0.937500
v 0.125000 0.250000 0.062500
v 0.125000 0.250000 0.937500
v 0.000000 0.937500 0.062500
v 0.000000 0.937500 0.937500
v 0.875000 0.000000 0.875000
v 1.000000 0.000000 1.000000
v 0.875000 0.312500 0.875000
v 1.000000 0.312500 1.000000
v 0.875000 0.000000 0.125000
v 1.000000 0.000000 0.000000
v 0.875000 0.312500 0.125000
v 1.000000 0.312500 0.000000
v 0.125000 0.000000 0.125000
v 0.000000 0.000000 0.000000
v 0.125000 0.312500 0.125000
v 0.000000 0.312500 0.000000
v 0.125000 0.000000 0.875000
v 0.000000 0.000000 1.000000
v 0.125000 0.312500 0.875000
v 0.000000 0.312500 1.000000
vt 0.937500 0.375000
vt 0.937500 0.500000
vt 0.562500 0.500000
vt 0.562500 0.375000
vt 0.937500 0.375000
vt 0.937500 0.500000
vt 0.562500 0.500000
vt 0.562500 0.375000
vt 0.937500 0.375000
vt 0.937500 0.500000
vt 0.562500 0.500000
vt 0.562500 0.375000
vt 0.937500 0.375000
vt 0.937500 0.500000
vt 0.562500 0.500000
vt 0.562500 0.375000
vt 0.562500 0.000000
vt 0.937500 0.000000
vt 0.562500 0.562500
vt 0.937500 0.562500
vt 0.937500 0.937500
vt 0.562500 0.937500
vt 0.468750 0.531250
vt 0.468750 0.812500
vt 0.031250 0.812500
vt 0.031250 0.531250
vt 0.031250 0.500000
vt 0.468750 0.500000
vt 0.468750 0.531250
vt 0.031250 0.531250
vt 0.468750 0.843750
vt 0.031250 0.843750
vt 0.468750 0.531250
vt 0.468750 0.812500
vt 0.031250 0.812500
vt 0.031250 0.531250
vt 0.031250 0.500000
vt 0.468750 0.500000
vt 0.468750 0.531250
vt 0.031250 0.531250
vt 0.468750 0.843750
vt 0.031250 0.843750
vt 0.468750 0.531250
vt 0.468750 0.812500
vt 0.031250 0.812500
vt 0.031250 0.531250
vt 0.031250 0.500000
vt 0.468750 0.500000
vt 0.468750 0.531250
vt 0.031250 0.531250
vt 0.468750 0.843750
vt 0.031250 0.843750
vt 0.468750 0.531250
vt 0.468750 0.812500
vt 0.031250 0.812500
vt 0.031250 0.531250
vt 0.031250 0.500000
vt 0.468750 0.500000
vt 0.468750 0.531250
vt 0.031250 0.531250
vt 0.468750 0.843750
vt 0.031250 0.843750
vt 0.906250 0.343750
vt 1.000000 0.343750
vt 1.000000 0.500000
vt 0.906250 0.500000
vt 0.906250 0.343750
vt 1.000000 0.343750
vt 1.000000 0.500000
vt 0.906250 0.500000
vt 0.906250 0.343750
vt 1.000000 0.343750
vt 1.000000 0.500000
vt 0.906250 0.500000
vt 0.906250 0.343750
vt 1.000000 0.343750
vt 1.000000 0.500000
vt 0.906250 0.500000
vt 0.468750 0.531250
vt 0.031250 0.531250
vt 0.031250 0.812500
vt 0.468750 0.812500
vt 0.031250 0.500000
vt 0.031250 0.531250
vt 0.468750 0.531250
vt 0.468750 0.500000
vt 0.031250 0.843750
vt 0.468750 0.843750
vt 0.468750 0.531250
vt 0.031250 0.531250
vt 0.031250 0.812500
vt 0.468750 0.812500
vt 0.031250 0.500000
vt 0.031250 0.531250
vt 0.468750 0.531250
vt 0.468750 0.500000
vt 0.031250 0.843750
vt 0.468750 0.843750
vt 0.468750 0.531250
vt 0.031250 0.531250
vt 0.031250 0.812500
vt 0.468750 0.812500
vt 0.031250 0.500000
vt 0.031250 0.531250
vt 0.468750 0.531250
vt 0.468750 0.500000
vt 0.031250 0.843750
vt 0.468750 0.843750
vt 0.468750 0.531250
vt 0.031250 0.531250
vt 0.031250 0.812500
vt 0.468750 0.812500
vt 0.031250 0.500000
vt 0.031250 0.531250
vt 0.468750 0.531250
vt 0.468750 0.500000
vt 0.031250 0.843750
vt 0.468750 0.843750
vt 0.906250 0.343750
vt 0.906250 0.500000
vt 1.000000 0.500000
vt 1.000000 0.343750
vt 0.906250 0.343750
vt 0.906250 0.500000
vt 1.000000 0.500000
vt 1.000000 0.343750
vt 0.906250 0.343750
vt 0.906250 0.500000
vt 1.000000 0.500000
vt 1.000000 0.343750
vt 0.906250 0.343750
vt 0.906250 0.500000
vt 1.000000 0.500000
vt 1.000000 0.343750
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
vn 0.0000 -0.7071 0.7071
vn 0.7071 -0.7071 -0.0000
vn -0.0000 -0.7071 -0.7071
vn -0.7071 -0.7071 0.0000
vn -0.7071 0.0000 0.7071
vn 0.7071 0.0000 0.7071
vn 0.7071 0.0000 -0.7071
vn -0.7071 0.0000 -0.7071
vn 0.0000 0.7071 -0.7071
vn -0.7071 0.7071 0.0000
vn 0.0000 0.7071 0.7071
vn 0.7071 0.7071 -0.0000
usemtl Blazier
s off
f 17/17/5 18/18/5 20/19/5 19/20/5
f 19/21/6 20/22/6 24/23/6 23/24/6
f 23/25/7 24/26/7 22/27/7 21/28/7
f 21/29/8 22/30/8 18/31/8 17/32/8
f 19/33/9 23/34/9 21/29/9 17/32/9
f 24/35/10 20/36/10 18/37/10 22/38/10
f 27/39/8 28/40/8 26/41/8 25/42/8
f 27/43/11 25/44/11 29/45/11 30/46/11
f 26/41/11 28/40/11 32/47/11 31/48/11
f 35/49/7 36/50/7 34/51/7 33/52/7
f 35/53/12 33/54/12 37/55/12 38/56/12
f 34/51/12 36/50/12 40/57/12 39/58/12
f 43/59/6 44/60/6 42/61/6 41/62/6
f 43/63/13 41/64/13 45/65/13 46/66/13
f 42/61/13 44/60/13 48/67/13 47/68/13
f 51/69/5 52/70/5 50/71/5 49/72/5
f 51/73/14 49/74/14 53/75/14 54/76/14
f 50/71/14 52/70/14 56/77/14 55/78/14
f 57/79/15 58/80/15 60/81/15 59/82/15
f 61/83/16 62/84/16 64/85/16 63/86/16
f 65/87/17 66/88/17 68/89/17 67/90/17
f 69/91/18 70/92/18 72/93/18 71/94/18
f 75/95/6 73/96/6 74/97/6 76/98/6
f 75/99/19 78/100/19 77/101/19 73/102/19
f 74/97/19 79/103/19 80/104/19 76/98/19
f 83/105/5 81/106/5 82/107/5 84/108/5
f 83/109/20 86/110/20 85/111/20 81/112/20
f 82/107/20 87/113/20 88/114/20 84/108/20
f 91/115/8 89/116/8 90/117/8 92/118/8
f 91/119/21 94/120/21 93/121/21 89/122/21
f 90/117/21 95/123/21 96/124/21 92/118/21
f 99/125/7 97/126/7 98/127/7 100/128/7
f 99/129/22 102/130/22 101/131/22 97/132/22
f 98/127/22 103/133/22 104/134/22 100/128/22
f 105/135/17 107/136/17 108/137/17 106/138/17
f 109/139/18 111/140/18 112/141/18 110/142/18
f 113/143/15 115/144/15 116/145/15 114/146/15
f 117/147/16 119/148/16 120/149/16 118/150/16

View file

@ -0,0 +1,9 @@
{
"parent": "block/block",
"loader": "forge:obj",
"flip-v": true,
"model": "create:models/block/blaze_burner/blaze_flame.obj",
"textures": {
"0": "create:block/blaze_burner_flame"
}
}

View file

@ -0,0 +1,19 @@
{
"credit": "Made with Blockbench",
"textures": {
"0": "create:block/hat_test",
"particle": "create:block/hat_test"
},
"elements": [
{
"from": [3.5, 0, 3.5],
"to": [12.5, 4, 12.5],
"faces": {
"north": {"uv": [8, 2, 16, 6], "texture": "#0"},
"east": {"uv": [0, 2, 8, 6], "texture": "#0"},
"south": {"uv": [8, 10, 16, 14], "texture": "#0"},
"west": {"uv": [0, 10, 8, 14], "texture": "#0"}
}
}
]
}

View file

@ -0,0 +1,26 @@
# Blender MTL File: 'Burner V3blend.blend'
# Material Count: 2
newmtl m_0
Ns 250.000000
Ka 1.000000 1.000000 1.000000
Kd 0.800000 0.800000 0.800000
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2
map_Kd #0
map_d #0
newmtl m_1
Ns 0.000000
Ka 1.000000 1.000000 1.000000
Kd 0.800000 0.800000 0.800000
Ks 0.000000 0.000000 0.000000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 1
map_Kd #1
map_d #1

View file

@ -0,0 +1,634 @@
# Blender v3.1.2 OBJ File: 'Burner V3blend.blend'
# www.blender.org
mtllib item.mtl
o cube
v 0.250000 0.375000 0.750000
v 0.750000 0.375000 0.750000
v 0.750000 0.875000 0.750000
v 0.250000 0.875000 0.750000
v 0.250000 0.375000 0.250000
v 0.250000 0.875000 0.250000
v 0.750000 0.375000 0.250000
v 0.750000 0.875000 0.250000
vt 0.500000 0.500000
vt 1.000000 0.500000
vt 1.000000 1.000000
vt 0.500000 1.000000
vt 0.000000 0.500000
vt 0.000000 1.000000
vt 0.000000 0.500000
vt 0.500000 0.500000
vt 0.500000 1.000000
vt 0.000000 1.000000
vt 0.000000 0.500000
vt 0.500000 0.500000
vt 0.500000 1.000000
vt 0.000000 1.000000
vt 0.000000 0.000000
vt 0.500000 0.000000
vt 0.500000 0.500000
vt 0.000000 0.500000
vt 0.500000 0.000000
vt 1.000000 0.000000
vt 1.000000 0.500000
vn 0.0000 0.0000 1.0000
vn -1.0000 0.0000 0.0000
vn -0.0000 -0.0000 -1.0000
vn 1.0000 0.0000 -0.0000
vn -0.0000 1.0000 -0.0000
vn 0.0000 -1.0000 0.0000
usemtl m_1
s 1
f 1/1/1 2/2/1 3/3/1 4/4/1
f 5/5/2 1/1/2 4/4/2 6/6/2
f 7/7/3 5/8/3 6/9/3 8/10/3
f 2/11/4 7/12/4 8/13/4 3/14/4
f 8/15/5 6/16/5 4/17/5 3/18/5
f 2/19/6 1/20/6 5/21/6 7/12/6
o cube2
v 0.093750 0.281250 0.437500
v 0.093750 0.531250 0.437500
v 0.093750 0.281250 0.312500
v 0.093750 0.531250 0.312500
v 0.218750 0.281250 0.437500
v 0.218750 0.531250 0.437500
v 0.218750 0.281250 0.312500
v 0.218750 0.531250 0.312500
v 0.437500 0.281250 0.906250
v 0.437500 0.531250 0.906250
v 0.312500 0.281250 0.906250
v 0.312500 0.531250 0.906250
v 0.437500 0.281250 0.781250
v 0.437500 0.531250 0.781250
v 0.312500 0.281250 0.781250
v 0.312500 0.531250 0.781250
v 0.906250 0.281250 0.562500
v 0.906250 0.531250 0.562500
v 0.906250 0.281250 0.687500
v 0.906250 0.531250 0.687500
v 0.781250 0.281250 0.562500
v 0.781250 0.531250 0.562500
v 0.781250 0.281250 0.687500
v 0.781250 0.531250 0.687500
v 0.562500 0.281250 0.093750
v 0.562500 0.531250 0.093750
v 0.687500 0.281250 0.093750
v 0.687500 0.531250 0.093750
v 0.562500 0.281250 0.218750
v 0.562500 0.531250 0.218750
v 0.687500 0.281250 0.218750
v 0.687500 0.531250 0.218750
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt -0.000000 1.000000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt -0.000000 1.000000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt -0.000000 1.000000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.125000 0.625000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.625000
vt 0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt -0.000000 1.000000
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
usemtl m_1
s off
f 9/22/7 10/23/7 12/24/7 11/25/7
f 11/26/8 12/27/8 16/28/8 15/29/8
f 15/30/9 16/31/9 14/32/9 13/33/9
f 13/34/10 14/35/10 10/36/10 9/37/10
f 11/38/11 15/39/11 13/34/11 9/37/11
f 16/28/12 12/27/12 10/40/12 14/41/12
f 17/42/10 18/43/10 20/44/10 19/45/10
f 19/46/7 20/47/7 24/48/7 23/49/7
f 23/50/8 24/51/8 22/52/8 21/53/8
f 21/54/9 22/55/9 18/56/9 17/57/9
f 19/58/11 23/59/11 21/54/11 17/57/11
f 24/48/12 20/47/12 18/60/12 22/61/12
f 25/62/9 26/63/9 28/64/9 27/65/9
f 27/66/10 28/67/10 32/68/10 31/69/10
f 31/70/7 32/71/7 30/72/7 29/73/7
f 29/74/8 30/75/8 26/76/8 25/77/8
f 27/78/11 31/79/11 29/74/11 25/77/11
f 32/68/12 28/67/12 26/80/12 30/81/12
f 33/82/8 34/83/8 36/84/8 35/85/8
f 35/86/9 36/87/9 40/88/9 39/89/9
f 39/90/10 40/91/10 38/92/10 37/93/10
f 37/94/7 38/95/7 34/96/7 33/97/7
f 35/98/11 39/99/11 37/94/11 33/97/11
f 40/88/12 36/87/12 34/100/12 38/101/12
o cube3
v 0.093750 0.300000 0.218750
v 0.093750 0.800000 0.218750
v 0.093750 0.300000 0.093750
v 0.093750 0.800000 0.093750
v 0.218750 0.300000 0.218750
v 0.218750 0.800000 0.218750
v 0.218750 0.300000 0.093750
v 0.218750 0.800000 0.093750
v 0.218750 0.300000 0.906250
v 0.218750 0.800000 0.906250
v 0.093750 0.300000 0.906250
v 0.093750 0.800000 0.906250
v 0.218750 0.300000 0.781250
v 0.218750 0.800000 0.781250
v 0.093750 0.300000 0.781250
v 0.093750 0.800000 0.781250
v 0.906250 0.300000 0.781250
v 0.906250 0.800000 0.781250
v 0.906250 0.300000 0.906250
v 0.906250 0.800000 0.906250
v 0.781250 0.300000 0.781250
v 0.781250 0.800000 0.781250
v 0.781250 0.300000 0.906250
v 0.781250 0.800000 0.906250
v 0.781250 0.300000 0.093750
v 0.781250 0.800000 0.093750
v 0.906250 0.300000 0.093750
v 0.906250 0.800000 0.093750
v 0.781250 0.300000 0.218750
v 0.781250 0.800000 0.218750
v 0.906250 0.300000 0.218750
v 0.906250 0.800000 0.218750
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.625000
vt 0.000000 0.625000
vt -0.000000 0.875000
vt 0.125000 0.875000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.625000
vt 0.000000 0.625000
vt -0.000000 0.875000
vt 0.125000 0.875000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.625000
vt 0.000000 0.625000
vt -0.000000 0.875000
vt 0.125000 0.875000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.500000
vt 0.125000 0.625000
vt 0.000000 0.625000
vt -0.000000 0.875000
vt 0.125000 0.875000
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
usemtl m_1
s off
f 41/102/13 42/103/13 44/104/13 43/105/13
f 43/106/14 44/107/14 48/108/14 47/109/14
f 47/110/15 48/111/15 46/112/15 45/113/15
f 45/114/16 46/115/16 42/116/16 41/117/16
f 43/105/17 47/110/17 45/118/17 41/119/17
f 48/120/18 44/121/18 42/103/18 46/112/18
f 49/122/16 50/123/16 52/124/16 51/125/16
f 51/126/13 52/127/13 56/128/13 55/129/13
f 55/130/14 56/131/14 54/132/14 53/133/14
f 53/134/15 54/135/15 50/136/15 49/137/15
f 51/125/17 55/130/17 53/138/17 49/139/17
f 56/140/18 52/141/18 50/123/18 54/132/18
f 57/142/15 58/143/15 60/144/15 59/145/15
f 59/146/16 60/147/16 64/148/16 63/149/16
f 63/150/13 64/151/13 62/152/13 61/153/13
f 61/154/14 62/155/14 58/156/14 57/157/14
f 59/145/17 63/150/17 61/158/17 57/159/17
f 64/160/18 60/161/18 58/143/18 62/152/18
f 65/162/14 66/163/14 68/164/14 67/165/14
f 67/166/15 68/167/15 72/168/15 71/169/15
f 71/170/16 72/171/16 70/172/16 69/173/16
f 69/174/13 70/175/13 66/176/13 65/177/13
f 67/165/17 71/170/17 69/178/17 65/179/17
f 72/180/18 68/181/18 66/163/18 70/172/18
o cube4
v 0.125000 0.000000 0.875000
v 0.125000 0.250000 0.875000
v 0.125000 0.000000 0.125000
v 0.125000 0.250000 0.125000
v 0.875000 0.000000 0.875000
v 0.875000 0.250000 0.875000
v 0.875000 0.000000 0.125000
v 0.875000 0.250000 0.125000
v 0.062500 0.312500 0.937500
v 0.062500 0.875000 0.937500
v 0.937500 0.312500 0.937500
v 0.937500 0.875000 0.937500
v 0.062500 0.250000 0.875000
v 0.937500 0.250000 0.875000
v 0.062500 0.937500 1.000000
v 0.937500 0.937500 1.000000
v 0.937500 0.312500 0.937500
v 0.937500 0.875000 0.937500
v 0.937500 0.312500 0.062500
v 0.937500 0.875000 0.062500
v 0.875000 0.250000 0.937500
v 0.875000 0.250000 0.062500
v 1.000000 0.937500 0.937500
v 1.000000 0.937500 0.062500
v 0.937500 0.312500 0.062500
v 0.937500 0.875000 0.062500
v 0.062500 0.312500 0.062500
v 0.062500 0.875000 0.062500
v 0.937500 0.250000 0.125000
v 0.062500 0.250000 0.125000
v 0.937500 0.937500 0.000000
v 0.062500 0.937500 0.000000
v 0.062500 0.312500 0.062500
v 0.062500 0.875000 0.062500
v 0.062500 0.312500 0.937500
v 0.062500 0.875000 0.937500
v 0.125000 0.250000 0.062500
v 0.125000 0.250000 0.937500
v 0.000000 0.937500 0.062500
v 0.000000 0.937500 0.937500
v 0.875000 0.000000 0.875000
v 1.000000 0.000000 1.000000
v 0.875000 0.312500 0.875000
v 1.000000 0.312500 1.000000
v 0.875000 0.000000 0.125000
v 1.000000 0.000000 0.000000
v 0.875000 0.312500 0.125000
v 1.000000 0.312500 0.000000
v 0.125000 0.000000 0.125000
v 0.000000 0.000000 0.000000
v 0.125000 0.312500 0.125000
v 0.000000 0.312500 0.000000
v 0.125000 0.000000 0.875000
v 0.000000 0.000000 1.000000
v 0.125000 0.312500 0.875000
v 0.000000 0.312500 1.000000
v 0.062500 0.312500 0.937500
v 0.062500 0.875000 0.937500
v 0.937500 0.312500 0.937500
v 0.937500 0.875000 0.937500
v 0.062500 0.250000 0.875000
v 0.937500 0.250000 0.875000
v 0.062500 0.937500 1.000000
v 0.937500 0.937500 1.000000
v 0.937500 0.312500 0.937500
v 0.937500 0.875000 0.937500
v 0.937500 0.312500 0.062500
v 0.937500 0.875000 0.062500
v 0.875000 0.250000 0.937500
v 0.875000 0.250000 0.062500
v 1.000000 0.937500 0.937500
v 1.000000 0.937500 0.062500
v 0.937500 0.312500 0.062500
v 0.937500 0.875000 0.062500
v 0.062500 0.312500 0.062500
v 0.062500 0.875000 0.062500
v 0.937500 0.250000 0.125000
v 0.062500 0.250000 0.125000
v 0.937500 0.937500 0.000000
v 0.062500 0.937500 0.000000
v 0.062500 0.312500 0.062500
v 0.062500 0.875000 0.062500
v 0.062500 0.312500 0.937500
v 0.062500 0.875000 0.937500
v 0.125000 0.250000 0.062500
v 0.125000 0.250000 0.937500
v 0.000000 0.937500 0.062500
v 0.000000 0.937500 0.937500
v 0.875000 0.000000 0.875000
v 1.000000 0.000000 1.000000
v 0.875000 0.312500 0.875000
v 1.000000 0.312500 1.000000
v 0.875000 0.000000 0.125000
v 1.000000 0.000000 0.000000
v 0.875000 0.312500 0.125000
v 1.000000 0.312500 0.000000
v 0.125000 0.000000 0.125000
v 0.000000 0.000000 0.000000
v 0.125000 0.312500 0.125000
v 0.000000 0.312500 0.000000
v 0.125000 0.000000 0.875000
v 0.000000 0.000000 1.000000
v 0.125000 0.312500 0.875000
v 0.000000 0.312500 1.000000
vt 0.937500 0.375000
vt 0.937500 0.500000
vt 0.562500 0.500000
vt 0.562500 0.375000
vt 0.937500 0.375000
vt 0.937500 0.500000
vt 0.562500 0.500000
vt 0.562500 0.375000
vt 0.937500 0.375000
vt 0.937500 0.500000
vt 0.562500 0.500000
vt 0.562500 0.375000
vt 0.937500 0.375000
vt 0.937500 0.500000
vt 0.562500 0.500000
vt 0.562500 0.375000
vt 0.562500 0.000000
vt 0.937500 0.000000
vt 0.562500 0.562500
vt 0.937500 0.562500
vt 0.937500 0.937500
vt 0.562500 0.937500
vt 0.468750 0.531250
vt 0.468750 0.812500
vt 0.031250 0.812500
vt 0.031250 0.531250
vt 0.031250 0.500000
vt 0.468750 0.500000
vt 0.468750 0.531250
vt 0.031250 0.531250
vt 0.468750 0.843750
vt 0.031250 0.843750
vt 0.468750 0.531250
vt 0.468750 0.812500
vt 0.031250 0.812500
vt 0.031250 0.531250
vt 0.031250 0.500000
vt 0.468750 0.500000
vt 0.468750 0.531250
vt 0.031250 0.531250
vt 0.468750 0.843750
vt 0.031250 0.843750
vt 0.468750 0.531250
vt 0.468750 0.812500
vt 0.031250 0.812500
vt 0.031250 0.531250
vt 0.031250 0.500000
vt 0.468750 0.500000
vt 0.468750 0.531250
vt 0.031250 0.531250
vt 0.468750 0.843750
vt 0.031250 0.843750
vt 0.468750 0.531250
vt 0.468750 0.812500
vt 0.031250 0.812500
vt 0.031250 0.531250
vt 0.031250 0.500000
vt 0.468750 0.500000
vt 0.468750 0.531250
vt 0.031250 0.531250
vt 0.468750 0.843750
vt 0.031250 0.843750
vt 0.906250 0.343750
vt 1.000000 0.343750
vt 1.000000 0.500000
vt 0.906250 0.500000
vt 0.906250 0.343750
vt 1.000000 0.343750
vt 1.000000 0.500000
vt 0.906250 0.500000
vt 0.906250 0.343750
vt 1.000000 0.343750
vt 1.000000 0.500000
vt 0.906250 0.500000
vt 0.906250 0.343750
vt 1.000000 0.343750
vt 1.000000 0.500000
vt 0.906250 0.500000
vt 0.468750 0.531250
vt 0.031250 0.531250
vt 0.031250 0.812500
vt 0.468750 0.812500
vt 0.031250 0.500000
vt 0.031250 0.531250
vt 0.468750 0.531250
vt 0.468750 0.500000
vt 0.031250 0.843750
vt 0.468750 0.843750
vt 0.468750 0.531250
vt 0.031250 0.531250
vt 0.031250 0.812500
vt 0.468750 0.812500
vt 0.031250 0.500000
vt 0.031250 0.531250
vt 0.468750 0.531250
vt 0.468750 0.500000
vt 0.031250 0.843750
vt 0.468750 0.843750
vt 0.468750 0.531250
vt 0.031250 0.531250
vt 0.031250 0.812500
vt 0.468750 0.812500
vt 0.031250 0.500000
vt 0.031250 0.531250
vt 0.468750 0.531250
vt 0.468750 0.500000
vt 0.031250 0.843750
vt 0.468750 0.843750
vt 0.468750 0.531250
vt 0.031250 0.531250
vt 0.031250 0.812500
vt 0.468750 0.812500
vt 0.031250 0.500000
vt 0.031250 0.531250
vt 0.468750 0.531250
vt 0.468750 0.500000
vt 0.031250 0.843750
vt 0.468750 0.843750
vt 0.906250 0.343750
vt 0.906250 0.500000
vt 1.000000 0.500000
vt 1.000000 0.343750
vt 0.906250 0.343750
vt 0.906250 0.500000
vt 1.000000 0.500000
vt 1.000000 0.343750
vt 0.906250 0.343750
vt 0.906250 0.500000
vt 1.000000 0.500000
vt 1.000000 0.343750
vt 0.906250 0.343750
vt 0.906250 0.500000
vt 1.000000 0.500000
vt 1.000000 0.343750
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
vn 0.0000 -0.7071 0.7071
vn 0.7071 -0.7071 -0.0000
vn -0.0000 -0.7071 -0.7071
vn -0.7071 -0.7071 0.0000
vn -0.7071 0.0000 0.7071
vn 0.7071 0.0000 0.7071
vn 0.7071 0.0000 -0.7071
vn -0.7071 0.0000 -0.7071
vn 0.0000 0.7071 -0.7071
vn -0.7071 0.7071 0.0000
vn 0.0000 0.7071 0.7071
vn 0.7071 0.7071 -0.0000
usemtl m_0
s off
f 73/182/19 74/183/19 76/184/19 75/185/19
f 75/186/20 76/187/20 80/188/20 79/189/20
f 79/190/21 80/191/21 78/192/21 77/193/21
f 77/194/22 78/195/22 74/196/22 73/197/22
f 75/198/23 79/199/23 77/194/23 73/197/23
f 80/200/24 76/201/24 74/202/24 78/203/24
f 83/204/22 84/205/22 82/206/22 81/207/22
f 83/208/25 81/209/25 85/210/25 86/211/25
f 82/206/25 84/205/25 88/212/25 87/213/25
f 91/214/21 92/215/21 90/216/21 89/217/21
f 91/218/26 89/219/26 93/220/26 94/221/26
f 90/216/26 92/215/26 96/222/26 95/223/26
f 99/224/20 100/225/20 98/226/20 97/227/20
f 99/228/27 97/229/27 101/230/27 102/231/27
f 98/226/27 100/225/27 104/232/27 103/233/27
f 107/234/19 108/235/19 106/236/19 105/237/19
f 107/238/28 105/239/28 109/240/28 110/241/28
f 106/236/28 108/235/28 112/242/28 111/243/28
f 113/244/29 114/245/29 116/246/29 115/247/29
f 117/248/30 118/249/30 120/250/30 119/251/30
f 121/252/31 122/253/31 124/254/31 123/255/31
f 125/256/32 126/257/32 128/258/32 127/259/32
f 131/260/20 129/261/20 130/262/20 132/263/20
f 131/264/33 134/265/33 133/266/33 129/267/33
f 130/262/33 135/268/33 136/269/33 132/263/33
f 139/270/19 137/271/19 138/272/19 140/273/19
f 139/274/34 142/275/34 141/276/34 137/277/34
f 138/272/34 143/278/34 144/279/34 140/273/34
f 147/280/22 145/281/22 146/282/22 148/283/22
f 147/284/35 150/285/35 149/286/35 145/287/35
f 146/282/35 151/288/35 152/289/35 148/283/35
f 155/290/21 153/291/21 154/292/21 156/293/21
f 155/294/36 158/295/36 157/296/36 153/297/36
f 154/292/36 159/298/36 160/299/36 156/293/36
f 161/300/31 163/301/31 164/302/31 162/303/31
f 165/304/32 167/305/32 168/306/32 166/307/32
f 169/308/29 171/309/29 172/310/29 170/311/29
f 173/312/30 175/313/30 176/314/30 174/315/30

View file

@ -0,0 +1,9 @@
{
"parent": "block/block",
"loader": "forge:obj",
"flip-v": true,
"model": "create:models/block/blaze_burner/blaze_rods_large.obj",
"textures": {
"0": "create:block/blaze_active"
}
}

View file

@ -0,0 +1,9 @@
{
"parent": "block/block",
"loader": "forge:obj",
"flip-v": true,
"model": "create:models/block/blaze_burner/blaze_rods_small.obj",
"textures": {
"0": "create:block/blaze_active"
}
}

View file

@ -0,0 +1,9 @@
{
"parent": "block/block",
"loader": "forge:obj",
"flip-v": true,
"model": "create:models/block/blaze_burner/blaze_rods_large.obj",
"textures": {
"0": "create:block/blaze_super"
}
}

View file

@ -0,0 +1,9 @@
{
"parent": "block/block",
"loader": "forge:obj",
"flip-v": true,
"model": "create:models/block/blaze_burner/blaze_rods_small.obj",
"textures": {
"0": "create:block/blaze_super"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 423 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 711 B

After

Width:  |  Height:  |  Size: 483 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

View file

Before

Width:  |  Height:  |  Size: 292 B

After

Width:  |  Height:  |  Size: 292 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 323 B

View file

Before

Width:  |  Height:  |  Size: 238 B

After

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 831 B