Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
root = true

[*]
indent_size = 4
indent_style = space
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.lua]
indent_size = 2

[*.scala]
indent_size = 2

13 changes: 13 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,2 +1,15 @@
# Ignore changes in generated files
src/main/generatedResources/** linguist-generated

* text=auto

*.gradle eol=lf diff=java
*.java eol=lf diff=java
*.json eol=lf
*.scala eol=lf
*.lua eol=lf
*.md eol=lf diff=markdown
*.txt eol=lf

*.png binary
*.jar binary
22 changes: 11 additions & 11 deletions src/main/scala/li/cil/oc/common/item/BasicItem.scala
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package li.cil.oc.common.item
import net.minecraft.world.item.Item
import net.minecraft.world.item.Item.Properties
import net.neoforged.neoforge.common.extensions.IItemExtension
final class BasicItem(props: Properties, name: String) extends Item(props) with traits.SimpleItem with IItemExtension {
unlocalizedName = name
}
package li.cil.oc.common.item

import net.minecraft.world.item.Item
import net.minecraft.world.item.Item.Properties
import net.neoforged.neoforge.common.extensions.IItemExtension


final class BasicItem(props: Properties, name: String) extends Item(props) with traits.SimpleItem with IItemExtension {
unlocalizedName = name
}

final class BasicTieredItem(props: Properties, name: String) extends Item(props) with traits.SimpleItem with traits.ItemTier with IItemExtension {
unlocalizedName = name
}
Expand Down
116 changes: 58 additions & 58 deletions src/main/scala/li/cil/oc/server/loot/CopyColor.java
Original file line number Diff line number Diff line change
@@ -1,68 +1,68 @@
package li.cil.oc.server.loot;
import com.mojang.serialization.MapCodec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
package li.cil.oc.server.loot;

import com.mojang.serialization.MapCodec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
import li.cil.oc.api.internal.Colored;
import li.cil.oc.util.ItemColorizer;
import net.minecraft.world.item.DyeColor;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.storage.loot.LootContext;
import net.minecraft.world.level.storage.loot.functions.LootItemConditionalFunction;
import net.minecraft.world.level.storage.loot.functions.LootItemFunction;
import net.minecraft.world.level.storage.loot.functions.LootItemFunctionType;
import net.minecraft.world.level.storage.loot.parameters.LootContextParams;
import net.minecraft.world.level.storage.loot.predicates.LootItemCondition;
import org.jetbrains.annotations.NotNull;
import java.util.List;
public final class CopyColor extends LootItemConditionalFunction {
public static final MapCodec<CopyColor> CODEC = RecordCodecBuilder.mapCodec(
instance -> commonFields(instance).apply(instance, CopyColor::new)
);
private CopyColor(List<LootItemCondition> conditions) {
super(conditions);
}
@Override
public LootItemFunctionType<CopyColor> getType() {
return LootFunctions.COPY_COLOR.get();
}
public static LootItemConditionalFunction.Builder<?> copyColor() {
return simpleBuilder(CopyColor::new);
}
@Override
public @NotNull ItemStack run(ItemStack stack, @NotNull LootContext ctx) {
if (stack.isEmpty()) return stack;
BlockEntity be = ctx.getParamOrNull(LootContextParams.BLOCK_ENTITY);
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.storage.loot.LootContext;
import net.minecraft.world.level.storage.loot.functions.LootItemConditionalFunction;
import net.minecraft.world.level.storage.loot.functions.LootItemFunction;
import net.minecraft.world.level.storage.loot.functions.LootItemFunctionType;
import net.minecraft.world.level.storage.loot.parameters.LootContextParams;
import net.minecraft.world.level.storage.loot.predicates.LootItemCondition;
import org.jetbrains.annotations.NotNull;

import java.util.List;

public final class CopyColor extends LootItemConditionalFunction {
public static final MapCodec<CopyColor> CODEC = RecordCodecBuilder.mapCodec(
instance -> commonFields(instance).apply(instance, CopyColor::new)
);

private CopyColor(List<LootItemCondition> conditions) {
super(conditions);
}

@Override
public LootItemFunctionType<CopyColor> getType() {
return LootFunctions.COPY_COLOR.get();
}

public static LootItemConditionalFunction.Builder<?> copyColor() {
return simpleBuilder(CopyColor::new);
}

@Override
public @NotNull ItemStack run(ItemStack stack, @NotNull LootContext ctx) {
if (stack.isEmpty()) return stack;

BlockEntity be = ctx.getParamOrNull(LootContextParams.BLOCK_ENTITY);

if (be instanceof Colored colored) {
int color = colored.getColor();
if (color == 0xABABAB) {
ItemColorizer.removeColor(stack);
} else {
ItemColorizer.setColor(stack, color);
}
} else {
ItemColorizer.removeColor(stack);
}
return stack;
}
public static final class Builder extends LootItemConditionalFunction.Builder<Builder> {
@Override
public LootItemFunction build() {
return new CopyColor(getConditions());
}
@Override
protected Builder getThis() {
return this;
}
}
}
} else {
ItemColorizer.removeColor(stack);
}
return stack;
}

public static final class Builder extends LootItemConditionalFunction.Builder<Builder> {
@Override
public LootItemFunction build() {
return new CopyColor(getConditions());
}

@Override
protected Builder getThis() {
return this;
}
}
}
Loading