mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2025-08-28 16:22:18 +00:00
commit
8985ea9560
@ -10,7 +10,7 @@ import net.minecraft.client.sound.AbstractSoundInstance;
|
||||
import net.minecraft.client.sound.SoundInstance;
|
||||
import net.minecraft.client.sound.TickableSoundInstance;
|
||||
import net.minecraft.sound.SoundCategory;
|
||||
import net.minecraft.sound.SoundEvent;
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
|
||||
import java.util.HashMap;
|
||||
@ -21,7 +21,7 @@ public class SoundManager
|
||||
{
|
||||
private static final Map<UUID, MoveableSound> sounds = new HashMap<>();
|
||||
|
||||
public static void playSound( UUID source, Vec3d position, SoundEvent event, float volume, float pitch )
|
||||
public static void playSound( UUID source, Vec3d position, Identifier event, float volume, float pitch )
|
||||
{
|
||||
var soundManager = MinecraftClient.getInstance().getSoundManager();
|
||||
|
||||
@ -54,7 +54,7 @@ public class SoundManager
|
||||
|
||||
private static class MoveableSound extends AbstractSoundInstance implements TickableSoundInstance
|
||||
{
|
||||
protected MoveableSound( SoundEvent sound, Vec3d position, float volume, float pitch )
|
||||
protected MoveableSound( Identifier sound, Vec3d position, float volume, float pitch )
|
||||
{
|
||||
super( sound, SoundCategory.RECORDS );
|
||||
setPosition( position );
|
||||
|
@ -108,6 +108,12 @@ public abstract class ComputerScreenBase<T extends ContainerComputerBase> extend
|
||||
return getFocused() != null && getFocused().mouseDragged( x, y, button, deltaX, deltaY ) || super.mouseDragged( x, y, button, deltaX, deltaY );
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean mouseReleased( double mouseX, double mouseY, int button )
|
||||
{
|
||||
return (getFocused() != null && getFocused().mouseReleased( mouseX, mouseY, button )) || super.mouseReleased( x, y, button );
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawForeground( @Nonnull MatrixStack transform, int mouseX, int mouseY )
|
||||
{
|
||||
|
@ -64,36 +64,23 @@ public final class ModelTransformer
|
||||
{
|
||||
for( VertexFormatElement element : format.getElements() ) // For each vertex element
|
||||
{
|
||||
if( element.isPosition() &&
|
||||
element.getDataType() == VertexFormatElement.DataType.FLOAT &&
|
||||
element.getLength() == 3 ) // When we find a position element
|
||||
int start = offsetBytes / Integer.BYTES;
|
||||
if( element.getType() == VertexFormatElement.Type.POSITION && element.getDataType() == VertexFormatElement.DataType.FLOAT ) // When we find a position element
|
||||
{
|
||||
for ( int j = 0; j < 4; ++j ) // For each corner of the quad
|
||||
{
|
||||
int start = offsetBytes + j * format.getVertexSize();
|
||||
if ( (start % 4) == 0 )
|
||||
{
|
||||
start = start / 4;
|
||||
Vector4f pos = new Vector4f( Float.intBitsToFloat( vertexData[start] ),
|
||||
Float.intBitsToFloat( vertexData[start + 1] ),
|
||||
Float.intBitsToFloat( vertexData[start + 2] ),
|
||||
1 );
|
||||
|
||||
// Extract the position
|
||||
Vector4f pos = new Vector4f(
|
||||
Float.intBitsToFloat( vertexData[start] ),
|
||||
Float.intBitsToFloat( vertexData[start + 1] ),
|
||||
Float.intBitsToFloat( vertexData[start + 2] ),
|
||||
1
|
||||
);
|
||||
// Transform the position
|
||||
pos.transform( transform );
|
||||
|
||||
// Transform the position
|
||||
pos.transform( transform );
|
||||
|
||||
// Insert the position
|
||||
vertexData[start] = Float.floatToRawIntBits( pos.getX() );
|
||||
vertexData[start + 1] = Float.floatToRawIntBits( pos.getY() );
|
||||
vertexData[start + 2] = Float.floatToRawIntBits( pos.getZ() );
|
||||
}
|
||||
}
|
||||
// Insert the position
|
||||
vertexData[start] = Float.floatToRawIntBits( pos.getX() );
|
||||
vertexData[start + 1] = Float.floatToRawIntBits( pos.getY() );
|
||||
vertexData[start + 2] = Float.floatToRawIntBits( pos.getZ() );
|
||||
}
|
||||
offsetBytes += element.getLength();
|
||||
offsetBytes += element.getByteLength();
|
||||
}
|
||||
}
|
||||
return copy;
|
||||
|
@ -22,6 +22,7 @@ import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.function.BiConsumer;
|
||||
|
||||
/**
|
||||
@ -59,6 +60,7 @@ public class MixinLanguage
|
||||
@Inject( method = "create", locals = LocalCapture.CAPTURE_FAILSOFT, at = @At( value = "INVOKE", remap = false, target = "Lcom/google/common/collect/ImmutableMap$Builder;build()Lcom/google/common/collect/ImmutableMap;" ) )
|
||||
private static void create( CallbackInfoReturnable<Language> cir, ImmutableMap.Builder<String, String> builder )
|
||||
{
|
||||
final Map<String, String> originalTranslation = builder.build();
|
||||
/* We must ensure that the keys are de-duplicated because we can't catch the error that might otherwise
|
||||
* occur when the injected function calls build() on the ImmutableMap builder. So we use our own hash map and
|
||||
* exclude "minecraft", as the injected function has already loaded those keys at this point.
|
||||
@ -70,6 +72,9 @@ public class MixinLanguage
|
||||
loadModLangFile( id, translations::put );
|
||||
} );
|
||||
|
||||
// This is needed to remove keys that exist in vanilla Minecraft (Consistency+ does this)
|
||||
translations.keySet().removeIf( originalTranslation::containsKey );
|
||||
|
||||
builder.putAll( translations );
|
||||
}
|
||||
}
|
||||
|
@ -11,7 +11,6 @@ import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
import net.fabricmc.fabric.api.network.PacketContext;
|
||||
import net.minecraft.network.PacketByteBuf;
|
||||
import net.minecraft.sound.SoundEvent;
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
|
||||
@ -67,7 +66,6 @@ public class SpeakerPlayClientMessage implements NetworkMessage
|
||||
@Environment( EnvType.CLIENT )
|
||||
public void handle( PacketContext context )
|
||||
{
|
||||
SoundEvent sound = new SoundEvent( this.sound );
|
||||
SoundManager.playSound( source, pos, sound, volume, pitch );
|
||||
}
|
||||
}
|
||||
|
@ -29,8 +29,10 @@ public final class ImpostorRecipe extends ShapedRecipe
|
||||
{
|
||||
String group = JsonHelper.getString( json, "group", "" );
|
||||
ShapedRecipe recipe = RecipeSerializer.SHAPED.read( identifier, json );
|
||||
ItemStack result = ShapedRecipe.outputFromJson( JsonHelper.getObject( json, "result" ) );
|
||||
return new ImpostorRecipe( identifier, group, recipe.getWidth(), recipe.getHeight(), recipe.getIngredients(), result );
|
||||
JsonObject resultObject = JsonHelper.getObject( json, "result" );
|
||||
ItemStack itemStack = ShapedRecipe.outputFromJson( resultObject );
|
||||
RecipeUtil.setNbt( itemStack, resultObject );
|
||||
return new ImpostorRecipe( identifier, group, recipe.getWidth(), recipe.getHeight(), recipe.getIngredients(), itemStack );
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -41,9 +41,10 @@ public final class ImpostorShapelessRecipe extends ShapelessRecipe
|
||||
{
|
||||
throw new JsonParseException( "Too many ingredients for shapeless recipe the max is 9" );
|
||||
}
|
||||
|
||||
ItemStack itemstack = ShapedRecipe.outputFromJson( JsonHelper.getObject( json, "result" ) );
|
||||
return new ImpostorShapelessRecipe( id, s, itemstack, ingredients );
|
||||
JsonObject resultObject = JsonHelper.getObject( json, "result" );
|
||||
ItemStack itemStack = ShapedRecipe.outputFromJson( resultObject );
|
||||
RecipeUtil.setNbt( itemStack, resultObject );
|
||||
return new ImpostorShapelessRecipe( id, s, itemStack, ingredients );
|
||||
}
|
||||
|
||||
private DefaultedList<Ingredient> readIngredients( JsonArray arrays )
|
||||
|
@ -8,11 +8,11 @@ package dan200.computercraft.shared.util;
|
||||
|
||||
import com.google.common.collect.Maps;
|
||||
import com.google.common.collect.Sets;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonSyntaxException;
|
||||
import com.google.gson.*;
|
||||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||
import dan200.computercraft.shared.computer.core.ComputerFamily;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.StringNbtReader;
|
||||
import net.minecraft.recipe.Ingredient;
|
||||
import net.minecraft.util.JsonHelper;
|
||||
import net.minecraft.util.collection.DefaultedList;
|
||||
@ -24,6 +24,7 @@ import java.util.Set;
|
||||
|
||||
public final class RecipeUtil
|
||||
{
|
||||
private static final Gson GSON = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create();
|
||||
private RecipeUtil() {}
|
||||
|
||||
public static ShapedTemplate getTemplate( JsonObject json )
|
||||
@ -111,6 +112,22 @@ public final class RecipeUtil
|
||||
throw new JsonSyntaxException( "Unknown computer family '" + familyName + "' for field " + name );
|
||||
}
|
||||
|
||||
public static void setNbt( ItemStack itemStack, JsonObject result )
|
||||
{
|
||||
JsonElement nbtElement = result.get( "nbt" );
|
||||
if ( nbtElement != null )
|
||||
{
|
||||
try
|
||||
{
|
||||
itemStack.setNbt( StringNbtReader.parse( nbtElement.isJsonObject() ? GSON.toJson( nbtElement ) : JsonHelper.asString( nbtElement, "nbt" ) ) );
|
||||
}
|
||||
catch( CommandSyntaxException e )
|
||||
{
|
||||
throw new JsonSyntaxException( "Invalid NBT entry: " + e.getMessage() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class ShapedTemplate
|
||||
{
|
||||
public final int width;
|
||||
|
@ -1,10 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shapeless",
|
||||
"group": "computercraft:disk",
|
||||
"ingredients": [
|
||||
{ "item": "minecraft:redstone" },
|
||||
{ "item": "minecraft:paper" },
|
||||
{ "item": "minecraft:black_dye" }
|
||||
],
|
||||
"result": { "item": "computercraft:disk", "nbt": { "color": 1118481 } }
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shapeless",
|
||||
"group": "computercraft:disk",
|
||||
"ingredients": [
|
||||
{ "item": "minecraft:redstone" },
|
||||
{ "item": "minecraft:paper" },
|
||||
{ "item": "minecraft:pink_dye" }
|
||||
],
|
||||
"result": { "item": "computercraft:disk", "nbt": { "color": 15905484 } }
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shapeless",
|
||||
"group": "computercraft:disk",
|
||||
"ingredients": [
|
||||
{ "item": "minecraft:redstone" },
|
||||
{ "item": "minecraft:paper" },
|
||||
{ "item": "minecraft:lime_dye" }
|
||||
],
|
||||
"result": { "item": "computercraft:disk", "nbt": { "color": 8375321 } }
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shapeless",
|
||||
"group": "computercraft:disk",
|
||||
"ingredients": [
|
||||
{ "item": "minecraft:redstone" },
|
||||
{ "item": "minecraft:paper" },
|
||||
{ "item": "minecraft:yellow_dye" }
|
||||
],
|
||||
"result": { "item": "computercraft:disk", "nbt": { "color": 14605932 } }
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shapeless",
|
||||
"group": "computercraft:disk",
|
||||
"ingredients": [
|
||||
{ "item": "minecraft:redstone" },
|
||||
{ "item": "minecraft:paper" },
|
||||
{ "item": "minecraft:light_blue_dye" }
|
||||
],
|
||||
"result": { "item": "computercraft:disk", "nbt": { "color": 10072818 } }
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shapeless",
|
||||
"group": "computercraft:disk",
|
||||
"ingredients": [
|
||||
{ "item": "minecraft:redstone" },
|
||||
{ "item": "minecraft:paper" },
|
||||
{ "item": "minecraft:magenta_dye" }
|
||||
],
|
||||
"result": { "item": "computercraft:disk", "nbt": { "color": 15040472 } }
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shapeless",
|
||||
"group": "computercraft:disk",
|
||||
"ingredients": [
|
||||
{ "item": "minecraft:redstone" },
|
||||
{ "item": "minecraft:paper" },
|
||||
{ "item": "minecraft:orange_dye" }
|
||||
],
|
||||
"result": { "item": "computercraft:disk", "nbt": { "color": 15905331 } }
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shapeless",
|
||||
"group": "computercraft:disk",
|
||||
"ingredients": [
|
||||
{ "item": "minecraft:redstone" },
|
||||
{ "item": "minecraft:paper" },
|
||||
{ "item": "minecraft:white_dye" }
|
||||
],
|
||||
"result": { "item": "computercraft:disk", "nbt": { "color": 15790320 } }
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shapeless",
|
||||
"group": "computercraft:disk",
|
||||
"ingredients": [
|
||||
{ "item": "minecraft:redstone" },
|
||||
{ "item": "minecraft:paper" },
|
||||
{ "item": "minecraft:red_dye" }
|
||||
],
|
||||
"result": { "item": "computercraft:disk", "nbt": { "color": 13388876 } }
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shapeless",
|
||||
"group": "computercraft:disk",
|
||||
"ingredients": [
|
||||
{ "item": "minecraft:redstone" },
|
||||
{ "item": "minecraft:paper" },
|
||||
{ "item": "minecraft:green_dye" }
|
||||
],
|
||||
"result": { "item": "computercraft:disk", "nbt": { "color": 5744206 } }
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shapeless",
|
||||
"group": "computercraft:disk",
|
||||
"ingredients": [
|
||||
{ "item": "minecraft:redstone" },
|
||||
{ "item": "minecraft:paper" },
|
||||
{ "item": "minecraft:brown_dye" }
|
||||
],
|
||||
"result": { "item": "computercraft:disk", "nbt": { "color": 8349260 } }
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shapeless",
|
||||
"group": "computercraft:disk",
|
||||
"ingredients": [
|
||||
{ "item": "minecraft:redstone" },
|
||||
{ "item": "minecraft:paper" },
|
||||
{ "item": "minecraft:blue_dye" }
|
||||
],
|
||||
"result": { "item": "computercraft:disk", "nbt": { "color": 3368652 } }
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shapeless",
|
||||
"group": "computercraft:disk",
|
||||
"ingredients": [
|
||||
{ "item": "minecraft:redstone" },
|
||||
{ "item": "minecraft:paper" },
|
||||
{ "item": "minecraft:purple_dye" }
|
||||
],
|
||||
"result": { "item": "computercraft:disk", "nbt": { "color": 11691749 } }
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shapeless",
|
||||
"group": "computercraft:disk",
|
||||
"ingredients": [
|
||||
{ "item": "minecraft:redstone" },
|
||||
{ "item": "minecraft:paper" },
|
||||
{ "item": "minecraft:cyan_dye" }
|
||||
],
|
||||
"result": { "item": "computercraft:disk", "nbt": { "color": 5020082 } }
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shapeless",
|
||||
"group": "computercraft:disk",
|
||||
"ingredients": [
|
||||
{ "item": "minecraft:redstone" },
|
||||
{ "item": "minecraft:paper" },
|
||||
{ "item": "minecraft:light_gray_dye" }
|
||||
],
|
||||
"result": { "item": "computercraft:disk", "nbt": { "color": 10066329 } }
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shapeless",
|
||||
"group": "computercraft:disk",
|
||||
"ingredients": [
|
||||
{ "item": "minecraft:redstone" },
|
||||
{ "item": "minecraft:paper" },
|
||||
{ "item": "minecraft:gray_dye" }
|
||||
],
|
||||
"result": { "item": "computercraft:disk", "nbt": { "color": 5000268 } }
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:upgrade_pocket_advanced",
|
||||
"pattern": [
|
||||
"#",
|
||||
"T"
|
||||
],
|
||||
"key": {
|
||||
"#": { "item": "computercraft:speaker" },
|
||||
"T": { "item": "computercraft:pocket_computer_advanced" }
|
||||
},
|
||||
"result": { "item": "computercraft:pocket_computer_advanced", "nbt": { "Upgrade": "computercraft:speaker" } }
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:upgrade_pocket_advanced",
|
||||
"pattern": [
|
||||
"#",
|
||||
"T"
|
||||
],
|
||||
"key": {
|
||||
"#": { "item": "computercraft:wireless_modem_advanced" },
|
||||
"T": { "item": "computercraft:pocket_computer_advanced" }
|
||||
},
|
||||
"result": { "item": "computercraft:pocket_computer_advanced", "nbt": { "Upgrade": "computercraft:wireless_modem_advanced" } }
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:upgrade_pocket_advanced",
|
||||
"pattern": [
|
||||
"#",
|
||||
"T"
|
||||
],
|
||||
"key": {
|
||||
"#": { "item": "computercraft:wireless_modem_normal" },
|
||||
"T": { "item": "computercraft:pocket_computer_advanced" }
|
||||
},
|
||||
"result": { "item": "computercraft:pocket_computer_advanced", "nbt": { "Upgrade": "computercraft:wireless_modem_normal" } }
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:upgrade_pocket_normal",
|
||||
"pattern": [
|
||||
"#",
|
||||
"T"
|
||||
],
|
||||
"key": {
|
||||
"#": { "item": "computercraft:speaker" },
|
||||
"T": { "item": "computercraft:pocket_computer_normal" }
|
||||
},
|
||||
"result": { "item": "computercraft:pocket_computer_normal", "nbt": { "Upgrade": "computercraft:speaker" } }
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:upgrade_pocket_normal",
|
||||
"pattern": [
|
||||
"#",
|
||||
"T"
|
||||
],
|
||||
"key": {
|
||||
"#": { "item": "computercraft:wireless_modem_advanced" },
|
||||
"T": { "item": "computercraft:pocket_computer_normal" }
|
||||
},
|
||||
"result": { "item": "computercraft:pocket_computer_normal", "nbt": { "Upgrade": "computercraft:wireless_modem_advanced" } }
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:upgrade_pocket_normal",
|
||||
"pattern": [
|
||||
"#",
|
||||
"T"
|
||||
],
|
||||
"key": {
|
||||
"#": { "item": "computercraft:wireless_modem_normal" },
|
||||
"T": { "item": "computercraft:pocket_computer_normal" }
|
||||
},
|
||||
"result": { "item": "computercraft:pocket_computer_normal", "nbt": { "Upgrade": "computercraft:wireless_modem_normal" } }
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:upgrade_turtle_advanced",
|
||||
"pattern": [
|
||||
"#T"
|
||||
],
|
||||
"key": {
|
||||
"#": { "item": "computercraft:speaker" },
|
||||
"T": { "item": "computercraft:turtle_advanced" }
|
||||
},
|
||||
"result": { "item": "computercraft:turtle_advanced", "nbt": { "RightUpgrade": "computercraft:speaker" } }
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:upgrade_turtle_advanced",
|
||||
"pattern": [
|
||||
"#T"
|
||||
],
|
||||
"key": {
|
||||
"#": { "item": "computercraft:wireless_modem_advanced" },
|
||||
"T": { "item": "computercraft:turtle_advanced" }
|
||||
},
|
||||
"result": { "item": "computercraft:turtle_advanced", "nbt": { "RightUpgrade": "computercraft:wireless_modem_advanced" } }
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:upgrade_turtle_advanced",
|
||||
"pattern": [
|
||||
"#T"
|
||||
],
|
||||
"key": {
|
||||
"#": { "item": "computercraft:wireless_modem_normal" },
|
||||
"T": { "item": "computercraft:turtle_advanced" }
|
||||
},
|
||||
"result": { "item": "computercraft:turtle_advanced", "nbt": { "RightUpgrade": "computercraft:wireless_modem_normal" } }
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:upgrade_turtle_advanced",
|
||||
"pattern": [
|
||||
"#T"
|
||||
],
|
||||
"key": {
|
||||
"#": { "item": "minecraft:crafting_table" },
|
||||
"T": { "item": "computercraft:turtle_advanced" }
|
||||
},
|
||||
"result": { "item": "computercraft:turtle_advanced", "nbt": { "RightUpgrade": "minecraft:crafting_table" } }
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:upgrade_turtle_advanced",
|
||||
"pattern": [
|
||||
"#T"
|
||||
],
|
||||
"key": {
|
||||
"#": { "item": "minecraft:diamond_axe" },
|
||||
"T": { "item": "computercraft:turtle_advanced" }
|
||||
},
|
||||
"result": { "item": "computercraft:turtle_advanced", "nbt": { "RightUpgrade": "minecraft:diamond_axe" } }
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:upgrade_turtle_advanced",
|
||||
"pattern": [
|
||||
"#T"
|
||||
],
|
||||
"key": {
|
||||
"#": { "item": "minecraft:diamond_hoe" },
|
||||
"T": { "item": "computercraft:turtle_advanced" }
|
||||
},
|
||||
"result": { "item": "computercraft:turtle_advanced", "nbt": { "RightUpgrade": "minecraft:diamond_hoe" } }
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:upgrade_turtle_advanced",
|
||||
"pattern": [
|
||||
"#T"
|
||||
],
|
||||
"key": {
|
||||
"#": { "item": "minecraft:diamond_pickaxe" },
|
||||
"T": { "item": "computercraft:turtle_advanced" }
|
||||
},
|
||||
"result": { "item": "computercraft:turtle_advanced", "nbt": { "RightUpgrade": "minecraft:diamond_pickaxe" } }
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:upgrade_turtle_advanced",
|
||||
"pattern": [
|
||||
"#T"
|
||||
],
|
||||
"key": {
|
||||
"#": { "item": "minecraft:diamond_shovel" },
|
||||
"T": { "item": "computercraft:turtle_advanced" }
|
||||
},
|
||||
"result": { "item": "computercraft:turtle_advanced", "nbt": { "RightUpgrade": "minecraft:diamond_shovel" } }
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:upgrade_turtle_advanced",
|
||||
"pattern": [
|
||||
"#T"
|
||||
],
|
||||
"key": {
|
||||
"#": { "item": "minecraft:diamond_sword" },
|
||||
"T": { "item": "computercraft:turtle_advanced" }
|
||||
},
|
||||
"result": { "item": "computercraft:turtle_advanced", "nbt": { "RightUpgrade": "minecraft:diamond_sword" } }
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:upgrade_turtle_normal",
|
||||
"pattern": [
|
||||
"#T"
|
||||
],
|
||||
"key": {
|
||||
"#": { "item": "computercraft:speaker" },
|
||||
"T": { "item": "computercraft:turtle_normal" }
|
||||
},
|
||||
"result": { "item": "computercraft:turtle_normal", "nbt": { "RightUpgrade": "computercraft:speaker" } }
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:upgrade_turtle_normal",
|
||||
"pattern": [
|
||||
"#T"
|
||||
],
|
||||
"key": {
|
||||
"#": { "item": "computercraft:wireless_modem_advanced" },
|
||||
"T": { "item": "computercraft:turtle_normal" }
|
||||
},
|
||||
"result": { "item": "computercraft:turtle_normal", "nbt": { "RightUpgrade": "computercraft:wireless_modem_advanced" } }
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:upgrade_turtle_normal",
|
||||
"pattern": [
|
||||
"#T"
|
||||
],
|
||||
"key": {
|
||||
"#": { "item": "computercraft:wireless_modem_normal" },
|
||||
"T": { "item": "computercraft:turtle_normal" }
|
||||
},
|
||||
"result": { "item": "computercraft:turtle_normal", "nbt": { "RightUpgrade": "computercraft:wireless_modem_normal" } }
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:upgrade_turtle_normal",
|
||||
"pattern": [
|
||||
"#T"
|
||||
],
|
||||
"key": {
|
||||
"#": { "item": "minecraft:crafting_table" },
|
||||
"T": { "item": "computercraft:turtle_normal" }
|
||||
},
|
||||
"result": { "item": "computercraft:turtle_normal", "nbt": { "RightUpgrade": "minecraft:crafting_table" } }
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:upgrade_turtle_normal",
|
||||
"pattern": [
|
||||
"#T"
|
||||
],
|
||||
"key": {
|
||||
"#": { "item": "minecraft:diamond_axe" },
|
||||
"T": { "item": "computercraft:turtle_normal" }
|
||||
},
|
||||
"result": { "item": "computercraft:turtle_normal", "nbt": { "RightUpgrade": "minecraft:diamond_axe" } }
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:upgrade_turtle_normal",
|
||||
"pattern": [
|
||||
"#T"
|
||||
],
|
||||
"key": {
|
||||
"#": { "item": "minecraft:diamond_hoe" },
|
||||
"T": { "item": "computercraft:turtle_normal" }
|
||||
},
|
||||
"result": { "item": "computercraft:turtle_normal", "nbt": { "RightUpgrade": "minecraft:diamond_hoe" } }
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:upgrade_turtle_normal",
|
||||
"pattern": [
|
||||
"#T"
|
||||
],
|
||||
"key": {
|
||||
"#": { "item": "minecraft:diamond_pickaxe" },
|
||||
"T": { "item": "computercraft:turtle_normal" }
|
||||
},
|
||||
"result": { "item": "computercraft:turtle_normal", "nbt": { "RightUpgrade": "minecraft:diamond_pickaxe" } }
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:upgrade_turtle_normal",
|
||||
"pattern": [
|
||||
"#T"
|
||||
],
|
||||
"key": {
|
||||
"#": { "item": "minecraft:diamond_shovel" },
|
||||
"T": { "item": "computercraft:turtle_normal" }
|
||||
},
|
||||
"result": { "item": "computercraft:turtle_normal", "nbt": { "RightUpgrade": "minecraft:diamond_shovel" } }
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:upgrade_turtle_normal",
|
||||
"pattern": [
|
||||
"#T"
|
||||
],
|
||||
"key": {
|
||||
"#": { "item": "minecraft:diamond_sword" },
|
||||
"T": { "item": "computercraft:turtle_normal" }
|
||||
},
|
||||
"result": { "item": "computercraft:turtle_normal", "nbt": { "RightUpgrade": "minecraft:diamond_sword" } }
|
||||
}
|
@ -14,6 +14,7 @@
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "computercraft:pocket_computer_advanced"
|
||||
"item": "computercraft:pocket_computer_advanced",
|
||||
"nbt": "{Upgrade:\"computercraft:speaker\"}"
|
||||
}
|
||||
}
|
||||
|
@ -14,6 +14,7 @@
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "computercraft:pocket_computer_advanced"
|
||||
"item": "computercraft:pocket_computer_advanced",
|
||||
"nbt": "{Upgrade:\"computercraft:wireless_modem_advanced\"}"
|
||||
}
|
||||
}
|
||||
|
@ -14,6 +14,7 @@
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "computercraft:pocket_computer_advanced"
|
||||
"item": "computercraft:pocket_computer_advanced",
|
||||
"nbt": "{Upgrade:\"computercraft:wireless_modem_normal\"}"
|
||||
}
|
||||
}
|
||||
|
@ -1,19 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:pocket_advanced",
|
||||
"pattern": [
|
||||
"#",
|
||||
"P"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "computercraft:pocket_computer_advanced"
|
||||
},
|
||||
"P": {
|
||||
"item": "minecraft:crafting_table"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "computercraft:pocket_computer_advanced"
|
||||
}
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:pocket_advanced",
|
||||
"pattern": [
|
||||
"#",
|
||||
"P"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "computercraft:pocket_computer_advanced"
|
||||
},
|
||||
"P": {
|
||||
"item": "minecraft:diamond_axe"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "computercraft:pocket_computer_advanced"
|
||||
}
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:pocket_advanced",
|
||||
"pattern": [
|
||||
"#",
|
||||
"P"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "computercraft:pocket_computer_advanced"
|
||||
},
|
||||
"P": {
|
||||
"item": "minecraft:diamond_hoe"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "computercraft:pocket_computer_advanced"
|
||||
}
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:pocket_advanced",
|
||||
"pattern": [
|
||||
"#",
|
||||
"P"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "computercraft:pocket_computer_advanced"
|
||||
},
|
||||
"P": {
|
||||
"item": "minecraft:diamond_pickaxe"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "computercraft:pocket_computer_advanced"
|
||||
}
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:pocket_advanced",
|
||||
"pattern": [
|
||||
"#",
|
||||
"P"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "computercraft:pocket_computer_advanced"
|
||||
},
|
||||
"P": {
|
||||
"item": "minecraft:diamond_shovel"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "computercraft:pocket_computer_advanced"
|
||||
}
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:pocket_advanced",
|
||||
"pattern": [
|
||||
"#",
|
||||
"P"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "computercraft:pocket_computer_advanced"
|
||||
},
|
||||
"P": {
|
||||
"item": "minecraft:diamond_sword"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "computercraft:pocket_computer_advanced"
|
||||
}
|
||||
}
|
@ -14,6 +14,7 @@
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "computercraft:pocket_computer_normal"
|
||||
"item": "computercraft:pocket_computer_normal",
|
||||
"nbt": "{Upgrade:\"computercraft:speaker\"}"
|
||||
}
|
||||
}
|
||||
|
@ -14,6 +14,7 @@
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "computercraft:pocket_computer_normal"
|
||||
"item": "computercraft:pocket_computer_normal",
|
||||
"nbt": "{Upgrade:\"computercraft:wireless_modem_advanced\"}"
|
||||
}
|
||||
}
|
||||
|
@ -14,6 +14,7 @@
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "computercraft:pocket_computer_normal"
|
||||
"item": "computercraft:pocket_computer_normal",
|
||||
"nbt": "{Upgrade:\"computercraft:wireless_modem_normal\"}"
|
||||
}
|
||||
}
|
||||
|
@ -1,19 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:pocket_normal",
|
||||
"pattern": [
|
||||
"#",
|
||||
"P"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "computercraft:pocket_computer_normal"
|
||||
},
|
||||
"P": {
|
||||
"item": "minecraft:crafting_table"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "computercraft:pocket_computer_normal"
|
||||
}
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:pocket_normal",
|
||||
"pattern": [
|
||||
"#",
|
||||
"P"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "computercraft:pocket_computer_normal"
|
||||
},
|
||||
"P": {
|
||||
"item": "minecraft:diamond_axe"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "computercraft:pocket_computer_normal"
|
||||
}
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:pocket_normal",
|
||||
"pattern": [
|
||||
"#",
|
||||
"P"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "computercraft:pocket_computer_normal"
|
||||
},
|
||||
"P": {
|
||||
"item": "minecraft:diamond_hoe"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "computercraft:pocket_computer_normal"
|
||||
}
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:pocket_normal",
|
||||
"pattern": [
|
||||
"#",
|
||||
"P"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "computercraft:pocket_computer_normal"
|
||||
},
|
||||
"P": {
|
||||
"item": "minecraft:diamond_pickaxe"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "computercraft:pocket_computer_normal"
|
||||
}
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:pocket_normal",
|
||||
"pattern": [
|
||||
"#",
|
||||
"P"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "computercraft:pocket_computer_normal"
|
||||
},
|
||||
"P": {
|
||||
"item": "minecraft:diamond_shovel"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "computercraft:pocket_computer_normal"
|
||||
}
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
{
|
||||
"type": "computercraft:impostor_shaped",
|
||||
"group": "computercraft:pocket_normal",
|
||||
"pattern": [
|
||||
"#",
|
||||
"P"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "computercraft:pocket_computer_normal"
|
||||
},
|
||||
"P": {
|
||||
"item": "minecraft:diamond_sword"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "computercraft:pocket_computer_normal"
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user